skip to main content
article

Mae---a system model and environment for managing architectural evolution

Published: 01 April 2004 Publication History

Abstract

As with any other artifact produced as part of the software life cycle, software architectures evolve and this evolution must be managed. One approach to doing so would be to apply any of a host of existing configuration management systems, which have long been used successfully at the level of source code. Unfortunately, such an approach leads to many problems that prevent effective management of architectural evolution. To overcome these problems, we have developed an alternative approach centered on the use of an integrated architectural and configuration management system model. Because the system model combines architectural and configuration management concepts in a single representation, it has the distinct benefit that all architectural changes can be precisely captured and clearly related to each other---both at the fine-grained level of individual architectural elements and at the coarse-grained level of architectural configurations. To support the use of the system model, we have developed Mae, an architectural evolution environment through which users can specify architectures in a traditional manner, manage the evolution of the architectures using a check-out/check-in mechanism that tracks all changes, select a specific architectural configuration, and analyze the consistency of a selected configuration. We demonstrate the benefits of our approach by showing how the system model and its accompanying environment were used in the context of several representative projects.

References

[1]
Agrawal R., Buroff S., Gehani N. H., and Shasha, D. 1991. Object versioning in ODE. In Proceedings of the 7th International Conference on Data Engineering (Kobe, Japan), pp. 446--455.]]
[2]
Allen R. and Garlan D. 1997. A formal basis for architecture connection. ACM Trans. Softw. Eng. Meth. 6, 3, 213--249.]]
[3]
Asikainen, T., Soininen, T., and Männistö, T. 2003. Towards intelligent support for managing evolution of configurable software product families. In Proceedings of the ICSE Workshops SCM 2001 and SCM 2003 Selected Papers. 86--101.]]
[4]
Atkinson, C., Bayer, J., Bunse, C., Kamsties, E., Laitenberger, O., Laqua, R., Muthig, D., Paech, B., Wust, J., and Zettel, J. 2002. Component-Based Product Line Engineering with UML. Addison-Wesley, Reading, Mass.]]
[5]
Batory, D., and O'Malley, S. 1992. The design and implementation of hierarchical software systems with reusable components. ACM Trans. Softw. Eng. Meth. 1, 4.]]
[6]
Bell Labs Lucent Technologies. 1997. Sablime v5.0 User's Reference Manual. Lucent Technologies, Murray Hill, N.J.]]
[7]
Bosch J., Florijn, G., Greefhorst, D., Kuusela, J., Obbink, J. H., and Pohl, K. 2001. Variability issues in software product lines. In Proceedings of the Product Family Architecture Workshop. pp. 13--21.]]
[8]
Burrows, C. and Wesley, I. 2001. Ovum evaluates configuration management. Ovum, Ltd., Burlington, Mass.]]
[9]
Christensen, H. B. 1998. Experiences with architectural software configuration management in Ragnarok. In Proceedings of the 8th International Symposium on System Configuration Management.]]
[10]
Conradi, R. and Westfechtel, B. 1998. Version models for software configuration management. ACM Computing Surveys 30, 2, 232--282.]]
[11]
Cook, J. E. and Dage, J. A. 1999. Highly reliable upgrading of components. In Proceedings of the 1999 International Conference on Software Engineering. pp. 203--212.]]
[12]
Dashofy, E. M., van der Hoek, A., and Taylor, R. N. 2002. An infrastructure for the rapid development of XML-based architecture description languages. In Proceedings of the 24th International Conference on Software Engineering (ICSE2002), Orlando, Florida.]]
[13]
Dashofy, E. M., van der Hoek, A., and Taylor, R. N. 2002. Towards architecture-based self-healing systems. In Proceedings of the 1st ACM SIGSOFT Workshop on Self-Healing Systems. ACM, New York.]]
[14]
Dvorak, D., Rasmussen, R., Reeves, and Sacks, A. 1999. Software architecture themes in JPL's mission data system. In Proceedings of the AIAA Space Technology Conference and Exposition (Albuquerque, N.M.).]]
[15]
Estublier, J. and Casalles, R. 1994. The adele configuration manager. In Configuration Management. W. F. Tichy, Ed. Wiley: London, Great Britain, pp. 99--134.]]
[16]
Estublier, J., Leblang, D., van der Hoek, A., Conradi, R., Clemm, G., Tichy, W., and Wiborg-Weber, D. 2002. Impact of the research community on the field of software configuration management: Summary of an impact project report. ACM SIGSOFT Softw. Eng. Notes 27, 5, 31--39.]]
[17]
Extensible Markup Language (XML). 2004. http://www.w3.org/XML/.]]
[18]
Franconi, E., Grandi, F., and Mandreoli, F. 2000. A semantic approach for schema evolution and versioning in object-oriented databases. In Proceedings of the 6th International Conference on Rules and Objects in Databases (DOOD 2000).]]
[19]
Garlan, D., Allen, R., and Ockerbloom, J. 1994. Exploiting style in architectural design environments. In Proceedings of SIGSOFT'94: Foundations of Software Engineering (New Orleans, La.). ACM, New York, 175--188.]]
[20]
Garlan, D., Monroe, R., and Wile, D. 1997. ACME: An architecture description interchange language. In Proceedings of CASCON'97.]]
[21]
Ghezzi, C., Jazayeri, M., and Mandrioli, D. 1991. Fundamentals of Software Engineering, Prentice-Hall, Englewood Cliffs, New Jersey.]]
[22]
Gorlick, M. M. and Razouk, R. R. 1991. Using weaves for software construction and analysis. In Proceedings of the 13th International Conference on Software Engineering (ICSE13) (Austin, Tex.).]]
[23]
Habermann, A. N. and Perry, D. E. 1981. System composition and version control for Ada. In Software Engineering Environments, H. Huenke, Ed. North-Holland, Amsterdam, The Netherlands, pp. 331--343.]]
[24]
Hunt, J. J. and Tichy, W. F. 1998. Delta algorithms: An empirical analysis. ACM Trans. Softw. Eng. Meth. 7, 2, 192--214.]]
[25]
Krasner, G. E. and Pope, S. T. 1988. A cookbook for using the model-view-controller user interface paradigm in smalltalk-80. J. Obj.-Orient. Prog. 1, 3, 26--49.]]
[26]
Krüeger, C. W. 2002. Variation management for software production lines. In Proceedings of the 2nd International Software Product Line Conference. pp. 37--48.]]
[27]
Kuusela, J. 1999. Architectural evolution. In Proceedings of the 1st Working IFIP Conference on Software Architecture. Kluwer Academic: Boston, Mass.]]
[28]
Liskov, B. H. and Wing, J. M. 1994. A behavioral notion of subtyping. ACM Trans. Prog. Lang. Syst. 16, 6, 1811--1841.]]
[29]
Luckham, D. C. and Vera, J. 1995. An event-based architecture definition language. IEEE Trans. Softw. Eng. 21, 9, 717--734.]]
[30]
Magee, J. and Kramer, J. 1996. Dynamic structure in software architectures. In Proceedings of the 4th ACM SIGSOFT Symposium on the Foundations of Software Engineering. ACM New York, pp. 3--13.]]
[31]
Medvidovic, N., Rosenblum, D. S., and Taylor, R. N. 1998. A type theory for software architectures. Tech. Rep. UCI-ICS-98-14, University of California, Irvine, Irvine, Calif.]]
[32]
Medvidovic, N., Rosenblum, D. S., and Taylor, R. N. 1999. A language and environment for architecture-based software development and evolution. In Proceedings of the 1999 International Conference on Software Engineering. pp. 44--53.]]
[33]
Medvidovic, N. and Taylor, R. N. 2000. A classification and comparison framework for software architecture description languages. IEEE Trans. Softw. Eng. 26, 1, 70--93.]]
[34]
Mens, T., D'Hondt, T. 2000. Automating support for evolution in UML. Auto, Softw. Eng. 7, 1, 39--59.]]
[35]
Mikic-Rakic, M., Medvidovic, N. 2002. Architecture-level support for software component deployment in resource constrained environments. In Proceedings of 1st International IFIP/ACM Working Conference on Component Deployment (Berlin, Germany). ACM, New York.]]
[36]
Munch, B. P. 1993. Versioning in a software engineering database---The change-oriented Way. Ph.D. dissertation. Division of Computer Systems and Telematics, The Norwegian Institute of Technology.]]
[37]
Oreizy, P., Medvidovic, N., and Taylor, R. N. 1998. Architecture-based runtime software evolution. In Proceedings of the 20th International Conference on Software Engineering (Kyoto, Japan). 177--186.]]
[38]
Parisi, F. and Wolf, A. L. 2000. Foundations for software configuration management policies using graph transformations. In Fundamental Approaches to Software Engineering 2000. Springer-Verlag, New York, pp. 304--318.]]
[39]
Perry, D. E. 1989. The inscape environment. In Proceedings of the 11th International Conference on Software Engineering. pp. 2--11.]]
[40]
Perry, D. E. and Wolf, A. L. 1992. Foundations for the study of software architectures. ACM SIGSOFT Softw. Eng. Notes 17, 4, 40--52.]]
[41]
Rakic, M. and Medvidovic, N. 2001. Increasing the confidence in off-the-shelf components: A software connector-based approach. In Proceedings of the 2001 Symposium on Software Reusability (Toronto, Canada).]]
[42]
Roshandel, R., Schmerl, B., Medvidovic, N., Garlan, D., and Zhang, D. 2004. Understanding tradeoffs among different architectural modeling approaches. In Proceedings of the 4th Working IEEE/IFIP Conference on Software Architecture (WICSA 2004), (Oslo, Norway). IEEE Computer Society Press, Los Alamitos, Calif.]]
[43]
Rochkind, M. J. 1975. The source code control system. IEEE Trans. Softw. Eng. SE-1, 4.]]
[44]
Seiwald, C. 1996. Inter-file branching---A practical method for representing variants. In Proceedings of the 6th International Workshop on Software Configuration Management. Springer-Verlag, New York, pp. 67--75.]]
[45]
Shaw, M., DeLine, R., Klein, D., Ross, T., Young, D., and Zelesnik, G. 1995. Abstractions for software architecture and tools to support them. IEEE Trans. Softw. Eng. 21, 4.]]
[46]
Speck, A., Pulvermüller, E., and Clauss, M. 2002. Versioning in software modeling. In Proceedings of the 6th International Conference on Integrated Design and Process Technology.]]
[47]
Taylor, R. N, Medvidovic, N., Anderson, K., Whitehead, J. and, Robbins, J. 1996. A component- and message-based architectural style for GUI software. IEEE-Trans. Softw. Eng. 22, 6.]]
[48]
Tichy, W. F. 1985. RCS, A system for version control. Softw.--Pract. Exper. 15, 7, 637--654.]]
[49]
Tryggeseth, E., Gulla, B., and Conradi, R. 1995. Modeling systems with variability using the PROTEUS configuration language. In Proceedings of the 5th International Workshop on Software Configuration Management, Springer-Verlag, New York, pp. 216--240.]]
[50]
van der Hoek, A. 2000. A generic, reusable repository for configuration management policy programming. Ph.D dissertation. Dept. Computer Sci., Univ. Colorado, Boulder, Boulder, Col., Jan.]]
[51]
van der Hoek, A., Heimbigner, D. H, and Wolf, A. L. 1998a. Investigating the applicability of architecture description in configuration management and software deployment. Tech. Rep. CU-CS-862-98. University of Colorado at Boulder, Boulder, Col.]]
[52]
van der Hoek, A., Heimbigner, D. H, and Wolf, A. L. 1998b. Software architecture, configuration management, and configurable distributed systems: A ménage a trois, Tech. Rep. CU-CS-849-98, University of Colorado, Boulder, Boulder, Col.]]
[53]
Van der Westhuizen, C. and van der Hoek, A. 2002. Understanding and propagating architectural change. In Proceedings of the 3rd IEEE/IFIP Working International Conference on Software Architectures (Montreal, Ont., Canada). IEEE Computer Society Press, Los Alamitos, Calif.]]
[54]
van Ommering, R. 2002. Building product populations with software components. In Proceedings of the 24th International Conference on Software Engineering (ICSE2002), (Orlando, Fla).]]
[55]
Walrad, C. and Strom, D. 2002. The importance of branching models in SCM. IEEE Comput. 35, 9 31--38.]]
[56]
Westfechtel, B. and Conradi, R. 2001. Software architecture and software configuration management. In Proceedings of the International Workshop on Software Configuration Management.]]
[57]
Wei, H. and Elmasri, R. 2000. PMTV: A schema versioning approach for bi-temporal databases. In Proceedings of the 7th International Workshop on Temporal Representation and Reasoning (TIME '00) (Nova Scotia, Canada). pp. 143--151.]]
[58]
Wiborg Weber, D. 1997. Change sets versus change packages: Comparing implementations of change-based SCM. In Proceedings of the 7th International Workshop on Software Configuration Management. pp. 25--35.]]
[59]
Winkler, J. F. H. 1986. The integration of version control into programming languages. In Proceedings of the International Workshop on Advanced Programming Environments (Trondheim, Norway), pp. 230--250.]]

Cited By

View all
  • (2022)A survey of software architectural change detection and categorization techniquesJournal of Systems and Software10.1016/j.jss.2022.111505194(111505)Online publication date: Dec-2022
  • (2020)Bigraph specification of software architecture and evolution analysis in mobile computing environmentFuture Generation Computer Systems10.1016/j.future.2020.02.008108(662-676)Online publication date: Jul-2020
  • (2019)Software Reuse and Product Line EngineeringHandbook of Software Engineering10.1007/978-3-030-00262-6_8(321-348)Online publication date: 12-Feb-2019
  • Show More Cited By

Recommendations

Reviews

Michael G. Murphy

This paper discusses how to manage software architecture evolution. Rather than using existing configuration management systems, which are primarily focused at the source code level, the authors advocate an alternative approach, centered on a model that integrates architectural and configuration management concepts. A benefit of this is that all architectural changes can be captured and related, both at the fine level of individual elements, and at the coarse level of architectural configurations. Mae (an anthropomorphic acronym for managing architectural evolution) is an architectural evolution environment for specifying architectures, managing their evolution via a check-out/check-in mechanism, selecting a specific configuration, and analyzing consistency. The potential for this approach, with respect to managing software product lines, is very significant. The paper is well organized, well written, and likely to be of interest to software architects, software engineering managers, and software engineering educators. There is a motivational introduction, followed by sections covering background information; a motivating example; the architectural system model for Mae; implementation of the architectural evolution environment for Mae; and evaluation of the usability, scalability, and applicability of Mae in three specific application domains. Effective use of figures and tables enhance the presentation, and effectively illustrate details. The paper ends with a discussion of related work, and a conclusion. An extensive bibliography is also provided. Depending on the interests of the reader, the paper may be skimmed, or read in depth. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Software Engineering and Methodology
ACM Transactions on Software Engineering and Methodology  Volume 13, Issue 2
April 2004
128 pages
ISSN:1049-331X
EISSN:1557-7392
DOI:10.1145/1018210
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 April 2004
Published in TOSEM Volume 13, Issue 2

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Design environment
  2. Mae
  3. evolution
  4. system model

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)10
  • Downloads (Last 6 weeks)1
Reflects downloads up to 09 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2022)A survey of software architectural change detection and categorization techniquesJournal of Systems and Software10.1016/j.jss.2022.111505194(111505)Online publication date: Dec-2022
  • (2020)Bigraph specification of software architecture and evolution analysis in mobile computing environmentFuture Generation Computer Systems10.1016/j.future.2020.02.008108(662-676)Online publication date: Jul-2020
  • (2019)Software Reuse and Product Line EngineeringHandbook of Software Engineering10.1007/978-3-030-00262-6_8(321-348)Online publication date: 12-Feb-2019
  • (2019)Software Architecture and DesignHandbook of Software Engineering10.1007/978-3-030-00262-6_3(93-122)Online publication date: 12-Feb-2019
  • (2018)Evolution Oriented Monitoring oriented to Security Properties for Cloud ApplicationsProceedings of the 13th International Conference on Availability, Reliability and Security10.1145/3230833.3232856(1-7)Online publication date: 27-Aug-2018
  • (2018)The analysis of architectural languages for the needs of practitionersSoftware: Practice and Experience10.1002/spe.256148:5(985-1018)Online publication date: 15-Jan-2018
  • (2017)A Specification and Detection Approach for Parallel Evolution Conflicts of Software ArchitecturesInternational Journal of Software Engineering and Knowledge Engineering10.1142/S021819401750013927:03(373-398)Online publication date: 3-May-2017
  • (2017)A robust reconfiguration protocol for the dynamic update of component‐based software systemsSoftware: Practice and Experience10.1002/spe.249947:11(1729-1753)Online publication date: 26-Apr-2017
  • (2016)A Component Model for Defining Software Product Families with Explicit Variation Points2016 19th International ACM SIGSOFT Symposium on Component-Based Software Engineering (CBSE)10.1109/CBSE.2016.15(79-84)Online publication date: Apr-2016
  • (2015)Breeze graph grammarSoftware—Practice & Experience10.1002/spe.227145:8(1023-1050)Online publication date: 1-Aug-2015
  • Show More Cited By

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media