Слайд 1Анализ и проектирование на UML
Направление подготовки
«Бизнес-информатика»,
«Прикладная информатика»
Максим Валерьевич Хлопотов,
старший
преподаватель кафедры ИС
Слайд 2Темы лекционных занятий
Введение в UML
Моделирование использования
Моделирование структуры
Моделирование поведения
Дисциплина моделирования
Слайд 3UML — это язык моделирования
UML имеет отношение прежде всего и
главным образом к созданию и применению компьютерных программ.
В отношении разработки
программного обеспечения так сложилось, что результаты фаз анализа и проектирования, оформленные средствами определенного языка, принято называть моделью.
Слайд 4UML — это язык моделирования
Деятельность по составлению моделей естественно назвать
моделированием. Именно в этом смысле UML является языком моделирования.
Модель UML
— это, прежде всего, основной артефакт фазы проектирования программной системы.
Слайд 5Назначение UML
UML — это графический язык моделирования общего назначения, предназначенный
для спецификации, визуализации, проектирования и документирования всех артефактов, создаваемых при
разработке программных систем.
Слайд 6Назначение UML
Основное назначение UML — предоставить, с одной стороны, достаточно
формальное, с другой стороны, достаточно удобное, и, с третьей стороны,
достаточно универсальное средство, позволяющее до некоторой степени снизить риск расхождений в толковании спецификаций.
Слайд 7Назначение UML
Второе по важности назначение UML состоит в том, чтобы
служить адекватным средством коммуникации между людьми.
Разумеется, наглядность визуализации моделей UML
имеет значение, только если они должны составляться или восприниматься человеком — это назначение UML не имеет отношения к компьютерам.
Слайд 8Назначение UML
UML предназначен не только для описания абстрактных моделей приложений,
но и для непосредственного манипулирования артефактами, входящими в состав этих
приложений, в том числе такими, как программный код.
Слайд 9Назначение UML
Наконец, четвёртое назначение – документирование.
Модели UML являются документами, которые
можно использовать самыми разными способами, начиная с печати картинок и
заканчивая автоматической генерацией человекочитаемых текстовых описаний.
В последних версиях UML с целью достижения более полного соответствия этому назначению сделано довольно много.
Слайд 10Стандарт UML
Чтобы подчеркнуть, что UML язык графический, авторы называют правила
записи (рисования) моделей не синтаксисом, а нотацией.
Типов элементов нотации четыре:
•
фигуры;
• линии;
• значки;
• тексты.
Слайд 11Модель UML
Модель UML — это конечное множество сущностей и отношений
между ними.
Рассматривая модель UML с наиболее общих позиций, можно сказать,
что это граф (точнее, нагруженный мульти-псевдо-гипер-орграф), в котором вершины и ребра нагружены дополнительной информацией и могут иметь сложную внутреннюю структуру.
Вершины этого графа называются сущностями, а ребра — отношениями.
Слайд 12Сущности
Для удобства обзора сущности в UML можно подразделить на четыре
группы:
• структурные;
• поведенческие;
• группирующие;
• аннотационные.
Слайд 13Структурные сущности
• Класс — описание множества объектов с общими атрибутами
и операциями.
• Интерфейс — множество операций, которое определяет набор услуг
(службу), предоставляемых классом или компонентом.
• Действующее лицо — сущность, находящаяся вне моделируемой системы и непосредственно взаимодействующая с ней.
• Вариант использования — описание последовательности производимых системой действий, доставляющей значимый для некоторого действующего лица результат.
• Компонент — физически заменяемый артефакт, реализующий некоторый набор интерфейсов.
• Узел — физический вычислительный ресурс.
Слайд 14Отношения
В UML используются четыре основных типа отношений:
• зависимость;
• ассоциация;
• обобщение;
•
реализация.
Слайд 15Отношения
Зависимость — это наиболее общий тип отношения между двумя сущностями.
Отношение зависимости указывает на то, что изменение независимой сущности каким-то
образом влияет на зависимую сущность. Графически отношение зависимости изображается в виде пунктирной стрелки, направленной от независимой сущности к зависимой.
Ассоциация — это наиболее часто используемый тип отношения между сущностями. Отношение ассоциации имеет место, если одна сущность непосредственно связана с другой (или с другими — ассоциация может быть не только бинарной). Графически ассоциация изображается в виде сплошной линии с различными дополнениями, соединяющей связанные сущности.
Слайд 16Отношения
Обобщение — это отношение между двумя сущностями, одна их которых
является частным (специализированным) случаем другой. Графически обобщение изображается в виде
сплошной стрелки с треугольником на конце, направленной от частного к общему. Отношение наследования между классами в объектно-ориентированных языках
программирования является типичным примером обобщения.
Отношение реализации указывает, что одна сущность является реализацией другой. Например, класс является реализацией интерфейса. Графически реализация изображается в виде пунктирной стрелки с треугольником на конце, направленной от реализующей сущности к реализуемой.
Слайд 17Диаграммы UML
Диаграммы UML – основная накладываемая на модель структура, которая
облегчает создание и использование модели.
Диаграмма — это графическое представление некоторой
части графа модели.
Авторы UML определили набор рекомендуемых к использованию типов диаграмм, которые получили название канонических типов диаграмм.
Слайд 18Диаграммы UML
В UML 1.x всего определено 9 канонических типов диаграмм.
• Диаграмма использования
• Диаграмма классов
• Диаграмма объектов
• Диаграмма состояний
• Диаграмма
деятельности
• Диаграмма последовательности
• Диаграмма кооперации
• Диаграмма компонентов
• Диаграмма размещения
Слайд 21Представления
Все аспекты моделируемой системы не удается описать с единой точки
зрения.
Моделировать сложную систему следует с нескольких различных точек зрения, каждый
раз принимая во внимание один аспект моделируемой системы и абстрагируясь от остальных.
Этот тезис является одним из основополагающих принципов UML.
Слайд 22Представления
Выделим три представления:
представление использования (что делает система полезного?);
представление
структуры (из чего состоит система?);
- представление поведения (как работает система?).
Слайд 23Представления
Представление использования призвано отвечать на вопрос, что делает система полезного.
Определяющим признаком для отнесения элементов модели к представлению использования является,
по нашему мнению, явное сосредоточение внимание на факте наличия у системы внешних границ, то есть выделение внешних действующих лиц, взаимодействующих с системой, и внутренних вариантов использования, описывающих различные сценарии такого взаимодействия.
Описывается диаграммой использования.
Слайд 24Диаграмма использования
Диаграмма использования является основным средством моделирования использования в UML.
На диаграмме использования применяются следующие типы сущностей:
действующие лица;
варианты использования;
примечания;
пакеты.
Слайд 25Диаграмма использования
Между этими сущностями устанавливаются следующие типы отношений:
ассоциация между действующим
лицом и вариантом использования;
обобщение между действующими лицами;
обобщение между вариантами использования;
зависимости
(двух стереотипов) между вариантами использования.
Слайд 26Моделирование использования
Наш язык и мышление устроены так, что самой простой,
понятной и четкой формой изложения мыслей являются так называемые простые
утверждения.
Простое утверждение имеет следующую грамматическую форму: подлежащее — сказуемое — прямое дополнение. В логических терминах: субъект — предикат — объект.
Например: начальник увольняет сотрудника, директор создает отдел.
Слайд 27Моделирование использования
По сути, именно простые утверждения и записаны на диаграмме
использования.
Действующее лицо — это субъект, а вариант использования — предикат
(вместе с объектом).
Моделирование использования предполагает явное формулирование требований к системе на самом начальном этапе разработки.
Слайд 28Диаграмма использования
С синтаксической точки зрения действующее лицо — это стереотип
классификатора, который обозначается специальным значком. Для действующего лица указывается только
имя, идентифицирующее его в системе. Семантически действующее лицо — это множество логически взаимосвязанных ролей.
С прагматической точки зрения главным является то, что действующие лица находятся вне проектируемой системы (или рассматриваемой части системы).
Слайд 29Действующие лица
В качестве имен действующих лиц рекомендуется использовать существительное (возможно
с определяющим словом), а в качестве имен вариантов использования —
глагол (возможно, с дополнением).
Слайд 31Варианты использования
Семантически вариант использования — это описание множества возможных последовательностей
действий (событий), приводящих к значимому для действующего лица результату.
Прагматика варианта
использования состоит в том, что среди всех последовательностей действий, могущих произойти при работе приложения, выделяются такие, в результате которых получается явно видимый и достаточно важный для действующего лица результат.
Слайд 32Варианты использования
Выбор вариантов использования сильно влияет на качество модели. Формальные
методы выбора предложить трудно — помогают только опыт и чутьё.
Некоторые пункты ТЗ естественным образом переводятся в варианты использования.
Слайд 33Ассоциация
Ассоциация между действующим лицом и вариантом использования показывает, что действующее
лицо тем или иным способом взаимодействует (предоставляет исходные данные, потребляет
результат) с вариантом использования.
Ассоциация обозначает, что действующее лицо так или иначе, но обязательно непосредственно участвует в выполнении каждого из сценариев, описываемых вариантом использования.
Слайд 34Обобщение
Обобщение между действующими лицами показывает, что одно действующее лицо наследует
все свойства (в частности, участие в ассоциациях) другого действующего лица.
С
помощью обобщения между действующими лицами легко показать иерархию категорий пользователей системы, в частности, иерархию прав доступа к выполняемым функциям и хранимым данным.
Слайд 35Обобщение
Обобщение между вариантами использования показывает, что один вариант использования является
частным случаем (подмножеством множества сценариев) другого варианта использования.
Слайд 36Зависимости
Зависимость между вариантами использования показывает, что один вариант использования зависит
от другого варианта использования.
2 стандартных стереотипа зависимости:
include — показывает, что
сценарий независимого варианта использования включает в себя в качестве подпоследовательности действий сценарий зависимого варианта использования;
extend — показывает, что в сценарий зависимого варианта использования может быть в определенном месте вставлен в качестве подпоследовательности действий сценарий независимого варианта использования.
Слайд 39Реализация вариантов использования
После того, как построено представление использования, то есть
выделены действующие лица, варианты использования и установлены отношения между ними,
встает естественный вопрос: что дальше?
Представление использования, если оно тщательно продумано и детально прорисовано, является формой технического задания, содержащей достаточно информации для дальнейшего проектирования.
Слайд 40Реализация вариантов использования
Действующие лица находятся вне системы — с ними
ничего делать не нужно.
Таким образом, переход от моделирования использования к
другим видам моделирования состоит в уточнении, детализации и конкретизации вариантов использования.
В представлении использования мы показали, что делает система, теперь нужно определить, как это делается. Это обычно называется реализацией вариантов использования.
Слайд 41Реализация вариантов использования
Вариант использования — это описание множества последовательностей действий,
доставляющих значимый для действующего лица результат.
Наиболее часто используемый метод
описания множества последовательностей действий состоит в указании алгоритма, выполнение которого доставляет последовательность действий из требуемого множества.
Слайд 42Реализация вариантов использования
текстовые описания;
псевдокод;
диаграмма деятельности;
диаграммы взаимодействия.
Вариант использования должен доставлять значимый
результат, значит, если результата нет, то что-то спроектировано не так,
как нужно.
Слайд 43Пример текстового описания
Вариант использования «Увольнение по собственному желанию»
Сотрудник пишет заявление
Начальник
подписывает заявление
Если есть неиспользованный отпуск, то бухгалтерия рассчитывает компенсацию
Бухгалтерия рассчитывает
выходное пособие
Системный администратор удаляет учетную запись
Менеджер штатного расписания обновляет базу данных
Слайд 44Текстовые описания
Достоинства:
просты, всем понятны, легко и быстро составляются.
Недостатки:
неполны, неточны, ненаглядны
Слайд 45Псевдокод
Если программа предназначена для выполнения компьютером, то она должна быть
записана на сугубо формальном языке, который называют в этом случае
языком программирования.
Если программа предназначена исключительно для чтения и, может быть, выполнения человеком, то можно применить менее формальный (и более удобный) язык, который в этом случае обычно называют псевдокодом.
Слайд 46Псевдокод
Обычно в псевдокод включают смесь общеизвестных ключевых слов языков программирования
и неформальные выражения на естественном языке, обозначающие выполняемые действия.
Эти
выражения должны быть понятны человеку, который пишет или читает программу на псевдокоде, но совсем не обязаны быть допустимыми выражениями языка программирования.
Текст на псевдокоде похож на код программы на языке программирования, но таковым не является.
Слайд 47Псевдокод
Достоинства способа:
понятен, привычен и доступен любому.
Недостатки:
плохо согласуется с парадигмой
объектно-ориентированного программирования;
отсутствуют наглядная визуализация, строгость и точность языка проектирования и
реализации, поддержка распространенными инструментальными средствами;
практически невозможно использовать повторно.
Слайд 48Диаграмма деятельности
Описать алгоритм можно с помощью диаграммы деятельности.
С одной
стороны, диаграмма деятельности — это полноценная диаграмма UML, с другой
стороны, диаграмма деятельности немногим отличается от блок-схемы
Слайд 49Диаграмма деятельности
Используются для моделирования процесса выполнения операций.
Частный случай диаграмм состояний.
Диаграмма
деятельности представляется в форме графа деятельности, вершинами которого являются состояния действия или
деятельности, а дугами - переходы от одного состояния действия к другому.
Слайд 50Состояния деятельности и действия
Состояние деятельности - состояние в графе деятельности,
которое служит для представления процедурной последовательности действий, требующих определенного времени.
Состояние
действия - специальный случай состояния с некоторым входным действием и, по крайней мере, одним выходящим из состояния переходом.
Слайд 51Переход
Переход – отношение между двумя состояниями, которое указывает на то,
что объект в первом состоянии должен выполнить определенные действия и
перейти во второе состояние.
Переход осуществляется при наступлении некоторого события: окончания выполнения деятельности (do activity), получении объектом сообщения или приемом сигнала.
Переход изображается сплошной линией со стрелкой, которая выходит из исходного состояния и направлена в целевое состояние. Каждый переход может быть помечен строкой текста с именем события.
Слайд 52Сторожевое условие
Логическое условие, записанное в прямых скобках и представляющее
собой булевское выражение – называется сторожевое условие.
При этом булевское выражение
должно принимать одно из двух взаимно исключающих значений: "истина" или "ложь".
Слайд 53Псевдосостояние
вершина в графе, которая имеет форму состояния, но не обладает
поведением. Примерами псевдосостояний в UML являются начальное и конечное состояния.
Слайд 54Ветвление
Если из состояния действия выходит единственный переход, то его не
помечают. Если переходов несколько, для каждого из них должно быть
явно записано собственное сторожевое условие.
Графически ветвление на диаграмме деятельности обозначается символом решения (decision), изображаемого в форме небольшого ромба, внутри которого нет текста
Слайд 55Слияние и разделение
для представления параллельных процессов используется специальный символ для разделения и слияния параллельных
вычислений или потоков управления.
Слайд 57Диаграмма деятельности
Реализация варианта использования диаграммой деятельности является компромиссным способом ведения
разработки — в сущности, это проектирование сверху вниз в терминах
и обозначениях UML.
Эту диаграмму можно показать заказчику, чтобы проверить, действительно ли проектируемая нами логика работы системы соответствует тому бизнес-процессу, который существует в реальности.
Слайд 58Диаграмма деятельности
Применение диаграмм деятельности для реализации вариантов использования не слишком
приближает к появлению целевого артефакта — программного кода, однако может
привести к более глубокому пониманию существа задачи и даже открыть неожиданные возможности улучшения приложения, которые было трудно усмотреть в первоначальной постановке задачи.
Слайд 59Выводы
Составление диаграмм использования — это первый шаг моделирования.
Основное назначение
диаграммы использования — показать, что делает система во внешнем мире.
Диаграмма
использования не зависит от программной реализации системы и поэтому не обязана соответствовать структуре классов, модулей и компонентов системы.
Идентификация действующих лиц и вариантов использования — ключ к дальнейшему проектированию.
Слайд 60Выводы
В зависимости от выбранной парадигмы проектирования и программирования применяются различные
способы реализации вариантов использования.
Реализация варианта использования диаграммой деятельности является компромиссным
способом ведения разработки — в сущности, это проектирование сверху вниз в терминах и обозначениях UML.