Skip to main content

Improving Design Decomposition

  • Conference paper
  • First Online:
Dependable Software Engineering: Theories, Tools, and Applications (SETTA 2015)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 9409))

Abstract

Decomposing a system into subsystems is essential to the design of large software systems. Traditionally, it is performed intuitively without rigorously analyzing the system model. This makes it difficult to check the decomposition correctness, and risks creating subsystems that are either too tightly coupled or not cohesive enough. An aggravating factor is that traditionally classes are the atomic design units. In many cases, however, the same classes play a role in more than one subsystem, and partitioning them unbroken among the subsystems may increase coupling and reduce cohesion. We present an analytical approach that enables reasoning about early exploration of decomposition alternatives. In addition, we describe a visual notation for diagramming the composition of subsystems, and an automatic technique for suggesting good decompositions. A key to our approach is that individual relations, not classes, are the atomic design units. We illustrate the approach with examples and demonstrate its effectiveness on a commercial system.

This work has been partially supported by GIF (grant No. 1131-9.6/2011).

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Subsystem decomposition. http://goo.gl/m5gnW3. Accessed: June 2015

  2. Abrial, J.: The B-book: Assigning programs to meanings. Cambridge Press (2005)

    Google Scholar 

  3. Abrial, J.-R., Hallerstede, S.: Refinement, decomposition, and instantiation of discrete models: Application to event-b. Fundam. Inf. 77(1–2), 1–28 (2007)

    MathSciNet  MATH  Google Scholar 

  4. Al-Dallal, J.: Measuring the discriminative power of object-oriented class cohesion metrics. Trans. on Software Engineering 37(6), 788–804 (2011)

    Article  Google Scholar 

  5. Bastian, M., Heymann, S., Jacomy, M.: Gephi: An open source software for exploring and manipulating networks. In: ICWSM. The AAAI Press (2009)

    Google Scholar 

  6. Becker, S., Hauck, M., Trifu, M., Krogmann, K., Kofron, J.: Reverse engineering component models for quality predictions. In: CSMR, pp. 194–197. IEEE (2010)

    Google Scholar 

  7. 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. LNCS, vol. 5582, pp. 1–18. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  8. Blondel, V., Guillaume, J., Lambiotte, R., Mech, E.: Fast unfolding of communities in large networks. J. Stat. Mech. 10, 2008 (2008)

    Google Scholar 

  9. Bruegge, B., Dutoit, A.: Object-Oriented Software Engineering. Pearson (2010)

    Google Scholar 

  10. e Abreu, F.B., Goulão, M.: Coupling and cohesion as modularization drivers: Are we being over-persuaded? In: CSMR, pp. 47–57. IEEE (2001)

    Google Scholar 

  11. Fan-Chao, M., Den-Chen, Z., Xiao-Fei, X.: Business component identification of enterprise information system: a hierarchical clustering method. In: ICEBE, pp. 473–480. IEEE (2005)

    Google Scholar 

  12. Fowler, M.: Reducing coupling. IEEE Software 18(4), 102–104 (2001)

    Article  MathSciNet  Google Scholar 

  13. Heinrich, R., Gärtner, S., Hesse, T.-M., Ruhroth, T., Reussner, R., Schneider, K., Paech, B., Jürjens, J.: A platform for empirical research on information system evolution. In: SEKE, pp. 415–420 (2015)

    Google Scholar 

  14. Hitz, M., Montazeri, B.: Measuring coupling and cohesion in object-oriented systems. In: ISAAC, pp. 1–10 (1995)

    Google Scholar 

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

    Google Scholar 

  16. Kamada, T., Kawai, S.: An algorithm for drawing general undirected graphs. Information processing letters 31(1), 7–15 (1989)

    Article  MathSciNet  MATH  Google Scholar 

  17. Kim, S.D., Chang, S.H.: A systematic method to identify software components. In: APSEC, pp. 538–545. IEEE (2004)

    Google Scholar 

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

  19. Lung, C.-H., Xu, X., Zaman, M.: Software architecture decomposition using attributes. Software Engineering and Knowledge Engineering 17(5), 599–613 (2007)

    Article  Google Scholar 

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

    Google Scholar 

  21. Morgan, C.: Programming from Specifications. Prentice-Hall Inc (1990)

    Google Scholar 

  22. Moser, M., Misic, V.B.: Measuring class coupling and cohesion: A formal metamodel approach. In: APSEC, pp. 31–40. IEEE (1997)

    Google Scholar 

  23. North, S.C.: Drawing graphs with NEATO, 2004. NEATO User Manual

    Google Scholar 

  24. Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972)

    Article  Google Scholar 

  25. Roscoe, A.W.: The Theory and Practice of Concurrency. Prentice Hall (1997)

    Google Scholar 

  26. Woodcock, J., Davies, J.: Using Z: Specification, Refinement, and Proof. Prentice-Hall (1996)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to David Faitelson .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this paper

Cite this paper

Faitelson, D., Tyszberowicz, S. (2015). Improving Design Decomposition. In: Li, X., Liu, Z., Yi, W. (eds) Dependable Software Engineering: Theories, Tools, and Applications. SETTA 2015. Lecture Notes in Computer Science(), vol 9409. Springer, Cham. https://doi.org/10.1007/978-3-319-25942-0_12

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-25942-0_12

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-25941-3

  • Online ISBN: 978-3-319-25942-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics