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: 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
Testen van software is een speerpunt in onze opleiding Software Engineering. In de propedeusefase wordt de testgedreven software-ontwikkeling geoefend. De student wordt aangeleerd software met testen at te leveren. Als onderdeel van de toetsing werd een performance-assessment ontwikkeld, dat de mogelijkheid biedt modelleren, programmeren en testen integraal te toetsen. Studenten blijken deze nieuwe toetsvorm positief te waarderen. In het kader van competentiegericht onderwijs is dit performance-assessment een waardevolle toevoeging.
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
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
Both Software Engineering and Machine Learning have become recognized disciplines. In this article I analyse the combination of the two: engineering of machine learning applications. I believe the systematic way of working for machine learning applications is at certain points different from traditional (rule-based) software engineering. The question I set out to investigate is “How does software engineering change when we develop machine learning applications”?. This question is not an easy to answer and turns out to be a rather new, with few publications. This article collects what I have found until now.
LINK
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
Context: Rapid developments and adoption of machine learning-based software solutions have enabled novel ways to tackle our societal problems. The ongoing digital transformation has led to the incorporation of these software solutions in just about every application domain. Software architecture for machine learning applications used during sustainable digital transformation can potentially aid the evolution of the underlying software system adding to its sustainability over time. Objective: Software architecture for machine learning applications in general is an open research area. When applying it to sustainable digital transformation it is not clear which of its considerations actually apply in this context. We therefore aim to understand how the topics of sustainable digital transformation, software architecture, and machine learning interact with each other. Methods: We perform a systematic mapping study to explore the scientific literature on the intersection of sustainable digital transformation, machine learning and software architecture. Results: We have found that the intersection of interest is small despite the amount of works on its individual aspects, and not all dimensions of sustainability are represented equally. We also found that application domains are diverse and include many important sectors and industry groups. At the same time, the perceived level of maturity of machine learning adoption by existing works seems to be quite low. Conclusion: Our findings show an opportunity for further software architecture research to aid sustainable digital transformation, especially by building on the emerging practice of machine learning operations. Keywords Digital transformationSustainabilityMachine learningSoftware architectureMLOps
DOCUMENT
The shortage for ICT personal in the EU is large and expected to increase. The aim of this research is to contribute to a better understanding of the roles and competences needed, so that education curricula can be better aligned to evolving market demand by answering the research question: Which competence gaps do we need to bridge in order to meet the future need for sufficiently qualified personnel in the EU Software sector? In this research, a mixed method approach was executed in twelve European countries, to map the current and future needs for competences in the EU. The analyses shows changes in demand regarding technical skills, e.g. low-code and a stronger focus on soft skills like communication and critical thinking. Besides this, the research showed educational institutes would do well to develop their curricula in a practical way by integration of real live cases and work together with organizations.
MULTIFILE