PhD Theses in Experimental Software Engineering, Band 41
Hrsg.: Dieter Rombach, Peter Liggesmeyer, Frank Bomarius; Fraunhofer IESE, Kaiserslautern
2012, 232 S., num. illus. and tab., Softcover
Flexibility is an indispensable quality attribute of long-living information systems. Today's enterprises heavily rely on information systems for running their businesses. In domains like banking, insurance, or aviation, information systems are even a core enabler of competitiveness. In a dynamic business world, requirements evolve and software has to follow. How much implementation effort a change requires is strongly impacted by a system's architecture. Despite the availability of paradigms like SOA, BPM, or EDA, which come with flexibility mechanisms and are widely expected to bring inherent flexibility, today's systems are often not as flexible as expected. A major reason for missing flexibility is the lack of systematic, constructive support for flexibility in architecture definition methods.
An in-depth characterization of the quality attribute flexibility is our foundation for systematically defining flexible architectures for software systems. Particular focus is on the role of architecture and on how it can contribute to a system's flexibility. We introduce a metric for flexibility, measuring on flexibility scenarios and architecture models. We condense key facets of flexibility in a conceptual model.
The key methodical contribution of this thesis is the constructive support for defining flexible architectures. We build on existing architecture definition methods and enhance them. The detailed characterization of flexibility is crucial for providing constructive guidelines and heuristics for architects. Beyond the localization of change impact, the alignment of flexibility mechanisms and business logic is of particular importance for flexibility. Consequently, we support it with design heuristics. Furthermore, we support architects with automated, near-real-time feedback on the achieved level of flexibility, allowing quick corrections of architectural decisions. This is facilitated by a new architectural view, the change impact view, which is modeled by the architect and supports reasoning about flexibility. For paradigms like SOA, we show how they can be leveraged in architecture design to consequently exploit their flexibility potential. This methodical contribution is a conceptual plugin for architecture definition methods which adds specific support for flexibility.