CSPC3005 SOFTWARE ENGINEERING (3-0-0)
Course Objectives
1. To introduce the essential Software Engineering concepts.
2. To impart concepts and skills for performing analysis, design, develop, test and evolve efficient software
systems of various disciplines and applications
3. To make familiar about engineering practices, standards and metrics for developing software components
and products.
Course Outcomes
On completion of this course, student should be able to:
1. Apply and assess the principles of various process models for the software development.
2. Demonstrate various software project management activities that include planning, estimations, Risk
assessment and Configuration Management
3. Perform Requirements modelling and apply appropriate design and testing heuristics to produce quality
software systems.
4. Demonstrate the complete Software life cycle activities from requirements analysis to maintenance using
the modern tools and techniques.
5. Escalate the use of various standards and metrics in evaluating the process and product.
Module - I: (06 Hours)
Overview Of Software Engineering
Nature of Software, Software Engineering, Software process, project, product, Process Models, Classical
Evolutionary models, Introduction to Agility - Agile Process-Extreme programming - XP Process – Principles of
Agile Software Development framework - Overview of System Engineering
Module - II: (08 Hours)
Introduction To Software Project Management
Planning, Scope, Work break-down structure, Milestones, Deliverables, Cost and Estimates - (Human
Resources, Time-scale, Costs), Risk Management, RMMM Plan, CASE TOOLS, Agile Project Management,
Managing team dynamics and communication, Metrics and Measurement
Module - III: (08 Hours)
Modelling Requirements
Software requirements and its types, Requirements Engineering process, Requirement Elicitation, System
Modeling – Requirements Specification and Requirement Validation, Requirements Elicitation techniques,
Requirements management in Agile.
Module - IV: (09 Hours)
Software Design
Design concepts and principles - Abstraction - Refinement - Modularity Cohesion coupling,
Architectural design, Detailed Design Transaction Transformation, Refactoring of designs,
Object oriented Design User-Interface Design
Module - V: (09 Hours)
Validation And Verification
Strategic Approach to Software Testing, Testing Fundamentals Test Plan, Test Design, Test Execution, Reviews,
Inspection and Auditing – Regression Testing – Mutation Testing - Object oriented testing - Testing Web based
System - Mobile App testing – Mobile test Automation and tools – DevOps Testing – Cloud and Big Data Testing,
Software Maintenance, Types of Maintenance, - Software Configuration Management – Overview – SCM Tools.
Re-Engineering, Reverse Engineering, Software Reuse
Text Book:
1. Ian Somerville, Software Engineering, 10th Edition, Addison-Wesley, 2015
Reference Books:
1. Roger S. Pressman and Bruce R. Maxim, Software Engineering: A Practitioner’s Approach, 10th edition,
McGraw Hill Education, 2019
2. William E. Lewis , Software Testing and Continuous Quality Improvement, Third Edition, Auerbach
Publications, 2017