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
Author supplied: "Abstract Software Architecture Compliance Checking (SACC) is an approach to verify conformance of implemented program code to high-level models of architectural design. Static SACC 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 SACC. This document describes a test approach that may be used to determine how accurate a tested SACCT-tool is with respect to dependency analysis and violation reporting. This technical report is intended as a test manual and describes how a SACCT-tool can be tested. Two separate tests are described: the Benchmark test, and the FreeMind test."
LINK
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
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
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
Many quality aspects of software systems are addressed in the existing literature on software architecture patterns. But the aspect of system administration seems to be a bit overlooked, even though it is an important aspect too. In this work we present three software architecture patterns that, when applied by software architects, support the work of system administrators: PROVIDE AN ADMINISTRATION API, SINGLE FILE LOCATION, and CENTRALIZED SYSTEM LOGGING. PROVIDE AN ADMINISTRATION API should solve problems encountered when trying to automate administration tasks. The SINGLE FILE LOCATION pattern should help system administrators to find the files of an application in one (hierarchical) place. CENTRALIZED SYSTEM LOGGING is useful to prevent coming up with several logging formats and locations. Abstract provided by the authors. Published in PLoP '13: Proceedings of the 20th Conference on Pattern Languages of Programs ACM.
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
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
Software reference architectures have been around for quite some years. They have been designed and used with varying success. We have conducted an exploratory survey among software architects and developers to establish the extent to which SRA have penetrated among practitioners and to identify the benefits and problems practitioners face when using and designing SRA. In this article, we present our findings.
DOCUMENT