Skip to main content
Top
Published in: Empirical Software Engineering 5/2011

01-10-2011

Assessing architectural evolution: a case study

Authors: Michel Wermelinger, Yijun Yu, Angela Lozano, Andrea Capiluppi

Published in: Empirical Software Engineering | Issue 5/2011

Log in

Activate our intelligent search to find suitable subject content or patents.

search-config
loading …

Abstract

This paper proposes to use a historical perspective on generic laws, principles, and guidelines, like Lehman’s software evolution laws and Martin’s design principles, in order to achieve a multi-faceted process and structural assessment of a system’s architectural evolution. We present a simple structural model with associated historical metrics and visualizations that could form part of an architect’s dashboard. We perform such an assessment for the Eclipse SDK, as a case study of a large, complex, and long-lived system for which sustained effective architectural evolution is paramount. The twofold aim of checking generic principles on a well-know system is, on the one hand, to see whether there are certain lessons that could be learned for best practice of architectural evolution, and on the other hand to get more insights about the applicability of such principles. We find that while the Eclipse SDK does follow several of the laws and principles, there are some deviations, and we discuss areas of architectural improvement and limitations of the assessment approach.

Dont have a licence yet? Then find out more about our products and how to get one now:

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Appendix
Available only for authorised users
Footnotes
3
We should point out that the axioms are only meant to distinguish the concept(s) being measured by a metric; the axioms don’t enforce independence of the metrics. For example, coupling and cohesion aren’t completely independent of complexity because the latter is based on all relations, whereas the former two are based on the subsets of inter-module and intra-module relations, respectively. This means that the various monotonicity axioms together impose that adding intra-module relations will decrease neither cohesion nor complexity, and likewise adding inter-module relations doesn’t decrease coupling and complexity.
 
Literature
go back to reference Basili V, Briand L, Melo W (1996) A validation of object-oriented design metrics as quality indicators. IEEE Trans Softw Eng 22(10):751–761CrossRef Basili V, Briand L, Melo W (1996) A validation of object-oriented design metrics as quality indicators. IEEE Trans Softw Eng 22(10):751–761CrossRef
go back to reference Ben-Ari M (1982) Principles of concurrent programming. Prentice-Hall, Englewood CliffsMATH Ben-Ari M (1982) Principles of concurrent programming. Prentice-Hall, Englewood CliffsMATH
go back to reference Beyer D (2008) CCVisu: automatic visual software decomposition. In: Proc int’l conf on software engineering, companion volume. ACM, New York, pp 967–968 Beyer D (2008) CCVisu: automatic visual software decomposition. In: Proc int’l conf on software engineering, companion volume. ACM, New York, pp 967–968
go back to reference Beyer D, Noack A, Lewerentz C (2005) Efficient relational calculation for software analysis. IEEE Trans Softw Eng 31(2):137–149CrossRef Beyer D, Noack A, Lewerentz C (2005) Efficient relational calculation for software analysis. IEEE Trans Softw Eng 31(2):137–149CrossRef
go back to reference Bloch J (2001) Effective Java. Addison-Wesley, Reading Bloch J (2001) Effective Java. Addison-Wesley, Reading
go back to reference Bois BD, Rompaey BV, Meijfroidt K, Suijs E (2008) Supporting reengineering scenarios with FETCH: an experience report. In: Electronic communications of the EASST 8, selected papers from the 2007 ERCIM symp on software evolution Bois BD, Rompaey BV, Meijfroidt K, Suijs E (2008) Supporting reengineering scenarios with FETCH: an experience report. In: Electronic communications of the EASST 8, selected papers from the 2007 ERCIM symp on software evolution
go back to reference Briand LC, Morasca S, Basili VR (1996) Property-based software engineering measurement. IEEE Trans Softw Eng 22(1):68–86CrossRef Briand LC, Morasca S, Basili VR (1996) Property-based software engineering measurement. IEEE Trans Softw Eng 22(1):68–86CrossRef
go back to reference Briand LC, Morasca S, Basili VR (1997) Response to: comments on “Property-based software engineering measurement: refining the additivity properties”. IEEE Trans Softw Eng 23(3):196–197CrossRef Briand LC, Morasca S, Basili VR (1997) Response to: comments on “Property-based software engineering measurement: refining the additivity properties”. IEEE Trans Softw Eng 23(3):196–197CrossRef
go back to reference Briand LC, Wüst J, Daly JW, Porter DV (2000) Exploring the relationship between design measures and software quality in object-oriented systems. J Syst Softw 51(3):245–273CrossRef Briand LC, Wüst J, Daly JW, Porter DV (2000) Exploring the relationship between design measures and software quality in object-oriented systems. J Syst Softw 51(3):245–273CrossRef
go back to reference Brown W, Malveau R, Mowbray T (1998) AntiPatterns: refactoring software, architectures, and projects in crisis. Wiley, New York Brown W, Malveau R, Mowbray T (1998) AntiPatterns: refactoring software, architectures, and projects in crisis. Wiley, New York
go back to reference Ciupke O (1999) Automatic detection of design problems in object-oriented reengineering. In: Proc 30th int’l conf on technology of object-oriented languages and systems. IEEE, Piscataway, pp 18–32 Ciupke O (1999) Automatic detection of design problems in object-oriented reengineering. In: Proc 30th int’l conf on technology of object-oriented languages and systems. IEEE, Piscataway, pp 18–32
go back to reference Crespo Y, López C, Marticorena R, Manso E (2005) Language independent metrics support towards refactoring inference. In: Int’l workshop on quantitative approaches in object-oriented software engineering Crespo Y, López C, Marticorena R, Manso E (2005) Language independent metrics support towards refactoring inference. In: Int’l workshop on quantitative approaches in object-oriented software engineering
go back to reference Dagpinar M, Jahnke JH (2003) Predicting maintainability with object-oriented metrics—an empirical comparison. In: Proc working conf on reverse engineering. IEEE, Piscataway, pp 155–164 Dagpinar M, Jahnke JH (2003) Predicting maintainability with object-oriented metrics—an empirical comparison. In: Proc working conf on reverse engineering. IEEE, Piscataway, pp 155–164
go back to reference Eldredge N, Gould SJ (1972) Punctuated equilibria: an alternative to phyletic gradualism. In: Schopf T (ed) Models in palaeobiology. Freeman and Cooper, San Francisco, pp 82–115 Eldredge N, Gould SJ (1972) Punctuated equilibria: an alternative to phyletic gradualism. In: Schopf T (ed) Models in palaeobiology. Freeman and Cooper, San Francisco, pp 82–115
go back to reference Emam KE, Benlarbi S, Goel N, Rai SN (2001) The confounding effect of class size on the validity of object-oriented metrics. IEEE Trans Softw Eng 27(7):630–650CrossRef Emam KE, Benlarbi S, Goel N, Rai SN (2001) The confounding effect of class size on the validity of object-oriented metrics. IEEE Trans Softw Eng 27(7):630–650CrossRef
go back to reference Eysenck HJ (1976) Case studies in behaviour therapy. Routledge, Evanston. Chap Introduction Eysenck HJ (1976) Case studies in behaviour therapy. Routledge, Evanston. Chap Introduction
go back to reference Fernández-Ramil J, Lozano A, Wermelinger M, Capiluppi A (2008) Empirical studies of open source evolution. In: Software evolution, chap 11. Springer, New York, pp 263–288 Fernández-Ramil J, Lozano A, Wermelinger M, Capiluppi A (2008) Empirical studies of open source evolution. In: Software evolution, chap 11. Springer, New York, pp 263–288
go back to reference Flyvbjerg B (2006) Five misunderstandings about case-study research. Qual Inq 12(2):219–245CrossRef Flyvbjerg B (2006) Five misunderstandings about case-study research. Qual Inq 12(2):219–245CrossRef
go back to reference Fowler M, Beck K, Brant J, Opdyke W, Roberts D (1999) Refactoring: improving the design of existing code. Addison-Wesley, Reading Fowler M, Beck K, Brant J, Opdyke W, Roberts D (1999) Refactoring: improving the design of existing code. Addison-Wesley, Reading
go back to reference Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns: elements of reusable object-oriented software. Addison-Wesley, Reading Gamma E, Helm R, Johnson R, Vlissides J (1995) Design patterns: elements of reusable object-oriented software. Addison-Wesley, Reading
go back to reference Godfrey MW, Tu Q (2000) Evolution in open source software: a case study. In: Int’l conf on software maintenance. IEEE, Piscataway, pp 131–142 Godfrey MW, Tu Q (2000) Evolution in open source software: a case study. In: Int’l conf on software maintenance. IEEE, Piscataway, pp 131–142
go back to reference Hansen KM, Jónasson K, Neukirchen H (2009) An empirical study of open source software architectures’ effect on product quality. Tech Rep VHI-01-2009, Engineering Research Institute, Univ of Iceland Hansen KM, Jónasson K, Neukirchen H (2009) An empirical study of open source software architectures’ effect on product quality. Tech Rep VHI-01-2009, Engineering Research Institute, Univ of Iceland
go back to reference Hou D (2007) Studying the evolution of the Eclipse Java editor. In: Proc OOPSLA workshop on eclipse technology exchange. ACM, New York, pp 65–69CrossRef Hou D (2007) Studying the evolution of the Eclipse Java editor. In: Proc OOPSLA workshop on eclipse technology exchange. ACM, New York, pp 65–69CrossRef
go back to reference Johnson RE, Foote B (1988) Designing reusable classes. J Object-Oriented Program 1(2):22–35 Johnson RE, Foote B (1988) Designing reusable classes. J Object-Oriented Program 1(2):22–35
go back to reference Juergens E, Deissenboeck F, Hummel B, Wagner S (2009) Do code clones matter? In: Proc int’l conference on software engineering. IEEE, Piscataway, pp 485–495 Juergens E, Deissenboeck F, Hummel B, Wagner S (2009) Do code clones matter? In: Proc int’l conference on software engineering. IEEE, Piscataway, pp 485–495
go back to reference Kuhn TS (1987) What are scientific revolutions? In: The probabilistic revolution, vol 1. MIT, Cambridge, pp 7–22 Kuhn TS (1987) What are scientific revolutions? In: The probabilistic revolution, vol 1. MIT, Cambridge, pp 7–22
go back to reference Lakos J (1996) Large-scale C+ + software design. Addison-Wesley, Reading Lakos J (1996) Large-scale C+ + software design. Addison-Wesley, Reading
go back to reference Lehman MM, Belady LA (1985) Program evolution: processes of software change. Academic, New York Lehman MM, Belady LA (1985) Program evolution: processes of software change. Academic, New York
go back to reference Lehman MM, Ramil JF, Wernick PD, Perry DE, Turski WM (1997) Metrics and laws of software evolution—the nineties view. In: Proc symp on software metrics. IEEE, Piscataway, pp 20–32CrossRef Lehman MM, Ramil JF, Wernick PD, Perry DE, Turski WM (1997) Metrics and laws of software evolution—the nineties view. In: Proc symp on software metrics. IEEE, Piscataway, pp 20–32CrossRef
go back to reference Lieberherr KJ, Holland I, Riel A (1988) Object-oriented programming: an objective sense of style. In: Proc int’l conf on object oriented programming, systems, languages, and applications, pp 323–334 Lieberherr KJ, Holland I, Riel A (1988) Object-oriented programming: an objective sense of style. In: Proc int’l conf on object oriented programming, systems, languages, and applications, pp 323–334
go back to reference Liskov B (1987) Data abstraction and hierarchy. In: Proc int’l conf on object oriented programming, systems, languages, and applications. ACM, New York, pp 17–34CrossRef Liskov B (1987) Data abstraction and hierarchy. In: Proc int’l conf on object oriented programming, systems, languages, and applications. ACM, New York, pp 17–34CrossRef
go back to reference Marinescu R (2001) Detecting design flaws via metrics in object oriented systems. In: Proc int’l conf on technology of object-oriented languages and systems. IEEE, Piscataway, pp 173–182 Marinescu R (2001) Detecting design flaws via metrics in object oriented systems. In: Proc int’l conf on technology of object-oriented languages and systems. IEEE, Piscataway, pp 173–182
go back to reference Martin RC (1996) Granularity. C+ + Report 8(10):57–62 Martin RC (1996) Granularity. C+ + Report 8(10):57–62
go back to reference Martin RC (1997) Large-scale stability. C+ + Report 9(2):54–60 Martin RC (1997) Large-scale stability. C+ + Report 9(2):54–60
go back to reference Medvidovic N, Dashofy EM, Taylor RN (2007) Moving architectural description from under the technology lamppost. Inf Softw Technol 49(1):12–31CrossRef Medvidovic N, Dashofy EM, Taylor RN (2007) Moving architectural description from under the technology lamppost. Inf Softw Technol 49(1):12–31CrossRef
go back to reference Melton H (2006) On the usage and usefulness of OO design principles. In: Companion to the 21st OOPSLA. ACM, New York, pp 770–771 Melton H (2006) On the usage and usefulness of OO design principles. In: Companion to the 21st OOPSLA. ACM, New York, pp 770–771
go back to reference Melton H, Tempero E (2007) An empirical study of cycles among classes in Java. Empir Software Eng 12(4):389–415CrossRef Melton H, Tempero E (2007) An empirical study of cycles among classes in Java. Empir Software Eng 12(4):389–415CrossRef
go back to reference Mens T, Fernández-Ramil J, Degrandsart S (2008) The evolution of Eclipse. In: Proc 24th int’l conf on software maintenance. IEEE, Piscataway, pp 386–395 Mens T, Fernández-Ramil J, Degrandsart S (2008) The evolution of Eclipse. In: Proc 24th int’l conf on software maintenance. IEEE, Piscataway, pp 386–395
go back to reference Meyer B (1988) Object-oriented software construction. Prentice-Hall, Englewood Cliffs Meyer B (1988) Object-oriented software construction. Prentice-Hall, Englewood Cliffs
go back to reference Moha N, Guéhéneuc YG, Leduc P (2006) Automatic generation of detection algorithms for design defects. In: Proc int’l conf on automated software engineering. IEEE, Piscataway, pp 297–300 Moha N, Guéhéneuc YG, Leduc P (2006) Automatic generation of detection algorithms for design defects. In: Proc int’l conf on automated software engineering. IEEE, Piscataway, pp 297–300
go back to reference Munro M (2005) Product metrics for automatic identification of “bad smell” design problems in Java source-code. In: Proc int’l symp on software metrics. IEEE, Piscataway, pp 15–24 Munro M (2005) Product metrics for automatic identification of “bad smell” design problems in Java source-code. In: Proc int’l symp on software metrics. IEEE, Piscataway, pp 15–24
go back to reference Parnas DL (1972) On the criteria to be used in decomposing systems into modules. Commun ACM 15(12):1053–1058CrossRef Parnas DL (1972) On the criteria to be used in decomposing systems into modules. Commun ACM 15(12):1053–1058CrossRef
go back to reference Popper KR (1959) The logic of scientific discovery. Hutchinson, LondonMATH Popper KR (1959) The logic of scientific discovery. Hutchinson, LondonMATH
go back to reference Ratiu D, Ducasse S, Girba T, Marinescu R (2004) Using history information to improve design flaws detection. In: Proc European conf on software maintenance and reengineering. IEEE, Piscataway, pp 223–232 Ratiu D, Ducasse S, Girba T, Marinescu R (2004) Using history information to improve design flaws detection. In: Proc European conf on software maintenance and reengineering. IEEE, Piscataway, pp 223–232
go back to reference Riel A (1996) Object-oriented design heuristics. Addison-Wesley, Reading Riel A (1996) Object-oriented design heuristics. Addison-Wesley, Reading
go back to reference Simon HA (1962) The architecture of complexity. Proc Am Philos Soc 106(6):467–482 Simon HA (1962) The architecture of complexity. Proc Am Philos Soc 106(6):467–482
go back to reference Stevens W, Myers G, Constantine L (1979) Structured design. In: Classics in software engineering. Yourdon Press, Upper Saddle River, NJ, USA, pp 205–232 Stevens W, Myers G, Constantine L (1979) Structured design. In: Classics in software engineering. Yourdon Press, Upper Saddle River, NJ, USA, pp 205–232
go back to reference Tahvildari L, Kontogiannis K (2003) A metric-based approach to enhance design quality through meta-pattern transformations. In: Proc European conf on software maintenance and reengineering. IEEE, Piscataway, pp 183–192 Tahvildari L, Kontogiannis K (2003) A metric-based approach to enhance design quality through meta-pattern transformations. In: Proc European conf on software maintenance and reengineering. IEEE, Piscataway, pp 183–192
go back to reference Tourwe T, Mens T (2003) Identifying refactoring opportunities using logic meta programming. In: Proc European conf on software maintenance and reengineering. IEEE, Piscataway, pp 91–100 Tourwe T, Mens T (2003) Identifying refactoring opportunities using logic meta programming. In: Proc European conf on software maintenance and reengineering. IEEE, Piscataway, pp 91–100
go back to reference van Belle T (2004) Modularity and the evolution of software evolvability. PhD thesis, University of New Mexico van Belle T (2004) Modularity and the evolution of software evolvability. PhD thesis, University of New Mexico
go back to reference Walter B, Pietrzak B (2005) Multi-criteria detection of bad smells in code with UTA method. In: Extreme programming and agile processes in software engineering. Springer, New York, pp 154–161CrossRef Walter B, Pietrzak B (2005) Multi-criteria detection of bad smells in code with UTA method. In: Extreme programming and agile processes in software engineering. Springer, New York, pp 154–161CrossRef
go back to reference Wermelinger M, Yu Y (2011) Some issues in the ‘archaeology’ of software evolution. In: Generative and transformational techniques in software engineering III. LNCS, vol 6491. Springer, New York, pp 426–445CrossRef Wermelinger M, Yu Y (2011) Some issues in the ‘archaeology’ of software evolution. In: Generative and transformational techniques in software engineering III. LNCS, vol 6491. Springer, New York, pp 426–445CrossRef
go back to reference Wermelinger M, Yu Y, Lozano A (2008) Design principles in architectural evolution: a case study. In: Proc 24th int’l conf on software maintenance. IEEE, Piscataway, pp 396–405 Wermelinger M, Yu Y, Lozano A (2008) Design principles in architectural evolution: a case study. In: Proc 24th int’l conf on software maintenance. IEEE, Piscataway, pp 396–405
go back to reference Wong K (1998) The Rigi user’s manual, version 5.4.4 Wong K (1998) The Rigi user’s manual, version 5.4.4
go back to reference Wu J, Spitzer C, Hassan A, Holt R (2004) Evolution spectrographs: visualizing punctuated change in software evolution. In: Proc 7th intl workshop on principles of software evolution. IEEE, Piscataway, pp 57–66 Wu J, Spitzer C, Hassan A, Holt R (2004) Evolution spectrographs: visualizing punctuated change in software evolution. In: Proc 7th intl workshop on principles of software evolution. IEEE, Piscataway, pp 57–66
go back to reference Xing Z, Stroulia E (2004) Understanding class evolution in object-oriented software. In: Proc int’l workshop on program comprehension. IEEE, Piscataway, pp 34–43CrossRef Xing Z, Stroulia E (2004) Understanding class evolution in object-oriented software. In: Proc int’l workshop on program comprehension. IEEE, Piscataway, pp 34–43CrossRef
Metadata
Title
Assessing architectural evolution: a case study
Authors
Michel Wermelinger
Yijun Yu
Angela Lozano
Andrea Capiluppi
Publication date
01-10-2011
Publisher
Springer US
Published in
Empirical Software Engineering / Issue 5/2011
Print ISSN: 1382-3256
Electronic ISSN: 1573-7616
DOI
https://doi.org/10.1007/s10664-011-9164-x

Other articles of this Issue 5/2011

Empirical Software Engineering 5/2011 Go to the issue

Premium Partner