skip to main content
article

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

Published:01 April 2004Publication History
Skip Abstract Section

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.]] Google ScholarGoogle Scholar
  2. Allen R. and Garlan D. 1997. A formal basis for architecture connection. ACM Trans. Softw. Eng. Meth. 6, 3, 213--249.]] Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar
  6. Bell Labs Lucent Technologies. 1997. Sablime v5.0 User's Reference Manual. Lucent Technologies, Murray Hill, N.J.]]Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar
  8. Burrows, C. and Wesley, I. 2001. Ovum evaluates configuration management. Ovum, Ltd., Burlington, Mass.]]Google ScholarGoogle Scholar
  9. Christensen, H. B. 1998. Experiences with architectural software configuration management in Ragnarok. In Proceedings of the 8th International Symposium on System Configuration Management.]] Google ScholarGoogle Scholar
  10. Conradi, R. and Westfechtel, B. 1998. Version models for software configuration management. ACM Computing Surveys 30, 2, 232--282.]] Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar
  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.).]]Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar
  17. Extensible Markup Language (XML). 2004. http://www.w3.org/XML/.]]Google ScholarGoogle Scholar
  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).]] Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar
  20. Garlan, D., Monroe, R., and Wile, D. 1997. ACME: An architecture description interchange language. In Proceedings of CASCON'97.]] Google ScholarGoogle Scholar
  21. Ghezzi, C., Jazayeri, M., and Mandrioli, D. 1991. Fundamentals of Software Engineering, Prentice-Hall, Englewood Cliffs, New Jersey.]] Google ScholarGoogle Scholar
  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.).]] Google ScholarGoogle Scholar
  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.]]Google ScholarGoogle Scholar
  24. Hunt, J. J. and Tichy, W. F. 1998. Delta algorithms: An empirical analysis. ACM Trans. Softw. Eng. Meth. 7, 2, 192--214.]] Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar
  27. Kuusela, J. 1999. Architectural evolution. In Proceedings of the 1st Working IFIP Conference on Software Architecture. Kluwer Academic: Boston, Mass.]] Google ScholarGoogle Scholar
  28. Liskov, B. H. and Wing, J. M. 1994. A behavioral notion of subtyping. ACM Trans. Prog. Lang. Syst. 16, 6, 1811--1841.]] Google ScholarGoogle Scholar
  29. Luckham, D. C. and Vera, J. 1995. An event-based architecture definition language. IEEE Trans. Softw. Eng. 21, 9, 717--734.]] Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar
  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.]]Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar
  34. Mens, T., D'Hondt, T. 2000. Automating support for evolution in UML. Auto, Softw. Eng. 7, 1, 39--59.]] Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar
  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.]]Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar
  39. Perry, D. E. 1989. The inscape environment. In Proceedings of the 11th International Conference on Software Engineering. pp. 2--11.]] Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar
  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).]] Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar
  43. Rochkind, M. J. 1975. The source code control system. IEEE Trans. Softw. Eng. SE-1, 4.]]Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar
  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.]]Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar
  48. Tichy, W. F. 1985. RCS, A system for version control. Softw.--Pract. Exper. 15, 7, 637--654.]] Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar
  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.]]Google ScholarGoogle Scholar
  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.]]Google ScholarGoogle Scholar
  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.]]Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar
  54. van Ommering, R. 2002. Building product populations with software components. In Proceedings of the 24th International Conference on Software Engineering (ICSE2002), (Orlando, Fla).]] Google ScholarGoogle Scholar
  55. Walrad, C. and Strom, D. 2002. The importance of branching models in SCM. IEEE Comput. 35, 9 31--38.]] Google ScholarGoogle Scholar
  56. Westfechtel, B. and Conradi, R. 2001. Software architecture and software configuration management. In Proceedings of the International Workshop on Software Configuration Management.]] Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar
  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.]] Google ScholarGoogle Scholar

Index Terms

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

              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

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              • 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

                Copyright © 2004 ACM

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 1 April 2004
                Published in tosem Volume 13, Issue 2

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • article

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader