About the Course
In this next chapter, we need to figure out how different members of the project team can work on the software at the same time. So, we introduce the concept of feature-driven development. We look at how features are independent end-to-end fragments of the functionality of the system. We also look at how we can structure our system, with an architecture, to reduce dependencies between one part of the system and another. We explore ideas of client-server and layered structuring and design patterns such as the model-view controller. Finally, we illustrate a different structure, the pipe and filter model for creating language processors, parsers and compilers.