CHAPTER 1 – SOFTWARE ENGINEERING (DETAILED NOTES)
1. Introduction to Software Engineering
Software Engineering is the systematic and disciplined approach to developing, operating, and
maintaining software. It aims to produce high■quality, reliable, cost■effective software.
Need for Software Engineering:
- Software complexity is increasing
- Demand for high-quality systems
- Need for scalability and maintainability
Characteristics of Good Software:
Correctness, Reliability, Efficiency, Maintainability, Usability, Portability.
Application Areas:
Banking, Healthcare, Education, Robotics, Communication, Transportation, E-commerce.
2. Software Development Life Cycle (SDLC)
SDLC includes Requirement Analysis, Design, Coding, Testing, Deployment, Maintenance.
3. Software Life-Cycle Models
3.1 Waterfall Model
Linear model with sequential phases.
Advantages: Simple, structured.
Disadvantages: Not flexible, requires fixed requirements.
3.2 Incremental Model
Software delivered in small increments.
Advantages: Early working model, flexible.
Disadvantages: Requires planning, integration issues.
3.3 Spiral Model
Combines Waterfall + Risk analysis + Iteration. Good for large, risky projects.
3.4 Prototype Model
A prototype is built to clarify requirements.
3.5 V-Model
Testing is performed parallel to development.
4. Software Requirements Specification (SRS)
SRS is a formal document defining functional and non-functional requirements.
Characteristics of Good SRS:
Correct, Clear, Complete, Consistent, Verifiable, Modifiable, Traceable.
Functional Requirements: Describe system behavior.
Non-Functional Requirements: Performance, security, reliability.
5. Formal Requirements Specification
Uses mathematical notation such as Z-notation, VDM, FSM.
Advantages: High precision.
Disadvantages: Difficult for non-technical users.
6. Verification and Validation (V&V;)
Verification: “Are we building the product right?” – Reviews, inspections.
Validation: “Are we building the right product?” – Testing, UAT.
Differences:
Verification = Process-based, no execution.
Validation = Product-based, requires execution.
Conclusion:
Chapter 1 explains SE basics, SDLC, models, SRS, and quality processes essential for software
success.