-
Introduction to Software Engineering
- Definition & Scope
- Software Process Models (Waterfall, Spiral, Agile, DevOps)
- Ethics & Professional Practice
-
Software Development Life Cycle (SDLC)
- Phases of SDLC
- Modern vs Traditional SDLC
- Agile & DevOps lifecycle
-
Software Project Management Basics
- Project Planning & Estimation
- Risk Management
- Metrics & Measurements
- Project Scheduling (PERT, Gantt, Critical Path)
-
Software Requirements Engineering
- Functional vs Non-Functional Requirements
- Elicitation Techniques (Interviews, Prototyping, Use Cases)
- Software Requirement Specification (SRS)
- Validation & Management
-
Software Design Principles
- Architectural Styles (Layered, Microservices, Event-Driven, Serverless)
- Design Patterns (Singleton, Observer, Factory, etc.)
- SOLID Principles
- UML Diagrams (Class, Sequence, Use Case)
-
Software Architecture
- Monolithic vs Microservices
- Cloud-Native Architectures (Containers, Kubernetes, Serverless)
- Domain-Driven Design (DDD)
- Architecture Documentation
-
Programming Best Practices
- Clean Code & Refactoring
- Secure Coding Practices
- Code Review & Static Analysis Tools
- Version Control (Git, GitHub, GitLab)
-
Software Development Methodologies
- Agile (Scrum, Kanban, XP)
- CI/CD Pipelines
- DevOps Culture & Tools (Jenkins, Docker, Kubernetes)
-
Advanced Programming Topics
- Concurrent & Parallel Programming
- Distributed Systems
- Cloud Application Development (AWS, Azure, GCP)
- Software for AI/ML Systems
- Software Testing
- Unit, Integration, System, Acceptance Testing
- Test Automation (JUnit, Selenium, Cypress, Jest)
- TDD (Test Driven Development) & BDD
- Performance, Load, Stress Testing
- Software Quality Assurance (SQA)
- Quality Models (ISO 9126, McCall, Boehm)
- Reliability & Maintainability
- Verification vs Validation
- Code Quality Metrics
- Software Security Engineering
- Threat Modeling (STRIDE, DREAD)
- Secure SDLC (SSDLC)
- OWASP Top 10 Security Vulnerabilities
- Blockchain & Web 3.0 Security
- Software Maintenance & Evolution
- Types of Maintenance (Corrective, Adaptive, Perfective, Preventive)
- Legacy System Modernization
- Refactoring Large Systems
- Technical Debt
- Software Process Improvement
- CMMI (Capability Maturity Model Integration)
- Six Sigma for Software Engineering
- Lean Software Development
- Agile Maturity Models
- Emerging Trends in Software Engineering
- AI-Augmented Software Engineering (GitHub Copilot, ChatGPT for coding)
- Low-Code & No-Code Platforms
- Green Software Engineering (Sustainable Computing)
- Quantum Software Engineering (early research stage)
- Software Engineering: A Practitioner’s Approach – Roger S. Pressman & Bruce Maxim (9th Edition, 2020)
- Software Engineering (10th Edition) – Ian Sommerville (2018)
- Fundamentals of Software Engineering – Rajib Mall (5th Edition, 2018)
- Clean Code: A Handbook of Agile Software Craftsmanship – Robert C. Martin (2008)
- Design Patterns: Elements of Reusable Object-Oriented Software – Erich Gamma et al.
- Software Architecture in Practice – Len Bass, Paul Clements, Rick Kazman (4th Edition, 2021)
- Continuous Delivery – Jez Humble & David Farley (2010)
- Accelerate: The Science of Lean Software and DevOps – Nicole Forsgren, Jez Humble, Gene Kim (2018)
- Domain-Driven Design – Eric Evans
- Building Microservices – Sam Newman (2nd Edition, 2021)
- IEEE SWEBOK (Software Engineering Body of Knowledge)
- ACM Digital Library
- Coursera & edX (Software Engineering, DevOps, Cloud-Native)
- Google Cloud, AWS, and Microsoft Learn documentation
By the end of this course, students will:
- Understand modern software engineering practices from SDLC to DevOps.
- Design and develop high-quality, scalable, and secure software systems.
- Apply software testing, SQA, and process improvement models.
- Explore emerging trends such as AI-driven software engineering, quantum computing, and green software.
✍️ Maintainer: Usama Israr Khan
📅 Last Updated: Sep 04, 2025