Моделирование распределенных недетерминированных программных систем и их тестирование на основе автоматных мультиагентных вероятностных моделей тема диссертации и автореферата по ВАК РФ 05.13.11, кандидат физико-математических наук Старолетов, Сергей Михайлович

  • Старолетов, Сергей Михайлович
  • кандидат физико-математических науккандидат физико-математических наук
  • 2011, Барнаул
  • Специальность ВАК РФ05.13.11
  • Количество страниц 185
Старолетов, Сергей Михайлович. Моделирование распределенных недетерминированных программных систем и их тестирование на основе автоматных мультиагентных вероятностных моделей: дис. кандидат физико-математических наук: 05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей. Барнаул. 2011. 185 с.

Оглавление диссертации кандидат физико-математических наук Старолетов, Сергей Михайлович

Список использованных сокращений.

ВВЕДЕНИЕ.

ГЛАВА 1. ПРИМЕНЕНИЕ МОДЕЛЕЙ В ПРОЦЕССЕ РАЗРАБОТКИ ПРОГРАММ. ТЕСТИРОВАНИЕ НА ОСНОВЕ МОДЕЛЕЙ. МОДЕЛИ РАСПРЕДЕЛЕННЫХ ВЗАИМОДЕЙСТВУЮЩИХ СИСТЕМ.

1.1 Разработка, управляемая моделями.

1.2 Тестирование ПО сегодня.

1.3 Краткий обзор технологий тестирования.

1.4 Модели распределенных многопоточных взаимодействующих систем.

1.4.1 Сети Петри.

1.4.2 Язык 8БЬ.

1.4.3 ЯзыкиМЬ.

1.5 Выводы к главе 1.

ГЛАВА 2. ПОСТРОЕНИЕ МАТЕМАТИЧЕСКОЙ МОДЕЛИ СОВРЕМЕННЫХ РАСПРЕДЕЛЕННЫХ

НЕДЕТЕРМИНИРОВАННЫХ СИСТЕМ.

2.1 Модели в исследовании свойств алгоритма.

Проблема тестирования.

2.2 Распределенные недетерминированные взаимодействующие системы. Постановка задачи на тестирование.

2.3 Модель распределенных недетерминированных систем.

2.3.1 Конечный автомат.

2.3.2 Конечный автомат с вероятностными переходами.

2.3.3 Конечный автомат с вероятностными переходами и обработкой событий и исключений.

2.3.4 Расширение автомата для поддержки моделирования многопоточных приложений.

2.3.4.1 Параллелизм.

2.3.4.2 Операция создания потока и понятие кратности.

2.3.4.3 Операция ожидания потоков.

2.3.4.4 Обмен сообщениями.

2.3.4.5 Блокировка ресурсов.

2.3.5. Модель многокомпонентной системы высокого уровня.

2.3.6 Моделирование межкомпонентной связности.

2.3.7 Итоговая модель системы в виде взаимодействующих компонентов.

2.4 Предварительная оценка модели.

2.4 Выводы к главе 2.

ГЛАВА 3. ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ ПРОЦЕССОВ

РАЗРАБОТКИ И ТЕСТИРОВАНИЯ НА ОСНОВЕ МОДЕЛЕЙ.

3.1 Представление автомата в виде состояний, переходов и операций.

3.2 Способы описания модели и ее соотношение с исходным кодом системы.

3.2.1 Описание модели при отсутствии кода.

3.2.2 Описание модели при наличии кода.

3.3 О практической значимости и адекватности модели.

3.4 Процесс разработки и тестирования на основе моделей.

3.5 Статическая верификация модели.

3.6 Динамическое тестирование по модели.

3.6 Выводы к главе 3.:.

Рекомендованный список диссертаций по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Введение диссертации (часть автореферата) на тему «Моделирование распределенных недетерминированных программных систем и их тестирование на основе автоматных мультиагентных вероятностных моделей»

В настоящей диссертационной работе рассматриваются модель, методы и средства для проектирования и тестирования программных систем для параллельной и распределенной обработки данных согласно принципам МТЮ и МВТ.

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

Разработаны методы описания модели для программной системы по принципу «код и модель-одно целое» в двух вариантах:

• при наличии реализованного программного кода описание модели на разработанном языке встраивается в код системы (описание модели по коду);

• реализация программной системы при помощи объектно-ориентированной реализации модели в виде классов (проектирование системы как модели).

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

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

Статический метод тестирования включают в себя имитационное моделирование, отладку, проверку достижимости состояний, вычисление вероятностей переходов в системе по ее модели.

Объект исследования - современные многокомпонентные распределенные программные системы, многопоточные системы, системы, построенные на обмене сообщениями.

Актуальность темы. С ростом сложности программных систем возникает проблема обеспечения достаточного уровня надежности разрабатываемого ПО, ошибки в котором могут нанести серьезный экономический ущерб и привести к жизненно-опасным ситуациям. Современные технологии программирования не могут обеспечить эффективных методов безошибочного проектирования ПО. В настоящее время на рынке нет понятных и эффективных продуктов для тестирования программ с использованием математических моделей, как нет и общепризнанных математических моделей для описания многокомпонентных распределенных систем. Большая работа проделана в исследовательском центре корпорации Microsoft профессором Ю. Гуревичем, ведутся исследования в научных центрах NASA и Bell labs, в России следует отметить работы института системного программирования РАН и кафедры технологий программирования СпбГУ ИТМО. Однако практическая применимость для тестирования предлагаемых моделей в компаниях по разработке ПО невелика, что является следствием сложности предлагаемых моделей и низкой степенью их вовлечения в реальные процессы разработки. В связи с этим актуальным является комплексное исследование предметной области в сфере сложных многокомпонентных взаимодействующих программ, их моделирование и практическое применение построенной модели для верификации и тестирования ПО.

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

Основными требованиями к разрабатываемой модели являлись:

• адекватное описание различных классов распределенных программных систем;

• возможность внедрения фазы описания модели в процесс разработки программного обеспечения;

• возможность проведения тестирования программных систем на основе разработанной модели динамическими и статическими методами.

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

Научная новизна. В результате настоящего исследования разработаны:

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

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

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

4. алгоритмы для проведения статической верификации программной системы по модели.

Практическая значимость. На основе результатов исследования в виде алгоритмов и модели созданы прототипы комплекса программ, предназначенные для проведения разработки и тестирования по модели и включающие следующие компоненты: объектно-ориентированную реализацию модели в виде классов на языке Java; инструменты для описания модели по принципу «код и модель - одно целое»; инструменты для генерации кода на разработанном языке описания модели и синтаксических конструкций на языке программирования реализуемого компонента системы; препроцессор для вставки при компиляции промежуточного кода, предназначенного для динамического тестирования по модели; сервер динамического тестирования и средства анализа результатов динамического тестирования; средства для статического тестирования по модели.

Компоненты интегрируются в свободную среду промышленной разработки программ Eclipse, получено авторское свидетельство N2009610226 от 11.01.2009 о регистрации в реестре программ для ЭВМ, также реализована интеграция и в среду Microsoft Visual Studio.

Объем и структура работы. Диссертация состоит из введения, списка сокращений, трех глав, заключения и шести приложений. Список использованной литературы содержит 103 наименования, включая работы

Похожие диссертационные работы по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Заключение диссертации по теме «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», Старолетов, Сергей Михайлович

Основные результаты работы заключаются в следующем:

1. Проведен анализ предметной области, моделей распределенных программных систем и средств для тестирования по модели.

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

3. Разработаны методы описания модели как дополнения к коду, так и в качестве каркаса для разработки программных систем. Модель может быть описана в виде экземпляров классов на языке Java и в виде XML тегов.

4. Разработан и реализован в виде прототипов (подключаемых модулей для промышленной среды разработки Eclipse) комплекс программ для описания модели и проведения тестирования.

5. Разработаны алгоритмы и инструментальные средства для статического и динамического тестирования по предложенной модели.

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

ЗАКЛЮЧЕНИЕ

Список литературы диссертационного исследования кандидат физико-математических наук Старолетов, Сергей Михайлович, 2011 год

1. Amstrong J. Programming Erlang: Software for a Concurrent World / J.Amstrong. Raleigh, North Carolina Dallas, Texas: The Pragmatic bookshelf, 2007.-519 p.

2. Baker P. Model-Driven Testing. Using the UML Testing Profile / P. Baker, Z. Dai, J. Grabowski, 0. Haugen, I. Schieferdecker, С. Williams. Berlin: Springer-Verlag, 2008. - 176p.

3. Barnett M. The Spec# Programming System: An Overview Электронный ресурс. / M. Barnett, К. Rustan, M. Leino, W. Schulte. Redmond, WA, USA: Microsoft Research, 2004. -21 p. Режим доступа- http://research.microsoft.com/ -leino/papers/krml 136.pdf.

4. Blass A. Abstract State Machines Capture Parallel Algorithms: Correction and Extension Электронный ресурс. / А. Blass, Y. Gurevich. USA: Microsoft Research, 2007 - 29 р. Режим доступа - http://www.math.lsa. umich.edu/~ablass/corr-final.pdf.

5. Boerger E. Abstract state machines. A method for high-level system design and analysis / E. Boerger E., R. Staerk. USA: Springer, 2003. - 448 p.

6. Böllert К. On Weaving Aspects / K. Bollert, A. Moreira, S. Demeyer. In Proceedings of the Workshop on Object-Oriented Technology (June 14 18, 1999) Eds. Lecture Notes In Computer Science, vol. 1743- London: Springer-Verlag, 1999.-p. 301-302.

7. Brown A. An introduction to Model Driven Architecture Электронный ресурс. / A. Brown. Режим доступа http://www.ibm.com/developerworks/rational/library/3100.html.

8. Gerth R. Concise Promela Reference Электронный ресурс. / Rob Gerth, 1997. Режим доступа http://spinroot.com/spin/Man/Quick.html.

9. Eclipse Modeling Framework Project (EMF) Электронный ресурс. / Режим доступа http://www.eclipse.org/modeling/emf/.

10. Eclipse.org home Электронный ресурс. / Режим доступа -http://eclipse.org/.

11. Extensible Markup Language (XML) 1.0 Электронный ресурс. / W3C Recommendation of 26 November 2008.

12. Gargantini A. Metamodel-based Simulator for ASMs Электронный ресурс. / A. Gargantini, E. Riccobene, P. Scandurra, Italy 21р. Режим доступа — http:// citeseerx.ist.psu.edu/viewdoc/download? doi= 10.1.1.153.2512&rep=repl &type=pdf.

13. Google Chrome: новый веб-браузер для Windows Электронный ресурс. Режим доступа http://www.google.com/chrome/index.html7hHru.

14. Graphical Modeling Project (GMP) Электронный ресурс. / Режим доступа http://www.eclipse.org/modeling/gmp/.

15. Gronback R. Eclipse Modeling Project: A Domain-Specific Language (DSL) Toolkit / R. Gronback. USA: Addison-Wesley Professional, 2009. - 736 p.

16. Hutton G. Programming in Haskell / G. Hutton. Cambridge: Cambridge University Press, 2007. - 170 p.

17. JavaTESK: Быстрое знакомство. Документация Электронный ресурс. / Режим доступа www.unitesk.ru.

18. JavaTM Platform Debugger Architecture (JPDA) Электронный ресурс. / Oracle Java SE Documentation. Режим доступа http://download.oracle.com/ javase/6/docs/technotes/guides/jpda/.

19. Knudsen J. Parsing XML in J2ME Электронный ресурс. / J. Knudsen. Sun developer network. Article. Режим доступа http://developers.sun.com/mobility/ midp/articles/parsingxml/.

20. Laddad, R. AspectJ in Action. Practical aspect-orientic programming/R. Laddad. USA: Manning Publications Co., 2003. - 513 p.

21. LINQ. .NET framework developer center Электроннный ресурс. / Режим доступа- http://msdn.microsoft.com/en-us/netframework/aa904594.aspx.

22. McConell S. Code complete. Second Edition / S. McConnel. USA: Microsoft press, 2004 - 960 p.

23. Microsoft Visual Studio Электронный ресурс. / Режим доступа -http://www.microsoft.com/visualstudio/ru-ru/default.mspx.

24. Object Management Group UML Электронный ресурс. / Unified modeling language. Режим доступа - http://www.uml.org/.

25. OMG Unified Modeling Language (OMG UML), superstructure Электронный ресурс. / OMG Document Number: formal/2009-02-02. Режим доступа — http://www.omg.org/cgi-bin/doc7formal/2009-02-02.pdf.

26. On-the-fly, LTL model checking with Spin Электронный ресурс. / Режим доступа — http://spinroot.com/spin/whatispin.html.

27. Reed R. Domain of use SDL and MSC Электронный ресурс. / R. Reed. Telecommunications Software Engineering Limited. Режим доступа http://sdl-forum.org/sdl2000present/sdl2000new.zip.

28. Schultz S. Overview of TTCN-3 Электронный ресурс. / S. Shultz. ETSI Secretariat. Режим доступа - http://www.ttcn-3.org/doc/ETSITTCN3 Tutorial.ppt.

29. Scmidt, D. Model-driven Engineering Электронный ресурс. / D. Scmidt. IEEE Computer Society, 2006. - 7 p. Режим доступа -http: / /www. cs. wustl. edu/ ~schmidt/PDF/GEI .pdf.

30. SDL Электронный ресурс. / Режим доступа http://sdl-forum.org/SDL/ index.htm.

31. State-Driven Game Agent Design Электронный ресурс. / Режим доступа — http://www.ai-junkie.com/architecture/statedriven/tutstatel .html.

32. Technical WAP 2.0 Электронный ресурс. / ОМА Technical section. Режим доступа http://www.openmobilealliance.org/tech/affiliates/wap/ technicalwap20-20021106.zip.

33. The Java ТМ Tutorials Электронный ресурс. / Sun microsystems, 19952008. Режим доступа — http://java.sun.com/docs/books/tutorial.

34. Turing A. On computable numbers, with an application to the Entscheidungsproblem / Turing A. Proceedings of the London Mathematical Society, Series 2, 42. London, 1936 - pp. 230-265.

35. UML Testing Profile. Version 1.0 Электронный ресурс. / Object management group. Режим доступа http://www.omg.org/docs/formal/05-07-07.pdf.

36. Zhayong W. Test Advanced Guide. Advanced topics on using Google С++ Testing Framework Электронный ресурс. / W. Zhayong. Режим доступа — http://c0de.g00gle.c0m/p/g00gletest/wiki/G00gleTestAdvancedGuide.

37. Бар P. Язык Ада в проектировании систем / Р. Бар. пер. с англ. М.: Мир, 1988.-315 с.

38. Бейзер Б. Тестирование черного ящика. Технологии функционального тестирования программного обеспечения и системы/ Б. Бейзер. Спб: Питер, 2004. - 320с.

39. Бек К. Расширения Eclipse. Принципы, шаблоны и подключаемые модули/К. Бек, Э. Гамма. М: Кудиц-образ, 2005. - 384 с.

40. Бек К. Экстремальное программирование: разработка через тестирование / К. Бек. СПб.: Питер, 2003. - 224 с.

41. Буч Г. Язык UML. Руководство пользователя / Г. Буч, Д. Рамбо, А. Джекобсон. М.: ДМК пресс, 2007. - 496 с.

42. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. Второе издание Электронный ресурс. / Буч Г. Rational Санта-Клара, Калифорния. Режим доступа http://vmk.ugatu.ac.ru/book/buch/ index.htm

43. Вентцель Е.С. Теория случайных процессов и ее инженерные приложения / Е.С. Вентцель, JI.A. Овчаров. М.: Наука. Гл. ред. физ.-мат. Лит. - 1991,- 384 с.

44. Воробьёв Н. Числа Фибоначчи / H.H. Воробьёв. Популярные лекции по математике. М.:Наука, 1978.- 144 с.

45. Выдрин A.C. Стохастические матрицы и анализ защищённости автоматизированных систем / A.C. Выдрин, А. В. Михалёв. Фундаментальная и прикладная математика 2007, т. 13, выпуск 1. М.: МГУ, 2007 - с. 61-99.

46. Гордиенко A.B. Тестирование при оценке динамической корректности программ АСУ / A.B. Гордиенко // Программирование. 1982. - №6. - с. 4852.

47. Горнаков С.Г. Программирование мобильных телефонов на Java2 Micro Edition/С.Г. Горнаков. М.: ДМК Пресс, 2004. - 336 с.:ил.

48. Грязнов Е. Тонкий клиент Электронный ресурс. / Е. Грязнов. Мир ПК. Режим доступа- http://www.osp.ru/pcworld/2005/02/169733/p2.html

49. Гуров В. Исполняемый UML-из России Электронный ресурс. / В. Гуров, А. Нарвский, А. Шалыто. 7 с. Режим доступа - http://is.ifmo.ru/works/ umlrus.pdf

50. Дастин Э. Автоматизированное тестирование программного обеспечения. Внедрение, управление и эксплуатация / Э. Дастин, Д. Рэшка, Д. Пол. Перевод с англ. М.: ЛОРИ, 2003. - 567 с.

51. Зайцев И. М. Агентно-ориентированный подход к моделированию интеллектуальных распределённых систем / Зайцев И. М., Федяев О. И. Сб. — Донецк: ДонНТУ. 2008. - с. 337-338.

52. Иртегов Д.В. Событийно-ориентированные архитектуры. Программирование с использованием POSIX thread library /Д. В. Иртегов. -ООО «Сан Майкросистемс СПБ», 2006-2007.

53. Карпов Ю.Г. Model Checking. Верификация параллельных и распределенных программных систем / Ю.Г. Карпов. Спб.: БХВ-Петербург, 2010.- 552 с.

54. Котов В.Е. Сети Петри / В.Е. Котов. М.: Наука, Главная редакция физико-математической литературы, 1984.- 160 с.

55. Крючкова E.H. Математическая логика и теория алгоритмов: Учебное пособие / Крючкова E.H. Алт. госуд. технич. ун-т. им. И.И. Ползунова. -Барнаул: Изд-во АлтГТУ, 2003. 275 с.

56. Кулямин В. В. Тестирование на основе моделей. Лекции Электронный ресурс. / В.В. Кулямин. Режим доступа http://panda.ispras.ru/~kuliamin/ lectures-mbt/.

57. Марков A.A. Теория алгорифмов /A.A. Марков// Тр. МИАН СССР, т. 42,- М., 1954.-с. 1-374.

58. Материалы конференции Microsoft Academic Days 2005 Russia. Электронный ресурс. / Режим доступа http://www.microsoft.com/Rus/ AcademicDays2005/Default.mspx.

59. Мемоизация (memoization) Электронный ресурс. / Режим доступа -http://www.seoliga.rU/category/.net/memoizaciyamemoization.shtml.

60. Минский М. Вычисления и автоматы / М. Минский, М.: Мир, 1971. -366 с.

61. Мышкис А.Д. Элементы теории математических моделей / А. Д. Мышкис. Изд. 3-е, исправленное. М.: КомКнига, 2007. - 192 с.

62. Нейгель К. С# и платформа .NET 3.0 для профессионалов / К. Нейгель, Б. Ивьен, Д. Глинн, М. Скиннер, К. Уотсон. Пер. с англ. М. ООО "И.Д. Вильяме", 2008. - 1376+416(на CD) с.

63. Новичков А. Метрики кода и их практическая реализация в Subversion и ClearCase Электронный ресурс. / А. Новичков, А. Шамрай, А. Черников. Режим доступа http://cmcons.com/articles/CCCQ/devmetrics/ merticspartl/.

64. Основы теории вероятностных автоматов. Бухараев Р. Г./ Р. Г. Бухарев. -М.: Наука. Главная редакция физико математической литературы. 1985. 288 с.

65. Основы тестирования программного обеспечения: Учебное пособие / В. П. Котляров, Т. В. Коликова. М.: Интернет Университет Информационных Технологий; Бином, 2006. - 285 с.

66. Пол С. XML. Проектирование и реализация / С. Пол. пер. с англ. М.: Лори, 2001.-506 с.

67. Рочкинд М. Программирование под UNIX / М. Рочкинд. 2-е изд. перераб. и под. перевод с англ. М.: Издательско торговый дом "Русская редакция"; СПБ.:БХВ-Петербург, 2005. - 704 с.:ил.

68. Савин Р. Тестирование Дот Ком, или Пособие по жестокому обращению с багами в интернет-стартапах/ Р. Савин. М: Дело, 2007. - 312с.

69. Серебряков В.А. Теория и реализация языков программирования

70. Электронный ресурс. / В. А. Серебряков, М. П. Галочкин, Д. Р. Гончар, М. Г. Фуругян. Лекция N4. Синтаксический анализ. Режим доступа -http: //www. intuit. ru/department/sa/pltheory/ 4/6. html.

71. Старолетов С.М. Модель для тестирования ПО / С.М. Старолетов. Материалы двенадцатой конференции по математике "МАК-2009". -Барнаул: Изд-во Алт. Ун-та, 2009. с. 84-86.

72. Старолетов С.М. Применение моделей при тестировании программ / Е.Н. Крючкова, С.М. Старолетов // Ползуновский альманах. Барнаул, 2008.-№4,- с. 16-21.

73. Старолетов С.М. Проведение on-line тестирования программного обеспечения на основе построенной модели / Старолетов С.М., Крючкова

74. E.H. // Ползуновский вестник № 2, 2010. Барнаул: изд-во АлтГТУ, 2010. - с. 212-216.

75. Старолетов С.М. Разработка программного комплекса для тестирования недетерминированных распределённых систем с построением моделей / E.H. Крючкова, С.М. Старолетов // Ползуновский альманах. Барнаул: изд-во АлтГТУ, 2008. - № 4. - с. 219-220.

76. Старолетов С.М. Тестирование недетерминированного программного обеспечение на основе моделей / С.М. Старолетов. Тезисы докладов Международной научной конференции "X Белорусская математическая конференция". Минск, 3-7 ноября 2008 года. с. 90.

77. Старолетов С.М. Тестирование распределенных приложений на основе построения моделей / E.H. Крючкова, С.М. Старолетов // Прикладная информатика. N 6(18), 2008, - М.: Market DS Publishing, с. 124-134.

78. Стелтинг С. Java без сбоев. Обработка исключений, тестирование, отладка / С. Стелтинг. Java Exception Handling, Testing and Debugging. -M. :Кудиц-Образ, 2005. 464 с.

79. Учебник по языку UML Unified Modeling Language, UML лекции и примеры, Case средства UML Электронный ресурс. / Режим доступа — http://www.uml-rus.ru.

80. Фаулер М. Рефакторинг. Улучшение существующего кода/ М. Фаулер. Символ-Плюс, 2008. 432 с.

81. Хемраджани А. Гибкая разработка приложений на Java с помощью Spring, Hibernate и Eclipse / А. Хемраджани. Пер. с англ. М.: ООО "И.Д. Вильяме", 2008. - 352 с.

82. Шаблон Observer Электронный ресурс. / Режим доступа -http://javatutor.net/articles/the-observer-pattern.

83. Щипак Ю. Win32 API. Эффективная разработка приложений / Ю. Щипак. СПб:Питер, 2006. - 576 с.

84. Якобсон А. Унифицированный процесс разработки программного обеспечения (RUP) / А. Якобсон, Г. Буч, Дж. Рамбо. USA:Addison-Wesley, 2002. - 493 с.

Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.