Skip to main content

Good Change and Bad Change: An Analysis Perspective on Software Evolution

  • Chapter
  • First Online:
Transactions on Foundations for Mastering Change I

Part of the book series: Lecture Notes in Computer Science ((TFMC,volume 9960))

  • 682 Accesses

Abstract

Software does change, and should change. Traditional industrial software systems often evolve over long periods of time with each new version forming a discreet milestone, while some new software systems involve constant adaptation to situations in the environment and therefore evolve continually. While necessary, software change can also be devastating, making the system difficult to change and maintain further. We believe that one promising way to manage and control change is to view an evolving system as a software product line where each version of the software is a product. Key to any successful software product line approach is a software architecture that supports variability management. Tools that can identify commonalities and differences among various releases are essential in collecting and managing the information on changed, added and deleted components. Equally important are tools that allow the architect to analyse the current status of the product line as well as its products from various perspectives, and to be able to detect and remove architectural violations that threaten the variability points and built-in flexibility. In this paper, we describe our current research on defining such a process and supporting tools for software evolution management based on product line concepts and apply it in a case study to a software testbed called TSAFE. We describe how we reverse engineer the actual architecture from the source code and how we develop new target architectures based on the reverse engineered one and the expected changes. We then described how we analyse the actual change across different implementations and visualize where the change actually occurred. We then describe how we determine if a particular implementation match the target architecture. The conclusion is that we have found that both these analysis techniques are particularly useful for analysing software evolution and complement each other.

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 EPUB and 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

Notes

  1. 1.

    There have been times where the use of software was motivated by size and space limitations, but with advances in hardware this advantage has all but disappeared.

  2. 2.

    http://www.nasa.gov/directorates/heo/scan/services/networks/txt_sn.html.

  3. 3.

    https://cfs.gsfc.nasa.gov/.

  4. 4.

    https://gmsec.gsfc.nasa.gov/.

References

  1. Lehman, M.M.: Programs, life cycles, and the laws of software evolution. Proc. IEEE 68, 1060–1076 (1980)

    Article  Google Scholar 

  2. Schneidewind, N.F.: Application of SRE to ultrareliable systems — the space shuttle. DoD SoftwareTech News 8(1), 19–23 (2004)

    Google Scholar 

  3. Sterritt, R., Hinchey, M.: Biologically-inspired concepts for autonomic self-protection in multiagent systems. In: Barley, M., Mouratidis, H., Unruh, A., Spears, D., Scerri, P., Massacci, F. (eds.) SASEMAS 2004–2006. LNCS, vol. 4324, pp. 330–341. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  4. Pena, J., Hinchey, M.G., Resinas, M., Sterritt, R., Rash, J.L.: Designing and managing evolving systems using a MAS product line approach. Sci. Comput. Programm. 66(1), 71–86 (2007)

    Article  MathSciNet  MATH  Google Scholar 

  5. Anders, B., Fellmann, J., Lindvall, M., Rus, I.: Experimenting with software architecture flexibility using an implementation of the tactical separation assisted flight environment. In: SEW, pp. 275–284 (2005)

    Google Scholar 

  6. Godfrey, M.W., Lee, E.H.S.: Secrets from the monster: extracting Mozilla’s software architecture. In: Proceedings of Second Symposium Constructing Software Engineering Tools (CoSET00) (2000)

    Google Scholar 

  7. Eick, S.G., Graves, L., Karr, A.F., Marron, J.S.: Does code decay? Assessing the evidence from change management data. IEEE Trans. Softw. Eng. 27(1), 1–12 (2001)

    Article  Google Scholar 

  8. Tvedt, R.T., Costa, P., Lindvall, M.: Does the code match the design? A process for architecture evaluation. In: Proceedings of the International Conference on Software Maintenance (2002)

    Google Scholar 

  9. Rosik, J., Le Gear, A., Buckley, J., Babar, M.A., Connolly, D.: Assessing architectural drift in commercial software development: a case study. Softw. Pract. Exp. 41(1), 63–86 (2011)

    Article  Google Scholar 

  10. Hallsteinsen, S., Hinchey, M., Park, S., Schmid, K.: Dynamic software product lines. Computer 41, 93 (2008)

    Article  Google Scholar 

  11. Ganesan, D., Lindvall, M., McComas, D., Bartholomew, M., Slegel, S., Medina, B., Krikhaar, R.L., Verhoef, C., Montgomery, L.P.: An analysis of unit tests of a flight software product line. Sci. Comput. Program. 78(12), 2360–2380 (2013)

    Article  Google Scholar 

  12. Dubinsky, Y., Rubin, J., Berger, T., Duszynski, S., Becker, M., Czarnecki, K.: An exploratory study of cloning in industrial software product lines. In: 17th European Conference on Software Maintenance and Reengineering (CSMR), pp. 25–34 (2013)

    Google Scholar 

  13. Mende, T., Beckwermert, F., Koschke, R., and Meier, G.: Supporting the grow-and-prune model in software product lines evolution using clone detection. In: Proceedings of the Euromicro Conference on Software Maintenance and Reengineering, CSMR (2008)

    Google Scholar 

  14. Ganesan, D., Lindvall, M., Ruley, L., Wiegand, R., Ly, V., Tsui, T.: Architectural analysis of systems based on the publisher-subscriber style. In: 17th Working Conference on Reverse Engineering (WCRE), pp. 173–182 (2010)

    Google Scholar 

  15. Miodonski, T.P., Knodel, J., Lindvall, M., Muthig, D.: Evaluation of Software Architectures with Eclipse, (IESE)-Report 107.04/E, Institute for Empirical Software Engineering, Kaiserslautern, Germany

    Google Scholar 

  16. Stratton, W.C., Sibol, D.E., Lindvall, M., Costa, P.: Technology infusion of SAVE into the ground software development process for NASA missions at JHU/APL. In: Proceedings of 2007 IEEE Aerospace Conference, Big Sky, MT, March 2007

    Google Scholar 

  17. Duszynski, S., Knodel, J., Becker, M.: Analyzing the source code of multiple software variants for reuse potential. IEEE Computer Society, pp. 303–307 (2011)

    Google Scholar 

  18. Tenev, V., Nebel, M., Duszynski, S.: Directed coloured multigraph alignments for variant analysis of software systems. (IESE)-Report 112.11/E, Fraunhofer Institute for Empirical Software Engineering, Kaiserslautern (2011)

    Google Scholar 

  19. Duszynski, S.: Analyzing Similarity of Cloned Software Variants Using Hierarchical Set Models. Fraunhofer, Stuttgart (2015)

    Google Scholar 

  20. Bederson, B.B., Shneiderman, B., Wattenberg, M.: Ordered and quantum treemaps: making effective use of 2D space to display hierarchies. ACM Trans. Graph. 21(4), 833–854 (2002)

    Article  Google Scholar 

  21. Erzberger, H., Paielli, R.A.: Concept for next generation air traffic control system. Air Traffic Control Q. 10(4), 355–378 (2002)

    Google Scholar 

  22. Lindvall, M., Rus, I.P., Memon, A.M., Zelkowitz, M.V., Betin-Can, A., Bultan, T., Ackermann, C., Anders, B., Asgari, S., Basili, V.R., Hochstein, L., Forrest Shull, F., Tvedt, R.T., Pech, D., V, D.: Experimenting with software testbeds for evaluating new technologies. Empirical Softw. Eng. Int. J. 12(4), 417–444 (2007)

    Article  Google Scholar 

Download references

Acknowledgements

This work was supported, in part, by a grant from NASA. This work was supported, in part, by Science Foundation Ireland grant 13/RC/2094 and co-funded under the European Regional Development Fund through the Southern & Eastern Regional Operational Programme to Lero - the Irish Software Research Centre (www.lero.ie). Special thanks to Bettina Anders, Jörg Fellmann, and Chris Ackermann who helped conduct the TSAFE case study and analyse the results. Fraunhofer IESE thanks Bo Zhang for discussions on the topics described in this paper.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Mike Hinchey .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing AG

About this chapter

Cite this chapter

Lindvall, M., Becker, M., Tenev, V., Duszynski, S., Hinchey, M. (2016). Good Change and Bad Change: An Analysis Perspective on Software Evolution. In: Steffen, B. (eds) Transactions on Foundations for Mastering Change I. Lecture Notes in Computer Science(), vol 9960. Springer, Cham. https://doi.org/10.1007/978-3-319-46508-1_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-46508-1_6

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-46507-4

  • Online ISBN: 978-3-319-46508-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics