beginner29 sectionsUpdated Jun 15, 2026
This Software Engineering course is designed to transition learners from writing code to building scalable, maintainable software systems. It emphasizes professional practices, standard methodologies, and the critical processes required to solve real-world problems through clean, engineered solutions.
Course outline
1. Introduction to Software Engineering and Software Development Life Cycles
2. Requirements Analysis, SRS Standards, and Requirements Gathering Tools
Introduction to Requirements Analysis and Its ImportanceUnderstanding User Needs, Software Features, and Software RequirementsClasses of User Requirements: Enduring and VolatileSub-Phases of Requirement AnalysisFunctional and Nonfunctional RequirementsBarriers to Eliciting User RequirementsSoftware Requirements Document, SRS Standards, and Requirements EngineeringTools for Requirements Gathering and Introduction to Nontraditional Requirements
3. Software Design, Structured Analysis, Metrics, and Development Practices
Software Design Fundamentals and Quality GoalsData-Oriented, Structured, and Object-Oriented DesignModular Design, Packaging, and Design PatternsStructured Analysis: DFD and Data DictionarySoftware Measurement and Size-Oriented MetricsCyclomatic Complexity and Control Flow GraphsDevelopment Practices: Language Selection, Coding, and Documentation
4. Software Testing Fundamentals and Test Design
5. Software Maintenance and Evolution
6. Introduction to Machine Learning