{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,9,28]],"date-time":"2025-09-28T04:13:28Z","timestamp":1759032808231},"reference-count":40,"publisher":"Elsevier BV","issue":"11-12","license":[{"start":{"date-parts":[[1998,12,1]],"date-time":"1998-12-01T00:00:00Z","timestamp":912470400000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.elsevier.com\/tdm\/userlicense\/1.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Information and Software Technology"],"published-print":{"date-parts":[[1998,12]]},"DOI":"10.1016\/s0950-5849(98)00091-3","type":"journal-article","created":{"date-parts":[[2002,7,25]],"date-time":"2002-07-25T15:07:29Z","timestamp":1027609649000},"page":"677-689","source":"Crossref","is-referenced-by-count":53,"title":["Restructuring programs by tucking statements into functions"],"prefix":"10.1016","volume":"40","author":[{"given":"Arun","family":"Lakhotia","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jean-Christophe","family":"Deprez","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"78","reference":[{"key":"10.1016\/S0950-5849(98)00091-3_BIB1","unstructured":"E. Aschroft, Z. Manna, The translation of `goto' programs to `while' programs, in: Proceedings of the 1971 IFIP Congress, North-Holland, Amsterdam, 1971, pp. 250\u2013260."},{"issue":"4","key":"10.1016\/S0950-5849(98)00091-3_BIB2","doi-asserted-by":"crossref","first-page":"607","DOI":"10.1109\/5.24146","article-title":"Software restructuring","volume":"77","author":"Arnold","year":"1989","journal-title":"Proc. IEEE"},{"issue":"1","key":"10.1016\/S0950-5849(98)00091-3_BIB3","doi-asserted-by":"crossref","first-page":"98","DOI":"10.1145\/321992.321999","article-title":"An algorithm for structuring flowgraphs","volume":"24","author":"Baker","year":"1977","journal-title":"J. ACM"},{"issue":"1","key":"10.1016\/S0950-5849(98)00091-3_BIB4","doi-asserted-by":"crossref","first-page":"44","DOI":"10.1145\/321992.321996","article-title":"A transformation system for developing recursive programs","volume":"24","author":"Burstall","year":"1977","journal-title":"J. ACM"},{"key":"10.1016\/S0950-5849(98)00091-3_BIB5","doi-asserted-by":"crossref","unstructured":"T. Ball, S. Horwitz, Slicing programs with arbitrary control-flow, in: P. Fritzson (Ed.), Proceedings of the First International Workshop on Automated and Algorithmic Debugging, Lecture Notes in Computer Science, Vol. 749, Springer, New York, 1993, pp. 206\u2013222.","DOI":"10.1007\/BFb0019410"},{"key":"10.1016\/S0950-5849(98)00091-3_BIB6","doi-asserted-by":"crossref","first-page":"145","DOI":"10.1002\/smr.4360030303","article-title":"Creating specifications from code; reverse-engineering techniques","volume":"3","author":"Breuer","year":"1991","journal-title":"J. Software Maint.: Res. Pract."},{"issue":"8","key":"10.1016\/S0950-5849(98)00091-3_BIB7","doi-asserted-by":"crossref","first-page":"476","DOI":"10.1109\/32.310673","article-title":"Measuring functional cohesion","volume":"20","author":"Bieman","year":"1994","journal-title":"IEEE Trans. Software Eng."},{"key":"10.1016\/S0950-5849(98)00091-3_BIB8","unstructured":"R.W. Bowdidge, Supporting the restructuring of data abstractions through manipulation of a program visualization, PhD thesis, University of California, San Diego, November 1995."},{"key":"10.1016\/S0950-5849(98)00091-3_BIB9","doi-asserted-by":"crossref","first-page":"13","DOI":"10.1145\/43895.43897","article-title":"Problems with automatic restructurers","volume":"23","author":"Calliss","year":"1988","journal-title":"SIGPLAN Notices"},{"issue":"1","key":"10.1016\/S0950-5849(98)00091-3_BIB10","doi-asserted-by":"crossref","first-page":"13","DOI":"10.1109\/52.43044","article-title":"Reverse engineering and design recovery: a taxonomy","volume":"7","author":"Chikofsky","year":"1990","journal-title":"IEEE Software"},{"key":"10.1016\/S0950-5849(98)00091-3_BIB11","unstructured":"J.-C. Deprez, A context-sensitive formal transformation for restructuring programs, Master's thesis, The Center for Advanced Computer Studies, University of Southwestern Louisiana, Lafayette, LA, December 1997."},{"issue":"3","key":"10.1016\/S0950-5849(98)00091-3_BIB12","doi-asserted-by":"crossref","first-page":"319","DOI":"10.1145\/24039.24041","article-title":"The program dependence graph and its use in optimization","volume":"9","author":"Ferrante","year":"1987","journal-title":"ACM Trans. Programming Languages Syst."},{"key":"10.1016\/S0950-5849(98)00091-3_BIB13","doi-asserted-by":"crossref","unstructured":"K. Gallagher, Evaluating the surgeon's assistant: results of a pilot study, in: Proceedings of the Conference on Software Maintenance, 1992, pp. 236\u2013244.","DOI":"10.1109\/ICSM.1992.242538"},{"key":"10.1016\/S0950-5849(98)00091-3_BIB14","doi-asserted-by":"crossref","unstructured":"K. Gallagher, Visual impact analysis, in: International Conference on Software Maintenance, 1996.","DOI":"10.1109\/ICSM.1996.564988"},{"issue":"8","key":"10.1016\/S0950-5849(98)00091-3_BIB15","doi-asserted-by":"crossref","first-page":"751","DOI":"10.1109\/32.83912","article-title":"Using program slicing in software maintenance","volume":"17","author":"Gallagher","year":"1991","journal-title":"IEEE Trans. Software Eng."},{"issue":"3","key":"10.1016\/S0950-5849(98)00091-3_BIB16","doi-asserted-by":"crossref","first-page":"228","DOI":"10.1145\/152388.152389","article-title":"Automated assistance for program restructuring","volume":"2","author":"Griswold","year":"1993","journal-title":"ACM Trans. Software Eng."},{"key":"10.1016\/S0950-5849(98)00091-3_BIB17","unstructured":"W.G. Griswold, Program restructuring as an aid to software maintenance, PhD thesis, University of Washington, July 1991."},{"issue":"1","key":"10.1016\/S0950-5849(98)00091-3_BIB18","doi-asserted-by":"crossref","first-page":"55","DOI":"10.1109\/52.43050","article-title":"Using function abstraction to understand program behaviour","volume":"7","author":"Hausler","year":"1990","journal-title":"IEEE Software"},{"issue":"3","key":"10.1016\/S0950-5849(98)00091-3_BIB19","doi-asserted-by":"crossref","first-page":"345","DOI":"10.1145\/65979.65980","article-title":"Integrating non-interfering versions of programs","volume":"11","author":"Horwitz","year":"1989","journal-title":"ACM Trans. Programming Languages Syst."},{"key":"10.1016\/S0950-5849(98)00091-3_BIB20","doi-asserted-by":"crossref","unstructured":"A. Jain, Projections of logic programs using symbol mappings, in: Proceedings of the Twelfth International Conference on Logic Programming, MIT Press, 1995, pp. 483-496.","DOI":"10.7551\/mitpress\/4298.003.0050"},{"key":"10.1016\/S0950-5849(98)00091-3_BIB21","doi-asserted-by":"crossref","unstructured":"R. Johnson, D. Pearson, K. Pingali, The program structure tree: computing control regions in linear time, in: Proceedings of the ACM SIGPLAN'94 Conference on Programming Language Design and Implementation (PLDI), ACM Press, 1994, pp. 171\u2013185.","DOI":"10.1145\/178243.178258"},{"key":"10.1016\/S0950-5849(98)00091-3_BIB22","doi-asserted-by":"crossref","first-page":"177","DOI":"10.1016\/S0022-0000(74)80006-1","article-title":"Translatability of flowcharts into while programs","volume":"9","author":"Kasai","year":"1974","journal-title":"J. Comput. Syst. Sci."},{"key":"10.1016\/S0950-5849(98)00091-3_BIB23","unstructured":"B.-K. Kang, J. Bieman, Using design cohesion to visualize, quantify, and restructure software, in: Eighth International Conference on Software Engineering and Knowledge Engineering (SEKE'96), Skokie, IL, June 1996, Knowledge Systems Institute, pp. 222\u2013229."},{"issue":"3","key":"10.1016\/S0950-5849(98)00091-3_BIB24","doi-asserted-by":"crossref","first-page":"349","DOI":"10.1142\/S0218194094000179","article-title":"Restructuring programs through program slicing","volume":"4","author":"Kim","year":"1994","journal-title":"Int. J. Software Eng. Knowledge Eng."},{"key":"10.1016\/S0950-5849(98)00091-3_BIB25","doi-asserted-by":"crossref","unstructured":"A. Lakhotia, Rule-based approach to computing module cohesion, in: Proceedings of 15th International Conference on Software Engineering, Los Alamitos, CA, May 1993, IEEE Computer Society Press, pp. 35\u201344.","DOI":"10.1109\/ICSE.1993.346057"},{"key":"10.1016\/S0950-5849(98)00091-3_BIB26","unstructured":"A. Lakhotia, Restructuring complex program fragments into small cohesive units, http:\/\/www.cacs.usl.edu\/arun\/Wolf, May 1997."},{"key":"10.1016\/S0950-5849(98)00091-3_BIB27","doi-asserted-by":"crossref","unstructured":"A. Lakhotia, DIME: a direct manipulation environment for evolutionary development of software, in: Proceedings of the International Workshop on Program Comprehension (IWPC'98), Los Alamitos, CA, June 1998, IEEE Computer Society Press.","DOI":"10.1109\/WPC.1998.693289"},{"key":"10.1016\/S0950-5849(98)00091-3_BIB28","unstructured":"M.M. Lehman, L.A. Belady, Program Evolution, Academic Press, New York, 1985."},{"issue":"4","key":"10.1016\/S0950-5849(98)00091-3_BIB29","doi-asserted-by":"crossref","first-page":"246","DOI":"10.1109\/32.588543","article-title":"Extracting reusable functions by flow graph-based program slicing","volume":"23","author":"Lanubile","year":"1997","journal-title":"IEEE Trans. Software Eng."},{"key":"10.1016\/S0950-5849(98)00091-3_BIB30","unstructured":"J. Nandigam, A measure for module cohesion, PhD thesis, University of Southwestern Louisiana, The Center for Advanced Computer Studies, Lafayette, LA, 1995."},{"key":"10.1016\/S0950-5849(98)00091-3_BIB31","doi-asserted-by":"crossref","unstructured":"S. Rugaber, K. Stirewalt, L.M. Wills, Detecting interleaving, in: Proceedings of the International Conference on Software Maintenance, Los Alamitos, CA, 1995, IEEE Computer Society Press, pp. 265\u2013274.","DOI":"10.1109\/ICSM.1995.526548"},{"issue":"1, 2","key":"10.1016\/S0950-5849(98)00091-3_BIB32","doi-asserted-by":"crossref","first-page":"47","DOI":"10.1007\/BF00126959","article-title":"Understanding interleaved code","volume":"3","author":"Rugaber","year":"1996","journal-title":"Automated Software Eng."},{"key":"10.1016\/S0950-5849(98)00091-3_BIB33","doi-asserted-by":"crossref","unstructured":"T. Reps, T. Turnidge, Program specialization via program slicing, in: O. Danvy, R. Glueck, P. Thiemann (Eds.), Lecture Notes in Computer Science, Vol. 1110, Springer, New York, 1996, pp. 409\u2013429.","DOI":"10.1007\/3-540-61580-6_20"},{"key":"10.1016\/S0950-5849(98)00091-3_BIB34","unstructured":"H.M. Sneed, G. Jandrasics, Software recycling, in: Proceedings of the Conference on Software Maintenance, Los Alamitos, CA, 1987, IEEE Computer Society Press, pp. 82\u201390."},{"issue":"2","key":"10.1016\/S0950-5849(98)00091-3_BIB35","doi-asserted-by":"crossref","first-page":"115","DOI":"10.1147\/sj.132.0115","article-title":"Structured design","volume":"13","author":"Stevens","year":"1974","journal-title":"IBM Syst. J."},{"issue":"4","key":"10.1016\/S0950-5849(98)00091-3_BIB36","doi-asserted-by":"crossref","first-page":"306","DOI":"10.1109\/TSE.1982.235425","article-title":"Good system structure features: their complexity and execution time cost","volume":"SE-8","author":"Stankovic","year":"1982","journal-title":"IEEE Trans. Software Eng."},{"key":"10.1016\/S0950-5849(98)00091-3_BIB37","unstructured":"H. Tamaki, T. Sato, Unfold\/fold transformations of logic programs, in: Proceedings of Second International Conference on Logic Programming, Sweden, 1984, pp. 127\u2013138."},{"key":"10.1016\/S0950-5849(98)00091-3_BIB38","doi-asserted-by":"crossref","first-page":"101","DOI":"10.1002\/smr.4360050204","article-title":"Abstracting a specification from code","volume":"5","author":"Ward","year":"1993","journal-title":"J. Software Maint.: Res. Pract."},{"issue":"8","key":"10.1016\/S0950-5849(98)00091-3_BIB39","doi-asserted-by":"crossref","first-page":"1207","DOI":"10.1109\/32.7629","article-title":"Program translation via abstraction and reimplementation","volume":"14","author":"Waters","year":"1988","journal-title":"IEEE Trans. Software Eng."},{"key":"10.1016\/S0950-5849(98)00091-3_BIB40","unstructured":"M. Weiser, Program slicing: formal, psychological and practical investigations of an automatic program abstraction method, PhD thesis, The University of Michigan, Ann Arbor, MI, 1979."}],"container-title":["Information and Software Technology"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S0950584998000913?httpAccept=text\/xml","content-type":"text\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S0950584998000913?httpAccept=text\/plain","content-type":"text\/plain","content-version":"vor","intended-application":"text-mining"}],"deposited":{"date-parts":[[2023,12,31]],"date-time":"2023-12-31T14:49:35Z","timestamp":1704034175000},"score":1,"resource":{"primary":{"URL":"https:\/\/linkinghub.elsevier.com\/retrieve\/pii\/S0950584998000913"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1998,12]]},"references-count":40,"journal-issue":{"issue":"11-12","published-print":{"date-parts":[[1998,12]]}},"alternative-id":["S0950584998000913"],"URL":"https:\/\/doi.org\/10.1016\/s0950-5849(98)00091-3","relation":{},"ISSN":["0950-5849"],"issn-type":[{"value":"0950-5849","type":"print"}],"subject":[],"published":{"date-parts":[[1998,12]]}}}