Помощь в написании студенческих работ
Антистрессовый сервис

Инструментальная поддержка подключаемых модулей в языках процедурно-параметрического программирования

ДиссертацияПомощь в написанииУзнать стоимостьмоей работы

Несмотря на проработку языковых конструкций и общих методов их создания, отсутствует сравнительный анализ различных методов наращивания базовых программных объектов. В частности, эволюционное расширение на основе подключаемых модулей требует более подробного исследования приемов, обеспечивающих реализацию данного подхода. Отсутствует четкое понимание построения модульных программ в? сочетании… Читать ещё >

Инструментальная поддержка подключаемых модулей в языках процедурно-параметрического программирования (реферат, курсовая, диплом, контрольная)

Содержание

  • 1. Анализ методов эволюционного конструирования понятий
    • 1. 1. Обзор общих методов трансформации понятий
    • 1. 2. Трансформация понятий при эволюционной разработке программного обеспечения
    • 1. 3. Модель трансформации понятий
    • 1. 4. Пример фаз преобразования программы
    • 1. 5. Модификация понятий в процессе трансформации исходной программы
    • 1. 6. Модель зависимостей понятий
    • 1. 7. Графическое представление модели зависимости понятий
    • 1. 8. Описание элементов модели зависимостей понятий
    • 1. 9. Описание исходных зависимостей для различных парадигм программирования
  • 1.
  • Выводы
  • 2. Анализ методов реализации эволюционного конструирования модульной структуры программы
    • 2. 1. Существующие методы организации модульных структур
      • 2. 1. 1. Модульное программирование
      • 2. 1. 2. Модульность в немодульных языках
    • 2. 2. Трансформация понятий в модульных программах
      • 2. 2. 1. Трансформация понятий в языках программирования Оберон и Оберон
      • 2. 2. 2. Трансформация понятий в языке программирования 02 М
    • 2. 3. Особенности применения подключаемых модулей
    • 2. 4. Анализ трансформации понятий процедурно-параметрической программы на основе подключаемых модулей
      • 2. 4. 1. Использование общего промежуточного представления
      • 2. 4. 2. Использование раздельной обработки
      • 2. 4. 3. Использование динамически загружаемых модулей
    • 2. 5. Комбинированные методы организации фаз трансляции процедурно-параметрической программы
    • 2. 6. Выводы
  • 3. Реализация процедурно-параметрического подхода при использовании подключаемых модулей
    • 3. 1. Трансформация понятий процедурно-параметрической программы в языке Alien
    • 3. 2. Трансформация модульной структуры
    • 3. 3. Трансформация параметрических обобщений
    • 3. 4. Трансформация обобщенных записей
    • 3. 5. Трансформация обобщающих параметрических процедур и обработчиков специализаций
    • 3. 6. Результирующая модель зависимостей
    • 3. 7. Выводы
  • 4. Разработка процедурно-параметрического языка, использующего подключаемые модули
    • 4. 1. Инструментальная поддержка процедурно-параметрического языка
      • 4. 1. 1. Транслятор с языка Alien
      • 4. 1. 2. Компоновщик параметрических отношений
    • 4. 2. Объектная модель транслятора
      • 4. 2. 1. Объекты транслятора
      • 4. 2. 2. Промежуточная модель
      • 4. 2. 3. XML-представление
    • 4. 3. Организация массивов
      • 4. 3. 1. Обычные массивы
      • 4. 3. 2. Открытые массивы
    • 4. 4. Выводы

Разработка программного обеспечения — это сложный процесс, при котором учитываются разнообразные критерии качества. Достижение таких критериев определяется как использованием соответствующей дисциплины программирования, так и применением языковых и инструментальных средств, ориентированных на поддержку избранной парадигмы. Одним из важных критериев качества является эволюционное расширение больших программных систем. Использование эволюционного расширения вносит дополнительную гибкость в создаваемые программные системы и дает возможность применять отлаженный код при разработке новых программ [1].

Существуют различные подходы, обеспечивающие поддержку эволюционной разработки программного обеспечения. Каждый из этих подходов акцентирует внимание на одном из аспектов разработки программного обеспечения и решает определенный круг задач, связанный с эволюционной разработкой. В частности, объектно-ориентированное программирование (ООП) обеспечивает за счет полиморфизма и виртуализации гибкое расширение программных объектов и построение альтернативных понятий, обладающих общим интерфейсом [2−6]. Аспектно-ориентированное программирование (АОП) ориентировано на использование сквозной функциональности [7, 8].

Процедурно-параметрическое программирование (111 111) [9, 10], как и ООП, рассчитано на гибкое расширение существующих альтернативных структур данных и процедур, осуществляющих их обработку. Но в отличие от ООП оно эффективно поддерживает и множественный полиморфизм, что обеспечивает гибкое эволюционное изменение мультиметодов [11, 12].

Вместе с тем, вопросы, связанные с инструментальной поддержкой процедурно-параметрическойпарадигмы, до конца не проработаны. В частности, не определено влияние методов реализации модульной структуры программы на формирование процедурно-параметрических отношений во время трансляции, компоновки и загрузки. Поэтому структура и организация модулей, а также их преобразование во время трансляции, компоновки и загрузки требуют более детальных исследований.

Несмотря на проработку языковых конструкций и общих методов их создания [13−15], отсутствует сравнительный анализ различных методов наращивания базовых программных объектов. В частности, эволюционное расширение на основе подключаемых модулей [16] требует более подробного исследования приемов, обеспечивающих реализацию данного подхода. Отсутствует четкое понимание построения модульных программ в? сочетании с процедурно-параметрическим подходом. Несмотря на детальную проработку концепции эволюционного расширения, недостаточно подробно исследованы приемы и алгоритмы генерации объектного кода и компоновки,. Не определено, на каких этапах процесса трансляции и каким образом осуществлять преобразование эволюционно написанной процедурно-параметрической программы в обычный процедурный код.

Таким образом, актуальной является задача организации структуры программы с использованием подключаемых модулей и способов ее трансформации в исполняемый код при процедурно-параметрической парадигме программирования.

Целью работы является исследование принципов реализации инструментальных средств, обеспечивающих трансляцию эволюционно расширяемых программ, написанных с использованием подключаемых модулей и процедурно-параметрической парадигмы программирования.

Для достижения указанной цели в работе решаются следующие задачи.

1) Исследование связи между способами эволюционного конструирования программных объектов и их преобразованием в машинный код на различных этапах процесса трансляции исходного текста программы.

2) Анализ методов формирования и использования модульной структуры программы в процедурно-параметрических языках программирования.

3) Разработка алгоритмов, обеспечивающих преобразование эволюционно расширяемых процедурно-параметрических программ, использующих подключаемые модули, в исполняемый код.

4) Разработка инструментальных средств, обеспечивающих использование предлагаемых методов и алгоритмов.

Методы исследования. В диссертационной работе использовались методы дискретной математики, теории алгоритмов, теории языков и формальных грамматик, теории разработки трансляторов. Для описания синтаксиса языка программирования применялись диаграммы Вирта и расширенные формы Бэкуса-Наура. Разработка языка программирования опиралась на методы объектно-ориентированного и процедурно-параметрического программирования.

Научная новизна.

1) Предложена модель трансформации понятий, описывающая изменение зависимостей между программными объектами в процессе трансляции из исходных текстов в исполняемый код, повышающая эффективность анализа механизмов преобразования программных объектов за счет дополнительной декомпозиции.

2) При помощи модели трансформации понятий проведен анализ и выделены перспективные варианты реализации транслятора с языка процедурно-параметрического программирования.

3) Разработаны методы и алгоритмы, поддерживающие гибкое расширение процедурно-параметрической программы при использовании подключаемых модулей и обеспечивающие построение исполняемого кода в процессе трансляции.

Практическая ценность.

1) Уточнен и модифицирован язык процедурно-параметрического программирования, поддерживающий подключаемые модули.

2) Разработан транслятор с процедурно-параметрического языка, обеспечивающий апробацию на практике предлагаемых методов эволюционного расширения программ.

Результаты работы использованы в продолжающихся научных исследованиях, а также в учебном процессе по дисциплинам: «Технология программирования», «Методы программирования», «Формальные языки и трансляторы».

Положения, выносимые на защиту.

1) Использование модели трансформации понятий облегчает анализ методов преобразования эволюционно расширяемых исходных текстов программы в исполняемый код за счет выделения отдельных фаз преобразования и их независимого анализа.

2) Преобразование подключаемых модулей возможно на разных фазах трансляции и может быть увязано как со статической, так и с динамической компоновкой исполняемого кода.

3) Использование подключаемых модулей в сочетании с процедурно-параметрической парадигмой программирования повышает гибкость процесса разработки программного обеспечения.

Достоверность и обоснованность результатов диссертации подтверждаются: исследованием методов эволюционной разработки программ, анализом существующих языковых и инструментальных средств, используемых для разработки программного обеспечения, «корректным обоснованием постановок задач, точной формулировкой критериев, исследованием и результатами сравнительного анализа существующих подходов к решению поставленной задачи, опытом применения разработанного инструментария для написания программ в процедурно-параметрическом стиле с поддержкой подключаемых модулей.

Публикации и личный вклад в решение проблемы. По теме диссертации опубликовано десять научных работ, из которых одна статья в издании по списку ВАК.

Диссертация основана на теоретических, методологических и экспериментальных исследованиях, выполненных на кафедре «Вычислительная техника» ФГАОУ ВПО «Сибирский федеральный университет». Основные теоретические и практические результаты, изложенные в работе, получены либо непосредственно автором, либо с его участием. Автором предложена модель трансформации понятий, поддерживающая эволюционную разработку процедурно-параметрических программ. Им разработан транслятор языка процедурно-параметрического программирования, реализована поддержка основных методик процедурно-параметрического программирования, проведены исследования возможных способов реализации подхода с использованием подключаемых модулей и расширения модульных структур процедурно-параметрических программ.

Апробация работы. Основные положения диссертации докладывались и обсуждались на:

— межвузовских научных конференциях студентов, аспирантов и молодых ученых, Красноярск (2007, 2008, 2009, 2010);

— всероссийских научно-методических конференциях и выставках «Повышение качества высшего профессионального образования», Красноярск (2008, 2009, 2010);

— 3-й всероссийской конференции «Винеровские чтения», Иркутск,.

2009;

— всероссийской конференции студентов, аспирантов и молодых ученых с международным участием «Молодежь и современные информационные технологии», Томск, 2010.

Структура диссертации.

Диссертация состоит из введения, четырех разделов, заключения, списка литературы и четырех приложений. Работа содержит 124 страницы основного текста, 32 рисунка, 1 таблицу.

Список литературы

содержит 80 наименований.

4.4 Выводы.

1) Для проведения практических экспериментов с подключаемыми модулями модифицирован язык программирования Alien, который поддерживает процедурно-параметрическое программирование, позволяющее гибко наращивать программу в ходе сопровождения.

2) Для анализа и оптимизации промежуточного представления разработан блок транслятора, отвечающий за генерацию промежуточного представления в формате XML.

Заключение

.

При выполнении работы получены следующие научные и практические результаты.

1) Предложена модель трансформации понятий, описывающая изменение зависимостей между программными объектами в процессе трансляции из исходных текстов в исполняемый код, повышающая эффективность анализа механизмов преобразования программных объектов за счет дополнительной декомпозиции.

2) При помощи модели трансформации понятий проведен анализ и выделены перспективные варианты реализации транслятора с языка процедурно-параметрического программирования.

3) Разработаны методы и алгоритмы, поддерживающие гибкое расширение процедурно-параметрической программы при использовании подключаемых модулей и обеспечивающие построение исполняемого кода в процессе трансляции.

4) Уточнен и модифицирован язык процедурно-параметрического программирования, поддерживающий подключаемые модули.

5) Разработан транслятор с процедурно-параметрического языка, обеспечивающий апробацию на практике предлагаемых методов эволюционного расширения программ.

Показать весь текст

Список литературы

  1. , А. И. ООП, мультиметоды и пирамидальная эволюция / А. И. Легалов // Открытые системы. № 3 (март) 2002. С. 41—45.
  2. , С. Наиболее эффективное использование С++. 35 новых рекомендаций по улучшению ваших программ и проектов: пер. с англ. / С. Мейерс. М.: ДМК Пресс, 2000. — 304 с.
  3. Буч, Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++, 2-е изд.: пер. с англ. / Г. Буч. М.: «Издательства Бином», СПб.: «Невский диалект», 1998. — 560 с.
  4. , Т. Объектно-ориентированное программирование в действии / Т. Бадд. СПб.: Питер, 1997.
  5. , Э. Приемы объектно-ориентированного проектирования. Паттерны проектирования: пер. с англ. / Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес. СПб.: Питер, 2001. — 368 с.
  6. Kiczales, G. Aspect-Oriented Programming / G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J. Loingtier, J. Irwin In proc. of ECOOP, 1997, LNCS 1241. — pp. 220−242.
  7. Colyer, A. Eclipse AspecU: Aspect-Oriented Programming with AspecU and the Eclipse AspecU Development Tools / A. Colyer, A. Clement, G. Harley, M. Webster. Addison Wesley Professional. — 2004.
  8. , А. И. Процедурно-параметрическая парадигма программирования. Возможна ли альтернатива объектно-ориентированномустилю? Красноярск, 2000. — Деп. рук. № 622-В00. Деп. в ВИНИТИ 13.03.2000.-43 с.
  9. Особенности процедурно-параметрической парадигмы программирования // Радиоэлектроника. Информатика. Управление. № 1 (5), 2001.-С. 102−106.
  10. , А. И. Методы реализации процедурно-параметрического полиморфизма / А. И. Легалов // Проблемы информатизации региона. ПИР-2000: тез. докл. Шестой Всерос. науч.-практ. конф. Красноярск: КГТУ, 2000.-С. 69−71.
  11. , А. И. Методы поддержки параметрического полиморфизма / А. И. Легалов // Научный вестник НГТУ. — 2004. — № 3 (18). -С. 73−82.
  12. , А. И. Языковая поддержка процедурно-параметрического программирования / А. И. Легалов, Д. А. Швец, И. А. Легалов // Проблемы информатизации региона, ПИР-2005: материалы девятой науч.-практ. конф. — Красноярск.-2005. -С. 169−175.
  13. , И. А. Применение обобщенных записей в процедурно-параметрическом языке программирования / И. А. Легалов // Научный вестник НГТУ. 2007. — № 3 (28). — С. 25−38.
  14. , А. Я. Расширение модульной структуры программы за счет подключаемых модулей / А. Я. Бовкун, А. И. Легалов, И. А. Легалов // Доклады академии наук высшей школы Российской Федерации. — Новосибирск: НГТУ, 2010. С. 114−125.
  15. Процедурное программирование. Материал из Википедии — свободной энциклопедии Электронный ресурс. — Режим доступа: http://ru.wikipedia.org/wiki/ Процедурноепрограммирование. — Загл. с экрана.
  16. , А. И. Разнорукое программирование // А. И. Легалов. — http://www.softcraft.ru/paradigm/dhp/index.shtml
  17. , А. Функциональное программирование : пер. с англ. //
  18. A. Филд, П. Харрисон. М.: Мир, 1993. — 637 с, ил.
  19. , Г. Архитектура современных ЭВМ : В 2-х кн. / Г. Майерс. — М.: Мир, 1985.-364 с.
  20. , П. Макропроцессоры и мобильность программного обеспечения / П. Браун // Серия: Математическое обеспечение ЭВМ — пер. с англ. М.: Мир, 1977. — 253 с.
  21. Tom Swan. Mastering Turbo Assembler. Carmel, Indiana: Howard W. Sams & Company, Hayden Books division of Macmillan Computer Publishing, 1989.
  22. , Т. Освоение Turbo Assembler. 2-е изд. / Т. Сван. — Киев: Диалектика, 1996. 540 с.
  23. American Standard FORTRAN. Approved March 7, 1966, N. Y., 1966.
  24. , В. Дж. Курс программирования на фортране-IV /
  25. B. Дж. Калдербенк. — М.: Энергия, 1976.
  26. P. Naur, «Report on the Algorithmic Language ALGOL 60,» Comm. ACM, May 1960, pp. 299−314.
  27. , П. Алгоритмический язык АЛГОЛ 60 / П. Ilayp. М.: Мир, 1965.
  28. , Н. Алгоритмы + структуры данных = программы / Н. Вирт. -М.: Мир, 1985.
  29. , Б. Язык программирования С++. Третье издание: пер. с англ. / Б. Страуструп. СПб. — М.: «Невский диалект» — «Издательство БИНОМ», 1999.-991 с.
  30. , П. Программирование на Java. Руководство П. Нортона (в 2-х т.): пер. с англ. / П. Нортон. «СК-Пресс», 1998. — 900 с.
  31. , Э. С. С# и платформа .NET. Библиотека программиста: пер. с англ. / Э. С. Троелсен. СПб.: Питер, 2003. — 800 с.
  32. , А. И. С, С++. Правила программирования / А. И. Голуб. -М.: Бином, 1996.
  33. , A. JI. Технологические аспекты создания программных систем / A. JI. Фуксман. М.: Статистика, 1979. — 184 с.
  34. Дал, У. Структурное программирование: пер с англ. / У. Дал, Э. Дейкстра, К. Хоор. М.: Мир, 1975. — 247 с.
  35. Горбунов-Посадов, M. М. Система открыта, но что-то мешает / M. М. Горбунов-Посадов // Открытые системы. — 1996. — № 6. С. 36−39.
  36. Горбунов-Посадов, M. М. Конфигурационные ориентиры на пути к многократному использованию / M. М. Горбунов-Посадов. ИПМ им. М. В. Келдыша РАН. Препринт № 37, 1997 г.
  37. Горбунов-Посадов, M. М. Облик многократно используемого компонента / M. М. Горбунов-Посадов // Открытые системы. — 1998. — № 3. — С. 45−49.
  38. Горбунов-Посадов, M. М. Расширяемые программы / M. М. Горбунов-Посадов. -М.: Полиптих, 1999.
  39. Горбунов-Посадов, M. М. Эволюция программы: структура транзакции / M. М. Горбунов-Посадов // Открытые системы. 2000. — № 10. -С. 43−47.
  40. , Д. АОП: Более эффективная инкапсуляция и повторное использование кода / Д. Шукла, С. Ф. К. Селлз // MSDN Magazine / Русская редакция. 2002. — Спецвыпуск № 1.
  41. , В. Л. Динамическое формирование объектов / В. JI. Ческис // Программист. № 10. — 2002.
  42. , А. Современное проектирование на С++ : пер. с англ. / А. Александреску М.: Издательский дом «Вильяме», 2002. — 336 с.
  43. , D. С++ Template Metaprogramming: Concepts, Tools and Techniques from Boost and Beyong. / D. Abrahams, A. Gurtovoy — Boston, Addison-Wesley. 2005. — 373 pp.
  44. Vlissides John. Pattern hatching: design pattern applied. / Addison Wesley, 172 pages, 1998.
  45. , Дж. Применение шаблонов проектирования. Дополнительные штрихи: пер. с англ. / Дж. Влиссидес. М.: Издательский дом «Вильяме», 2003. — 144 с.
  46. Steele, G. L. Common Lisp the Language, 2nd Edition. / G. L. Steele — Digital Press, Bedford, Massachusetts, 1990. http://www.cs.cmu.edu/.
  47. , Б. Дизайн и эволюция С++ : пер. с англ. / Б. Страуструп. М.: ДМК Пресс, 2000. — 448 с.
  48. , А. И. Мультиметоды и парадигмы / А. И. Легалов // Открытые системы. № 5 (май), 2002. — С. 33−37.
  49. , Б. В. Язык С / Б. В. Керниган, Д. М. Ричи. Невский Диалект, 2000. — 352 с.
  50. Полиморфизм (программирование). Материал из Википедии — свободной энциклопедии Электронный ресурс. Режим доступа: http://ru.wikipedia.org/wiki/Пoлимopфизм (пpoгpaммиpoвaниe). — Загл. с экрана.
  51. , Т., Программирование на Perl / Т. Кристиансен, Д. Орвант, Л. Уолл. М.: Символ-Плюс, 2004. — 1145 с.
  52. , Р. А. Язык программирования Python / Р. А. Сузи. БИНОМ. Лаборатория знаний, Интернет-университет информационных технологий. ИНТУИТ.ру. — 2006. — 328 с.
  53. Рогаткин, Д. Borland Pascal в среде Windows / Д. Рогаткин, А*. Федоров. Киев: Диалектика, 1993. — 511 с.
  54. , Ю. С. ПАРСЕК язык компьютерного исчисления древовидных структур с открытой интерпретацией. Стендовый вариант системы программирования / Ю. С. Затуливетер, Т. Г. Халатян. — М., 1997 (Препринт/Институт проблем управления РАН).
  55. , Н. Алгоритмы и структуры данных. Новая версия для Оберона: пер. с англ. / Н. Вирт. М.: ДМК-Пресс, 2010. — 272 с.
  56. Модуль (программирование). Материал из Википедии — свободной энциклопедии Электронный ресурс. — Режим доступа: http://ru.wikipedia.org/wiki/Moдyль (пpoгpaммиpoвaниe). — Загл. с экрана.
  57. Grogono P. Why One Source File Is Better Than Two. / SEA 2000 -Software Engineer-ing and Applications (Las Vegas, Nevada, USA, November 2000), Proceedings of the IASTED International Conference. ACTA Press. -2000. — pp. 243−249.
  58. Moessenboeck, H. Object-Oriented Programming in Oberon-2 / H. Moessenboeck. Springer-Verlag. © 1993.
  59. Moessenboeck, H. The Programming Language Oberon-2 / H. Moessenboeck, N. Wirth. Institut fur Computersysteme, ETH Zurich July. -1996.
  60. Component Pascal Language Report. Oberon Microsystems, Inc, 2001.
  61. BlackBox. Электронный ресурс. — Режим доступа: http://www.oberon.ch/blackbox. html. — Загл. с экрана.
  62. Сайт компании Oberon Microsystems, посвященный языку программирования Component Pascal http://www.oberon.ch/
  63. , М. Программирование на Python 3. Подробное руководство: пер. с англ. / М. Саммерфильд. — СПб.: Символ-Плюс, 2009. -608 с.
  64. Radensky, A. Module embedding Электронный ресурс. / A. Radensky ' Режим доступа: http://wwwl.chapman.edu/~radenski/research/papers/module.pdf.. Загл. с экрана.
  65. , А. И. Процедурный язык с поддержкой эволюционного проектирования / А. И. Легалов, Д. А. Швец // Научный вестник НГТУ. — 2003. № 2 (15). — С. 25−38.
  66. Wirth, N. The Programming Language Oberon. / N. Wirth -ftp://ftp.inf.ethz.ch/pub/software/Ober0n/OberonY4/Docu/OberonReport.Text/.
  67. Wirth, N. Programming in Oberon. A derivative of Programming in Modula-2 (1982). /N. Wirth- http://www.oberon.ethz.ch/wirthPiO/.
  68. , Д. А. Система программирования на языке 02 М / Д. А. Швец // В кн.: IV Всерос. конф. молодых ученых по математическому моделированию и информационным технологиям: Программа и тезисы докладов. Красноярск, 2003. — С. 67.
  69. , Д. С. Знакомство с Microsoft .NET / Д. С. Платт — пер. с англ. -М.: Издательско-торговый дом «Русская Редакция», 2001. — 240 е.: ил.
  70. , Д. А. Инструментальная поддержка языка программирования 02 М / Д. А. Швец // В кн.: Технологии Microsoft в информатике и программировании: тезисы докладов. Новосибирск: НГУ, 2004. — С. 41−42.
  71. Рихтер, Дж. CLR via С#. Программирование на платформе Microsoft .NET Framework 2.0 на языке С#. Мастер-класс / Дж. Рихтер — пер. с англ. -М.: Издательство «Русская редакция» — СПб.: Питер, 2007. 656 стр.: ил.
  72. , Э. Введение в С#. Библиотека программиста / Э. Гуннерсон. СПб.: Питер, 2001.-304 с.
  73. , Н. Программирование на языке Модула-2 / Н. Вирт — пер. с англ. М.: Мир, 1987. — 244 с.
  74. , Н. Язык Ада / Н. Джехани — пер. с англ. — М.: Мир, 1988.-522 с.
  75. , Н. Программирование на языке Си / Н. Джехани — пер. с англ. М.: Радио и связь, 1988. — 272 с.
  76. , А. В. Самоучитель UML / А. В. Леоненков. СПб.: БХВ-Петербург, 2001.-304 с.
  77. , К. Применение UML 2.0 и шаблонов проектирования. Введение в объектно-ориентированный анализ и проектирование / К. Ларман. -М.: Издательский дом «Вильяме». — 2008. 736 с.
  78. А. Мацяшек. Анализ и проектирование информационных систем с помощью UML 2.0. Третье изд. / А. Лешек Мацяшек. — М.: Издательский дом «Вильяме». 2008. — 816 с.
  79. Спенсер, П. XML. Проектирование и реализация / П. Спенсер. -М.: Лори, 2001.-509 с.
Заполнить форму текущей работой