OVERVIEW:
Introduction, Software engineering ethics; Software process models; Process activities; Coping with change, Agile software development: Agile methods; Plan- driven and agile development.
REQUIREMENTS ENGINEERING:
Functional and non-functional requirements; Software requirements document; Requirement's specification; Requirements engineering processes; Requirement's elicitation and analysis; Requirement's validation; Requirements management.
SYSTEM MODELING:
Context models; Interaction models- Use case modeling, Sequence diagrams; Structural models- Class diagrams, Generalization, Aggregation; Behavioral models- Data-driven modeling, Event-driven modeling; Model-driven engineering.
ARCHITECTURAL DESIGN:
Architectural design decisions; Architectural views; Architectural patterns : Layered architecture, Repository architecture, Client-server architecture
DESIGN AND IMPLEMENTATION:
Object-oriented design using the UML- System context and interactions, Architectural design Object class identification, Design models, Interface specification; Design patterns; Implementation issues.
SOFTWARE TESTING:
Development testing-Unit testing, Choosing unit test cases, Component testing, System testing, Test-driven development; Release testing; User testing- Alpha, Beta, Acceptance testing.