Architecture and Evolution

The architecture plays a central role in software engineering. This chapter will demonstrate through a case study how an architecture enables evolution. The aim is to demonstrate the following topics: Architectural Pattern, Software Reuse, Software Framework, Inversion of Control, Dependency Injection, and Test-Driven Development.