COURSE LAYOUT
Week Topics Text
Foundations
- Introduction to Software Engineering
01 - Overview of Software Processes [1],[3]
- Agile Methodologies and Principles
- Software Development Life Cycle (SDLC)
Process Models & Requirements
- Detailed Study of Waterfall and Incremental Models
[2],[3]
02 - Comparative Analysis of Life Cycle Models
- Requirement Engineering Processes
- Crafting Software Requirement Specifications (SRS)
Planning & Design
- Software Project Planning Techniques
03 - Introduction to Function Point Analysis [1],[3]
- Principles of Modular Design
- Understanding Cohesion and Coupling
Design Techniques
- Design Notations and Their Applications
- Design Metrics
04 [2],[3]
- Creating and Interpreting Data Flow Diagrams
- System Analysis Techniques
- Creating and Understanding Design Diagrams
Project Management
- Fundamentals of Project Management
05 - Creating Network Analysis Diagrams [5]
- Techniques for Cost Estimation
- Understanding Total, Normal, and Crash Costs
Software Testing
- Introduction to Software Testing
06 [1],[3]
- Types of Testing (Unit, Integration, System, Acceptance)
- Software Testing Methodologies (Parts 1 & 2)
Advanced Testing & Debugging
- Flow Graphs and Their Uses
07 - Calculating Cyclomatic Complexity [3]
- Understanding and Using Graph Matrices
- Debugging Techniques and Test Case Strategies
Maintenance & Capability Models
08 - Overview of Software Maintenance Types [1]
- Transition to Capability Maturity Models (CMMI)
Quality & Reuse
09 - Principles of Software Quality Assurance (SQA) [3]
- Strategies for Effective Software Reuse
Documentation & Configuration
- Documentation Requirements and Standards
10 [4]
- Basics of Software Configuration Management (SCM)
- Version Control Systems and Baseline Management
Management & Case Studies
11 - Management Spectrum and W5HH Principle [2]
- Case Studies on Process Model Choices
Design & Review Techniques
- Software Review Techniques
12 [5]
- Conducting Feasibility Studies
- Case Studies on Design Approaches
BOOKS AND REFERENCES
[1] R. S. Pressman, *Software Engineering: A Practitioner’s Approach*, 8th ed. New York, NY, USA: McGraw-Hill, 2015.
[2] P. Jalote, *Software Engineering: A Precise Approach*. New York, NY, USA: Springer, 2010.
[3] R. Fairley, *Software Engineering Concepts*. New York, NY, USA: McGraw-Hill, 1997.
[4] A. Ko, *Co-operative Software Development*. Seattle, WA, USA: Univ. of Washington, 2023. [Online]. Available: [Link]
[5] A. Fox and D. Patterson, *Engineering Software as a Service: An Agile Approach Using Cloud Computing*, 2nd ed. Strawberry Canyon, CA, USA: Strawberry Canyon LLC,
2020.