Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Maintaining architecture-implementation conformance to support architecture centrality: from single system to product line development
Zheng Y., Cu C., Taylor R. ACM Transactions on Software Engineering and Methodology27 (2):1-52,2018.Type:Article
Date Reviewed: Sep 4 2018

Software architecture plays a vital role in the life cycle of a software product, whether you follow agile principles or not. Software architectures allow one to properly design a system and enable the evaluation of certain quality attributes ex ante, for example, before the product is coded and deployed. Quality attributes encompass, for example, availability, maintainability, and so on. Agilists usually denote software architectures as big design up front, but you are not going to need it: in agile software, architecture eventually emerges through various levels of refactoring. This latter motivation is corroborated by the fact that architectures are usually built upon requirements, and requirements evolve, thus the architecture does. And keeping architectural assets (documents, graphics, and so on) aligned with code is an effort that is probably not needed. This is especially true in product line architectures (PLAs) in which a reference architecture is built once with several variability points, allowing the coding of software products that have many aspects in common; a change in this kind of architecture may impact several different products within the enterprise.

This work tackles and advances exactly the aforementioned points: the problem of keeping the architectural assets in sync with the code, and vice versa. By exploiting a known architecture description language (ADL), named xADL, and its corresponding existing tools (that is, ArchStudio), the paper introduces two aspects of linking architecture changes and code changes, for both single product and product line architectures, implemented as a set of plugins for the Eclipse platform. Code is divided in two parts: the one generated by the tool, which the tool can modify when an architectural change happens, and the one generated by the user, which the tool can’t change. By using a typical Java delegation mechanism, the implementation notifies via warnings in the editor when an architectural modification may eventually require a review of the user-generated code. This concept is described in the paper as deep separation.

The authors’ work is remarkable, and is proven with real software: Apache Solr and ArchStudio itself. In both cases, the proposed methodology evidenced its effectiveness by automatically mapping architectural changes to source code to maintain architecture-implementation conformance. Although the research topic is not new, the implementation provided seems to be ready for a professional evaluation. Two aspects may require further evaluation: the fact that developers need to invest in the coding style that is enabled by the tool (which I do not consider to have a big impact), and the fact that architecture shall follow the architecture change model provisioned by the current version of the tool, which can cause some limitations in complex systems.

Reviewer:  Massimiliano Masi Review #: CR146230 (1811-0576)
Bookmark and Share
  Featured Reviewer  
 
Software Architectures (D.2.11 )
 
Would you recommend this review?
yes
no
Other reviews under "Software Architectures": Date
Software architecture in practice
Bass L., Clements P., Kazman R., Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1998. Type: Book (9780201199307)
Sep 1 1999
CORBA design patterns
Mowbray T., Malveau R., John Wiley & Sons, Inc., New York, NY, 1997. Type: Book (9780471158820)
Sep 1 1998
Developing business systems with CORBA
Sadiq W., Cummins F., Cambridge University Press, New York, NY, 1998. Type: Book (9780521646505)
Feb 1 1999
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy