Chapter 1

Introduction

Software types; attributes of good software; importance of software engineering; fundamental activities; differences in software process models.

Chapter 2

Software Processes

Software process models including waterfall, incremental development, integration and configuration; activities: specification, design, validation, evolution.

Chapter 3

Agile Software Development

Agile vs plan-driven; agile methods; agile techniques; agile project management fundamentals.

Chapter 4

Requirements Engineering

User and system requirements; functional and non-functional requirements; elicitation; specification; validation; requirements documentation.

Chapter 5

System Modeling

Context, interaction, structural, and behavioral models; introduction to model-driven architecture.

Chapter 6

Architectural Design

Architectural decisions; architectural views; common architectural patterns; application architectures.

Chapter 7

Design and Implementation

Object-oriented design with UML; design patterns; implementation concerns; open-source development.

Chapter 8

Software Testing

Verification and validation; inspection; testing process; development and release testing; user testing; TDD.

Chapter 9

Software Evolution

Evolution process; legacy systems; maintenance activities and challenges.

Chapter 10

Software Management

Project management; planning; risk management; people management; reporting and proposals; scheduling.