Skip to main content
Log in

Modeling software evolution by evolving interoperation graphs

  • Published:
Annals of Software Engineering

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

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.

    Google Scholar 

  • Booch, G., J. Rumbaugh, and I. Jacobson (1998), The Unified Modeling Language User Guide, Addison-Wesley, Reading, MA.

    Google Scholar 

  • Brooks, F., (1987), “No Silver Bullet,” IEEE Computer 20, 4, 10-19.

    Google Scholar 

  • 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.

    Article  Google Scholar 

  • Gamma, E., R. Helm, R. Johnson, and J. Vlissides (1995), Design Patterns, Addison-Wesley, Reading, MA.

    Google Scholar 

  • 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.

    Google Scholar 

  • Le Metayer, D. (1998), “Describing Software Architecture Styles Using Graph Grammars,” IEEE Transactions on Software Engineering 24, 3, 521-533.

    Article  Google Scholar 

  • 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.

    Google Scholar 

  • Luqi (1990), “A Graph Model for Software Evolution,” IEEE Trans. on Software Engineering 16, 8, 917-927.

    Article  Google Scholar 

  • 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.

    Google Scholar 

  • Parnas, D.L., (1972), “On the Criteria to Be Used in Decomposing Systems into Modules,” Communications of the ACM 15, 12, 1053-1058.

    Article  Google Scholar 

  • Rajlich, V., (1994), “Decomposition/Generalization Methodology for Object Oriented Programming,” Journal of Systems and Software 24, 181-186.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Rajlich, V., and J. Silva (1996), “Evolution and Reuse of Orthogonal Architectures,” IEEE Transactions on Software Engineering 22, 4, 153-157.

    Article  Google Scholar 

  • Shaw, M. and D. Garland (1996), Software Architecture, Prentice-Hall, Upper Saddle River, NJ.

    Google Scholar 

  • Tichy, W., (1994), Configuration Management, Wiley, New York.

    Google Scholar 

  • 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints 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

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1018933026438

Keywords

Navigation