{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,4]],"date-time":"2026-05-04T10:51:51Z","timestamp":1777891911877,"version":"3.51.4"},"reference-count":35,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2017,7,1]],"date-time":"2017-07-01T00:00:00Z","timestamp":1498867200000},"content-version":"unspecified","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"funder":[{"DOI":"10.13039\/501100001736","name":"German-Israeli Foundation for Scientific Research and Development","doi-asserted-by":"publisher","award":["1131-9.6\/2011"],"award-info":[{"award-number":["1131-9.6\/2011"]}],"id":[{"id":"10.13039\/501100001736","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Form. Asp. Comput."],"published-print":{"date-parts":[[2017,7]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>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 paper is an extended version of previous work.<\/jats:p>","DOI":"10.1007\/s00165-017-0428-0","type":"journal-article","created":{"date-parts":[[2017,4,7]],"date-time":"2017-04-07T07:26:06Z","timestamp":1491549966000},"page":"601-627","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":7,"title":["Improving design decomposition (extended version)"],"prefix":"10.1145","volume":"29","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-8332-7644","authenticated-orcid":false,"given":"David","family":"Faitelson","sequence":"first","affiliation":[{"name":"Afeka Tel Aviv Academic College of Engineering, Tel Aviv, Israel"}]},{"given":"Shmuel","family":"Tyszberowicz","sequence":"additional","affiliation":[{"name":"The Academic College Tel Aviv-Yaffo, Tel Aviv, Israel"}]}],"member":"320","reference":[{"key":"e_1_2_1_2_1_2","volume-title":"The B-book: assigning programs to meanings","author":"Abrial JR","year":"2005"},{"key":"e_1_2_1_2_2_2","doi-asserted-by":"publisher","DOI":"10.1017\/CBO9781139195881"},{"key":"e_1_2_1_2_3_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2010.97"},{"key":"e_1_2_1_2_4_2","doi-asserted-by":"publisher","DOI":"10.5555\/2366448.2366450"},{"key":"e_1_2_1_2_5_2","unstructured":"Abrial JR Hallerstede S (2009) Event model decomposition. Technical Report 626 ETH Zurich"},{"key":"e_1_2_1_2_6_2","unstructured":"Bruegge B Dutoit AH (2012) Object-oriented software engineering 3rd edition. Pearson"},{"key":"e_1_2_1_2_7_2","doi-asserted-by":"crossref","unstructured":"Blondel VD Guillaume JL Lambiotte R Mech ELJS (2008) Fast unfolding of communities in large networks. J Stat Mech: Theory Exp P10008(10)","DOI":"10.1088\/1742-5468\/2008\/10\/P10008"},{"key":"e_1_2_1_2_8_2","doi-asserted-by":"crossref","unstructured":"Bastian M Heymann S Jacomy M (2009) Gephi: an open source software for exploring and manipulating networks. In: International AAAI Conference on Web and Social Media (ICWSM). The AAAI Press","DOI":"10.1609\/icwsm.v3i1.13937"},{"key":"e_1_2_1_2_9_2","doi-asserted-by":"crossref","unstructured":"Becker S Hauck M Trifu M Krogmann K Kofron J (2010) Reverse engineering component models for quality predictions. In: 14th European Conference on Software Maintenance and Reengineering (CSMR) pp 194\u2013197. IEEE","DOI":"10.1109\/CSMR.2010.34"},{"key":"e_1_2_1_2_10_2","doi-asserted-by":"crossref","unstructured":"Birkmeier D Overhage S (2009) On component identification approaches\u2013classification state of the art and comparison. In: 12th International Symposium on Component-Based Software Engineering (CBSE) pp 1\u201318. IEEE","DOI":"10.1007\/978-3-642-02414-6_1"},{"key":"e_1_2_1_2_11_2","unstructured":"Carroll M (1990) Programming from specifications. Prentice-Hall Inc. Englewood Cliffs"},{"key":"e_1_2_1_2_12_2","doi-asserted-by":"crossref","unstructured":"Carrington DA Duke DJ Hayes IJ Welsh J (1993) Deriving modular designs from formal specifications. In: Notkin D (ed) First ACM SIGSOFT symposium on foundations of software engineering pp 89\u201398. ACM","DOI":"10.1145\/167049.167066"},{"key":"e_1_2_1_2_13_2","unstructured":"Codd EF (1990) The relational model for database management: version 2. Addison-Wesley Longman Publishing"},{"key":"e_1_2_1_2_14_2","unstructured":"e Abreu FB Goul\u00e3o M (2001) Coupling and cohesion as modularization drivers: are we being over-persuaded? In: 5th Conference on Software Maintenance and Reengineering (CSMR) pp 47\u201357. IEEE"},{"key":"e_1_2_1_2_15_2","doi-asserted-by":"crossref","unstructured":"Fan-Chao M Den-Chen Z Xiao-Fei X (2005) Business component identification of enterprise information system: a hierarchical clustering method. In: IEEE International Conference on e-Business Engineering (ICEBE) pp 473\u2013480. IEEE","DOI":"10.1109\/ICEBE.2005.32"},{"key":"e_1_2_1_2_16_2","doi-asserted-by":"publisher","DOI":"10.1109\/MS.2001.936226"},{"key":"e_1_2_1_2_17_2","doi-asserted-by":"crossref","unstructured":"Faitelson D Tyszberowicz S (2015) Improving design decomposition. In: Li X Liu Z Yi W (eds) First international symposium on dependable software engineering: theories tools and applications (SETTA) Nanjing China volume 9409 of Lecture Notes in Computer Science pp 185\u2013200. Springer","DOI":"10.1007\/978-3-319-25942-0_12"},{"key":"e_1_2_1_2_18_2","doi-asserted-by":"crossref","unstructured":"Heinrich R G\u00e4rtner S Hesse TM Ruhroth T Reussner R Schneider K Paech B J\u00fcrjens J (2015) A platform for empirical research on information system evolution. In: 27th International conference on software engineering and knowledge engineering (SEKE) pp 415\u2013420","DOI":"10.18293\/SEKE2015-066"},{"key":"e_1_2_1_2_19_2","unstructured":"Hitz M Montazeri B (1995) Measuring coupling and cohesion in object-oriented systems. In: International symposium on applied corporate computing (ISAAC) pp 1\u201310"},{"key":"e_1_2_1_2_20_2","volume-title":"Software abstractions: logic, language, and analysis","author":"Jackson D","year":"2012"},{"key":"e_1_2_1_2_21_2","doi-asserted-by":"publisher","DOI":"10.1016\/0020-0190(89)90102-6"},{"key":"e_1_2_1_2_22_2","unstructured":"Kim SD Chang SH (2004) A systematic method to identify software components. In: 11th Asia-Pacific Software Engineering Conference (APSEC) pp 538\u2013545. IEEE"},{"key":"e_1_2_1_2_23_2","doi-asserted-by":"crossref","unstructured":"Liu Z He J Li X Chen Y (2003) A relational model for formal object-oriented requirement analysis in UML. In: Dong JS Woodcock J (eds) Formal methods and software engineering 5th international conference on formal engineering methods (ICFEM) vol 2885 of LNCS pp 641\u2013664","DOI":"10.1007\/978-3-540-39893-6_36"},{"key":"e_1_2_1_2_24_2","doi-asserted-by":"crossref","unstructured":"Li D Li X Liu Z Stolz V (2011) Interactive transformations from object-oriented models to component-based models. In: Arbab F \u00d6lveczky PC (eds) International symposium on formal aspects of component software (FACS) revised selected papers vol 7253 of lecture notes in computer science pp 97\u2013114. Springer","DOI":"10.1007\/978-3-642-35743-5_7"},{"key":"e_1_2_1_2_25_2","unstructured":"Lee JK Seung SJ Kim SD Hyun WH Ham DH (2001) Component identification method with coupling and cohesion. In: 8th Asia-Pacific Software Engineering Conference (APSEC) pp 79\u201386"},{"key":"e_1_2_1_2_26_2","doi-asserted-by":"publisher","DOI":"10.1142\/S0218194007003410"},{"key":"e_1_2_1_2_27_2","doi-asserted-by":"publisher","DOI":"10.5555\/1096143"},{"key":"e_1_2_1_2_28_2","doi-asserted-by":"crossref","unstructured":"Mayer T Hall T (1999) Measuring OO systems: a critical analysis of the MOOD metrics. In: International conference on technology of object-oriented languages and systems (TOOLS) pp 108\u2013117. IEEE","DOI":"10.1109\/TOOLS.1999.779004"},{"key":"e_1_2_1_2_29_2","doi-asserted-by":"crossref","unstructured":"Moser S Misic VB (1997) Measuring class coupling and cohesion: a formal metamodel approach. In: 4th Asia-Pacific software engineering and international computer science conference (APSEC) pp 31\u201340. IEEE","DOI":"10.1109\/APSEC.1997.640159"},{"key":"e_1_2_1_2_30_2","unstructured":"North SC (2004) Drawing graphs with NEATO. NEATO Users Manual"},{"key":"e_1_2_1_2_31_2","unstructured":"OMG (2011) UML superstructure specification v2.4.1. Technical report OMG"},{"key":"e_1_2_1_2_32_2","doi-asserted-by":"publisher","DOI":"10.5555\/550448"},{"key":"e_1_2_1_2_33_2","doi-asserted-by":"crossref","unstructured":"Rausch A Reussner RH Mirandola R Plasil F (2008) The common component modeling example: comparing software component models vol 5153 of LNCS. Springer Berlin","DOI":"10.1007\/978-3-540-85289-6"},{"key":"e_1_2_1_2_34_2","unstructured":"Subsystem decomposition. http:\/\/goo.gl\/m5gnW3. Accessed Sept 2016"},{"key":"e_1_2_1_2_35_2","volume-title":"Using Z: specification, refinement, and proof","author":"Woodcock J","year":"1996"}],"container-title":["Formal Aspects of Computing"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/article\/10.1007\/s00165-017-0428-0\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s00165-017-0428-0.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s00165-017-0428-0.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1007\/s00165-017-0428-0","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T21:18:41Z","timestamp":1750195121000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1007\/s00165-017-0428-0"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017,7]]},"references-count":35,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2017,7]]}},"alternative-id":["10.1007\/s00165-017-0428-0"],"URL":"https:\/\/doi.org\/10.1007\/s00165-017-0428-0","relation":{},"ISSN":["0934-5043","1433-299X"],"issn-type":[{"value":"0934-5043","type":"print"},{"value":"1433-299X","type":"electronic"}],"subject":[],"published":{"date-parts":[[2017,7]]}}}