Методология моделирования на основе графа взаимодействия при сопровождении программной системы
Сопровождение — наиболее длительный, трудоемкий и дорогостоящий этап жизненного цикла программного обеспечения. Фактически длительность этого этапа определяет длину всего жизненного цикла программной системы. Основное содержание сопровождения — внесение изменений в программное обеспечение по требованию заказчика. Изменения могут быть вызваны изменением в требованиях к программному обеспечению или… Читать ещё >
Содержание
- Список условных обозначений
- Глава 1. Развитие технологий моделирования программных систем
- 1. 2. Первые технологии моделирования программных систем
- 1. 3. Структурный подход в моделировании
- 1. 3. 1. Нотация IDEF
- 1. 3. 2. Нотации DFD
- 1. 3. 3. Нотации информационного моделирования
- 1. 3. 4. Структурные карты
- 1. 3. 5. Нотации для описания динамики поведения
- 1. 4. Объектный подход в моделировании
- 1. 4. 1. Общая структура UML
- 1. 4. 2. Описание диаграмм UML
- 1. 4. 3. Использование UML при проектировании и сопровождении
- 1. 5. Model Driven Architecture. Архитектура, основанная на модели
- 1. 6. Model Driven Development. Разработка, основанная на моделировании
Методология моделирования на основе графа взаимодействия при сопровождении программной системы (реферат, курсовая, диплом, контрольная)
2.2 Граф взаимодействий как модель.42.
2.3 Интеграция различных представлений системы.46.
2.4 Анализ графа взаимодействий.49.
2.4.1 Количественные методики анализа графа взаимодействий.50.
2.4.2 Анализ топологии графа взаимодействий.53.
2.4.2.1 Анализ смежности в графе взаимодействий.53.
2.4.2.2 Анализ связности графа взаимодействий.59.
2.4.2.3 Возможности поиска.61.
2.4.2.4 Повторное использование кода и архитектурных решений.65.
2.4.2.5 Анализ блоков.66.
2.4.2.6 Анализ циклов.69.
2.4.3. Конфигурационные методики анализа графа взаимодействий.71.
2.5. Граф взаимодействий и нотации описания программных систем.72.
2.5.1 Отображение графа взаимодействий в нотации ГОЕБ.73.
2.5.2 Отображение графа взаимодействий в структурные карты Джексона и Константайна.74.
2.5.3 Граф взаимодействий и объектные модели.75.
2.5.4 Граф взаимодействий и модели для описания поведения системы.77.
2.5.5 Граф взаимодействий и информационное моделирование.78.
2.5.6 Расширение представления под конкретную задачу или новые требования.79.
2.6 Заключение.81.
Глава 3. Применение моделей на основе графа взаимодействий для сопровождения программного обеспечения.82.
3.1 Введение.82.
3.2 Организация хранения модели.83.
3.3 Типовые операции над репозиторием.86.
3.4 Обработка типизации элементов репозитория.92.
3.5 Интеграция моделей.94.
3.6 Реализация операций анализа.95.
3.7 Дополнительная информация в узлах графа. 101.
3.8 Документирование. 103.
3.9 Конфигурационное управление. 106.
3.10 Порядок работы с моделью. 113.
3.11 Другие возможности и перспективы использования. 116.
3.12 Заключение.117.
Заключение
120.
Литература
121.
Глоссарий.126.
Приложение 1. Примеры диаграмм.128.
Приложение 2. Дополнения к главе 3.140.
СПИСОК УСЛОВНЫХ ОБОЗНАЧЕНИЙ — начало доказательства. Ў - окончание доказательства.
Цель работы — формализация подхода моделирования программных систем на основе графа взаимодействий, разработка аналитического аппарата для этого подхода и обоснование его применения на этапе сопровождения программных систем. Термин «методология» понимается как система принципов и способов организации и построения теоретической и практической деятельности, а также учение об этой системе [47].
Сопровождение — наиболее длительный, трудоемкий и дорогостоящий этап жизненного цикла программного обеспечения [21, 44]. Фактически длительность этого этапа определяет длину всего жизненного цикла программной системы. Основное содержание сопровождения — внесение изменений в программное обеспечение по требованию заказчика. Изменения могут быть вызваны изменением в требованиях к программному обеспечению или его модернизацией, а также исправлением выявленных ошибок. Поддержка этапа сопровождения особенно важна для крупных программных проектов, потому что разработка и внедрение новой системы в случае невозможности изменить старую сопряжена с большими затратами и может привести к потере критически важной информации [20]. При этом необходимо учитывать, что внесение изменений ограничивается по времени [44]. Несвоевременность внесения изменений тоже может вынудить заказчика отказаться от продукта.
Для любой модификации необходимо знать, что поменять и как это сделать. Эти задачи требует глубокого понимания организации программной системы. Может потребоваться любая информация с предыдущих этапов жизненного цикла приложения. Незнание организации системы, недостаток информации или просто несогласованные изменения приводят к ошибкам, ухудшению характеристик программного обеспечения [44]. Ситуация усугубляется тем что, в результате многочисленных модификаций, вносимых разными участниками разработки, ограниченных жесткими временными рамками, программное обеспечение значительно увеличивается в объеме и принимает бесструктурный вид. Теряются первоначальные цели многих компонент системы, становятся неясными методы, которыми достигалось решение задачи. Именно при длительном сопровождении становится особенно сложно понять, как организована система, поэтому усложняется внесение в нее изменений, и эффективность разработки падает. При этом на ранних этапах сопровождения сразу после внедрения внесение изменений не представляет такую большую сложность.
Для того, чтобы упростить сопровождение приложения, повысить его эффективность и продлить его жизненный цикл программной системы, во-первых, необходима правильно построенная архитектура. Именно при проектировании закладываются пути развития программной системы. Под архитектурой понимают первоначальную организацию программной системы как совокупности ее частей и взаимодействий между ними. При этом недостаток времени на проектирование, недостаток квалификации разработчиков, неясные требования и просто устаревание технологий проектирования приводят к тому, что далеко не каждая система обладает правильной адекватной архитектурой, в которой легко разобраться.
Во-вторых, надо упорядочить процесс модификации системы. Для этого требуется организовать сбор информации на каждом из этапов жизненного цикла. Эта информация разнородна и сильно зависит от самой программной системы, технологий, используемых при ее создании, и предметной области. Форма хранения сведений о программной системе составляет ее представление и определяет возможности ее анализа. Цель этого анализалокализовать изменения, определить их содержание или структурировать систему для улучшения сопровождаемое&tradeв дальнейшем. Важно отметить, что решающую роль для анализа играет и организация самого приложения.
На сегодняшний день существует множество методов и нотаций представления программных систем, предназначенных для описания систем вообще, программных систем или каких-либо их аспектов. Отдельные нотации ориентированы на работу в рамках определенных технологий, инструментов и предметных областей [17, 36]. Некоторые фирмы, занимающиеся производством программных систем, разрабатывают свои собственные методологии, которые наиболее полно соответствуют их деятельности и специфики предметных областей их программного обеспечения [20, 4]. При этом для развитых программных систем при длительном сопровождении адаптация представления к специфике предметной области делает систему более понимаемой и облегчает ее анализ.
Хранение и анализ информации о системе производится с помощью CASE-средств (Computer Aided System Engineering)^ 8, 37, 56]. Вопрос о том, какие нотации войдут в состав инструмента, решает производитель, а возможности расширения представления отсутствуют или ограничены. Такое положение дел ограничивает возможности анализа. Совместное использование нескольких инструментов требует согласования информации. В работе предлагается разработанный автором принцип моделирования программных систем, называемый графом взаимодействий и позволяющий наиболее полно подобрать представление сведений о системе необходимых для ее модификации при длительном сопровождении, построить модель системы в заданном представлении и обеспечить анализ введенных данных. Для достижения поставленной цели необходимо решить следующие задачи:
• обеспечить построение модели программной системы в заданной нотации.
• обеспечить расширяемость представления.
• обеспечить интеграцию нескольких методологий.
• обобщить методики анализа программных систем.
В первой главе проведен обзор нотаций, методологий и подходов в моделировании программных систем, а также области их применения. Вторая глава посвящена описанию и обоснованию хмоделирования и анализа программных систем на основе графа взаимодействий. Здесь же рассматривается, как соотносится предлагаемый подход с описанными нотациями. В третьей главе рассматриваться применение моделей на основе графа взаимодействий в задачах сопровождения.
ЗАКЛЮЧЕНИЕ
.
На защиту выносятся следующие результаты:
— Принцип моделирования программной системы на основе графа взаимодействий, обеспечивающий уменьшение сложности настройки нотации представления [27,28,34,29,30,33].
— Аналитический аппарат для решения задач сопровождения программной системы, в основе которого лежат доказанные в работе свойства графа взаимодействий при описании архитектуры программных систем [27,28,34,30,33].
— Методология моделирования систем с использованием предложенного аналитического аппарата [27−29,32,34,35].
— Уточнённые схемы хранения модели и связанной с ней информации, а также алгоритмы их анализа [27−29,32,34,35].
Список литературы
- Brown A. An 1. troduction to Model Driven Architecture // IBM Rational DevelopER Works, 2004.
- Common Warehouse Metamodel (CWM) Specification // http://www.omg.org/docs/foraial/03−03−02.pdf
- Grant Larsen Using the IBM Rational Asset Manager Configurator to configure UML model profiles //http://www.ibm.com/developerworks/rational/library/08/0923larsen/
- McGregor J. D. Software Architecture// Journal of Object Technology (JOT), vol.3, No. 5, pp. 65−77.
- Meta Object Facility (MOF) 2.0 QuERy/View/Transformation Specification VERsion 1.0 //http://www.omg.org/docs/formal/08−04−03.pdf
- Meta Object Facility (MOF) Core Specification OMG Available Specification VERsion 2.0 // http://www.omg.org/cgi-bin/doc7formal/06−01-Ol.pdf
- MOF 2.0/XMI Mapping, VERsion 2.1.1 // http://www.omg.org/docs/formal/07−12−01 .pdf
- Recommended Practice for Architectural Description of Software-Intensive Systems, ANSI/IEEE Std 1471−2000
- Robert B. France, Sudipto Ghosh, Trung Dinh-Trong, Amor SolbERg. Model-Driven Development Using UML 2.0: Promises and Pitfalls, IEEE Computer, February 2006. IEEE Computer Society, 2006.
- Selic B. Unified Modeling Language vERsion 2.0 // http://www.ibm.com/developERworlcs/rational/library/05/321 UML/index.htm
- Selic В., The Pragmatics of Model-Driven Development. IEEE Software, September/October 2003. IEEE Computer Society, 2003
- Stephen Mellor, Anthony Clark, Takao Futagami, Model-Driven Development. IEEE Software, September/October 2003. IEEE Computer Society, 2003
- Thomas D. Agile Evolution -Towards The Continuous Improvement of Legacy Software // Journal of Object Technology (JOT), vol. 5, no. 7, September-October 2006, pp. 19−26
- UML 2.0 OCL Specification // http://www.omg.org/cgi-bin/apps/doc?formal/06−05−01 .pdf
- Vinoski S. Do You Know Where Your Architecture Is? // IEEE IntERnet Computing, September-October 2003.
- Беркович В., Чудин А. Практика применения паттернов проектирования.:RSDN Magazine #3
- Буч Г., Рамбо Д., Джекобсон А. Язык UML. Руководство пользователя. 2-е изд.:-СПб: ДМК Пресс, 2007
- Вендров A.M. CASE-технологии. Современные методы и средства проектирования информационных систем. // http://CASEtech.h 1 .ru/library/vendrov/index.htm
- Волкова Е. Д., Страбыкин А. Д. Анализ и трансформации исполняемых UML моделей. // Труды Института системного программирования. М.: ИСПРАН, 2006. С. 171−192.
- Гласс Р. Факты и заблуждения профессионального программирования. СПб: Символ-Плюс, 2007.
- Гласс Р., Нуазо Р. Сопровождение программного обеспечения. — М: Мир, 1983
- Горбунов-Посадов М. М. Конфигурация программ. Рецепты безболезненных изменений. 2-изд. испр. и доп. — М: Малип, 1994
- Дейт К.Д. Введение в системы баз данных. 8-е издание.: Пер с англ. — М.:Издательский дом «Вильяме», 2006
- Дубина О. Обзор паттернов проектирования //http://www.citforum.ru/SE/project/pattem/
- Ершов А.П. Введение в теоретическое программирование. М.: Наука, 1973
- И.В Игнацкая, В. Н. Лукин. Моделирование программных систем на основе графа взаимодействий // Вестник Московского Авиационного Института 2009, т. 16, № 7, с 70−76
- И.В Игнацкая. Представление и анализ архитектуры программных систем на основе графа взаимодействий // Труды МАИ http://www.mai.ru. Вып. 39, 2010.
- Игнацкая И.В. Граф взаимодействий как инструмент сопровождения программных систем //Материалы VIII Международной конференции по Неравновесным процессам в соплах и струях (NPNJ'2010), 25−31 мая 2010 г., Алушта. -М: Изд-во МАИ-ПРИНТ, 2010, с.569−571
- Игнацкая И.В. Использование представления программной системы на основе графа взаимодействий в конфигурационном управлении. //"Новые информационные технологии". Тезисы докладов XVI Международной студенческой школы-семинара М.: МИЭМ, 2008, с.94
- Игнацкая И.В. Граф взаимодействий как инструмент сопровождения программных систем // Вестник Московского Авиационного Института 2011, т.18, № 1, с 175−178
- Игнацкая И.В. Универсальная система создания и анализа внутренней документации UNIDOC //"Новые информационные технологии". Тезисы докладов XV Международной студенческой школы-семинара -М.: МИЭМ, 2007, с.250
- Калянов Г. Н. CASE: структурный системный анализ (автоматизация и применение). М.: ЛОРИ. 1996.
- Калянов Г. Н., Козлинский A.B., Лебедев В. Н. Сравнение и проблема выбора методов структурного системного анализа // PC WEEK/RE. 1996. N.34 (27 августа).
- Кериевски Д. Рефакторинг с использованием шаблонов.: Пер с англ. -М: ООО «И.Д. Вильяме», 2006
- Колдовский В. Разработка ПО: метрики программных проектов.//Компьютерное Обозрение № 13 (581) 3 апреля 2007
- Котов В. Е. Сабельфельд В. К. Теория схем программ. М.: Наука, 1991.
- Котов В.Е. Сети Петри. М.: Наука, 1984
- Кузнецов М.Б. Трансформация UML-моделей и ее использование в технологии MDА // Программирование, 2007. № 1. С. 65−78.
- Кузнецов. М. MDA — новая концепция интеграции приложений // Открытые системы.2003. № 09.
- Купер Э. Управление изменениями: неужели между качеством и скоростью разработки программного обеспечения должен быть компромисс. 2004// http://wwvv.intERface.ru/fset.asp?url=/ross/rossh.htm
- Лапыгин Д. Новичков А. Конфигурационное управление проектами разработки программного обеспечения //http://www.citforum.ru/SE/qualily/configurationmanagement/
- Липаев В.В. Документирование и управление конфигурацией программных средств. М: СИНТЕГД998
- Липаев В.В. Управление разработкой программных комплексов. М.: Финансы и статистика, 1993
- Маклаков C.B. Моделирование бизнес-процессов с AllFusion Process ModelER(BPWin 4.1). -M.:ДИАЛОГ-МИФИ, 2003
- Новичков А. Метрики кода и их практическая реализация в IBM Rational ClearCase.//http://www.ibm.eom/developERworks/m/edu/0108novich/index.html
- Орлик С., Елманова Н. Роль моделирования в разработке приложений //BYTE, 2004 № 7 (71), июль 2004
- Орлов С. Технологии разработки программного обеспечения: Учебное пособие. 2-е изд. СПб: Питер, 2003.
- Фаулер M. UML. Основы, 3-е издание.-СПб:Символ-Плюс, 2006
- Фаулер М. Архитектура корпоративных программных приложений.: Пер с англ. -М.:Издагельский дом «Вильяме», 2008
- Фаулер М. Рефакторинг: улучшение существующего кода.: Пер с англ. СПб: Символ-Плюс, 2008
- Физерз М. Эффективная работа с унаследованным кодом. М: ООО «ИД. Вильяме», 2009
- Черемных C.B., Семенов И. О. Ручкин B.C. Структурный анализ систем: IDEF-технологии. — М.: Финансы и статистика, 20 011. ГЛОССАРИЙ1. CASE, 8 Архитектура, 71. CIM, 37 Ассоциация, 26
- CWM, 38 Ассоциированный псевдограф, 59
- DFD, 14, 15 Блок схемы, 10
- FEO, 15 Взаимодействие, 25
- EFO, 14 Временная диаграмма, 301. EF1, 17 Действие, 25
- EF1X, 17 Диаграмма артефактов, 31
- EF3, 20 Диаграмма деятельности, 29
- MDA, 36 Диаграмма классов, 27
- MDD, 39 Диаграмма компонентов, 31
- MOF, 38 Диаграмма кооперации, 29
- OCL, 23 Диаграмма обзора взаимодействий, 1. OMG, 23 30
- OSTN, 21 Диаграмма объектов, 28
- PFDD, 21 Диаграмма пакетов, 32
- PIM, 37 Диаграмма последовательностей, 28
- PSM, 37 Диаграмма прецедентов, 27
- QVT, 39 Диаграмма развертывания, 31
- SADT, 13, 14 Диаграмма составной структуры, 28
- STD, 20 Диаграмма состояний, 291. UML, 23 Длина пути, 59
- XMI, 38 Достижимость вершин, 59
- Автомат, 25 Зависимость, 26
- Активный класс, 25 Интеграция моделей, 46
- Анализ достижимости, 59 Интерфейс, 24
- Анализ смежности, 53 Информационный граф, 10
- Аннотационные сущности, 26 Класс, 24
- Артефакт, 25 Кодогенерация, 34
- Количественные методики анализа, 501. Компонент, 251. Компоненты связности, 591. Кооперация, 251. Кратные дуги, 541. Марковская модель, 111. Методология, 61. Механизм ограничений, 331. Множество потомков, 56
- Множество предшественников, 561. Модель, 91. Модуль, 19
- Нотация Гейна-Сарсона, 15 Нотация Йодана-Де Марко, 16 Обобщение, 26 Обратный инжиниринг, 35 Общие методики анализа, 49 Односторонне связный граф, 59 Оценка корректности модели, 52 Оценка сложности представления, 50
- Оценка сложности программнойсистемы, 51 Петли, 54
- Полумарковская модель, 11 Полу степень захода, 57 Полу степень исхода, 57 Помеченные значения, 33 Прецедент, 25
- Структурные методологии, 13 Структурный анализ, 12 Теория схем программ, 10 Топологические методики анализа, 53 Узел, 25
- Управляющий граф, 10 Шаблон, 62
- Шаблон проектирования, 34 Шаблон рефакторинга, 36, 65