{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,11]],"date-time":"2026-03-11T01:31:43Z","timestamp":1773192703255,"version":"3.50.1"},"reference-count":40,"publisher":"Wiley","issue":"4","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":5050,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["J. Softw. Maint: Res. Pract."],"published-print":{"date-parts":[[1993,1]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Reverse\u2010engineering is the process of extracting system abstractions and design information out of existing software systems. This process involves the identification of software artefacts in a particular subject system, the exploration of how these artefacts interact with one another, and their aggregation to form more abstract system representations that facilitate program understanding.<\/jats:p><jats:p>This paper describes our approach to creating higher\u2010level abstract representations of a subject system, which involves the identification of related components and dependencies, the construction of layered subsystem structures, and the computation of exact interfaces among subsystems. We show how top\u2010down decompositions of a subject system can be (re)constructed via bottom\u2010up subsystem composition. This process involves identifying groups of building blocks (e.g., variables, procedures, modules, and subsystems) using composition operations based on software engineering principles such as low coupling and high cohesion. The result is an architecture of layered subsystem structures.<\/jats:p><jats:p>The structures are manipulated and recorded using the Rigi system, which consists of a distributed graph editor and a parsing system with a central repository. The editor provides graph filters and clustering operations to build and explore subsystem hierarchies interactively. The paper concludes with a detailed, step\u2010by\u2010step analysis of a 30\u2010module software system using Rigi.<\/jats:p>","DOI":"10.1002\/smr.4360050402","type":"journal-article","created":{"date-parts":[[2006,11,17]],"date-time":"2006-11-17T15:57:51Z","timestamp":1163779071000},"page":"181-204","source":"Crossref","is-referenced-by-count":229,"title":["A reverse\u2010engineering approach to subsystem structure identification"],"prefix":"10.1002","volume":"5","author":[{"given":"Hausi A.","family":"M\u00fcller","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Mehmet A.","family":"Orgun","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Scott R.","family":"Tilley","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"James S.","family":"Uhl","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_1","volume-title":"The Design and Analysis of Computer Algorithms","author":"Aho A. V.","year":"1974"},{"key":"e_1_2_1_3_1","unstructured":"ANSI\/IEEE(1983) \u2018IEEE standard glossary of software engineering terminology\u2019 ANSI\/IEEE Standard pp.729\u20131983."},{"key":"e_1_2_1_4_1","volume-title":"Conference on Software Maintenance\u20141990","author":"Arnold R. S.","year":"1990"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1016\/0164-1212(81)90043-1"},{"key":"e_1_2_1_6_1","unstructured":"Brandes T.andLewerentz K.(1985) \u2018GRAS: A non\u2010standard database system within a software development environment\u2019 Proceedings of the Workshop on Software Engineering Environments for Programming\u2010in\u2010the\u2010large Harwichport MA 9\u201312 June 1985 GTE Laboratories Inc. pp.113\u2013121."},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1002\/smr.4360030303"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1109\/52.43044"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1109\/52.43051"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1016\/0950-5849(91)90040-I"},{"key":"e_1_2_1_11_1","unstructured":"Corrie B.(1990) \u2018A workbench for realistic image synthesis\u2019 M.Sc. thesis Department of Computer Science University of Victoria Victoria BC."},{"key":"e_1_2_1_12_1","volume-title":"An Introduction to Mathematical Taxonomy","author":"Dunn D.","year":"1982"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSM.1988.10139"},{"key":"e_1_2_1_14_1","unstructured":"Forte G.(1992) \u2018Reverse engineering tools\u2019 CASE OUTLOOK March\u2010April 5\u201328."},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1109\/52.55233"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1985.232524"},{"key":"e_1_2_1_17_1","first-page":"108","volume-title":"Proceedings of Conference on Software Maintenance 1987","author":"Kaiser G. E.","year":"1987"},{"key":"e_1_2_1_18_1","unstructured":"Maarek Y. S.andKaiser G. E.(1988) \u2018Change management for very large software systems\u2019 Proceedings of Phoenix Conference on Computers and Communications Scottsdale Arizona 16\u201318 March 1988 pp.280\u2013285."},{"key":"e_1_2_1_19_1","unstructured":"Mata\u2010Montero M.(1990) \u2018Algorithms for treewidth\u2010bounded graphs\u2019 Ph.D. dissertation Department of Computer Science University of Victoria Victoria BC."},{"key":"e_1_2_1_20_1","unstructured":"M\u00fcller H. A.(1990) \u2018Verifying software quality criteria using an interactive graph editor\u2019 Proceedings of the Eighth Annual Pacific Northwest Software Quality Conference Portland Oregon 29\u201331 October 1990 pp.228\u2013241."},{"key":"e_1_2_1_21_1","first-page":"80","volume-title":"Proceedings of the 10th International Conference on Software Engineering (ICSE)","author":"M\u00fcller H. A.","year":"1988"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSM.1990.131315"},{"key":"e_1_2_1_23_1","first-page":"91","volume-title":"Proceedings of the IMIA Working Conference on Software Engineering in Medical Informatics (SEMI)","author":"M\u00fcller H. A.","year":"1990"},{"key":"e_1_2_1_24_1","doi-asserted-by":"crossref","unstructured":"M\u00fcller H. A. Tilley S. R. Orgun M. A. Corrie B. D.andMadhavji N. H.(1992) \u2018A reverse engineering environment based on spatial and visual software interconnection models\u2019 SIGSOFT '92: Proceedings of the Fifth ACM SIGSOFT Symposium on Software Development Environments Tyson's Corner Virginia 9\u201311 December 1992","DOI":"10.1145\/142868.143755"},{"issue":"5","key":"e_1_2_1_24_2","doi-asserted-by":"crossref","first-page":"88","DOI":"10.1145\/142882.143755","volume":"17","journal-title":"ACM Software Engineering Notes"},{"key":"e_1_2_1_25_1","volume-title":"Reliable Software through Composite Design","author":"Myers G. L.","year":"1975"},{"key":"e_1_2_1_26_1","doi-asserted-by":"crossref","unstructured":"Newbery F. J.(1989) \u2018Edge concentration: a method for clustering directed graphs\u2019 Proceedings of the 2nd International Workshop on Software Configuration Management Princeton New Jersey 24 October 1989","DOI":"10.1145\/72910.73350"},{"issue":"7","key":"e_1_2_1_26_2","first-page":"76","volume":"17","journal-title":"ACM SIGSOFT Software Engineering Notes"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380201307"},{"key":"e_1_2_1_28_1","doi-asserted-by":"crossref","unstructured":"Ossher H. L.(1984) \u2018Grids: a new program structuring mechanism based on layered graphs\u2019 Proceedings of the Eleventh Annual Symposium on Principles of Programming Languages Salt Lake City Utah 15\u201318 January 1984 ACM (Order Number 549840) pp.11\u201322.","DOI":"10.1145\/800017.800512"},{"key":"e_1_2_1_29_1","unstructured":"Perry D. E.(1987) \u2018Software interconnection models\u2019 Proceedings of the 9th International Conference on Software Engineering Monterey CA 30 March\u20102 April 1987 IEEE Computer Society Press (Order Number 767) pp.61\u201369."},{"key":"e_1_2_1_30_1","doi-asserted-by":"crossref","unstructured":"Perry D. E.andKaiser G. E.(1987) \u2018Infuse: a tool for automatically managing and coordinating source changes in large systems\u2019 Proceedings of the ACM Fifteenth Annual Computer Science Conference St. Louis Missouri ACM (Order Number 404870) pp.292\u2013299.","DOI":"10.1145\/322917.322963"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1016\/0164-1212(86)90002-6"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.1991.130626"},{"key":"e_1_2_1_33_1","volume-title":"Proceedings of the 2nd International Workshop on Software Configuration Management","author":"Schwanke R. W.","year":"1989"},{"issue":"7","key":"e_1_2_1_33_2","first-page":"86","volume":"17","journal-title":"ACM SIGSOFT Software Engineering Notes"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSM.1988.10161"},{"key":"e_1_2_1_35_1","unstructured":"Tilley S. R.(1992) \u2018Management decision support through reverse engineering technology\u2019 Proceedings of CASCON '92 Toronto Ontario 9\u201312 November 1992 pp.319\u2013328."},{"key":"e_1_2_1_36_1","doi-asserted-by":"crossref","unstructured":"Tilley S. R. M\u00fcller H. A.andOrgun M. A.(1992) \u2018Documenting software systems with views\u2019 Proceedings of ACM SIGDOC'92 Ottawa Ontario 13\u201316 October 1992 ACM (Order Number 613920) pp.211\u2013219.","DOI":"10.1145\/147001.147033"},{"key":"e_1_2_1_37_1","unstructured":"Uhl J. S.(1989) \u2018Discovering structure in large software systems\u2019 M.Sc. thesis Department of Computer Science University of Victoria Victoria BC."},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.4673"}],"container-title":["Journal of Software Maintenance: Research and Practice"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fsmr.4360050402","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/smr.4360050402","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,25]],"date-time":"2023-10-25T08:04:12Z","timestamp":1698221052000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/smr.4360050402"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1993,1]]},"references-count":40,"journal-issue":{"issue":"4","published-print":{"date-parts":[[1993,1]]}},"alternative-id":["10.1002\/smr.4360050402"],"URL":"https:\/\/doi.org\/10.1002\/smr.4360050402","archive":["Portico"],"relation":{},"ISSN":["1040-550X","1096-908X"],"issn-type":[{"value":"1040-550X","type":"print"},{"value":"1096-908X","type":"electronic"}],"subject":[],"published":{"date-parts":[[1993,1]]}}}