{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,5,24]],"date-time":"2025-05-24T07:26:44Z","timestamp":1748071604862,"version":"3.32.0"},"reference-count":20,"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":4077,"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":[[1995,9]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>The destiny of legacy software is a relevant economic problem. Many companies are experiencing the friction that legacy systems oppose to the change and growth of their business. Nevertheless, these systems cannot be simply discarded and replaced with new ones developed according to the new organization requirements. Existing systems record a great deal of knowledge and expertise used to set up solutions to real problems in different application domains and it is imperative that this knowledge must not be lost, partly because it may not be recorded anywhere else than in the code.<\/jats:p><jats:p>This paper discusses the problems related to the modularization of legacy systems, with the emphasis being placed on the automation of code scavenging. It is argued that a balance must be struck between the modularization of legacy code, and the production of reusable, easy\u2010to\u2010evolve modules. The paper provides a framework for examining system modularization methods and identifies a set of attributes that define their quality. An overview of modularization techniques is presented, and an evaluation is made to assess their strength and identify and understand their major limitations. Finally, an attempt is made to identify techniques and tools that are nature enough to be transferred from research laboratories to industry.<\/jats:p>","DOI":"10.1002\/smr.4360070504","type":"journal-article","created":{"date-parts":[[2006,11,17]],"date-time":"2006-11-17T14:12:41Z","timestamp":1163772761000},"page":"317-331","source":"Crossref","is-referenced-by-count":12,"title":["Assessing modularization and code scavenging techniques"],"prefix":"10.1002","volume":"7","author":[{"given":"G.","family":"Canfora","sequence":"first","affiliation":[]},{"given":"A.","family":"Cimitile","sequence":"additional","affiliation":[]},{"given":"G.","family":"Visaggio","sequence":"additional","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_1","doi-asserted-by":"crossref","unstructured":"Benedusi P. Cimitile A.andDe Carlini U.(1989) \u2018A reverse engineering methodology to reconstruct hierarchical data flow diagrams for software maintenance\u2019 Proc. of Conference on Software Maintenance Miami Florida IEEE Computer Society Press Los Alamitos CA pp.180\u2013189.","DOI":"10.1109\/ICSM.1989.65208"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.184760"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1109\/WPC.1993.263908"},{"key":"e_1_2_1_5_1","doi-asserted-by":"crossref","unstructured":"Canfora G. Cimitile A. Munro M.andTaylor C. J.(1993) \u2018Extracting abstract data types from C programs: a case study\u2019 Proc. of Conference on Software Maintenance Montreal Canada IEEE Computer Society Press Los Alamitos CA pp.200\u2013209.","DOI":"10.1109\/ICSM.1993.366942"},{"key":"e_1_2_1_6_1","unstructured":"Canfora G. Cimitile A. De Carlini U.andSansone L.(1993) \u2018Reverse engineering and interactive animation of Ada programs\u2019 Proc. of 5th International Conference on Software Engineering and Knowledge Engineering San Francisco California Printing by Knowledge System Institute pp.507\u2013516."},{"key":"e_1_2_1_7_1","first-page":"140","volume-title":"Proc. of EUROMICRO 94","author":"Canfora G.","year":"1994"},{"key":"e_1_2_1_8_1","doi-asserted-by":"crossref","unstructured":"Canfora G. Cimitile A. De Lucia A.andDi Lucca G. (1994) \u2018Software salvaging based on conditions\u2019 Proc. of International Conference on Software Maintenance Victoria Canada IEEE Computer Society Press Los Alamitos CA pp.424\u2013433.","DOI":"10.1109\/ICSM.1994.336752"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1016\/0164-1212(94)00049-S"},{"key":"e_1_2_1_10_1","unstructured":"Dunn M. F.andKnight J. C.(1994) \u2018Automating the detection of reusable parts in existing software\u2019 Proc. of International Conference on Software Engineering Baltimore Maryland IEEE Computer Society Press Los Alamitos CA pp.381\u2013390."},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1109\/2.153255"},{"volume-title":"Flow analysis of computer programs","year":"1977","author":"Hecht M. S.","key":"e_1_2_1_12_1"},{"key":"e_1_2_1_13_1","unstructured":"Lanubile F.andVisaggio G.(1993) \u2018Function recovery based on program slicing\u2019 Proc. of Conference on Software Maintenance Montreal Canada IEEE Computer Society Press Los Alamitos CA pp.396\u2013404."},{"key":"e_1_2_1_14_1","unstructured":"Liu S.andWilde N.(1990) \u2018Identifying objects in a conventional procedural language: an example of data design recovery\u2019 Proc. of Conference on Software Maintenance San Diego California IEEE Computer Society Press Los Alamitos CA pp.266\u2013271."},{"key":"e_1_2_1_15_1","unstructured":"Livadas P. E.andRoy P. K.(1992) \u2018Program dependence analysis\u2019 Proc. of Conference on Software Maintenance Orlando Florida IEEE Computer Society Press Los Alamitos CA pp.356\u2013365."},{"key":"e_1_2_1_16_1","unstructured":"Newcomb P.andMarkosian L.(1993) \u2018Automating the modularisation of large Cobol programs: application of an enabling technology for reengineering\u2019 Proc. of Working Conference on Reverse Engineering Baltimore Maryland IEEE Computer Society Press Los Alamitos CA pp.222\u2013230."},{"key":"e_1_2_1_17_1","doi-asserted-by":"crossref","unstructured":"Ning J. Q. Engberts A.andKozaczynski W.(1993) \u2018Recovering reusable components from legacy systems by program segmentation\u2019 Proc. of Working Conference on Reverse Engineering Baltimore Maryland IEEE Computer Society Press Los Alamitos CA pp.64\u201372.","DOI":"10.1109\/WCRE.1993.287778"},{"key":"e_1_2_1_18_1","unstructured":"Ritsch H.andSneed H. M.(1993) \u2018Reverse engineering programs via dynamic analysis\u2019Proc. of Working Conference on Reverse Engineering Baltimore Maryland IEEE Computer Society Press Los Alamitos CA pp.192\u2013201."},{"key":"e_1_2_1_19_1","doi-asserted-by":"crossref","unstructured":"Visaggio G.(1994) \u2018Process improvement through data reuse \u2019 IEEE Software July 78\u201385.","DOI":"10.1109\/52.300093"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1984.5010248"},{"key":"e_1_2_1_21_1","doi-asserted-by":"crossref","unstructured":"Wilde N. Gomez J. A. Gust T.andStrasburg D.(1992) \u2018Locating user functionality in old code\u2019 Proc. of Conference on Software Maintenance Orlando Florida IEEE Computer Society Press Los Alamitos CA pp.200\u2013205.","DOI":"10.1109\/ICSM.1992.242542"}],"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.4360070504","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/smr.4360070504","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,1,11]],"date-time":"2025-01-11T23:48:41Z","timestamp":1736639321000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/smr.4360070504"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1995,9]]},"references-count":20,"journal-issue":{"issue":"5","published-print":{"date-parts":[[1995,9]]}},"alternative-id":["10.1002\/smr.4360070504"],"URL":"https:\/\/doi.org\/10.1002\/smr.4360070504","archive":["Portico"],"relation":{},"ISSN":["1040-550X","1096-908X"],"issn-type":[{"type":"print","value":"1040-550X"},{"type":"electronic","value":"1096-908X"}],"subject":[],"published":{"date-parts":[[1995,9]]}}}