ДИПЛОМ

ЯЗЫКОВЫЕ ПРЕОБРАЗОВАНИЯ В ЗАДАЧАХ РЕИНЖИНИРИНГА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ


ВУЗ - СГА
Объем работы - страниц формата A4
Год защиты - 2017

Оформите предварительный заказ, чтобы узнать стоимость работы.


СОДЕРЖАНИЕ:

ВВЕДЕНИЕ................................................................................................................6 Актуальность темы...............................................................................................................6 История проекта RescueWare.............................................................................................7 Научный контекст работ по созданию RescueWare......................................................10 Основные результаты диссертационной работы..........................................................11 Апробация работы...............................................................................................................12 Благодарности.....................................................................................................................12 ГЛАВА 1. ОБЗОР ЗАДАЧ РЕИНЖИНИРИНГА....................................................13 1.1. Реинжиниринг и его экономические предпосылки...............................................13 1.2. Основные задачи реинжиниринга............................................................................18 1.2.1. Возвратное проектирование...................................................................................19 1.2.2. Извлечение знаний...................................................................................................21 1.2.3. Реструктуризация программ...................................................................................22 1.2.4. Языковые преобразования......................................................................................23 1.3. Смежные вопросы реинжиниринга..........................................................................27 1.3.1. Сопровождение программ.......................................................................................27 1.3.2. Повторное использование программ.....................................................................30 ГЛАВА 2. ТРУДНОСТИ, ВОЗНИКАЮЩИЕ ПРИ ЯЗЫКОВЫХ ПРЕОБРАЗОВАНИЯХ............................................................................................33 2.1. О сложности языковых преобразований.................................................................34 2.2. Требования к средствам преобразования языков.................................................35 2.3. Технические проблемы...............................................................................................38 2.3.1. Преобразование типов данных...............................................................................39 2.3.2. Кобол в Visual Basic.................................................................................................39 2.3.3. Кобол в Java..............................................................................................................41 2
2.3.4. OS/VS Cobol to VS Cobol II.....................................................................................43 2.3.5. Turbo Pascal to Java..................................................................................................46 2.3.6. Перевод языково-специфичных конструкций......................................................48 2.3.7. Проблемы поддержки сгенерированного текста..................................................49 2.4. Обсуждение....................................................................................................................51 2.5. Процесс преобразования языков...............................................................................53 2.6. Заключение....................................................................................................................58 ГЛАВА 3. ОПИСАНИЕ КОНКРЕТНОГО ПРОЕКТА ПО ПРЕОБРАЗОВАНИЮ ЯЗЫКОВ..................................................................................................................59 3.1. Краткое описание проекта..........................................................................................60 3.2. Особенности языка Rules............................................................................................61 3.3. Автоматизация решения задачи................................................................................64 3.4. Процесс конвертации и его трудности.....................................................................65 3.4.1. Преобразование в Кобол.........................................................................................65 3.4.2. Преобразование в VB..............................................................................................70 3.5. Обсуждение....................................................................................................................72 3.5.1. Программные факторы, влияющие на уровень автоматизации при языковых преобразованиях................................................................................................................72 3.5.2. Экономические соображения при разработке автоматизированных средств преобразования языков.....................................................................................................74 3.5.3. Индустриальная проблема: нахождение компромисса между поставщиком услуг по реинжинирингу и заказчиком...........................................................................76 3.6. Заключение....................................................................................................................76 ГЛАВА 4. ИЗВЛЕЧЕНИЕ КЛАССОВ ИЗ УСТАРЕВШЕЙ СИСТЕМЫ.................78 4.1. Краткое изложение предлагаемого подхода............................................................79 4.2. Предварительная структуризация программ.........................................................80 4.2.1. Выделение процедур...............................................................................................80 4.2.2. Локализация или полное уничтожение GOTO.....................................................81 3
4.2.3. Локализация данных................................................................................................81 4.2.4. Оптимизирующие преобразования........................................................................82 4.3. Переход к объектно-ориентированным программам............................................83 4.3.1. Попытка создания автоматического решения.......................................................83 4.3.2. Некоторые эвристики для разбиения устаревших программ на классы............84 4.3.3. Диалоговый процесс выделения классов...............................................................86 4.3.4. Недостатки предложенного подхода и возможности дальнейшего усовершенствования..........................................................................................................87 4.4. Пример преобразования программы к объектно-ориентированному виду.....87 4.5. Другие подходы к созданию объектов......................................................................91 4.5.1. Генерация класса, соответствующего всей программе........................................91 4.5.2. Создание объектных интерфейсов к устаревшим программам...........................91 4.5.3. Генерация классов по срезам программ................................................................92 4.5.4. Перепроектирование с помощью CASE-средств..................................................93 4.6. Заключение....................................................................................................................93 ГЛАВА 5. ИСПОЛЬЗОВАНИЕ ПРОЕКТНО-ОРИЕНТИРОВАННЫХ НЕФОРМАЛЬНЫХ ЗНАНИЙ ПРИ РЕИНЖИНИРИНГЕ.......................................95 5.1. Связанные работы.......................................................................................................97 5.2. Формальная семантика и неформальные знания..................................................98 5.3. Интерактивное извлечение языка, характерного для данного проекта.........101 5.3.1. Понимание устаревших программ и настройка инструментальных средств...102 5.3.2. Уточненная схема процесса извлечения языка проекта....................................106 5.3.3. Настраиваемая генерация......................................................................................107 5.4. Обсуждение..................................................................................................................108 5.5. Заключение..................................................................................................................110 ЛИТЕРАТУРА........................................................................................................113 ПРИЛОЖЕНИЕ 1. ПРИМЕР РЕАЛИЗАЦИИ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО МАКРОРАСШИРЕНИЯ PL/I.......................................121 4
ПРИЛОЖЕНИЕ 2. РЕЗУЛЬТАТ ИЗВЛЕЧЕНИЯ КЛАССОВ В ПРОЦЕССЕ ПЕРЕНОСА ПРОГРАММЫ С КОБОЛА НА С++................................................123 ПРИЛОЖЕНИЕ 3. СПИСОК ИЛЛЮСТРАЦИЙ....................................................127

1. H. Agrawal, J. R. Horgan "Dynamic Program Slicing", In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, New York, June 1990, pp. 246–256. 2. R. S. Arnold (ed.) "Software Reengineering", IEEE Computer Society Press, 1993, 676 pp. 3. R. S. Arnold "Software Restructuring", Proceedings of IEEE, Vol. 77, No. 4, April 1989, pp. 607-617. 4. R. S. Arnold, W. B. Frakes "Software Reuse and Reengineering", In [2], pp. 476–484. 5. E. Ashcroft, Z. Manna "The translation of 'goto' programs in 'while' programs", Proceedings of the 1971 IFIP Congress, Amsterdam, pp. 250-260 6. C. Babcock "Restructuring eases maintenance", Computerworld, November 1987, pp. 19, 22. 7. D. Baburin "Using Graph Representations in Reengineering", In Proceedings of the 6th Conference on Software Maintenance and Reengineering, Budapest, Hungary, March 2002. 8. C. Bachmann "A CASE for Reverse Engineering", Datamation, July 1988 9. J. W. Bailey, V. R. Basili "Software Reclamation: Improving Post-Development Reusability", In Proceedings of the 8th National Conference on Ada Technology, US Army Communications-Electronics Command, Fort Monmouth, N.J., 1990, pp. 477–480 and 489–499. 10. B. S. Baker "An Algorithm for Structuring Flowgraphs", Journal of the ACM, Vol. 24, No. 1, 1977, pp. 98–120. 11. K.H. Bennett "Automated support of software maintenance", Information and Software Technology, Vol. 33, No. 1, 1991, pp. 74–85. 12. 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. 13. B. W. Binkley, M. Harman, L. R. Raszewski, C. Smith "An Empirical Study of Amorphous Slicing as a Program Comprehension Support Tool", In Proceedings of the 8th IEEE International Conference on Program Comprehension, Limerick, Ireland, June 2000, pp. 161-170. 14. B. Boehm "Software Engineering Economics", Englewood Cliffs, N.J., Prentice-Hall, 1981. 15. B. Boehm et al. "A Software Development Environment for Improving Productivity", Computer, June 1984, pp. 30-44.
113
16. C. 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. 17. 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. 18. 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. 19. 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. 20. M. L. Brodie, M. Stonebraker "Migrating Legacy Systems: Gateways, Interfaces and the Incremental Approach", Morgan-Kaufmann, 1995, 210 pp. 21. G. Caldiera, V. R. Basili "Identifying and Qualifying Reusable Software Components", Computer, Vol. 24, No. 2, February 1991, pp. 61-70. 22. F.W. Calliss "Problems with Automatic Restructurers", ACM SIGPLAN Notices, Vol. 23, No. 3, Mar. 1988, pp. 13–23. 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. 24. C. Cerf and V. Navasky "The Experts Speak — The Definitive Compendium of Authoritative Misinformation", Villard Books, New York, 1998 25. Y. Chae and S. Rogers "Successful COBOL Upgrades: Highlights and Programming Techniques", John Wiley and Sons, New York, 1999, 288 pp. 26. E. Chikosfky "CASE and Reengineering: From Archeology to Software Perestroika", Proceedings of the 12th International Conference on Software Engineering, 1990, p. 122 27. E. Chikofsky, J. H. Cross II "Reverse Engineering and Design Recovery: A Taxonomy", IEEE Software, Vol. 7, No. 1, January 1990, pp. 13–17. 28. C. Cifuentes, K.J. Gough "Decompilation of Binary Programs", Software: Practice and Experience, Vol. 25, No. 7, July 1995, pp. 811–829. 29. C. Cifuentes, D. Simon, A. Fraboulet "Assembly to High-Level Language Translation", In Proceedings of the International Conference on Software Maintenance, Washington DC, November 1998, pp 228–237. 30. "COBOL/370 Migration Guide", release 1, IBM Corp., Armonk, N.Y., 1992.
114
31. I. Claßen, K. 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. 32. B. Cox "Object-Oriented Programming: An Evolutionary Approach", Addison-Wesley, Reading, MA. 1976. 33. M. A. Cusumano, R. W. Selby "Microsoft Secrets", Simon & Schuster, New York, 1998, 512 pp. 34. T. DeMarco, T. Lister "Peopleware – Productive Projects and Teams", Dorset House, New York, 1987, p. 30. 35. 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. 36. E. Dijkstra "Go to statement considered harmful", Communications of the ACM, vol. 11, no. 3, pp. 147-148, March 1968 37. 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. 38. 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. 39. L. H. Etzkorn, C. G. Davis "Automatically Identifying Reusable OO Legacy Code", Computer, October 1997. P. 66–71. 40. D. P. Freedman, G. M. Weinberg "Handbook of Walkthroughs, Inspections and Technical Reviews", Dorset House, 3rd edition, 1990 41. E. S. Garnett, J. A. Mariani "Software Reclamation", Sofware Engineering Journal, May 1990, pp. 185-191
...





Подобные готовые работы:

ЯЗЫКОВЫЕ ПРЕОБРАЗОВАНИЯ В ЗАДАЧАХ РЕИНЖИНИРИНГА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Языковые средства создания гипердокументов

Языковые средства создания гипердокументов

Кадровое делопроизводство, языковые формулы официальных документов

Кадровое делопроизводство, языковые формулы официальных документов

Кадровое делопроизводство, языковые формулы официальных документов

Организационные преобразования в антикризисном управлении (на примере)

Тенденции и характер преобразования собственности в транзитарной системе

Налоговая система России: особенности и пути преобразования

Стратегические преобразования в процессе антикризисного управления (на примере)

Современные информационные технологии как средство преобразования организационной культуры

Инновационный проект как процесс преобразования, вид деятельности и сфера бизнеса