Языковые преобразования в задачах реинжиниринга программного обеспечения
Диссертация
Одной из наиболее распространенных форм реинжиниринга являются языковые преобразования (language conversion), подразумевающие преобразование устаревших программ в эквивалентные им по функциональности программы на том же или другом языке высокого уровня. Первоначально активные исследования в этой области сводились к совершенствованию методов так называемой транслитерации, т. е. прямолинейной… Читать ещё >
Список литературы
- Н. Agrawal, J. R. Horgan «Dynamic Program Slicing», 1. Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, New York, June 1990, pp. 246−256.
- R. S. Arnold (ed.) «Software Reengineering», IEEE Computer Society Press, 1993, 676 pp.
- R. S. Arnold «Software Restructuring», Proceedings of IEEE, Vol. 77, No. 4, April 1989, pp. 607−617.
- R. S. Arnold, W. B. Frakes «Software Reuse and Reengineering», In 2., pp. 476−484.
- E. Ashcroft, Z. Manna «The translation of 'goto' programs in 'while' programs», Proceedings of the 1971IFIP Congress, Amsterdam, pp. 250−260
- C. Babcock «Restructuring eases maintenance», Computerworld, November 1987, pp. 19, 22.
- D. Baburin «Using Graph Representations in Reengineering», In Proceedings of the 6th Conference on Software Maintenance and Reengineering, Budapest, Hungary, March 2002.
- C. Bachmann «A CASE for Reverse Engineering», Datamation, July 1988
- J. W. Bailey, V. R. Basili «Software Reclamation: Improving Post-Development Reusability», In Proceedings of the 8tli National Conference on Ada Technology, US Army Communications-Electronics Command, Fort Monmouth, N.J., 1990, pp. 477—480 and 489−499.
- B. S. Baker «An Algorithm for Structuring Flowgraphs», Journal of the ACM, Vol. 24, No. 1, 1977, pp. 98−120.
- K.H. Bennett «Automated support of software maintenance», Information and Software Technology, Vol. 33, No. 1, 1991, pp. 74−85.
- T.J. Biggerstaff, B.G. Mitbander, D.E. Webster «Program Understanding and the Concept Assignment Problem», Communications of the ACM, May 1994, pp. 72−82.
- B. Boehm «Software Engineering Economics», Englewood Cliffs, N.J., Prentice-Hall, 1981.
- B. Boehm et al. «A Software Development Environment for Improving Productivity», Computer, June 1984, pp. 30−44.
- С. Bohm, G. Jacopini «Flow diagrams, Turing machines and languages with only two formation rules», Communications of the ACM, Vol. 9, No. 5, May 1966, pp. 366−371.
- D. Boulychev, D. Koznov, A.A. Terekhov «On Project-Specific Languages and Their Application in Reengineering», In Proceedings of the Sixth European Conference on Software Maintenance and Reengineering, Budapest, Hungary, March 2002, pp. 177— 185.
- M.G.J. van der Brand, M.P.A. Sellink, C. Verhoef «Current Parsing Techniques in Software Renovation Considered Harmful», In Proceedings of the International Workshop on Program Comprehension, Ischia, Italy, 1998, pp. 108−117.
- M.G.J. van den Brand, M.P.A. Sellink, C. Verhoef «Generation of Components for Software Renovation Factories from Context-Free Grammars», Science of Computer Programming, Vol. 36, No. 2−3, Mar. 2000, pp. 209−266.
- M. L. Brodie, M. Stonebraker «Migrating Legacy Systems: Gateways, Interfaces and the Incremental Approach», Morgan-Kaufmann, 1995, 210 pp.
- G. Caldiera, V. R. Basili «Identifying and Qualifying Reusable Software Components», Computer, Vol. 24, No. 2, February 1991, pp. 61−70.
- F.W. Calliss «Problems with Automatic Restructures», ACM SIGPLAN Notices, Vol. 23, No. 3, Mar. 1988, pp. 13−23.
- G. Canfora, A. Cimitile, A. De Lucia «Conditioned program slicing», In Information and Software Technology Special Issue on Program Slicing, Elsevier-Science B.V., Vol. 40, 1998, pp. 595−607.
- C. Cerf and V. Navasky «The Experts Speak — The Definitive Compendium of Authoritative Misinformation», Villard Books, New York, 1998
- Y. Chae and S. Rogers «Successful COBOL Upgrades: Highlights and Programming Techniques», John Wiley and Sons, New York, 1999, 288 pp.
- E. Chikosfky «CASE and Reengineering: From Archeology to Software Perestroika», Proceedings of the 12th International Conference on Software Engineering, 1990, p. 122
- E. Chikofsky, J. H. Cross II «Reverse Engineering and Design Recovery: A Taxonomy», IEEE Software, Vol. 7, No. 1, January 1990, pp. 13−17.
- C. Cifuentes, K.J. Gough «Decompilation of Binary Programs», Software: Practice and Experience, Vol. 25, No. 7, July 1995, pp. 811−829.
- I. Clafien, К. Hennig, I. Mohr, M. Schulz «CUI to GUI Migration: Static Analysis of Character-Based Panels», Proceedings of the 1st Euromicro Working Conference on Software Maintenance and Reengineering, Berlin, 1997.
- B. Cox «Object-Oriented Programming: An Evolutionary Approach», Addison-Wesley, Reading, MA. 1976.
- M. A. Cusumano, R. W. Selby «Microsoft Secrets», Simon & Schuster, New York, 1998, 512 pp.
- T. DeMarco, T. Lister «Peopleware Productive Projects and Teams», Dorset House, New York, 1987, p. 30.
- W. C. Dietrich jr., L. R. Hackman, F. Gracer «Saving a Legacy with Objects», Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA'89), pp. 77−83.
- E. Dijkstra «Go to statement considered harmful», Communications of the ACM, vol. 11, no. 3, pp. 147−148, March 1968
- M. F. Dunn, J. C. Knight «Software Reuse in an Industrial Setting: a Case Study», In Proceedings of the International Conference on Software Engineering, 1991, pp. 329 338.
- S. G. Eick, T. L. Graves, A. F. Karr, J. S. Marron, A. Mockus «Does Code Decay? Assessing the Evidence from Change Management Data», IEEE Transactions on Software Engineering, Vol. 27, No. 1, January 2001, pp. 1−12.
- L. H. Etzkorn, C. G. Davis «Automatically Identifying Reusable 00 Legacy Code», Computer, October 1997. P. 66−71.
- D. P. Freedman, G. M. Weinberg «Handbook of Walkthroughs, Inspections and Technical Reviews», Dorset House, 3rd edition, 1990
- E. S. Garnett, J. A. Mariani «Software Reclamation», Sofware Engineering Journal, May 1990, pp. 185−191
- R.L. Glass «Computing Calamities—Lessons Learned from Products, Projects, and Companies That Failed», Prentice Hall, Englewood Cliffs, N.J., 1999, pp. 190−191.
- R. L. Glass, R. A. Noiseux «Software Maintenance Guidebook», Englewood Cliffs, NJ: Prentice-Hall, 1981
- R. Gray, T. Bickmore, S. Williams, «Reengineering Cobol Systems to Ada,» Proc. Seventh Annual Air Force/Army/Navy Software Technology Conf., US Dept. of Defense, Hill Air Force Base, 1995.
- M. Harman, S. Danicic «Amorphous Program Slicing», In Proceedings of the 5th IEEE International Workshop on Program Comprehension, Dearborn, Michigan, USA, May 1997, pp. 70−79.
- M. A. Jackson «Principles of Program Design», Academic Press, London, 1975
- I. Jacobson, F. Lindstrom, «Re-engineering of Old Systems to an Object-Oriented Architecture», In Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA'91), ACM, New York, 1991, pp. 340 350.
- Y. Jang «Legacy Systems and Object Technology Workshop Summary», Addendum to the Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA'95), ACM, New York, 1995, pp. 176−179.
- C. Jones «Programming Productivity: Issues for the Eighties», 2nd edition, Los Angeles, IEEE Computer Society Press, 1986.
- C. Jones «Estimating Software Costs», McGraw-Hill, 1988.
- C. Jones «Applied Software Measurement», N.Y.: McGraw-Hill, 1991.
- C. Jones «Assessment and Control of Software Risks», Prentice Hall, Englewood Cliffs, N.J., 1994.
- C. Jones «The Year 2000 Software Problem Quantifying the Costs and Assessing the Consequences», Addison-Wesley, 1998
- B. Kernighan, P. J. Plauger «Software Tools», Addison-Wesley, Reading, MA. 1976. 338 pp.
- W.M. Klein, OldBOL to NewBOL: A COBOL Migration Tutorial for IBM, Merant Publishing, 1998.
- J. W. Klop «Term rewriting systems», In Handbook of Logic in Computer Science, Vol. II, Oxford University Press, 1992, p. 1−116.
- K. Kontogiannis et al., «Code Migration through Transformations: An Experience Report,» Proc. IBM Center for Advanced Studies Conf. (CASCON '98), IBM, Armonk, NY, 1998, pp. 1−12. Available at www.swen.uwaterloo.ca/~kostas/migration98.ps.
- B. Korel, J. Laski «Dynamic Program Slicing», Information Processing Letters, Vol. 29, No. 3, October 1988, pp. 155−163.
- W. Kozaczynski, J. Q. Ning, A. Engberts «Program Concept Recognition and Transformation», IEEE Transactions on Software Engineering, Vol. 18, No. 12, December 1992, pp. 1065−1075.
- W. Kozaczynski, J. Q. Ning «Automated Program Understanding by Concept Recognition», Automated Software Engineering Journal, 1(1): 61—78, March 1994.
- R. Lammel, C. Verhoef «Cracking the 500 Language Problem», IEEE Software, Vol. 18, No. 6, pp. 78−88.
- F. Lehner «Software Life Cycle Management Based on a Method for Phase Distinction», Euromicro Journal, August 1991, pp. 603−608.
- B. Lientz, E. B. Swanson «Software Maintenance Management», Addison-Wesley, 1980.
- В. Lientz, Е. В. Swanson, G. Е. Tompkins «Characteristics of application software maintenance», Communications of the ACM, Vol. 21, No. 6, 1978, pp. 466−471.
- A. de Lucia «Program Slicing: Methods and Applications», In Proceedings of the 1st IEEE International Workshop on Source Code Analysis and Manipulations, Florence, Italy, 2001, pp.142−149.
- Z.-Y. Liu, M. Baliantyne, L. Seward, «An Assistant for Re-Engineering Legacy Systems», In Proceedings of the 6th Conference on Innovative Applications of Artificial Intelligence, 1994. P. 95−102.
- A. J. Malton «The Migration Barbell», First ASERC Workshop on Software Architecture, August 2001, http://www.cs.ualbeita.cay~kenw/conf/awsa2001/papers/malton.pdf
- J. Martin, H. A. Muller «C to Java Migration Experiences», In Proceedings of the Sixth European Conference on Software Maintenance and Reengineering, Budapest, Hungary, March 2002, pp. 143−153.
- H. W. Miller «Reengineering Legacy Software Systems», Digital Press, 1997, 280 pp.
- J.C. Miller, B.M. Strauss «Implications of Automated Restructuring of COBOL», ACM SIGPLAN Notices, Vol. 22, No. 6, June 1987, pp. 76−82.
- S. Oualline, Practical С Programming, 3rd ed., O’Reilly & Assoc., Cambridge, Mass., 1997.
- D.L. Parnas «Software Aging», In Proceedings of the 16th International Conference on Software Engineering, May 1994, pp. 279−287.
- W. Polak, L.D. Nelson, T.W. Bickmore «Reengineering IMS databases to relational systems», In Proceedings of the 7th Annual Air Force/Army/Navy Software Technology Conference, Salt Lake City, April 1995.
- A. Quilici «A Memory-Based Approach to Recognizing Programming Plans», Communications of the ACM, Vol. 37, No. 5, May 1994, pp. 84−93.
- A. Quilici, S. Woods, Y. Zhang «Program Plan Matching: Experiments with a Constraint-Based Approach», Science of Computer Programming, Vol. 36,2000, pp. 285—302
- V. Rajlich, К. H. Bennett «A Staged Model for the Software Life Cycle», Computer, Vol. 33, No. 7, July 2000, pp. 66−71.
- C. Rich, R. C. Waters «Programmer's Apprentice», ACM Press, 1990. 238 pp.
- C. Rich, L. M. Wills «Recognizing a Program’s Design: A Graph-Parsing Approach», IEEE Software, Vol. 7, No. 1, January 1990, pp. 82−89.
- N. F. Schneidewind «The State of Software Maintenance», IEEE Transactions on Software Engineering, Vol. 13, No. 3, 1987, pp. 303−310.
- M.P.A. Sellink, H.M. Sneed, and C. Verhoef, «Restructuring of COBOL/CICS Legacy Systems,» Proc. Third European Conf. Maintenance and Reengineering, IEEE Computer Soc. Press, Los Alamitos, Calif., 1999, pp. 72−82.
- A. Sellink, C. Verhoef «Native Patterns», In Proceedings of the 5th IEEE Working Conference on Reverse Engineering, Honolulu, Hawaii, USA, 1998.
- A. Sellink, C. Verhoef «Scaffolding for Software Renovation», In Proceedings of the 4th Conference on Software Maintenance and Reengineering, Zurich, Switzerland, 2000, pp. 151−160.
- M. C. Smith, D. E. Mularz, T. J. Smith «CASE Tools Supporting Ada Reverse Engineering: State of the Practice», Proceedings of the Eighth Annual National Conference on Ada Technology, 1990, pp. 157−164
- H. M. Sneed «Economics of Software Re-engineering», Journal of Software Maintenance: Research and Practice, Vol. 3, No. 3, Sept. 1991, pp. 163−182.
- H. M. Sneed «Planning the Reengineering of Legacy Systems», IEEE Software, January 1995, Vol. 12, No. 1, pp. 24−34.
- H. M. Sneed «Reverse Engineering as a Bridge to CASE», Proceedings of the Seventh International Workshop on Computer-Aided Software Engineering (CASE'95). P. 304 317
- H. M. Sneed, Objektorientierte Softwaremigration Object-Oriented Software Migration., Addison Wesley Longman, Bonn, Germany, 1998.
- H. M. Sneed «Risks Involved in Reengineering Projects», Proceedings of WCRE, 1999, IEEE Computer Society Press, Atlanta, October 1999, pp. 204−212.
- H. M. Sneed, C. Verhoef «Reengineering the Corporation A Manifesto for IT Evolution», Encyclopedia of Software Engineering, 2001 (pages ??).
- A. A. Terekhov «Automated Extraction of Classes from Legacy Systems», In Proceedings of TOOLS EE, 2000.
- A. A. Terekhov «Automating Language Conversion: A Case Study», In Proceedings of the IEEE International Conference on Software Maintenance, 2001. P. 654−658.
- A. A. Terekhov, C. Verhoef «The Realities of Language Conversions», IEEE Software, November/December 2000, Vol. 17, No. 6, pp. 111−124.
- B. Toeter «Reuse of ABN-AMRO PowerBuilder Applications», M.Sc. thesis, University of Amsterdam, July 2001, 63 pp.
- W. Ulrich «The evolutionary growth of reengineering and the decade ahead», American Programmer, Vol. 3, No. 11, pp. 14−20.
- US National Bureau of Standards «Guidance on software maintenance», Special Publication No. 500−106, Washington, DC, 1983.
- C. Verhoef «Software Development is a Special Case of Maintenance», In Proceedings of the 3rd Annual Conference on Software Engineering and Applications, Scottsdale, Arizona, USA, October 1999.
- VS COBOL II. Application Programming Language Reference, 4th ed., IBM Corp., Armonk, N.Y., 1993
- R. C. Waters «Program Translation via Abstraction and Reimplementation», IEEE Transactions on Software Engineering, Vol. SE-14, No. 8, August 1988, pp. 1207−1228.
- B. W. Weide, W. D. Heyrn «Reverse Engineering of Legacy Code Exposed», In Proceedings of International Conference on Software Engineering, Seattle, WA, 1995, pp. 327−331.
- M. Weiser «Program Slicing», IEEE Transactions on Software Engineering, Vol. 10, No. 4, 1984, pp. 352−357.
- R. Widmer, COBOL Migration Planning, Edge Information Group, 1998.
- K. Yasumatsu and N. Doi, «SPiCE: A System for Translating Smalltalk Programs Into, а С Environment,» IEEE Transactions on Software Engineering, Vol. 21, No. 11, 1995, pp. 902−912.
- S. Yau, J.S. Collofello, T. MacGregor «Ripple effect analysis of software maintenance» // Proc. IEEE COMPSAC, 1978. P. 492−497.
- А. В. Береснева, А. А. Терехов «Анализ языка PL/I в системе RescueWare», в сб. «Автоматизированный реинжиниринг программ», СПб, изд-во С.-Петербургского университета, 2000. С. 268−277.
- Ф. П. Брукс-мл. «Мифический человеко-месяц, или как создаются программные системы», 2-е изд., СПб.: Символ-плюс, 1999,304 стр.
- М.А. Бульонков, Д. Е. Бабурин «HyperCode открытая система визуализации программ», в сб. «Автоматизированный реинжиниринг программ», СПб, изд-во С.-Петербургского университета, 2000. С. 165−183.
- Г. Буч «Объектно-ориентированный анализ и проектирование с примерами приложений на С++», 2-е издание, М.: «Издательство Бином», СПб.: «Невский диалект», 1999.560 с.
- А. В. Друнин «Построение срезов программ в задачах реинжиниринга», в сб. «Автоматизированный реинжиниринг программ», СПб, изд-во С.-Петербургского университета, 2000. С. 184−205.
- А.П. Ершов «Организация АЛБФА-транслятора», в сб. «АЛЬФА — система автоматизации программирования», Сиб.отд.изд-ва «Наука» Новосибирск, 1967
- Б. Казанский «Генерация программ на целевых языках в задачах реинжиниринга», в сб. «Автоматизированный реинжиниринг программ», СПб, изд-во С.-Петербургского университета, 2000. С. 118−144.
- В. Е. Каменский, А. В. Климов, С. Г. Манжелей, Л. Б. Соловская «Применение стандарта CORBA для унаследованных систем», в сб. «Вопросы кибернетики. Приложения системного программирования», выпуск 3, Москва, 1997
- С. В. Куке «Алгоритм анализа потоков данных», в сб. «Автоматизированный реинжиниринг программ», СПб, изд-во С.-Петербургского университета, 2000. С. 110−117.
- М. Мосиенко «Построение динамической поддержки для задач реинжиниринга», в сб. «Автоматизированный реинжиниринг программ», СПб, изд-во С.-Петербургского университета, 2000. С. 145−164.
- О. А. Плисс, К. Д. Волошин «Трансляция вызовов и переходов из Кобола в С++», в сб. «Автоматизированный реинжиниринг программ», СПб, изд-во С.-Петербургского университета, 2000. С. 83−102.
- О. А. Плисс, К. Д. Волошин «Устранение локальных GOTO», в сб. «Автоматизированный реинжиниринг программ», СПб, изд-во С.-Петербургского университета, 2000. С. 103−109.
- М. В. Попов «Преобразование программы к структурной на основе метода расклейки графа управления», дипломная работа, математико-механический факультет СПбГУ, 2000. 32 с.
- Б. Страуструп «Дизайн и эволюция языка С++», М.: ДМК Пресс, 2000. 448 с.
- А. А. Терехов «Автоматизированное разбиение устаревших программ на классы», в сб. «Автоматизированный реинжиниринг программ», СПб, изд-во С.-Петербургского университета, 2000. С. 229−250.
- А. А. Терехов, К. Верхуф «Проблемы языковых преобразований», Открытые системы, № 5−6, 2001, с. 54−62.
- А. Н. Терехов, А. А. Терехов «Перенос приложений и проблема 2000 года», Компьютер-Пресс, № 8, 1998, с. 92−96.
- А. Н. Терехов, А. А. Терехов (ред.) «Автоматизированный реинжиниринг программ», СПб, изд-во С.-Петербургского университета, 2000, 332 с.
- А. Н. Терехов, J1. А. Эрлих, А. А. Терехов «Перспективы реинжиниринга», Компьютер-Пресс, № 8, 1999.
- А. Н. Терехов, JI. А. Эрлих, А. А. Терехов «История и архитектура проекта RescueWare», в сб. «Автоматизированный реинжиниринг программ», СПб, изд-во С.-Петербургского университета, 2000. С. 7−19.