Abstract
Change impact analysis is fundamental in software evolution, since it allows one to determine potential effects upon a system resulting from changing requirements. While prior work has generically considered change impact analysis at architectural level, there is a distinct lack of support for the kinds of architectures used to realize software product lines, so-called product-line architectures (PLAs). In particular, prior approaches do not account for variability, a specific characteristic of software product lines. This paper presents a new technique for change impact analysis that targets product-line architectures. We propose to join a traceability-based algorithm and a rule-based inference engine to effectively traverse modeling artifacts that account for variability. In contrast to prior approaches, our technique supports the mechanisms for (i) specifying variability in PLAs, (ii) documenting PLA knowledge, and (iii) tracing variability between requirements and PLAs. We demonstrate our technique by applying it to the analysis of requirements changes in the product-line architecture of a banking system.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Ali Babar, M., Dingsyr, T., Lago, P., van Vliet, H.: Software Architecture Knowledge Management. Springer, Heidelberg (2009)
Assmann, U.: Invasive Software Composition. Springer-Verlag New York, Inc., Secaucus (2003)
Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 2nd edition, 2nd edn. Addison-Wesley Pearson Education, Reading (2003)
Bosch, J.: Product-line architectures in industry: a case study. In: Proceedings of the 21st International Conference on Software Engineering, ICSE 1999, pp. 544–554. ACM, New York (1999)
Chen, C.-Y., Chen, P.-C.: A holistic approach to managing software change impact. J. Syst. Softw. 82(12), 2051–2067 (2009)
Cho, H., Gray, J., Cai, Y., Wong, S., Xie, T.: Model-Driven Impact Analysis of Software Product Lines. In: Model-Driven Domain Analysis and Software Development: Architectures and Functions, pp. 275–303. Information Science Reference (2010)
Clements, P., Bachmann, F., Bass, L., Garlan, D., Ivers, J., Little, R., Nord, R., Stafford, J.A.: Documenting Software Architectures: Views and Beyond, 2nd edn. Addison-Wesley Professional, Reading (2010)
Czarnecki, K., Helsen, S., Eisenecker, U.W.: Staged configuration through specialization and multilevel configuration of feature models. Software Process: Improvement and Practice 10(2), 143–169 (2005)
Dashofy, E.M., van der Hoek, A., Taylor, R.N.: A comprehensive approach for the development of modular software architecture description languages. ACM Trans. Softw. Eng. Methodol. 14(2), 199–245 (2005)
de Boer, R.C., van Vliet, H.: Architectural knowledge discovery with latent semantic analysis: Constructing a reading guide for software product audits. J. Syst. Softw. 81, 1456–1469 (2008)
Feng, T., Maletic, J.I.: Applying dynamic change impact analysis in component-based architecture design. In: SNPD-SAWN 2006: Proceedings of the Seventh ACIS International Conference on Software Engineering, Artificial Intelligence, Networking, and Parallel/Distributed Computing, pp. 43–48. IEEE Computer Society, Washington, DC, USA (2006)
Hassan, M.O., Deruelle, L., Basson, H.: A knowledge-based system for change impact analysis on software architecture. In: Proceedings of Fourth International Conference on Research Challenges in Information Science, pp. 545–556 (2010)
Jansen, A., Bosch, J.: Software architecture as a set of architectural design decisions. In: Proceedings of 5th Working IEEE/IFIP Conference on Software Architecture (WICSA 2005), pp. 109–120 (2005)
Kagdi, H., Hammad, M., Maletic, J.: Who can help me with this source code change? In: IEEE International Conference on Software Maintenance (ICSM 2008), p. 157 (2008)
Kim, S., Whitehead, E., Zhang, Y.: Classifying software changes: Clean or buggy? IEEE Transactions on Software Engineering 34(2), 181–196 (2008)
Kruchten, P., Lago, P., van Vliet, H.: Building up and reasoning about architectural knowledge. In: Hofmeister, C., Crnković, I., Reussner, R. (eds.) QoSA 2006. LNCS, vol. 4214, pp. 43–58. Springer, Heidelberg (2006)
Landauer, T., Foltz, P., Lahan, D.: An introduction to latent semantic analysis (1998), http://lsa.colorado.edu/papers/dp1.LSAintro.pdf
Lee, M., Offutt, A.J., Alexander, R.T.: Algorithmic analysis of the impacts of changes to object-oriented software. In: TOOLS 2000: Proceedings of the Technology of Object-Oriented Languages and Systems, pp. 61–70. IEEE Computer Society, Washington, DC, USA (2000)
Linden, F., Schmid, K., Rommes, E.: Software Product Lines in Action. Springer, Heidelberg (2007)
Mohan, K., Ramesh, B.: Managing variability with traceability in product and service families. In: Proceedings of the 35th Annual Hawaii International Conference on System Sciences, HICSS, pp. 1309–1317 (2002)
Mohan, K., Ramesh, B.: Tracing variations in software product families. Commun. ACM 50, 68–73 (2007)
Moon, M., Chae, H.S., Nam, T., Yeom, K.: A metamodeling approach to tracing variability between requirements and architecture in software product lines. In: CIT 2007: Proceedings of the 7th IEEE International Conference on Computer and Information Technology, pp. 927–933. IEEE Computer Society, Washington, DC, USA (2007)
Olsen, G., Oldevik, J.: Scenarios of traceability in model to text transformations. In: Akehurst, D., Vogel, R., Paige, R. (eds.) ECMDA-FA. LNCS, vol. 4530, pp. 144–156. Springer, Heidelberg (2007)
Pérez, J., Díaz, J., Garbajosa, J., Alarcón, P.P.: Flexible working architectures: Agile architecting using ppcs. In: Babar, M.A., Gorton, I. (eds.) ECSA 2010. LNCS, vol. 6285, pp. 102–117. Springer, Heidelberg (2010)
Pérez, J., Díaz, J., Soria, C.C., Garbajosa, J.: Plastic partial components: A solution to support variability in architectural components. In: Proceedings of Joint Working IEEE/IFIP Conference on Software Architecture 2009 and European Conference on Software Architecture, WICSA/ECSA, pp. 221–230. IEEE Computer Society Press, Los Alamitos (2009)
Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. SIGSOFT Softw. Eng. Notes 17(4), 40–52 (1992)
Pohl, K., Brandenburg, M., Glich, A.: Integrating requirement and architecture information: A scenario and meta-model approach. In: REFSQ 2001: Proceedings of The Seventh International Workshop on Requirements Engineering: Foundation for Software Quality, pp. 68–84 (2001)
Ramesh, B., Jarke, M.: Toward reference models for requirements traceability. IEEE Trans. Softw. Eng. 27(1), 58–93 (2001)
Riebisch, M., Wohlfarth, S.: Introducing impact analysis for architectural decisions. In: Proceedings of the 14th Annual IEEE International Conference and Workshops on the Engineering of Computer-Based Systems, pp. 381–392. IEEE Computer Society, Washington, DC, USA (2007)
Satyananda, T.K., Lee, D., Kang, S., Hashmi, S.I.: Identifying traceability between feature model and software architecture in software product line using formal concept analysis. In: ICCSA 2007: Proceedings of the The 2007 International Conference Computational Science and its Applications, pp. 380–388. IEEE Computer Society, Washington, DC, USA (2007)
Scott, J., Kazman, R.: Realizing and refining architectural tactics: Availability. Technical report, CMU/SEI-2009-TR-006 ESC-TR-2009-006 (2009)
M., Shahin, Liang, P., Khayyambashi, M.: Architectural design decision: Existing models and tools. In: Joint Working IEEE/IFIP Conference on Software Architecture, 2009 European Conference on Software Architecture, WICSA/ECSA 2009, pp. 293–296 (2009)
Tang, A., Babar, M.A., Gorton, I., Han, J.: A survey of architecture design rationale. J. Syst. Softw. 79, 1792–1804 (2006)
Tang, A., Jin, Y., Han, J.: A rationale-based architecture model for design traceability and reasoning. J. Syst. Softw. 80, 918–934 (2007)
Tang, A., Nicholson, A., Jin, Y., Han, J.: Using bayesian belief networks for change impact analysis in architecture design. J. Syst. Softw. 80, 127–148 (2007)
van der Hoek, A., Mikic-Rakic, M., Roshandel, R., Medvidovic, N.: Taming architectural evolution. In: Proceedings of the ESEC/FSE-9, pp. 1–10. ACM, New York (2001)
van Vliet, H.: Software architecture knowledge management. In: 19th Australian Conference on Software Engineering, 2008, ASWEC 2008, pp. 24–31 (2008)
Vora, U.: Change impact analysis and software evolution specification for continually evolving systems. In: Proceedings of Fifth International Conference on Software Engineering Advances (ICSEA), pp. 238–243 (2010)
Williams, B.J., Carver, J.C.: Characterizing software architecture changes: A systematic review. Inf. Softw. Technol. 52(1), 31–51 (2010)
Zhao, J., Yang, H., Xiang, L., Xu, B.: Change impact analysis to support architectural evolution. Journal of Software Maintenance 14, 317–333 (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Díaz, J., Pérez, J., Garbajosa, J., Wolf, A.L. (2011). Change Impact Analysis in Product-Line Architectures. In: Crnkovic, I., Gruhn, V., Book, M. (eds) Software Architecture. ECSA 2011. Lecture Notes in Computer Science, vol 6903. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-23798-0_12
Download citation
DOI: https://doi.org/10.1007/978-3-642-23798-0_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-23797-3
Online ISBN: 978-3-642-23798-0
eBook Packages: Computer ScienceComputer Science (R0)