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.
Presented at the 2015 European Conference on Software Architecture Workshops. DOI 10.1145/2797433.2797491 http://dl.acm.org/citation.cfm?id=2797491 Software architecture reconstruction and compliance checking rely on supporting tools that analyze the modules in the code and their dependencies. Tools may provide a dependency type for each dependency to provide more detail on the actual usage relation. This study is aimed on the identification of dependency characteristics which can be determined accurately and which might be interesting for architects and researchers in the context of architecture reconstruction and compliance checking. A classification is proposed which distinguishes dependency types, related subtypes, and several other characteristics. To enable reflection on the usefulness of the classified dependency details, a prototype implementation has been developed for the analysis of Java based systems. A frequency analysis of the classified dependency characteristics in three open source systems is presented, as well as an analysis of a set of rule violating dependencies in one of these systems.
Abstract-Architecture Compliance Checking (ACC) is useful to bridge the gap between architecture and implementation. ACC is an approach to verify conformance of implemented program code to high-level models of architectural 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. Seven tools were tested and compared by means of a custom-made test application. In addition, the code of open source system Freemind was used to compare the tools on the number and precision of reported violation and dependency messages. On the average, 74 percent of 34 dependency types in our custom-made test software were reported, while 69 percent of 109 violating dependencies within a module of Freemind were reported. The test results show large differences between the tools, but all tools could improve the accuracy of the reported dependencies and violations.