Software Engineering Notes
Subject Overview
Software Engineering covers the full software development lifecycle — process models (waterfall, incremental, evolutionary, unified process) and agile methods (XP, Scrum), requirements engineering and risk/
Subject at a glance
4
Units
49
Topics
3
Credits
4
Infographics
Unit-wise Syllabus
4 units — open any unit for detailed topic-wise notes, diagrams and important exam questions
- Evolving role and changing nature of software
- layered technology
- process framework
- waterfall/incremental/evolutionary process models
- the unified process
- agility principles and agile methods
- plan-driven vs agile development
- extreme programming
- Scrum
Approach
Linear phases, one after another
Short iterations (sprints)
Changes
Costly once a phase is complete
Expected and welcomed
Customer involvement
Mainly at start and end
Continuous
Best for
Stable, well-defined requirements
Evolving requirements
Study guide
Software engineering is about building software in a disciplined, repeatable way. You learn the changing nature of software, the process framework, the waterfall, incremental and evolutionary models, the unified process, agility and agile methods, how plan-driven and agile development differ, extreme programming and Scrum. Make a comparison table of the process models with their strengths and weaknesses; it is a standard exam question.
- Functional and non-functional requirements
- requirements specification and engineering processes
- elicitation
- analysis
- validation and management
- risk strategies
- identification
- projection
- refinement
- RMMM plan
- software pricing
- plan-driven development
- project scheduling
- agile planning
- estimation techniques
- 1Elicitation
Gather needs from users
- 2Analysis
Resolve conflicts and gaps
- 3Specification
Write the SRS
- 4Validation
Confirm with stakeholders
- 5Management
Track changes over time
Study guide
Projects succeed or fail on requirements and management. You study functional and non-functional requirements, the requirements engineering process (elicitation, analysis, validation, management), risk strategies and the RMMM plan, software pricing, scheduling, agile planning and estimation techniques. Practise writing a short software requirements specification for a simple system.
- Design process and quality
- design concepts and model
- software architecture
- data design
- class/sequence/collaboration/use case/component diagrams
- testing strategies
- black-box and white-box testing
- validation and system testing
- debugging
- product metrics for analysis
- design
- source code
- testing and maintenance
- Acceptance testing
Users confirm it meets their needs
- System testing
The whole system against requirements
- Integration testing
Modules working together
- Unit testing
Individual functions or classes
Study guide
Design turns requirements into a blueprint and testing proves it works. You learn design concepts and quality, software architecture, data design, and UML diagrams (class, sequence, collaboration, use case, component), followed by testing strategies, black-box and white-box testing, validation, system testing, debugging, and product metrics. Draw each UML diagram for one small system such as a library system.
- Quality concepts
- software quality assurance
- formal technical reviews
- statistical SQA
- software reliability
- release planning
- development and build plans
- release strategies
- post-deployment monitoring
- maintenance
- updates
- end of life and migration strategies
- 1Plan the release
Scope, schedule and build plan
- 2Build and test
Quality checks and reviews
- 3Deploy
Release to users
- 4Monitor
Watch performance and errors
- 5Maintain
Fix, update, and eventually retire or migrate
Study guide
Quality does not happen by accident. You study quality concepts, software quality assurance, formal technical reviews, statistical SQA and reliability, then release management: release planning, build plans, release strategies, post-deployment monitoring, maintenance, updates, end of life and migration. Understand that most of a software's cost comes after the first release, in maintenance.
Why Software Engineering Matters
Software Engineering is how professional teams really work: agile sprints, requirements, design, testing and releases. It directly prepares you for internships and jobs in software companies, where knowing Scrum, UML and testing is expected from day one.
How to Prepare for Software Engineering
- Prepare a one-page comparison of waterfall, incremental, spiral and agile models.
- Practise drawing UML diagrams (use case, class, sequence) for a small system.
- Learn the difference between black-box and white-box testing with examples.
- Understand Scrum roles, events and artifacts; they are frequent exam and interview topics.
Software Engineering: Frequently Asked Questions
What is the difference between waterfall and agile?
Waterfall completes each phase fully before moving to the next, while agile builds software in short iterations with frequent feedback and the ability to change requirements.
What is the difference between black-box and white-box testing?
Black-box testing checks behaviour against requirements without looking at the code, while white-box testing examines internal logic and code paths.
