{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,12,18]],"date-time":"2025-12-18T13:48:19Z","timestamp":1766065699491,"version":"3.32.0"},"reference-count":17,"publisher":"Wiley","issue":"12","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":5447,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1991,12]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>This paper presents lessons learned from an experiment to reverse engineer a program. A reverse engineering process was used as part of a project to develop an Ada implementation of a Fortran program and upgrade the existing documentation. To accomplish this, design information was extracted from the Fortran source code and entered into a software development environment. The extracted design information was used to implement a new version of the program written in Ada. This experiment revealed issues about recovering design information, such as, separating design details from implementation details, dealing with incomplete or erroneous information, traceability of information between implementation and recovered design, and re\u2010engineering. The reverse engineering process used to recover the design, and the experience gained during the study are reported.<\/jats:p>","DOI":"10.1002\/spe.4380211206","type":"journal-article","created":{"date-parts":[[2006,11,18]],"date-time":"2006-11-18T07:01:33Z","timestamp":1163833293000},"page":"1349-1364","source":"Crossref","is-referenced-by-count":33,"title":["Software reverse engineering: A case study"],"prefix":"10.1002","volume":"21","author":[{"given":"Eric J.","family":"Byrne","sequence":"first","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_2","doi-asserted-by":"publisher","DOI":"10.1109\/52.43044"},{"key":"e_1_2_1_3_2","doi-asserted-by":"publisher","DOI":"10.1109\/52.43051"},{"key":"e_1_2_1_4_2","doi-asserted-by":"publisher","DOI":"10.1109\/32.48940"},{"key":"e_1_2_1_5_2","doi-asserted-by":"publisher","DOI":"10.1109\/32.48937"},{"key":"e_1_2_1_6_2","doi-asserted-by":"crossref","unstructured":"J. A.Ricketts J. C.DelMonacoandM. W.Weeks Data reengineering for application systems Conference on Software Maintenance Miami Florida 16\u201319 October1989 pp.174\u2013179.","DOI":"10.1109\/ICSM.1989.65207"},{"key":"e_1_2_1_7_2","doi-asserted-by":"publisher","DOI":"10.1109\/2.30731"},{"volume-title":"Software Engineering","year":"1989","author":"Sommerville I.","key":"e_1_2_1_8_2"},{"volume-title":"Software Engineering Environments: Concepts and Technology","year":"1986","author":"Charette R. N.","key":"e_1_2_1_9_2"},{"key":"e_1_2_1_10_2","unstructured":"R. A.ConverseandM. J.Bassman Conversion to Ada: does it really make sense?.Avionics Panel Symposium: Software Engineering and Its Application to Avionics AGARD\u2010NATO Cesme Turkey 25\u201329 April1988 paper 8."},{"key":"e_1_2_1_11_2","doi-asserted-by":"publisher","DOI":"10.1109\/32.7629"},{"issue":"2","key":"e_1_2_1_12_2","first-page":"275","article-title":"Automatic language conversion and its place in the transition to Ada","author":"Wallis P. J. L.","year":"1985","journal-title":"ACM Ada Letters (Proceedings of the Ada International Conference, Paris France, 1985"},{"key":"e_1_2_1_13_2","doi-asserted-by":"publisher","DOI":"10.1109\/MS.1984.234710"},{"key":"e_1_2_1_14_2","doi-asserted-by":"publisher","DOI":"10.1109\/MS.1986.233407"},{"key":"e_1_2_1_15_2","unstructured":"P.Antonini P.Benedusi G.CantoneandA.Cimitile Maintenance and reverse engineering: low\u2010level design documents production and improvement Conference on Software Maintenance Austin Texas 21\u201324 September1987 pp.91\u2013100."},{"volume-title":"Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design","year":"1979","author":"Yourdon E.","key":"e_1_2_1_16_2"},{"volume-title":"Strategies for Real\u2010Time System Specification","year":"1987","author":"Hatley D. J.","key":"e_1_2_1_17_2"},{"key":"e_1_2_1_18_2","doi-asserted-by":"crossref","unstructured":"P.Benedusi A.CimitileandU.De Carlini A reverse engineering methodology to reconstruct hierarchical data flow diagrams for software maintenance.Conference on Software Maintenance 16\u201319 October1989 pp.180\u2013189.","DOI":"10.1109\/ICSM.1989.65208"}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380211206","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380211206","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,1,12]],"date-time":"2025-01-12T00:07:42Z","timestamp":1736640462000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380211206"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1991,12]]},"references-count":17,"journal-issue":{"issue":"12","published-print":{"date-parts":[[1991,12]]}},"alternative-id":["10.1002\/spe.4380211206"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380211206","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"type":"print","value":"0038-0644"},{"type":"electronic","value":"1097-024X"}],"subject":[],"published":{"date-parts":[[1991,12]]}}}