Abstract
Software systems need to evolve continuously in order to avoid becoming less useful. However, repeated changes in the software may impede the inner quality of the system. Modularity is considered an important aspect of a good inner quality, and the functional decomposition is an approach that enables to achieve good modularity. Nevertheless, existing approaches for functional decomposition ignore implementation efforts, and this may cause a situation where the required changes are too costly to implement. In this paper we describe an approach to employ functional decomposition for software architecture evolution considering also the implementation efforts.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Lehman, M.M.: On understanding laws, evolution, and conservation in the large-program life cycle. J. Syst. Softw. 1, 213–221 (1980)
Williams, B.J., Carver, J.C.: Characterizing software architecture changes: a systematic review. Inf. Softw. Technol. 52, 31–51 (2010)
Yskout, K., Scandariato, R., Joosen, W.: Change patterns - co-evolving requirements and architecture. Softw. Syst. Model. 13, 625–648 (2014)
Faitelson, D., Tyszberowicz, S.: Improving design decomposition (extended version). Form. Asp. Comput. 29, 601–627 (2017)
Breivold, H.P., Crnkovic, I., Larsson, M.: A systematic review of software architecture evolution research. Inf. Softw. Technol. 54, 16–40 (2012)
Rostami, K., Stammel, J., Heinrich, R., Reussner, R.: Architecture-based assessment and planning of change requests. In: 11th International ACM SIGSOFT Conference on Quality of Software Architectures, QoSA, pp. 21–30 (2015)
Faitelson, D., Heinrich, R., Tyszberowicz, S.: Supporting software architecture evolution by functional decomposition. In: Pires, L.F., Hammoudi, S., Selic, B. (eds.) 5th International Conference on Model-Driven Engineering and Software Development (MODELSWARD), Porto, Portugal, pp. 435–442 (2017)
Woodcock, J., Davies, J.: Using Z: Specification, Refinement, and Proof. Prentice-Hall, Upper Saddle River (1996)
Abrial, J.: The B-book: Assigning Programs to Meanings. Cambridge University Press, Cambridge (2005)
Abrial, J., Hallerstede, S.: Refinement, decomposition, and instantiation of discrete models: application to Event-B. Fundam. Inform. 77, 1–28 (2007)
Jackson, D.: Software Abstractions: Logic, Language, and Analysis. MIT Press, Cambridge (2012)
Codd, E.: The Relational Model for Database Management. Addison-Wesley Longman Publishing, Boston (1990)
Spivey, J.M.: Z Notation - A Reference Manual, 2nd edn. Prentice Hall, Upper Saddle River (1992)
Subsystem decomposition. http://goo.gl/m5gnW3. Accessed Apr 2018
Morgan, C.: Programming from Specifications. Prentice-Hall, Inc., Upper Saddle River (1990)
Faitelson, D., Tyszberowicz, S.: Improving design decomposition. In: Li, X., Liu, Z., Yi, W. (eds.) SETTA 2015. LNCS, vol. 9409, pp. 185–200. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-25942-0_12
North, S.C.: Drawing graphs with NEATO. NEATO User’s Manual (2004)
Kamada, T., Kawai, S.: An algorithm for drawing general undirected graphs. Inf. Process. Lett. 31, 7–15 (1989)
OMG: UML superstructure specification, v2.4.1. Technical report, OMG (2011)
Reussner, R.H., Becker, S., Happe, J., Heinrich, R., Koziolek, A., Koziolek, H., Kramer, M., Krogmann, K.: Modeling and Simulating Software Architectures: The Palladio Approach. MIT Press, Cambridge (2016)
Heinrich, R., Rostami, K., Stammel, J., Knapp, T., Reussner, R.: Architecture-based analysis of changes in information system evolution. In: 17th Workshop Software-Reengineering & Evolution, SWT-Trends, vol. 34 (2015)
Heger, C., Heinrich, R.: Deriving work plans for solving performance and scalability problems. In: Horváth, A., Wolter, K. (eds.) EPEW 2014. LNCS, vol. 8721, pp. 104–118. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-10885-8_8
Rostami, K., Heinrich, R., Busch, A., Reussner, R.: Architecture-based change impact analysis in information systems and business processes. In: 2017 IEEE International Conference on Software Architecture (ICSA), pp. 179–188 (2017)
Vogel-Heuser, B., Heinrich, R., Cha, S., Rostami, K., Ocker, F., Koch, S., Reussner, R., Ziegltrum, S.: Maintenance effort estimation with kamp4aps for cross-disciplinary automated production systems - a collaborative approach. In: 20th IFAC World Congress, Toulouse, France (2017)
Vanya, A., Klusener, S., Premraj, R., van Vliet, H.: Supporting software architects to improve their software system’s decomposition - lessons learned. J. Softw.: Evol. Process 25, 219–232 (2013)
Streekmann, N.: Clustering-Based Support for Software Architecture Restructuring. Software Engineering Research. Vieweg+Teubner Verlag, Wiesbaden (2011). https://doi.org/10.1007/978-3-8348-8675-0
Parnas, D.L.: On the criteria to be used in decomposing systems into modules. In: Broy, M., Denert, E. (eds.) Software Pioneers, pp. 1–6. Springer, Heidelberg (2002). https://doi.org/10.1007/978-3-642-59412-0_26
Abrial, J.: Modeling in Event-B: System and Software Engineering. Cambridge University Press, Cambridge (2010)
e Abreu, F.B., Goulão, M.: Coupling and cohesion as modularization drivers: are we being over-persuaded? In: 5th European Conference on Software Maintenance and Reengineering, CSMR, pp. 47–57 (2001)
Al-Dallal, J.: Measuring the discriminative power of object-oriented class cohesion metrics. Trans. Softw. Eng. 37, 788–804 (2011)
Moser, M., Misic, V.B.: Measuring class coupling and cohesion: a formal metamodel approach. In: 4th Asia-Pacific Software Engineering and International Computer Science Conference, APSEC, pp. 31–40 (1997)
Mayer, T., Hall, T.: Measuring OO systems: a critical analysis of the MOOD metrics. In: TOOLS, pp. 108–117 (1999)
Darcy, D.P., Kemerer, C.F.: Software complexity: toward a unified theory of coupling and cohesion. In: Friday Workshops, Information Systems Research Center, Carlson School of Management, University of Minnesota (2002)
Hitz, M., Montazeri, B.: Measuring coupling and cohesion in object-oriented systems. In: International Symposium on Applied Corporate Computing (ISACC), pp. 1–10 (1995)
Birkmeier, D., Overhage, S.: On component identification approaches – classification, state of the art, and comparison. In: Lewis, G.A., Poernomo, I., Hofmeister, C. (eds.) CBSE 2009. LNCS, vol. 5582, pp. 1–18. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-02414-6_1
Kim, S.D., Chang, S.H.: A systematic method to identify software components. In: 11th Asia-Pacific Software Engineering Conference (APSEC), pp. 538–545 (2004)
Lee, J.K., Jung, S.J., Kim, S.D., Jang, W.H., Ham, D.H.: Component identification method with coupling and cohesion. In: APSEC, pp. 79–86 (2001)
Jang, Y.-J., Kim, E.-Y., Lee, K.-W.: Object-oriented component identification method using the affinity analysis technique. In: Konstantas, D., Léonard, M., Pigneur, Y., Patel, S. (eds.) OOIS 2003. LNCS, vol. 2817, pp. 317–321. Springer, Heidelberg (2003). https://doi.org/10.1007/978-3-540-45242-3_33
Fan-Chao, M., Den-Chen, Z., Xiao-Fei, X.: Business component identification of enterprise information system: a hierarchical clustering method. In: IEEE International Conference on e-Business Engineering, ICEBE, pp. 473–480 (2005)
Lung, C.H., Xu, X., Zaman, M.: Software architecture decomposition using attributes. Softw. Eng. Knowl. Eng. 17, 599–613 (2007)
Kirwan, B., Ainsworth, L.: A Guide To Task Analysis: The Task Analysis Working Group. Taylor & Francis, Abingdon (2003)
Boehm, B.W., et al.: Software Cost Estimation with Cocomo II with Cdrom. Prentice Hall, Upper Saddle River (2000)
Paulish, D.J.: Architecture-Centric Software Project Management: A Practical Guide. AW, Boston (2002)
Garlan, D., et al.: Evolution styles: foundations and tool support for software architecture evolution. In: Software Architecture, WICSA/ECSA, pp. 131–140. IEEE (2009)
Acknowledgement
This work has been partially supported by GIF (grant No. 1131-9.6/2011) and the DFG (German Research Foundation) under the Priority Programme SPP1593.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG, part of Springer Nature
About this paper
Cite this paper
Faitelson, D., Heinrich, R., Tyszberowicz, S. (2018). Functional Decomposition for Software Architecture Evolution. In: Pires, L., Hammoudi, S., Selic, B. (eds) Model-Driven Engineering and Software Development. MODELSWARD 2017. Communications in Computer and Information Science, vol 880. Springer, Cham. https://doi.org/10.1007/978-3-319-94764-8_16
Download citation
DOI: https://doi.org/10.1007/978-3-319-94764-8_16
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-94763-1
Online ISBN: 978-3-319-94764-8
eBook Packages: Computer ScienceComputer Science (R0)