Clustering-Based Support for Software Architecture Restructuring [electronic resource] /
Streekmann, Niels.author.
The maintenance of long-living software systems is an essential topic in today’s software engineering practice and research. Software Architecture Restructuring is an important task to adjust these systems to current requirements and to keep them maintainable.   Niels Streekmann introduces an approach to Software Architecture Restructuring that semi-automates this task by introducing graph clustering. The approach provides an iterative process that systematically incorporates human architectural knowledge for the improvement of the restructuring result. Thus, it supports the task of planning the transfer of an existing system to a target architecture and aims at reducing the required manual effort.  .
Description based upon print version of record.
Foreword; Acknowledgements; Abstract; Contents; List of Figures; List of Tables; 1 Introduction; 1.1 Motivation; 1.2 Solution Approach; 1.3 Scientific Contribution; 1.3.1 MARE Method; 1.3.2 MARE Clustering Algorithm; 1.3.3 Evaluation of MARE; 1.4 Overview; Part I Foundations; 2 Software Architecture; 2.1 Software Architecture Basics; 2.1.1 Module Viewtype; 2.1.2 Component-and-Connector Viewtype; 2.1.3 Allocation Viewtype; 2.1.4 Viewtype Modelling; 2.2 Detailed Design; 2.2.1 Definition; 2.2.2 Modelling; 2.3 Architectural Styles; 2.3.1 Layered Architecture; 2.3.2 Decomposition
2.3.3 Service-Oriented Architectures2.4 Architecture Metrics; 2.4.1 Coupling; 2.4.2 Cohesion; 2.5 Architectural Erosion; 3 Software Evolution and Modernisation; 3.1 Reengineering; 3.2 Migration; 3.3 Reverse Engineering; 3.3.1 Static Analysis; 3.3.2 Dynamic Analysis; 3.3.3 Analysis of other Artefacts; 3.4 Architecture Reconstruction; 3.4.1 Architecture Reconstruction Based on Source Code; 3.4.2 Architecture Reconstruction Employing Architectural Information; 3.4.2.1 Reflexion Method; 3.4.2.2 Focus; 3.4.3 Architecture Conformance Checking; 3.5 Restructuring; 3.5.1 Program Restructuring
3.5.2 Refactoring3.5.3 Architecture Refactoring; 3.5.4 Architecture Restructuring; 3.5.5 Migration to SOA; 4 Graph Clustering; 4.1 Graphs; 4.2 Graph Clusterings; 4.3 Clustering Algorithms; 4.3.1 Hierarchical Clustering; 4.3.1.1 Stopping Condition; 4.3.1.2 Vertex Similarity; 4.3.1.3 Cluster Similarity; 4.3.1.4 Arbitrary Clustering Decisions; 4.3.2 Partitional Clustering; 4.3.3 Density-Based Clustering; 4.4 Applications of Graph Clustering; 4.4.1 Software Clustering; 4.4.1.1 Software Graphs; 4.4.1.2 Software Clustering Applications and Problems; 4.4.2 Further Applications
5 Model-Driven Software Development5.1 Modelling Concepts; 5.1.1 Models; 5.1.2 Metamodels; 5.1.2.1 Meta Object Facility; 5.1.2.2 Eclipse Modeling Framework; 5.2 Model Transformations; 5.3 Architecture in Model-Driven Software Development; 5.3.1 Model-Driven Architecture; 5.3.2 Architecture-Centric Model-Driven Software Development; 5.4 Interoperability Metamodels for Reengineering; 5.4.1 Dagstuhl Middle Metamodel; 5.4.2 Knowledge Discovery Metamodel; 5.4.3 Exchange Syntaxes; 5.4.3.1 Tuple Attribute Language; 5.4.3.2 Graph eXchange Language; 5.5 Model-Driven Reengineering Approaches
5.5.1 Model-Driven Migration5.5.2 Model-Driven SOA-Migration; 5.5.3 Model-Driven Integration; 5.5.4 Migration to MDSD Environments; Part II Clustering-Based Support for Software Architecture Restructuring; 6 MARE Approach; 6.1 Problem Description; 6.2 Application Scenarios; 6.2.1 Evolution towards Service-Oriented Architectures; 6.2.2 Re-establishing Maintainability; 6.2.3 Smooth Migration; 6.3 Goals of MARE; 6.4 Research Questions; 6.5 Definitions; 6.5.1 Source Elements; 6.5.2 Detailed Design Model; 6.5.3 Target Architecture; 6.5.4 Target Components; 7 MARE Method
7.1 Embedding in the Reengineering Process
Includes bibliographical references.
The maintenance of long-living software systems is an essential topic in today’s software engineering practice and research. Software Architecture Restructuring is an important task to adjust these systems to current requirements and to keep them maintainable.   Niels Streekmann introduces an approach to Software Architecture Restructuring that semi-automates this task by introducing graph clustering. The approach provides an iterative process that systematically incorporates human architectural knowledge for the improvement of the restructuring result. Thus, it supports the task of planning the transfer of an existing system to a target architecture and aims at reducing the required manual effort.  .
Software engineering.
Software Engineering/Programming and Operating Systems.