Presentatie voor de 20e Nederlandse Testdag, m.m.v. Raymond Slot, Wiebe Wiersema, (HU), Christian Köppe (HAN, Arnhem), Sjaak Brinkkemper, Jan Martijn van der Werf (UU Utrecht). The Software Architecture of the Schiphol Group is taken as an example. Compliance checking of software rulescan be done with the Hogeschool Utrecht Software Architecture Compliance Checking Tool which is available at http://husacct.github.io/HUSACCT/
DOCUMENT
Author supplied: Teaching software architecture (SA) in a bachelor computer science curriculum can be challenging, as the concepts are on a high abstraction level and not easy to grasp for students. Good techniques and tools that help with addressing the challenging SA aspects in a didactically responsible way are needed. In this tool demo we show how we used the software architecture compliance checking tool HUSACCT for addressing various concepts of SA in our courses on software architecture. The students were introduced to architectural reconstruction and architecture compliance checking, which helped them to gain important insights in aspects such as the relation between architectural models and code and the specification of dependency relations between architecture elements as concrete rules.
DOCUMENT
From the ACM record: "Software architecture reconstruction techniques may be used to understand and maintain software systems, especially in these cases where architectural documentation is outdated or missing. This paper presents the architecture reconstruction functionality of HUSACCT and describes how this functionality may be used and extended with algorithms in support of reconstruction research focusing on modular architectures. The tool provides a graphical user interface to select an algorithm, edit its parameters and to execute or reverse the algorithm. To study the results, browsers and diagrams are available. Furthermore, a user interface is provided to enhance the determination of the effectiveness of algorithms by means of the MoJoFM metric." https://doi.org/10.1145/3129790.3129819
DOCUMENT
From ACM: "In cases where architectural documentation is outdated or missing, software architecture reconstruction (SAR) techniques may be used to create architectural views of a system. This paper describes a case study in which SAR techniques are applied to reconstruct module views of a case system; a debt settlements suite for local governments, developed in C#. A manual approach and its results are described and compared to the outcome of a layers reconstruction algorithm. Furthermore, this paper explains how software architecture compliance checking (SACC) techniques may help to test the results of reconstruction activities. In this study, SAR and SACC were supported by HUSACCT, a tool that provides rich sets of module and rule types in support of layers, facade, and gateway patterns." https://doi.org/10.1145/3129790.3129809
DOCUMENT
Author supplied: "Abstract—Software architecture compliance checking (SACC) is an approach to monitor the consistency between the intended and the implemented architecture. In case of static SACC, the focus is mainly on the detection of dependencies that violate architectural relation rules. Interpretation of reported violations may be cumbersome, since the violations need to be connected to architectural resolutions and targeted qualities such as maintainability and portability. This paper describes an SACC case study which shows that inclusion of different types of rules in the SACC process enhances reasoning on architecture violations, especially if a rule type is related to specific architectural pattern. The SACC is performed with HUSACCT, an SACC-tool that provides rich sets of module and rule types in support of patterns such as layers, facade, and gateway. The case system is a governmental system developed in C#, which follows the .NET common application architecture. Even though the system appeared to be well-structured, the SACC revealed that 10 of the 17 architectural rules were violated."
DOCUMENT
Author Supplied: In the last decades, architecture has emerged as a discipline in the domain of Information Technology (IT). A well-accepted definition of architecture is from ISO/IEC 42010: "The fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution." Currently, many levels and types of architecture in the domain of IT have been defined. We have scoped our work to two types of architecture: enterprise architecture and software architecture. IT architecture work is demanding and challenging and includes, inter alia, identifying architectural significant requirements (functional and non-functional), designing and selecting solutions for these requirements, and ensuring that the solutions are implemented according to the architectural design. To reflect on the quality of architecture work, we have taken ISO/IEC 8402 as a starting point. It defines quality as "the totality of characteristics of an entity that bear on its ability to satisfy stated requirements". We consider architecture work to be of high quality, when it is effective; when it answers stated requirements. Although IT Architecture has been introduced in many organizations, the elaboration does not always proceed without problems. In the domain of enterprise architecture, most practices are still in the early stages of maturity with, for example, low scores on the focus areas ‘Development of architecture’ and ‘Monitoring’ (of the implementation activities). In the domain of software architecture, problems of the same kind are observed. For instance, architecture designs are frequently poor and incomplete, while architecture compliance checking is performed in practice on a limited scale only. With our work, we intend to contribute to the advancement of architecture in the domain of IT and the effectiveness of architecture work by means of the development and improvement of supporting instruments and tools. In line with this intention, the main research question of this thesis is: How can the effectiveness of IT architecture work be evaluated and improved?
DOCUMENT
Author-supplied abstract: Developing large-scale complex systems in student projects is not common, due to various constraints like available time, student team sizes, or maximal complexity. However, we succeeded to design a project that was of high complexity and comparable to real world projects. The execution of the project and the results were both successful in terms of quality, scope, and student/teacher satisfaction. In this experience report we describe how we combined a variety of principles and properties in the project design and how these have contributed to the success of the project. This might help other educators with setting up student projects of comparable complexity which are similar to real world projects.
DOCUMENT
In software architecture, the Layers pattern is commonly used. When this pattern is applied, the responsibilities of a software system are divided over a number of layers and the dependencies between the layers are limited. This may result in benefits like improved analyzability, reusability and portability of the system. However, many layered architectures are poorly designed and documented. This paper proposes a typology and a related approach to assign responsibilities to software layers. The Typology of Software Layer Responsibility (TSLR) gives an overview of responsibility types in the software of business information systems; it specifies and exemplifies these responsibilities and provides unambiguous naming. A complementary instrument, the Responsibility Trace Table (RTT), provides an overview of the TSLR-responsibilities assigned to the layers of a case-specific layered design. The instruments aid the design, documentation and review of layered software architectures. The application of the TSLR and RTT is demonstrated in three cases.
DOCUMENT
SUMMARY Architecture compliance checking (ACC) is an approach to verify conformance of implemented program code to high-level models of architec tural design. Static ACC focuses on the modular software architecture and on the existence of rule violating dependencies between modules. Accurate tool support is essential for effective and efficient ACC. This paper presents a study on the accuracy of ACC tools regarding dependency analysis and violation reporting. Ten tools were tested and compare d by means of a custom-made benchmark. The Java code of the benchmark testware contains 34 different types of dependencies, which are based on an inventory of dependency types in object oriented program code. In a second test, the code of open source system FreeMind was used to compare the 10 tools on the number of reported rule violating dependencies and the exactness of the dependency and violation messages. On the average, 77% of the dependencies in our custom-made test software were reported, while 72% of the dependencies within a module of FreeMind were reported. The results show that all tools in the test could improve the accuracy of the reported dependencies and violations, though large differences between the 10 tools were observed. We have identified10 hard-to-detect types of dependencies and four challenges in dependency detection. The relevance of our findings is substantiated by means of a frequency analysis of the hard-to-detect types of dependencies in five open source systems. DOI: 10.1002/spe.2421
DOCUMENT
Author supplied: "Abstract—Software architecture compliance checking (SACC) is an approach to monitor the consistency between the intended and the implemented architecture. In case of static SACC, the focus is mainly on the detection of dependencies that violate architectural relation rules. Interpretation of reported violations may be cumbersome, since the violations need to be connected to architectural resolutions and targeted qualities such as maintainability and portability. This paper describes an SACC case study which shows that inclusion of different types of rules in the SACC process enhances reasoning on architecture violations, especially if a rule type is related to specific architectural pattern. The SACC is performed with HUSACCT, an SACC-tool that provides rich sets of module and rule types in support of patterns such as layers, facade, and gateway. The case system is a governmental system developed in C#, which follows the .NET common application architecture. Even though the system appeared to be well-structured, the SACC revealed that 10 of the 17 architectural rules were violated." http://ieeexplore.ieee.org/document/7484100/ http://dx.doi.org/10.1109/QRASA.2016.7
DOCUMENT