Unit I: Basics of Software Engineering
1.1 Software, Software Engineering as Layered Approach:
- Software: Set of programs and documentation.
- Software Engineering: Application of engineering principles to software.
- Layered Approach: Tools, methods, process, quality focus.
1.2 Software Development Framework:
- Generic Process Activities: Communication, Planning, Modeling, Construction, Deployment.
- Umbrella Activities: Project tracking, risk management, quality assurance.
1.3 Software Engineering Core Practices:
- Communication, Planning, Modeling, Construction, Deployment.
1.4 Prescriptive Process Models:
- Waterfall Model, Incremental Model, RAD Model, Prototyping Model, Spiral Model.
1.5 Agile Development:
- Agile Process: Iterative and incremental.
- Importance: Flexibility, customer feedback.
- Models: Extreme Programming, Scrum.
1.6 Selection Criteria for Process Model:
- Based on project size, complexity, team, budget, etc.
Unit II: Software Requirement, Modeling and Design
2.1 Requirement Engineering:
- Tasks: Inception, elicitation, elaboration, negotiation, validation.
- Types: Functional, non-functional, domain requirements.
- Use-case: Defines system behavior.
2.2 Software Requirement Specification (SRS):
- Need: Clear, structured documentation.
- Format: Introduction, functional requirements, non-functional requirements.
- Characteristics: Correct, consistent, verifiable.
2.3 Translating Requirement to Design Model:
- Use SRS to create architecture, interface, data design.
2.4 Design Modeling Concepts:
- Abstraction, information hiding, modularity, patterns, concurrency, aesthetics, verification.
2.5 Design Notations:
- Data Flow Diagram (DFD), Structured Flowcharts.
Unit III: Software Project Management
3.1 Management Spectrum - 4P's:
- People, Product, Process, Project.
3.2 Metrics for Size Estimation:
- LoC: Count of lines in source code.
- Function Points: Based on features and user input/output.
3.3 Cost Estimation Using COCOMO:
- COCOMO: Basic, Intermediate, Detailed models.
- COCOMO II: More accurate modern version.
3.4 Risks and RMMM:
- Types: Technical, project, business.
- RMMM: Risk Mitigation, Monitoring, Management.
3.5 Project Scheduling:
- CPM (Critical Path Method), PERT (Probabilistic planning).
3.6 Project Tracking:
- Timeline Charts, Gantt Charts.
Unit IV: Basics of Software Testing
4.1 Software Testing and STLC:
- Objective: Identify defects, ensure quality.
- STLC: Requirement, planning, design, execution, reporting.
4.2 Terminology:
- Error: Human mistake.
- Defect: Software flaw.
- Bug: Informal term for defect.
4.3 Test Case & Test Timing:
- Test Case: Input/output validation.
- Start: After development.
- Stop: Based on coverage, defect rate.
4.4 QA, QC, Verification & Validation:
- QA: Process-oriented.
- QC: Product-oriented.
- Standards: Six Sigma, CMMI.
4.5 Static vs Dynamic Testing:
- Static: Without execution.
- Dynamic: With execution.
4.6 White Box vs Black Box Testing:
- White: Internal logic.
- Black: Functional test only.
4.7 Levels of Testing:
- Unit, Integration, System, Acceptance.
Unit V: Test and Defect Management
5.1 Test Planning:
- Plan includes scope, strategy, schedule, risk.
5.2 Test Infrastructure Management:
- Tools, environments, resources setup.
5.3 Test Reporting:
- Execution results, summary reports.
5.4 Defect Life Cycle and Template:
- Life Cycle: New -> Open -> Fixed -> Retest -> Closed.
- Template: ID, Summary, Description, Priority.
5.5 Manual vs Automation Testing:
- Manual: Exploratory, cheaper.
- Automation: Fast, reusable scripts.
5.6 Metrics:
- Product Metrics: Size, complexity.
- Process Metrics: Defects, effectiveness.