Software engineering practice: essence of practice, general principles
The Software Process (8 hours)
Process framework and umbrella activities
Traditional (plan-driven) process models: waterfall and its extensions, incremental, evolutionary (prototyping, spiral)
Agile and adaptive process models: agile manifesto and the 12 principles, agile versus plan-driven development, Scrum framework (roles, artifacts, ceremonies), Extreme Programming (XP) practices, lean software development
Model selection considerations
Software Requirements Engineering (6 hours)
Requirement engineering process
SRS (structure, characteristics, users)
Functional and non-functional requirements
Gathering requirements using use cases modeling and scenarios
Agile requirements engineering: user stories and acceptance criteria, product backlog creation and prioritization, story mapping basics, continuous requirements refinement (backlog grooming)
Architectural Design (3 hours)
Introduction and importance
Architectural design principles
Taxonomy of architectural styles
Modular design, cohesion and coupling
System Modeling (9 hours)
System modeling: need for system modeling, role of abstractions in managing complexity
Process modeling using DFD
Scenario-based analysis: concept of scenarios, use-case descriptions and diagrams
Behavioral and structural modeling: activity diagrams, class-based modeling