Software Engineering Notes
1. Introduction to Software
Software is a collection of programs and data that instructs a computer.
2. Software Engineering
It is a systematic approach to develop and maintain software.
3. Need for Software Engineering
- Handles complexity
- Improves quality
- Reduces cost and time
4. Characteristics of Good Software
- Correctness
- Reliability
- Efficiency
- Usability
- Maintainability
- Portability
5. SDLC Phases
- Requirement Analysis
- Design
- Coding
- Testing
- Deployment
- Maintenance
6. Process Models
- Waterfall Model: Sequential steps
- Prototyping Model: Early sample model
- RAD Model: Fast development
- Incremental Model: Build in parts
- Spiral Model: Risk-based cycles
7. Software Metrics
- Product Metrics: Measure product (size, complexity)
- Process Metrics: Measure process (time, cost)
Advantages:
- Better planning
- Quality improvement
- Progress tracking
8. Project Planning
- Size Estimation (LOC, Function Points)
- Cost Estimation
- Time Estimation
- Scheduling
- Tracking
9. Software Design
- Architectural Design
- Detailed Design
- Interface Design
Principles:
- Modularity
- Abstraction
- Encapsulation
- Low Coupling
- High Cohesion
10. SRS (Software Requirement Specification)
Document containing all requirements.
Characteristics:
- Correct
- Complete
- Unambiguous
- Consistent
- Verifiable
- Modifiable
- Traceable