Skip to main content

Functional Decomposition for Software Architecture Evolution

  • Conference paper
  • First Online:
Model-Driven Engineering and Software Development (MODELSWARD 2017)

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.

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

Similar content being viewed by others

References

  1. Lehman, M.M.: On understanding laws, evolution, and conservation in the large-program life cycle. J. Syst. Softw. 1, 213–221 (1980)

    Article  Google Scholar 

  2. Williams, B.J., Carver, J.C.: Characterizing software architecture changes: a systematic review. Inf. Softw. Technol. 52, 31–51 (2010)

    Article  Google Scholar 

  3. Yskout, K., Scandariato, R., Joosen, W.: Change patterns - co-evolving requirements and architecture. Softw. Syst. Model. 13, 625–648 (2014)

    Article  Google Scholar 

  4. Faitelson, D., Tyszberowicz, S.: Improving design decomposition (extended version). Form. Asp. Comput. 29, 601–627 (2017)

    Article  MathSciNet  Google Scholar 

  5. Breivold, H.P., Crnkovic, I., Larsson, M.: A systematic review of software architecture evolution research. Inf. Softw. Technol. 54, 16–40 (2012)

    Article  Google Scholar 

  6. 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)

    Google Scholar 

  7. 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)

    Google Scholar 

  8. Woodcock, J., Davies, J.: Using Z: Specification, Refinement, and Proof. Prentice-Hall, Upper Saddle River (1996)

    MATH  Google Scholar 

  9. Abrial, J.: The B-book: Assigning Programs to Meanings. Cambridge University Press, Cambridge (2005)

    Google Scholar 

  10. Abrial, J., Hallerstede, S.: Refinement, decomposition, and instantiation of discrete models: application to Event-B. Fundam. Inform. 77, 1–28 (2007)

    MathSciNet  MATH  Google Scholar 

  11. Jackson, D.: Software Abstractions: Logic, Language, and Analysis. MIT Press, Cambridge (2012)

    Google Scholar 

  12. Codd, E.: The Relational Model for Database Management. Addison-Wesley Longman Publishing, Boston (1990)

    MATH  Google Scholar 

  13. Spivey, J.M.: Z Notation - A Reference Manual, 2nd edn. Prentice Hall, Upper Saddle River (1992)

    MATH  Google Scholar 

  14. Subsystem decomposition. http://goo.gl/m5gnW3. Accessed Apr 2018

  15. Morgan, C.: Programming from Specifications. Prentice-Hall, Inc., Upper Saddle River (1990)

    MATH  Google Scholar 

  16. 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

    Chapter  Google Scholar 

  17. North, S.C.: Drawing graphs with NEATO. NEATO User’s Manual (2004)

    Google Scholar 

  18. Kamada, T., Kawai, S.: An algorithm for drawing general undirected graphs. Inf. Process. Lett. 31, 7–15 (1989)

    Article  MathSciNet  Google Scholar 

  19. OMG: UML superstructure specification, v2.4.1. Technical report, OMG (2011)

    Google Scholar 

  20. 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)

    Google Scholar 

  21. 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)

    Google Scholar 

  22. 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

    Chapter  Google Scholar 

  23. 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)

    Google Scholar 

  24. 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)

    Google Scholar 

  25. 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)

    Google Scholar 

  26. 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

    Book  Google Scholar 

  27. 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

    Chapter  Google Scholar 

  28. Abrial, J.: Modeling in Event-B: System and Software Engineering. Cambridge University Press, Cambridge (2010)

    Book  Google Scholar 

  29. 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)

    Google Scholar 

  30. Al-Dallal, J.: Measuring the discriminative power of object-oriented class cohesion metrics. Trans. Softw. Eng. 37, 788–804 (2011)

    Article  Google Scholar 

  31. 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)

    Google Scholar 

  32. Mayer, T., Hall, T.: Measuring OO systems: a critical analysis of the MOOD metrics. In: TOOLS, pp. 108–117 (1999)

    Google Scholar 

  33. 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)

    Google Scholar 

  34. Hitz, M., Montazeri, B.: Measuring coupling and cohesion in object-oriented systems. In: International Symposium on Applied Corporate Computing (ISACC), pp. 1–10 (1995)

    Google Scholar 

  35. 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

    Chapter  Google Scholar 

  36. 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)

    Google Scholar 

  37. 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)

    Google Scholar 

  38. 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

    Chapter  Google Scholar 

  39. 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)

    Google Scholar 

  40. Lung, C.H., Xu, X., Zaman, M.: Software architecture decomposition using attributes. Softw. Eng. Knowl. Eng. 17, 599–613 (2007)

    Article  Google Scholar 

  41. Kirwan, B., Ainsworth, L.: A Guide To Task Analysis: The Task Analysis Working Group. Taylor & Francis, Abingdon (2003)

    Google Scholar 

  42. Boehm, B.W., et al.: Software Cost Estimation with Cocomo II with Cdrom. Prentice Hall, Upper Saddle River (2000)

    Google Scholar 

  43. Paulish, D.J.: Architecture-Centric Software Project Management: A Practical Guide. AW, Boston (2002)

    Google Scholar 

  44. Garlan, D., et al.: Evolution styles: foundations and tool support for software architecture evolution. In: Software Architecture, WICSA/ECSA, pp. 131–140. IEEE (2009)

    Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Robert Heinrich .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer International Publishing AG, part of Springer Nature

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics