Steffen Becker
Published: 2008-10-07
Total Pages: 245
Get eBook
Models are used in all kinds of engineering disciplines to abstract from the various details of the modelled entity in order to focus on a speci?c aspect. Like a blueprint in civil engineering, a software architecture providesan abstraction from the full software system’s complexity. It allows software designers to get an overview on the system underdevelopmentandtoanalyzeitsproperties.Inthissense,modelsarethefoundation needed for software development to become a true engineering discipline. Especially when reasoning on a software system’s extra-functional properties, its software architecture carries the necessary information for early, design-time analyses. These analyses take the software architecture as input and can be used to direct the design process by allowing a systematic evaluation of different design alternatives. For example, they can be used to cancel out decisions which would lead to architecture - signs whose implementation would not comply with extra-functionalrequirements like performance or reliability constraints. Besides such quality attributes directly visible to the end user, internal quality attributes, e.g., maintainability, also highly depend on the system’s architecture. In addition to the above-mentioned technical aspects of software architecture m- els, non-technical aspects, especially project management-related activities, require an explicit software architecture model. The models are used as input for cost esti- tions, time-, deadline-, and resource planning for the development teams. They serve the project management activities of planning, executing, and controlling, which are necessary to deliver high-quality software systems in time and within the budget.