- •220400 «Программное обеспечение вычислительных комплексов и автоматизированных систем»
- •Глава 1. Понятие и сущность моделирования. Место компьютерного моделирования в задачах изучения процессов и явлений
- •§ 1. Понятие модели. Функции моделей и их классификация
- •1.1. Понятие и функции моделей
- •1.2. Классификация моделей
- •§ 2. Структура моделей
- •2.1. Структура модели и ее основные составляющие
- •2.2. Анализ и синтез
- •§ 3. Виды моделирования. Понятие и сущность компьютерного моделирования
- •3.1. Виды моделирования
- •2.3. Требования к модели
- •3.2. Понятие и сущность компьютерного моделирования
- •3.3. Искусство моделирования. Действия, выполняемые в процессе моделирования
- •§ 4. Моделирование как искусство. Этапы процесса моделирования
- •4.1. Этапы процесса моделирования
- •4.2. Постановка задачи и определение типа модели
- •4.3. Формулирование модели
- •4.4. Проверка модели
- •4.5. Стратегическое и тактическое планирование
- •4.6. Экспериментирование и анализ чувствительности
- •4.7. Реализация замысла и документирование
- •Глава 2. Объектно-ориентированная технология как современная парадигма компьютерного моделирования. Основные сведения о языке uml
- •§ 5. Объектно-ориентированная технология как современная парадигма компьютерного моделирования
- •5.1. Обстоятельства и причины появления объектно-ориентированной технологии. Основные термины
- •В общем случае объекты обладают двумя качествами:
- •5.2. Принципы объектно-ориентированной технологии
- •§ 6. Назначение и цели унифицированного языка моделирования. Основные концепции uml
- •6.1. Назначение и цели uml
- •6.2. Основные концепции uml
- •§ 7. Статическое представление модели
- •7.1. Классификаторы
- •Типы классификаторов
- •7.2. Отношения
- •7.3. Ограничения
- •§ 8. Структурные представления модели
- •8.1. Представление вариантов использования
- •Виды отношений вариантов использования
- •8.2. Представления программной реализации и развертывания
- •§ 9. Представление в виде конечного автомата как один из видов динамического представления модели
- •9.1. Понятие конечного автомата. Определение события и состояния
- •9.2. Понятие и структура перехода. Типы переходов
- •§ 10. Представления деятельности и взаимодействия как виды динамического представления модели
- •10.1. Представление деятельности
- •10.2. Представление взаимодействия
- •§ 11. Представление управления моделью и дополнительные возможности языка uml
- •11.1. Представление управления моделью
- •11.2. Расширение возможностей языка uml
- •Глава 3. Понятие и виды имитационного моделирования. Инструментарий имитационного моделирования: назначение и краткий обзор
- •§ 12. Понятие и виды имитационного моделирования. Роль языков имитационного моделирования в решении задач компьютерного моделирования
- •12.1. Понятие и виды имитационного моделирования
- •12.2. Роль языков имитационного моделирования в решении задач компьютерного моделирования
- •§ 13. Классификация и краткая характеристика языков имитационного моделирования. Среда и функциональная структура языка моделирования gpss
- •13.1. Классификация языков имитационного моделирования
- •13.2. Принципы организации системы gpss
- •Глава 4. Общие понятия о графическом моделировании и геоинформационных системах
- •§ 14. Способы представления и принципы обработки графических данных на персональных эвм
- •14.1. Представление в компьютере графической информации. Растровая и векторная графика
- •14.2. Модели представления цвета в графических изображениях
- •14.3. Форматы графических файлов
- •14.4. Принципы обработки графических данных на персональных компьютерах
- •§ 15. Геоинформационные системы и особенности моделирования земной поверхности
- •15.1. Основные понятия и организация гис
- •15.2. Проблемы качества векторных цифровых карт для гис
- •§ 16. Классификация программного обеспечения гис и реализация гис-проектов
- •16.1. Классификация и краткая характеристика программного обеспечения гис
- •16.2. Порядок создания гис-проектов
- •Компьютерные модели в информационных технологиях на железнодорожном транспорте
- •127994, Москва, ул.Образцова, 15
11.2. Расширение возможностей языка uml
Для расширения возможностей языка UML существует несколько механизмов и все они предназначены для того, чтобы разработчики могли адаптировать язык моделирования к своим конкретным нуждам и не меняли при этом его метамодель. Механизмы расширения были спроектированы таким образом, чтобы инструменты моделирования могли их обрабатывать и сохранять, не обращая внимания на их семантику. По этой причине расширения могут обрабатываться и сохраняться в виде текстовых строк. Для инструментов моделирования, которые не понимают и не обрабатывают такое расширение языка, оно является всего лишь строкой текста. Эта строка сохраняется в виде части модели и может быть передана при необходимости другим инструментам. Так как любое расширение языка является отклонением от стандартов UML и может привести к появлению нового, не понятного для остальных диалекта этого языка, то прежде всего следует убедиться, что в стандартном языке нет возможностей для реализации этих особенностей.
Для расширения возможностей языка UML служат ограничения, именованные значения и стереотипы.
Ограничение. Ограничение (constraint) — это семантические условия, оформленные в виде текстового выражения. Каждое выражение интерпретируется каким-то языком. Это может быть формальная математическая нотация, некий компьютерный язык ограничений (например, OCL), язык программирования (например, C++), псевдокод или естественный язык (в последнем случае такие ограничения должны интерпретироваться людьми). Даже если ограничения выражены формальным языком, они не будут автоматически обрабатываться — пока это находится за пределами возможностей программирования. Однако, по крайней мере семантика этих ограничений будет передана в точности.
Ограничения определяют те отношения, которые невозможно выразить с помощью UML-нотации. Как правило, их используют для описания условий, которые влияют на работу нескольких элементов системы.
На диаграммах ограничения имеют вид текстовых строк, заключенных в фигурные скобки. Их можно отнести к списку элементов, присоединить к зависимости или записать в примечании (рис.29).
Рис 29. Ограничения
Именованные значения. Именованное значение (tagged value) — это две строки, в которых хранится информация о каком-либо элементе системы. Одна строка предназначается для имени (тег), другая — для содержимого (например, первая строка — автор, вторая — Джек Лондон). Таким образом, именованные значения могут нести информацию о любом элементе модели.
В именованных значениях располагается дополнительная информация об элементах системы. Особенно удобно хранить так информацию об управлении проектом (время создания элемента, статус разработки или тестирования, время окончания работы над ним и т.п.). В качестве имени тега можно использовать любую строку, кроме встроенных атрибутов метамодели, так как инструмент моделирования может неправильно это интерпретировать. Ряд таких имен в языке UML предопределен.
С помощью именованных значений можно указывать дополнительную информацию, касающуюся реализации элементов в программном коде. Как правило, существует несколько вариантов корректной реализации модели. Поэтому, чтобы создать программный код на основе модели, генератору кода потребуется дополнительная информация о том, какой из возможных вариантов выбрать. Эта дополнительная информация как раз и будет содержаться в именованном значении. Другие именованные значения могут хранить информацию для прочих дополнительных средств: генераторов отчетов и инструментов планирования. Кроме этого именованные значения несут информацию о стереотипах.
Именованные значения записываются в виде: тег - значение. Обычно все выражение заключено в фигурные скобки (рис. 30). На диаграммах именованные значения, как правило, опускаются, но указываются во всплывающих списках и формах.
Рис 30. Именованные значения
Стереотипы. Стереотип (stereotype) — это новый вид элемента модели, который определяется на основе уже существующего элемента. По содержанию и форме стереотип совпадает с этим существующим элементом, однако имеет другое значение и по-другому используется. Например, при проектировании бизнес-моделей разработчик может захотеть отделить бизнес-объекты от бизнес-процессов. И те, и другие представлены в виде отдельных видов элементов модели, причем каждый будет по-разному использоваться в рамках одного процесса разработки. Такие элементы могут рассматриваться как специальный вид классов, у которых есть общие атрибуты и операции, а также специальные ограничения на их использование и на отношения с другими элементами модели.
Благодаря тому, что стереотип создается только на основе существующего элемента модели, инструмент моделирования может «узнавать» стереотип и обращаться с ним таким же образом, как он обращается с исходным элементом.
Стереотип может иметь отдельную пиктограмму — любому инструменту моделирования это нетрудно поддерживать. Например, стереотип «организация» можно изобразить в виде схематической группы людей.
Стереотипы нередко обладают своими собственными ограничениями. Так, например, наша «организация» может иметь ассоциации только с другими «организациями», но ни с какими другими классами.
Инструмент моделирования общего назначения далеко не всегда правильно обрабатывает такие ограничения, поэтому их приходится применять вручную или с помощью специальной программы, которая «понимает» стереотипы.
Дополнительные свойства стереотипа, которых нет у исходного элемента, можно хранить в именованных значениях.
На диаграммах стереотипы представлены в виде текстовых строк, взятых в угловые кавычки («»). Разработчик может также создать для стереотипа отдельную пиктограмму (в противном случае используется та же пиктограмма, что и у исходного элемента (рис. 31).
Рис 31. Стереотипы
Описанные механизмы расширения возможностей языка позволяют адаптировать UML к различным специфическим предметным областям. Когда некая предметная область адаптирует для своиex нужд язык моделирования, это значит, что в нем сохраняются все базовые понятия и концепции, которые делают новый диалект общепонятным. Вместе с тем следует учитывать, что адаптация языка моделирования к конкретному приложению или предметной области является рискованной операцией, так как получившийся в результате адаптации диалект может быть не понятен остальным.
Литература к главе 2:
1. |
Буч Гради. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. Второе издание - "Издательство Бином", "Невский диалект". |
2. |
Jasmine. Версия 1.1. Концепции. Computer Associates International, Inc., 1996 - 1997; FUJITSU LIMITED, 1996 - 1997. |
3. |
Мартин Фаулер и Кендалл Скотт. UML. Основы – изд-во «Символ-Плюс», С.-Пб., 2002. |
4. |
Джеймс Рамбо, Айвар Якобсон, Гради Буч. UML. Специальный справочник – изд-во «Питер», С.-Пб., 2002. |
5. |
Леоненков А. Самоучитель UML – изд-во «БХВ-Петербург», С.-Пб., 2004. |
6. |
Фаулер М. Скотт К. UML. Основы – изд-во «Символ-Плюс», С.-Пб., 2002. |
