Abstract
Software maintenance is one of the most crucial aspects of software development. Software engineering researchers must develop practical solutions to handle the challenges presented in maintaining mature software systems. Research that addresses practical means of mitigating the risks involved when changing software, reducing the complexity of mature software systems, and eliminating the introduction of preventable bugs is paramount to today’s software engineering discipline. The Software Architecture Change Characterization Scheme (SACCS) provides software maintainers with a systematic approach to analyzing and characterizing the impact of a change prior to its implementation. SACCS was designed to help novice developers understand change requests, facilitate discussion among developers, and provide a higher-quality change compared with an ad hoc approach. In addition, this paper describes three controlled experiments designed to assess the viability of using SACCS and its ability to fulfill its goals. The successive studies build upon each other to enable progressive insights into the viability of the scheme. The results indicate that SACCS: 1) provides insight into the difficulty of a change request by assisting novice developers to consider various aspects of the request’s potential to impact the system, 2) helps to facilitate discussion among developers by providing a common tool for change assessment, and 3) is a useful tool for supporting change implementation. The three experiments provide insight into the usefulness of SACCS, motivate additional research questions, and serve as a baseline for moving forward with research and further development of the approach.
Similar content being viewed by others
Notes
References
Basili V, Caldiera G, Rombach HD (1994) The Goal Question Metric Paradigm. In: Marciniak JJ (ed) Encyclopedia of Software Engineering. Wiley, New York, pp 528–532
Batory D (2005) Feature models, grammars, and propositional formulas. Paper presented at the Proceedings of the 9th international conference on Software Product Lines, Rennes, France
Belady LA, Lehman MM (1976) A Model of Large Program Development. IBM Syst J 15(1):225–252
Bosch J (2000) Design and Use of Software Architectures. Addison Wesley
Briand LC, Labiche Y, O'Sullivan L (2003) Impact analysis and change management of UML models. In: Proceedings of the International Conference on Software Maintenance, pp 256–265
Briand LC, Labiche Y, O’Sullivan L, Sûwka MM (2006) Automated impact analysis of UML models. J Syst Softw 79(3):339–352
Brooks F (1975) The Mythical Man-Month. Addison-Wesley
Carver J, Jaccheri L, Morasca S, Shull F (2003) Issues in using students in empirical studies in software engineering education. In: Proceedings of the Ninth International Software Metrics Symposium, pp 239–249
Chaumun MA, Kabaili H, Keller RK, Lustman F (2002) A change impact model for changeability assessment in object-oriented software systems. Sci Comput Program 45(2):155–177
Chesley OC, Ren X, Ryder BG (2005) Crisp: a debugging tool for Java programs. In, pp 401–410
Clements P, Bachmann F, Bass L, Garlan D, Ivers J, Little R, Merson P, Nord R, Stafford J (2010) Documenting Software Architectures: Views and Beyond. Addison-Wesley Professional
Cook S, He J, Harrison R (2001) Dynamic and static views of software evolution. Software Maintenance, 2001 Proceedings IEEE International Conference on, pp 592–601
Dennis G (2003) TSAFE: Building a Trusted Computing Base for Air Traffic Control Software. Dissertation, Massachusetts Institue of Technology
Eick SG, Graves TL, Karr AF, Marron JS, Mockus A (2001) Does code decay? Assessing the evidence from change management data. IEEE Trans Softw Eng 27(1):1–12
Ferzund J, Ahsan SN, Wotawa F (2009) Software change classification using hunk metrics. In: Software Maintenance, 2009. ICSM 2009. IEEE International Conference on, 20–26 Sept. 2009. pp 471–474. doi:10.1109/icsm.2009.5306274
Fluri B, Gall HC (2006) Classifying Change Types for Qualifying Change Couplings. In: Proceedings of the 14th IEEE Conference on Program Comprehension, Athens, Greece, pp 35–45
Giroux O, Robillard MP (2006) Detecting increases in feature coupling using regression tests. Paper presented at the Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering, Portland, Oregon, USA
Godfrey MW, German DM (2008) The past, present, and future of software evolution. In: Frontiers of Software Maintenance, pp 129–138
Godfrey MW, Tu Q (2000) Evolution in open source software: A case study. Proceedings of the International Conference on Software Maintenance, pp 131–142
Graves TL, Mockus A (1998) Inferring change effort from configuration management databases. In: Software Metrics Symposium, 1998. Metrics 1998. Proceedings. Fifth International, pp 267–273
Herraiz I, Robles G, Gonzalez-Barahona JM, Capiluppi A, Ramil JF (2006) Comparison between SLOCs and number of files as size metrics for software evolution analysis. In: Proceedings of the 10th European Conference on Software Maintenance and Reengineering, pp 203–210
Hochstein L, Lindvall M (2005) Combating architectural degeneration: a survey. Inf Softw Technol 47(10):643–656
IEEE standard glossary of software engineering terminology (1990) IEEE Std 61012-1990
Kang K, Cohen S, Hess J, Nowak W, Peterson S (1990) Feature-oriented domain analysis (FODA) feasibility study. Carnegie Mellon University, Software Engineering Institute
Kim S, Whitehead EJ, Bevan J (2005) Analysis of signature change patterns. In: Proceedings of the 2005 international workshop on Mining software repositories, St. Louis, Missouri. ACM Press. doi:http://doi.acm.org/10.1145/1083142.1083154
Kung D, Gao J, Hsia P, Wen F, Toyoshima Y, Chen C (1994) Change impact identification in object oriented software maintenance. In: Proceedings of the International Conference onSoftware Maintenance, Victoria, BC, pp 202–211
Lehman MM (1980) Programs, life cycles, and laws of software evolution. Proc IEEE 68(9):1060–1076
Lehman MM (1996) Feedback, evolution and software technology. In: Proceedings of the 10th International Process Support of Software Product Lines Software Process Workshop, pp 101–103
Lehman MM, Belady L (1985) Program Evolution - Processes of Software Change. Academic, London
Lehman MM, Perry DE, Ramil JF (1998a) Implications of evolution metrics on software maintenance. In: Proceedings of the International Conference on Software Maintenance, Bethesda, MD, pp 208–217
Lehman MM, Perry DE, Ramil JF (1998b) On evidence supporting the FEAST hypothesis and the laws of software evolution. In: Proceedings of the Fifth International Software Metrics Symposium, pp 84–88
Li PL, Shaw M, Herbsleb J, Ray B, Santhanam P (2004) Empirical evaluation of defect projection models for widely-deployed production software systems. SIGSOFT Softw Eng Notes 29(6):263–272, http://doi.acm.org/10.1145/1041685.1029930
Lientz B, Swanson B (1980) Software Maintenance Management Addison-Wesley
Lindvall M, Tesoriero R, Costa P (2002) Avoiding architectural degeneration: an evaluation process for software architecture. In: Proceedings of the Eighth IEEE Symposium on Software Metrics, pp 77–86
Mohagheghi P, Conradi R (2004) An empirical study of software change: origin, acceptance rate, and functionality vs. quality attributes. In: Proceedings of the 2004 International Symposium on Empirical Software Engineering (ISESE ‘04), pp 7–16
Nedstam J, Karlsson EA, Host M (2004) The architectural change process. In: Proceedings of the 2004 International Symposium on Empirical Software Engineering (ISESE ‘04), pp 27–36
Nurmuliani N, Zowghi D, Williams SP (2004) Using card sorting technique to classify requirements change. In: Proceedings of the 12th IEEE International Requirements Engineering Conference, pp 240–248
Ostrand TJ, Weyuker EJ, Bell RM (2007) Automating algorithms for the identification of fault-prone files. Paper presented at the Proceedings of the 2007 international symposium on Software testing and analysis, London, United Kingdom
Parnas DL (1994) Software Aging. In: Proceedings of the 16th International Conference on Software Engineering, Sorrento, Italy, pp 279–287
Raja U, Barry E (2005) Investigating quality in large-scale Open Source Software. Paper presented at the Proceedings of the fifth workshop on Open source software engineering, St. Louis, Missouri
Ren X, Shah F, Tip F, Ryder BG, Chesley O (2004a) Chianti: a tool for change impact analysis of java programs. Paper presented at the Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, Vancouver, BC, Canada
Ren X, Shah F, Tip F, Ryder BG, Chesley O (2004b) Chianti: a tool for change impact analysis of java programs. In: Proceedings of the 19th annual ACM SIGPLAN Conference on Object-oriented programming, systems, languages, and applications. ACM Press, Vancouver, BC, Canada, pp 432–448
Sommerville I (2004) Software Engineering, 7th edn. Addison-Wesley
Van Rysselberghe F, Demeyer S (2004) Mining Version Control Systems for FACs (Frequently Applied Changes). In: 26th International Conference on Software Engineering, Edinburgh, Scotland, pp 48–52
Williams B (2006) A Framework for Assessing the Impact of Software Changes to Software Architecture Using Change Classification. Master's Thesis, Mississippi State University, Starkville, MS
Williams B (2009) Change Decision Support: Extraction and Analysis of Late Architecture Chagnes Using Change Characterization and Software Metrics. Doctoral Dissertation, Mississippi State University, Starkville, MS
Williams B, Carver J (2007) Characterizing Software Architecture Changes: An Initial Study. In: Proceedings of the First International Conference on Empirical Software Engineering and Measurement, Madrid, Spain, pp 410–419
Williams B, Carver J (2010) Characterizing Software Architecture Changes: A Systematic Review. Inf Softw Technol 52(1):31–51
Acknowledgements
The authors thank the Empirical Software Engineering Research group at Mississippi State University and the Fraunhofer Center for Experimental Software Engineering in College Park, MD for feedback on the research and use of the TSAFE program. The authors also thank the study participants. This research was funded by NSF Grant CCF-0438923.
Author information
Authors and Affiliations
Corresponding author
Additional information
Editor: Brian Robinson
Rights and permissions
About this article
Cite this article
Williams, B.J., Carver, J.C. Examination of the software architecture change characterization scheme using three empirical studies. Empir Software Eng 19, 419–464 (2014). https://doi.org/10.1007/s10664-012-9223-y
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10664-012-9223-y