Software Engineering Syllabus
Course Overview:
This course introduces students to the principles and practices of software engineering. It covers
software development methodologies, design principles, project management, testing, and the
tools required for building reliable and efficient software systems.
Week 1: Introduction to Software Engineering
Topics:
o What is Software Engineering?
o The Software Development Lifecycle (SDLC)
o Phases of SDLC: Requirement Gathering, Design, Development, Testing,
Deployment, Maintenance
o Software Process Models (Waterfall, Agile, Spiral, V-Model, Incremental)
o Overview of Software Engineering Practices
Reading:
o Chapter 1 of Software Engineering by Ian Sommerville
Week 2: Requirements Engineering
Topics:
o Understanding Requirements: Functional and Non-functional
o Types of Requirements: User, System, Interface, and Performance Requirements
o Requirement Elicitation Techniques (Interviews, Surveys, Use Cases)
o Requirement Specification and Documentation
o Requirements Validation and Verification
Reading:
o Chapter 4 of Software Engineering by Ian Sommerville
Week 3: Software Design Principles
Topics:
o Principles of Software Design: Modularity, Abstraction, and Encapsulation
o Design Patterns (Creational, Structural, Behavioral)
o High-Level and Low-Level Design
o UML Diagrams (Class, Sequence, Activity, Use Case)
o Design Evaluation and Trade-offs
Reading:
o Chapter 7 of Design Patterns: Elements of Reusable Object-Oriented Software by
Erich Gamma et al.
Week 4: Software Architecture
Topics:
o What is Software Architecture?
o Architectural Styles: Layered, Client-Server, Microservices, Event-Driven, etc.
o Component-Based Architecture
o Architecture Evaluation (ATAM, SAAM)
o Architectural Design Decisions
Reading:
o Chapter 5 of Software Engineering by Ian Sommerville
Week 5: Agile Software Development
Topics:
o Introduction to Agile Methodologies: Scrum, Kanban, XP
o Agile Manifesto and Principles
o Scrum Roles (Product Owner, Scrum Master, Development Team)
o Agile Practices: User Stories, Sprints, Backlogs, Burndown Charts
o Continuous Integration and Continuous Delivery (CI/CD)
Reading:
o Scrum: The Art of Doing Twice the Work in Half the Time by Jeff Sutherland
Week 6: Software Development Tools
Topics:
o Integrated Development Environments (IDEs) and Version Control (Git)
o Build Automation (Maven, Gradle)
o Issue Tracking and Project Management Tools (Jira, Trello)
o Continuous Integration and Delivery Tools (Jenkins, GitLab CI)
o Testing Frameworks and Tools (JUnit, Selenium)
Reading:
o Chapter 10 of Software Engineering by Ian Sommerville
Week 7: Software Testing and Quality Assurance
Topics:
o The Role of Software Testing
o Types of Testing: Unit, Integration, System, Acceptance, Regression, Stress
o Test-Driven Development (TDD)
o Software Quality Metrics (Defect Density, Test Coverage, etc.)
o Quality Assurance and Control
Reading:
o Chapter 9 of Software Engineering by Ian Sommerville
Week 8: Software Maintenance and Evolution
Topics:
o Software Maintenance Types: Corrective, Adaptive, Perfective, Preventive
o Managing Software Evolution
o Refactoring and Re-engineering Techniques
o Configuration Management and Version Control
o Tools for Maintenance (Bug Tracking, Issue Tracking)
Reading:
o Chapter 15 of Software Engineering by Ian Sommerville
Week 9: Software Project Management
Topics:
o Software Project Life Cycle and Estimation
o Risk Management in Software Projects
o Cost Estimation Techniques (COCOMO, Function Points)
o Project Scheduling and Resource Allocation
o Quality Metrics and Monitoring
Reading:
o Chapter 13 of Software Engineering by Ian Sommerville
Week 10: Software Deployment and Configuration Management
Topics:
o Deployment Strategies (Phased, Big Bang, Canary Releases)
o Configuration Management and Version Control Systems
o Automating Deployment (Infrastructure as Code, Docker, Kubernetes)
o Monitoring and Maintenance of Deployed Software
Reading:
o Chapter 20 of Software Engineering by Ian Sommerville
Week 11: Advanced Topics in Software Engineering
Topics:
o Microservices Architecture and Development
o DevOps and the Role of Automation
o Cloud Computing and Software as a Service (SaaS)
o Mobile Software Engineering
o Security in Software Engineering
Reading:
o Continuous Delivery by Jez Humble & David Farley
Week 12: Capstone Project and Review
Topics:
o Final Project Work (Developing a software solution using principles learned
throughout the course)
o Project Presentation and Demonstration
o Course Review: Recap of Key Concepts
o Future Trends in Software Engineering