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.
- 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 Scholar
- Allen R. and Garlan D. 1997. A formal basis for architecture connection. ACM Trans. Softw. Eng. Meth. 6, 3, 213--249.]] Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- Bell Labs Lucent Technologies. 1997. Sablime v5.0 User's Reference Manual. Lucent Technologies, Murray Hill, N.J.]]Google Scholar
- 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 Scholar
- Burrows, C. and Wesley, I. 2001. Ovum evaluates configuration management. Ovum, Ltd., Burlington, Mass.]]Google Scholar
- Christensen, H. B. 1998. Experiences with architectural software configuration management in Ragnarok. In Proceedings of the 8th International Symposium on System Configuration Management.]] Google Scholar
- Conradi, R. and Westfechtel, B. 1998. Version models for software configuration management. ACM Computing Surveys 30, 2, 232--282.]] Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- Extensible Markup Language (XML). 2004. http://www.w3.org/XML/.]]Google Scholar
- 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 Scholar
- 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 Scholar
- Garlan, D., Monroe, R., and Wile, D. 1997. ACME: An architecture description interchange language. In Proceedings of CASCON'97.]] Google Scholar
- Ghezzi, C., Jazayeri, M., and Mandrioli, D. 1991. Fundamentals of Software Engineering, Prentice-Hall, Englewood Cliffs, New Jersey.]] Google Scholar
- 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 Scholar
- 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 Scholar
- Hunt, J. J. and Tichy, W. F. 1998. Delta algorithms: An empirical analysis. ACM Trans. Softw. Eng. Meth. 7, 2, 192--214.]] Google Scholar
- 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 Scholar
- 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 Scholar
- Kuusela, J. 1999. Architectural evolution. In Proceedings of the 1st Working IFIP Conference on Software Architecture. Kluwer Academic: Boston, Mass.]] Google Scholar
- Liskov, B. H. and Wing, J. M. 1994. A behavioral notion of subtyping. ACM Trans. Prog. Lang. Syst. 16, 6, 1811--1841.]] Google Scholar
- Luckham, D. C. and Vera, J. 1995. An event-based architecture definition language. IEEE Trans. Softw. Eng. 21, 9, 717--734.]] Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- Mens, T., D'Hondt, T. 2000. Automating support for evolution in UML. Auto, Softw. Eng. 7, 1, 39--59.]] Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- Perry, D. E. 1989. The inscape environment. In Proceedings of the 11th International Conference on Software Engineering. pp. 2--11.]] Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- Rochkind, M. J. 1975. The source code control system. IEEE Trans. Softw. Eng. SE-1, 4.]]Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- Tichy, W. F. 1985. RCS, A system for version control. Softw.--Pract. Exper. 15, 7, 637--654.]] Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- van Ommering, R. 2002. Building product populations with software components. In Proceedings of the 24th International Conference on Software Engineering (ICSE2002), (Orlando, Fla).]] Google Scholar
- Walrad, C. and Strom, D. 2002. The importance of branching models in SCM. IEEE Comput. 35, 9 31--38.]] Google Scholar
- Westfechtel, B. and Conradi, R. 2001. Software architecture and software configuration management. In Proceedings of the International Workshop on Software Configuration Management.]] Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
Index Terms
- Mae---a system model and environment for managing architectural evolution
Recommendations
Taming architectural evolution
In the world of software development everything evolves. So, then, do software architectures. Unlike source code, for which the use of a configuration management (CM) system is the predominant approach to capturing and managing evolution, approaches to ...
Taming architectural evolution
ESEC/FSE-9: Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineeringIn the world of software development everything evolves. So, then, do software architectures. Unlike source code, for which the use of a configuration management (CM) system is the predominant approach to capturing and managing evolution, approaches to ...
Using software evolution to focus architectural recovery
Ideally, a software project commences with requirements gathering and specification , reaches its major milestone with system implementation and delivery , and then continues, possibly indefinitely, into an operation and maintenance phase. The ...
Comments