Software Engineering Notes
Module 1: Introduction to Software Engineering and Process Models (7 Hrs)
1.1 Software Engineering Basics
- Process Framework: Steps involved in developing software (planning -> building -> testing -> maintaining).
- CMM (Capability Maturity Model): Rates software organizations from Level 1 (initial) to Level 5 (optimized).
- Trends: Agile methods, DevOps, automation in testing and deployment.
1.2 Prescriptive Process Models
- Waterfall Model: Step-by-step - no going back.
- Incremental Model: Build part by part.
- RAD: Fast development using reusable components.
- Spiral Model: Combines design and prototyping with risk analysis.
1.3 Agile Models
- XP: Fast, frequent releases and pair programming.
- Scrum: Short sprints with daily meetings.
- Kanban: Visual board to manage work in progress.
Module 2: Software Requirements Analysis and Modeling (4 Hrs)
2.1 Requirement Engineering
- Requirement Engineering: Collecting and managing software requirements.
- Modeling: Data Flow Diagrams, Scenario-based modeling (use cases, user stories).
2.2 SRS Document (IEEE Format)
- SRS: Describes the system's behavior, features, and constraints.
Module 3: Software Estimation Metrics (7 Hrs)
3.1 Software Metrics and Estimation
- Metrics: Quantitative ways to measure software.
Software Engineering Notes
- Estimation Techniques: LOC, FP, COCOMO II.
3.2 Project Scheduling and Tracking
- Use of Gantt charts, milestones, and task breakdowns to manage timelines.
Module 4: Software Design (7 Hrs)
4.1 Design Principles
- Keep it simple, modular, and clear.
- DRY principle, high cohesion, low coupling.
4.2 Modular Design
- Modular Design: Breaking into parts (modules).
- Architectural Design: Client-server, layered, etc.
Module 5: Software Testing (7 Hrs)
5.1 Types of Testing
- Unit, Integration, Validation, and System testing.
5.2 Testing Techniques
- White-box: Internal logic (basis path).
- Black-box: Outputs for inputs (equivalence, boundary value).
- Graph-based: Control/data flow.
5.3 Software Maintenance
- Corrective, Adaptive, Perfective.
- Re-engineering & Reverse Engineering.
Module 6: SCM, Quality Assurance & Maintenance (7 Hrs)
Software Engineering Notes
6.1 Risk Management
- Risk Mitigation, Monitoring, RMMM Plan.
6.2 Quality Assurance
- Metrics, Formal Reviews, Software Reliability.
6.3 SCM
- Version Control (Git), Change Control.