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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 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.
- 3.
- 4.
References
Lehman, M.M.: Programs, life cycles, and the laws of software evolution. Proc. IEEE 68, 1060–1076 (1980)
Schneidewind, N.F.: Application of SRE to ultrareliable systems — the space shuttle. DoD SoftwareTech News 8(1), 19–23 (2004)
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)
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)
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)
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)
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)
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)
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)
Hallsteinsen, S., Hinchey, M., Park, S., Schmid, K.: Dynamic software product lines. Computer 41, 93 (2008)
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)
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)
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)
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)
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
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
Duszynski, S., Knodel, J., Becker, M.: Analyzing the source code of multiple software variants for reuse potential. IEEE Computer Society, pp. 303–307 (2011)
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)
Duszynski, S.: Analyzing Similarity of Cloned Software Variants Using Hierarchical Set Models. Fraunhofer, Stuttgart (2015)
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)
Erzberger, H., Paielli, R.A.: Concept for next generation air traffic control system. Air Traffic Control Q. 10(4), 355–378 (2002)
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)
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
Corresponding author
Editor information
Editors and Affiliations
Rights 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)