The complexity of modern software systems is continually increasing. At the same time, development times keep getting shorter, and software requirements keep changing more frequently.
The lecture looks at Component-Based Software Engineering (CBSE) as one major possibility to cope with these challenges. By building applications from individual, independent building blocks (components), CBSE provides two major directions which help to cope with complexity, short time-to-market, and increased demand for flexibility:
Components can be pre-fabricated and traded independently of specific applications. This fosters reuse and thus can decrease development cost and time-to-market, while increasing the quality of the resulting software.
Component-structured applications can more easily be adapted to new requirements, because individual components can be exchanged largely independently of the rest of the system.