Text
E-book Architecture-based Evolution of Dependable Software-intensive Systems
Software is an essential part in various facets of our daily life. Mobility,production, energy supply, economics, and infrastructure, to name only afew examples, strongly depend on software. This software is not always ofhigh quality. Critical issues that arose from poor software quality are evenreported manifold publicly in the press. For example, Denver InternationalAirport opened, delayed, and over budget, due to a dysfunctional automatedbaggage-handling system [75]; a new online banking system at TSB Bank ledto access and confidentiality issues for its customers, and eventually forcedthe CEO to step down [182]; and a supply-chain attack against SolarWindsinserted a Trojan Horse into installation packages enabling attackers to accesscustomers’ systems running the affected products [126]1.Recent innovations, like the Internet of Things, production automation,smart mobility, and cyber-physical systems, brought forth systems that com-bine contributions from several heterogeneous disciplines, such as software,electrics/electronics, and mechanics, and are involved in complex organisa-tional processes. In these systems, software contributes an essential influencefactor on parts of the system from other disciplines. Therefore, these systemsare denoted as software-intensive systems [102]. The quality properties performance, maintainability, and confidentialitystrongly depend on design decisions regarding the system architecture. Forthe domain of information systems [189] it has been shown that the influenceof software architecture design on quality properties is so strong, that knowl-edge about the architecture is sufficient to make good quality predictions[206, 248]. Asoftware architecturespecifies the “fundamental concepts orproperties of a system in its environment embodied in its elements, relation-ships, and in the principles of its design and evolution” [130]. Consequently,a software architecture represents on the one hand a structural plan of thesystem and on the other hand a set of documented design decisions [206].In literature, several situations have been described in which engineers ben-efit from analysing quality properties based on the software architecture[206, 248]. For example, when making design decisions regarding systemstructuring or defining component boundaries, analyses enable to predict theimplications of these design decision on quality properties. Another exampleis refactoring or evolution (see Chapter 2) where it is easier and more efficientto investigate the implications of design decisions on the quality propertiesof the systems by modelling and analysing the architectural design comparedto implementing the change in source code and investigating implications inretrospect.
Tidak tersedia versi lain