Skip to main content

Patterns of Component Evolution

  • Conference paper
Software Composition (SC 2007)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4829))

Included in the following conference series:

Abstract

Contemporary software systems are composed of many components, which, in general, undergo phased and incremental development. In order to facilitate the corresponding construction process, it is important that the development team in charge has a good understanding of how individual software components typically evolve. Furthermore, software engineers need to be able to recognize abnormal patterns of growth with respect to size, structure, and complexity of the components and the resulting composite. Only if a development team understands the processes that underpin the evolution of software systems, will they be able to make better development choices. In this paper, we analyze recurring structural and evolutionary patterns that we have observed in public-domain software systems built using object-oriented programming languages. Based on our analysis, we discuss common growth patterns found in present-day component-based software systems and illustrate simple means to aid developers in achieving a better understanding of those patterns. As a consequence, we hope to raise the awareness level in the community on how component-based software systems tend to naturally evolve.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Appel, W.A.: Modern Compiler Implementation in Java, 2nd edn. Cambridge University Press, Cambridge (2002)

    MATH  Google Scholar 

  2. Bergel, A., Ducasse, S., Nierstrasz, O., Wuyts, R.: Classboxes: Controlling Visibility of Class Extensions. Journal of Computer Languages, Systems & Structures 31(3–4), 107–126 (2005)

    Article  MATH  Google Scholar 

  3. Clifton, C., Leavens, G.T., Chambers, C., Millstein, T.: MultiJava: Modular Open Classes and Symmetric Multiple Dispatch for Java. In: Proceedings OOPSLA 2000, ACM SIGPLAN Notices, vol. 35, pp. 130–146 (October 2000)

    Google Scholar 

  4. Cox, D.R., Lewis, P.A.W.: The Statistical Analysis of Series of Events. In: Monographs on Applied Probability and Statistics, Chapman and Hall, Sydney, Australia (1966)

    Google Scholar 

  5. Dami, L.: Software Composition: Towards an Integration of Functional and Object-Oriented Approaches. PhD thesis, Centre Universitaire d’Informatique, University of Geneva, CH (1994)

    Google Scholar 

  6. Fenton, N.E., Pfleeger, S.L.: Software Metrics: A Rigorous & Practical Approach, 2nd edn. Thomson Publishing (1996)

    Google Scholar 

  7. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns. Addison-Wesley, Reading (1995)

    Google Scholar 

  8. Godfrey, M., Tu, Q.: Growth, Evolution, and Structural Change in Open Source Software. In: IWPSE 2001. Proceedings of the 4th International Workshop on Principles of Software Evolution, Vienna, Austria, pp. 103–106. ACM Press, Vienna (2001)

    Google Scholar 

  9. Godfrey, M.W., Tu, Q.: Evolution in Open Source Software: A Case Study. In: ICSM 2000. Proceedings of the 16th International Conference on Software Maintenance, San Jose, California, IEEE Computer Society Press, Los Alamitos (2000)

    Google Scholar 

  10. Kemerer, C.F.: Empirical Research on Software Complexity and Software Maintenance. Annals of Software Engineering 1(1), 1–22 (1995)

    Article  Google Scholar 

  11. Lehman, M.M., Perry, D.E., Ramil, J.C.F., Turski, W.M., Wernik, P.: Metrics and Laws of Software Evolution – The Nineties View. In: Metrics 1997. Proceedings of the Fourth International Symposium on Software Metrics, Albuquerque, New Mexico, pp. 20–32 (November 1997)

    Google Scholar 

  12. Lehman, M.M.: Programs, Life Cycles, and Laws of Software Evolution. Proceedings of the IEEE 68(9), 1060–1076 (1980)

    Article  Google Scholar 

  13. Lumpe, M., Schneider, J.-G.: On the Integration of Classboxes into C#. In: Löwe, W., Südholt, M. (eds.) SC 2006. LNCS, vol. 4089, pp. 307–322. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  14. Mitchell, M., Newmann, M.: Complex Systems Theory and Evolution. In: Pagel, M. (ed.) Encyclopedia of Evolution, Oxford University Press, Oxford (2002)

    Google Scholar 

  15. Mockus, A., Fielding, R., Herbsleb, J.: A Case Study of Open Source Software Development: The Apache Server. In: Proceedings ICSE 2000, Limerick, Ireland, pp. 263–272 (June 2000)

    Google Scholar 

  16. Myers, C.R.: Software systems as complex networks: Structure, function, and evolvability of software collaboration graphs. Physical Review E 68(4), 46–116 (2003)

    Article  Google Scholar 

  17. Newmann, M.E.J.: The Structure and Function of Complex Networks. SIAM Review 45(2), 167–256 (2003)

    Article  MathSciNet  Google Scholar 

  18. Nierstrasz, O., Gibbs, S., Tsichritzis, D.: Component-Oriented Software Development. Communications of the ACM 35(9), 160–165 (1992)

    Article  Google Scholar 

  19. Potanin, A., Noble, J., Frean, M., Biddle, R.: Scale-free Geometry in OO Programs. Communications of the ACM 48(5), 99–103 (2005)

    Article  Google Scholar 

  20. Pressman, R.S.: Software Engineering: A Practitioner’s Approach, 6th edn. McGraw-Hill, New York (2005)

    Google Scholar 

  21. Rogerson, D.: Inside COM: Microsoft’s Component Object Model. Microsoft Press (1997)

    Google Scholar 

  22. Sametinger, J.: Software Engineering with Reusable Components. Springer, Heidelberg (1997)

    MATH  Google Scholar 

  23. Szyperski, C.: Component Software: Beyond Object-Oriented Programming, 2nd edn. Addison-Wesley / ACM Press (2002)

    Google Scholar 

  24. Turski, W.M.: Reference Model for Smooth Growth of Software Systems. IEEE Transactions on Software Engineering 22(8), 599–600 (1996)

    Google Scholar 

  25. Turski, W.M.: The Reference Model for Smooth Growth of Software Systems Revisited. IEEE Transactions on Software Engineering 28(8), 814–815 (2002)

    Article  Google Scholar 

  26. Vasa, R., Schneider, J.-G., Woodward, C., Cain, A.: Detecting Structural Changes in Object-Oriented Software Systems. In: Verner, J., Travassos, G.H. (eds.) ISESE 2005. Proceedings of 4th International Symposium on Empirical Software Engineering, Noosa Heads, Australia, pp. 463–470. IEEE Computer Society Press, Los Alamitos (2005)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Markus Lumpe Wim Vanderperren

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Vasa, R., Lumpe, M., Schneider, JG. (2007). Patterns of Component Evolution. In: Lumpe, M., Vanderperren, W. (eds) Software Composition. SC 2007. Lecture Notes in Computer Science, vol 4829. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-77351-1_19

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-77351-1_19

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-77350-4

  • Online ISBN: 978-3-540-77351-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics