{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,5,24]],"date-time":"2025-05-24T07:46:46Z","timestamp":1748072806524},"reference-count":22,"publisher":"Wiley","issue":"5","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":4442,"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":[[1994,9]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>The maintenance or re\u2010engineering of a program usually begins with considerable effort in understanding the program structure. In this paper, an interactive tool for understanding the structure of non\u2010object\u2010oriented programs, known as the Object Finder, is presented. The structure of a program is defined in terms of the groupings of routines and data into modules within the program and the hierarchical relationships among the modules. The Object Finder incorporates two complementary approaches, one being top\u2010down and the other bottom\u2010up, to assist the software engineer in understanding the structure of a program based on the object\u2010like features found in the program. In the top\u2010down approach, the user obtains an overall understanding of the entire program as a collection of hierarchically organized objects. In the bottom\u2010up approach, the user obtains a view of the information which is closely related to the components under examination.<\/jats:p><jats:p>In both approaches, two methods are used to identify the objects in a program written in a non\u2010object\u2010oriented programming language. These methods identify sets of objects based on the data bindings and on the type bindings found in a program. An object is considered as a collection of routines, types, and\/or data items of the program. The Object Finder combines the top\u2010down and bottom\u2010up approaches while using human input to guide the object identification process. Two examples of using this Object Finder are also presented to demonstrate the capabilities of the approaches to assist the software engineer in attaining a high\u2010level understanding of the program structure.<\/jats:p>","DOI":"10.1002\/smr.4360060504","type":"journal-article","created":{"date-parts":[[2006,11,17]],"date-time":"2006-11-17T14:03:39Z","timestamp":1163772219000},"page":"261-283","source":"Crossref","is-referenced-by-count":35,"title":["An object finder for program structure understanding in software maintenance"],"prefix":"10.1002","volume":"6","author":[{"given":"Roger M.","family":"Ogando","sequence":"first","affiliation":[]},{"given":"Stephen S.","family":"Yau","sequence":"additional","affiliation":[]},{"given":"Sying S.","family":"Liu","sequence":"additional","affiliation":[]},{"given":"Norman","family":"Wilde","sequence":"additional","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1109\/52.2024"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1109\/2.30731"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1986.6312937"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/24039.24041"},{"key":"e_1_2_1_6_1","doi-asserted-by":"crossref","first-page":"26","DOI":"10.1145\/77606.77608","article-title":"Interprocedural slicing using dependence graphs","volume":"1","author":"Horwitz S.","year":"1990","journal-title":"ACM Transactions on Programming Languages and Systems 12"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1985.232524"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1109\/52.2023"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/83880.84459"},{"key":"e_1_2_1_10_1","unstructured":"Liu S. S.andWilde N. (1990) Identifying objects in a conventional procedural language: an example of data design recovery. InProceedings of the Conference on Software Maintenance November 1990. IEEE Computer Society Press Los Alamitos CA pp.266\u2013271."},{"key":"e_1_2_1_11_1","unstructured":"Livadas P. E.andJohnson T.(1993)A New Approach to Finding Objects in Programs SERC\u2010TR\u201063. Software Engineering Research Center University of Florida\/Purdue University Florida June 1993. See also this issue of the Journal of Software Maintenance."},{"key":"e_1_2_1_12_1","doi-asserted-by":"crossref","unstructured":"Maarrek Y. S.(1988) On the use of cluster analysis for assisting maintenance of large software systems. InProceedings of the Third IEEE Israel Conference on Computer Systems and Software Engineering June 1988. IEEE Computer Society Press Los Alamitos CA pp.178\u2013186.","DOI":"10.1109\/ICCSSE.1988.72260"},{"key":"e_1_2_1_13_1","volume-title":"Programming in C","author":"Miller L. H.","year":"1986"},{"key":"e_1_2_1_14_1","unstructured":"Ogando R. (1991)An Approach to Software System Modularization Based on Data and Type Bindings.Ph. D. Dissertation University of Florida Gainesville FL."},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1109\/2.86782"},{"key":"e_1_2_1_16_1","volume-title":"GNU Emacs Manual","author":"Stallman R.","year":"1990"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1984.5010248"},{"key":"e_1_2_1_18_1","volume-title":"An Introduction to Object\u2010oriented Programming and C++","author":"Wiener R. S.","year":"1988"},{"key":"e_1_2_1_19_1","unstructured":"Wilde N. Huitt R.andHuitt S.(1989) Dependency analysis tools: reusable components for software maintenance. InProceedings of the Conference on Software Maintenance October 1989. IEEE Computer Society Press Los Alamitos CA pp.126\u2013131."},{"key":"e_1_2_1_20_1","volume-title":"Comparative Programming Languages","author":"Wilson L. B.","year":"1988"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1980.234503"},{"key":"e_1_2_1_22_1","unstructured":"Yau S. S.andLiu S. S.(1986) A knowledge\u2010based software maintenance environment. InProceedings 86 International Computer and Software Applications Conference COMPSAC October 1986. IEEE Computer Society Press Los Alamitos CA."},{"key":"e_1_2_1_23_1","first-page":"14","volume-title":"Some Approaches to Logical Ripple Effect Analysis","author":"Yau S. S.","year":"1988"}],"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.4360060504","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/smr.4360060504","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,24]],"date-time":"2023-10-24T05:58:32Z","timestamp":1698127112000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/smr.4360060504"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1994,9]]},"references-count":22,"journal-issue":{"issue":"5","published-print":{"date-parts":[[1994,9]]}},"alternative-id":["10.1002\/smr.4360060504"],"URL":"https:\/\/doi.org\/10.1002\/smr.4360060504","archive":["Portico"],"relation":{},"ISSN":["1040-550X","1096-908X"],"issn-type":[{"value":"1040-550X","type":"print"},{"value":"1096-908X","type":"electronic"}],"subject":[],"published":{"date-parts":[[1994,9]]}}}