Abstract
Software evolution is the process of software change, most often change in software requirements. This paper presents a theoretical model for the evolution of component‐based software, based on evolving interoperation graphs. The model assumes that each change consists of smaller granularity steps of change propagation, each of them being a visit to one specific component. If the component is modified, it may no longer fit with the other components because it may no longer properly interact with them. In that case secondary changes must be made in neighboring components, which may trigger additional changes, etc. The paper contains an example of evolution of a calendar program, represented in UML.
Similar content being viewed by others
References
Bohner, S.A. and R.S. Arnold (1996), Software Change Impact Analysis, IEEE Computer Society Press, Los Alamitos, CA.
Booch, G., J. Rumbaugh, and I. Jacobson (1998), The Unified Modeling Language User Guide, Addison-Wesley, Reading, MA.
Brooks, F., (1987), “No Silver Bullet,” IEEE Computer 20, 4, 10-19.
Chen, Y.F., M.Y. Nishimoto, and C.V. Ramamoorthy (1990), “The C Information Abstractor System,” IEEE Transactions on Software Engineering 16, 325-334.
Cusumano, M.A. and R.W. Selby (1997) “How Microsoft Builds Software,” Communications of ACM 40, 6, 53-61.
Gamma, E., R. Helm, R. Johnson, and J. Vlissides (1995), Design Patterns, Addison-Wesley, Reading, MA.
Lehman, M.M., D.E. Perry, and J.F. Ramil (1998), “Implication of Evolution Metrics on Software Maintenance,” In Proceedings of the International Conference on Software Maintenance, IEEE Computer Society Press, Los Alamitos, CA, pp. 208-217.
Le Metayer, D. (1998), “Describing Software Architecture Styles Using Graph Grammars,” IEEE Transactions on Software Engineering 24, 3, 521-533.
Li, L. and A.J. Offutt (1996), “Algorithmic Analysis of the Impact of Changes to Object-Oriented Software,” In Proc. International Conference on Software Maintenance, IEEE Computer Society Press, Los Alamitos, CA, pp. 171-184.
Luqi (1990), “A Graph Model for Software Evolution,” IEEE Trans. on Software Engineering 16, 8, 917-927.
Queille, P.P., J.F. Vodroit, N. Wilde, and M. Munro (1995), “The Impact Analysis Task in Software Maintenance: A Case Study,” In Proceedings of International Conference on Software Maintenance, IEEE Computer Society Press, Los Alamitos, CA, pp. 235-252.
Parnas, D.L., (1972), “On the Criteria to Be Used in Decomposing Systems into Modules,” Communications of the ACM 15, 12, 1053-1058.
Rajlich, V., (1994), “Decomposition/Generalization Methodology for Object Oriented Programming,” Journal of Systems and Software 24, 181-186.
Rajlich, V., (1977), “Theory of Data Structures by Relational and Graph Grammars,” In Automata, Languages, and Programming, Lecture Notes in Computer Science, Vol. 52, Springer-Verlag, Berlin, pp. 391-511.
Rajlich, V., (1997a), “MSE: A Methodology for Software Evolution,” Journal of Software Maintenance 9, 103-125.
Rajlich, V. (1997b), “A Model of Change Propagation based on Graph Rewriting,” In Proceedings of IEEE International Conference on Software Maintenace, pp. 84-91.
Rajlich, V., N. Damaskinos, P. Linos, and W. Khorshid (1990), “VIFOR: A Tool for Software Maintenance,” Software-Practice and Experience 20, 1, 67-77.
Rajlich, V. and S. Ragunathan (1998), “A Case Study of Evolution in Object Oriented and Heterogenous Architectures,” Journal of Systems and Software 43, 85-91.
Rajlich, V., and J. Silva (1996), “Evolution and Reuse of Orthogonal Architectures,” IEEE Transactions on Software Engineering 22, 4, 153-157.
Shaw, M. and D. Garland (1996), Software Architecture, Prentice-Hall, Upper Saddle River, NJ.
Tichy, W., (1994), Configuration Management, Wiley, New York.
Yau, S.S., J.S. Collofello, and T. MacGregor (1978), “Ripple Effect Analysis of Software Maintenance,” In Proceedings of Compsac, IEEE Computer Society Press, Los Alamitos, CA, pp. 60-65.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Rajlich, V. Modeling software evolution by evolving interoperation graphs. Annals of Software Engineering 9, 235–248 (2000). https://doi.org/10.1023/A:1018933026438
Issue Date:
DOI: https://doi.org/10.1023/A:1018933026438