Oskar Truffer. Continuous Integration with Architectural Invariants — A case study about architectural monitoring in practice. Masters thesis, University of Bern, December 2015. Details.
Software erosion is a common problem in larger software projects. As a code base grows, more effort needs to be invested to keep an implementation aligned with its intended architecture. Designers may need to introduce new architectural guidelines as existing ones no longer fit the complexity or the purpose of the project. The code base is then gradually refactored in order to conform to these new guidelines. It’s hard to determine for an architect which parts of the software conform to the new architecture and which parts need to be revisited. Once introduced the new guidelines too are subject to architectural erosion. Continuous effort is needed to keep an unintended drift from the intended architecture. In this paper we introduce automated architectural conformance checking into the development process of the open source project ILIAS. The solution formalizes design decisions as architectural invariants and offers automated tests for them. The developers get feedback about all existing violations of the architectural invariants with emphasis on added or removed violations introduced within each contribution. We discuss the process of introducing our automated conformance checking solution into the open source community. Our results show that our solution contributes to the decline in architectural violations and the reduction in the gap between architectural documentation and actual implementation.
Andrea Caracciolo, Mircea Lungu, Oskar Truffer, Kirill Levitin, and Oscar Nierstrasz. Automated Conformance Monitoring: Exploring the Path to Industrial Adoption. submitted for review. Details.
Architectural decisions can be interpreted as structural and behavioral constraints that must be enforced in order to guarantee overarching qualities in a system. Enforcing those constraints in a fully automated way is often challenging and not well supported by current tools. Practitioners are reluctant to invest in new solutions because of the difficulty of estimating the cost-effectiveness of a new tool, scarce resources allocated to quality related activities and a general lack of expertise in the domain. In this paper we investigate the dynamics involved in choosing and adopting a new automated conformance checking solution within an industrial context. We analyze a series of interviews identifying the most relevant criteria that affect user’s decisions. We also report on multiple case studies, describing how those criteria were used to steer the actual evaluation, integration and operation of a prototypical solution. Our study shows the advantages of using a flexible and semi-formal language for describing relevant design concerns. We observe that assuming any pro-active behavior from end-users is often unrealistic and that developers need to be actively informed and motivated. We show that integration with established quality reporting infrastructure is a key strategy for minimizing the impact of a new tool on processes and roles.
Andrea Caracciolo, Bledar Aga, Mircea Lungu, and Oscar Nierstrasz. Marea: a Semi-automatic Decision Support System for Breaking Dependency Cycles. submitted for review. Details.
Dependency cycles are commonly recognized as one of the most critical quality anti-patterns. Cycles compromise the modularity of a system, prevent proper reuse and increase the cost of maintenance and testing. Many tools are capable of detecting and visualizing package cycles existing within software projects. Unfortunately, detecting cycles is only half of the work. Once detected, cycles need to be removed and this typically results in a complex process that is only partially supported by current tools. We propose a tool that offers an intelligent guidance mechanism to support developers in removing package cycles. Our tool, Marea, simulates different refactoring strategies and suggests the most cost-effective sequence of refactoring operations that will break the cycle. The optimal refactoring strategy is determined based on a custom profit function. Our approach has been validated on multiple projects and executes in linear time.
Andrea Caracciolo, Mircea Lungu, Oskar Truffer, Kirill Levitin, and Oscar Nierstrasz. Evaluating an Architecture Conformance Monitoring Solution. submitted for review. Details.
Architectural rules are often defined but rarely tested. Current tools offer limited functionality and often require significant effort to be configured, automated and integrated within existing platforms. We propose a platform that is aimed at reducing the overall cost of setting up and maintaining an architectural conformance monitoring environment by decoupling the conceptual representation of a user-defined rule from its technical specification prescribed by the underlying analysis tools. The user is no longer expected to encode her constraints according to the syntax of the chosen tool, but can use a simple high-level DSL that is automatically compiled to an executable specification through custom adapters developed to support the interaction with existing off-the-shelf tools. In this paper we analyze three case studies to show how this approach can be successfully adopted to support truly diverse industrial projects. By discussing qualitative aspects of the approach, we investigate limitations and opportunities for improving general quality assessment solutions in general and DSL-based conformance tools in particular.
Andrea Caracciolo. On the Evaluation of a DSL for Architectural Consistency Checking. In Extended Abstracts of the Eighth Seminar on Advanced Techniques and Tools for Software Evolution (SATToSE 2015), p. 55—57, July 2015. Details.
Software architecture erodes over time and needs to be constantly monitored to be kept consistent with its original intended design. Consistency is rarely monitored using automated techniques. The cost associated to such an activity is typically not considered proportional to its benefits. To improve this situation, we propose Dicto, a uniform DSL for specifying architectural invariants. This language is designed to reduce the cost of consistency checking by offering a framework in which existing validation tools can be matched to newly-defined language constructs. In this paper we discuss how such a DSL can be qualitatively and qualitatively evaluated in practice.