01
Unit 1: Software Engineering Foundations and Process Models
Software crisis and characteristics of software, Software development life cycle (SDLC) models (waterfall, prototyping, iterative, spiral), Agile manifesto and principles, Scrum framework (roles, ceremonies, artifacts), Kanban and lean software development, Capability Maturity Model Integration (CMMI) levels, Process selection criteria based on project characteristics and risk profiles.
02
Unit 2: Requirements Engineering and Analysis
Requirements elicitation techniques (interviews, surveys, observation, JAD sessions), Functional vs. non-functional requirements, Use case modeling (actors, scenarios, relationships), User stories and acceptance criteria, Requirements traceability matrix, Requirements validation (reviews, prototyping), Change management and version control of requirements specifications.
03
Unit 3: Software Design Principles and UML
Design concepts (modularity, cohesion, coupling, abstraction), Architectural patterns (MVC, layered, microservices), UML 2.x diagrams (class, sequence, activity, state, component, deployment), Design principles (SOLID, DRY, KISS), Design patterns (creational, structural, behavioral - focusing on Strategy, Observer, Factory), Refactoring techniques and code smells.
04
Unit 4: Software Testing Fundamentals and Strategies
Testing principles (early testing, defect clustering, pesticide paradox), Test case design techniques (equivalence partitioning, boundary value analysis, decision table testing), Levels of testing (unit, integration, system, acceptance), Test-driven development (TDD) and behavior-driven development (BDD), Test automation frameworks and tools, Mutation testing concepts.
05
Unit 5: Software Project Management and Quality
Effort estimation techniques (COCOMO, function point analysis, planning poker), Project scheduling (Gantt charts, PERT/CPM), Risk management (identification, analysis, mitigation), Software metrics (size, complexity, quality metrics), Software configuration management (version control, branching strategies), Software quality assurance (SQA) and process audits, DevOps practices and CI/CD pipelines.