3. Графические средства представления проектных решений на разных этапах проектирования ИС. Язык UML. Общая характеристика. Принципы построения. Основные элементы.
В структурном подходе система проектируется в виде модели, используются в основном 2 группы средств, которые: * описывают функциональную структуру системы; * отображают отношения между данными.
Каждой группе средств соответствует определенные виды моделей (диаграмм), наиболее распространенные: 1. SADT - диаграммы анализа структуры и проектирования; 2. DFD - диаграммы потоков данных; 3. ERD - диаграммы «сущность - связь».
Конкретный вид перечисленных диаграмм и интерпретация их конструкций зависят от стадии ЖЦ ПО.
На стадии формирования требований используются SADT-диаграммы для построения модели «AS-IS» и «TO-BE». На данной стадии могут быть разработаны модели DFD и ERD-диаграмм.
На стадии проектирования производится более детальная обработка DFD и ERD - диаграмм. Производится детализация SADT-диаграмм и разрабатываются на ее основе другие диаграммы.
Унифицированный язык моделирования UML
Большинство существующих методов объектно-ориентированного анализа и проектирования (ООАП) включают как язык моделирования, так и описание процесса моделирования.
Одним из унифицированных языков моделирования является язык UML (графический язык моделирования). Унифицированный язык UML - это прямое объединение и унификация методов Буча, Рамбо и Якобсона, плюс ко всему он дополняет их новыми возможностями.
Концептуальная модель UML включает в себя три составные части:
1) основные строительные блоки языка: - сущности; - отношения; -диаграммы; 2) правила их сочетания; 3) некоторые общие для всего языка механизмы.
3.2.1. Строительные блоки UML
Сущности - это абстракции, являющиеся основными элементами модели. Сущности являются основными объектно-ориентированными блоками языка. С их помощью можно создавать корректные модели.
В UML имеется четыре типа сущностей:
Структурные сущности - статические части модели, соответствующие концептуальным или физическим элементам системы. Существует семь разновидностей структурных сущностей:
Класс - это описание совокупности объектов с общими атрибутами, операциями, отношениями и семантикой. Класс реализует один или несколько интерфейсов. Интерфейс - это совокупность операций, которые определяют сервис (набор услуг), предоставляемый классом или компонентом. Таким образом, интерфейс описывает видимое извне поведение элемента. Интерфейс может представлять поведение класса или компонента полностью или частично; он определяет только спецификации операций (сигнатуры), но никогда - их реализации. Интерфейс редко существует сам по себе - обычно он присоединяется к реализующему его классу или компонентуКооперация
определяет взаимодействие; она представляет собой совокупность ролей и других элементов, которые, работая совместно, производят некоторый кооперативный эффект, не сводящийся к простой сумме слагаемых. Кооперация имеет как структурный, так и поведенческий аспект. Один и тот же класс может принимать участие в нескольких кооперациях; таким образом, они являются реализацией образцов поведения, формирующих систему Прецедент - это описание последовательности выполняемых системой действий, которая производит наблюдаемый результат, значимый для какого-то определенного актера. Прецеденты применяются для структурирования поведенческих сущностей модели и реализуются посредством кооперации. Прецедент всегда рассматривается по отношению к некоторой внешней сущности, которая называется актером.Актер
или внешняя сущность - это класс, точнее совокупность ролей классов выступающая по отношению к системе как внешний объект, для достижения целей которого функционирует система. Активный класс - класс, объекты которого вовлечены в один или несколько процессов, или нитей, и поэтому могут инициировать управляющее воздействие. Его объекты представляют собой элементы, деятельность которых осуществляется одновременно с деятельностью других элементов. Выглядит как класс, только контур жирный.Компонент - это физическая заменяемая часть системы, которая соответствует некоторому набору интерфейсов и обеспечивает его реализацию. Компонент представляет собой физическую упаковку логических элементов, таких как классы, интерфейсы и кооперации.
Узел
- это элемент реальной (физической) системы, который существует во время функционирования программного комплекса и представляет собой вычислительный ресурс, обычно обладающий как минимум некоторым объемом памяти, а часто еще и способностью обработки. Совокупность компонентов может размещаться в узле, а также мигрировать с одного узла на другой.Поведенческие сущности являются динамическими составляющими модели UML. Это глаголы языка: они описывают поведение модели во времени и пространстве. Существует всего два основных типа поведенческих сущностей.
Взаимодействие - это поведение, суть которого заключается в обмене сообщениями между объектами в рамках конкретного контекста для достижения определенной цели. С помощью взаимодействия можно описать как отдельную операцию, так и поведение совокупности объектов. Взаимодействие предполагает ряд других элементов, таких как сообщения, последовательности действий (поведение, инициированное сообщением) и связи (между объектами). Автомат - это алгоритм поведения, определяющий последовательность состояний, через которые объект или взаимодействие проходят на протяжении своего жизненного цикла в ответ на различные события, а также реакции на эти события. С помощью автомата можно описать поведение отдельного класса или кооперации классов. С автоматом связан ряд других элементов: состояния, переходы (из одного состояния в другое), события (сущности, инициирующие переходы) и виды действий (реакция на переход). Группирующие сущности являются организующими частями модели UML. Это блоки, на которые можно разложить модель. Есть только одна первичная группирующая сущность - пакет.Пакеты - представляют собой универсальный механизм организации элементов в группы. В пакет можно поместить структурные, поведенческие и даже другие группирующие сущности. В отличие от компонентов, существующих во время работы программы, пакеты носят чисто концептуальный характер, то есть существуют только во время разработки.
Аннотационные сущности
- пояснительные части модели UML. Это комментарии для дополнительного описания, разъяснения или замечания к любому элементу модели. Имеется только один базовый тип аннотационных элементов - примечание. Примечания используются, чтобы снабдить диаграммы комментариями или ограничениями, которые можно выразить в виде неформального или формального текста.Существуют вариации этого элемента, например требования, где описывают некое желательное поведение с точки зрения внешней по отношению к модели.
В языке UML определены четыре типа отношений. Эти отношения являются основными связующими строительными блоками в UML и применяются для создания корректных моделей.
Отношения:
1.Зависимость - это семантическое отношение между двумя сущностями, при котором изменение одной из них, независимой, может повлиять на семантику другой, зависимой.
2.Ассоциация
- структурное отношение, описывающее совокупность связей.3.Обобщение
- это отношение «специализация/обобщение», при котором объект специализированного элемента (потомок) может быть подставлен вместо объекта обобщенного элемента (родителя или предка). Потомок наследует структуру и поведение своего родителя.4.Реализация
- это семантическое отношение между классификаторами, при котором один классификатор определяет «контракт», а другой гарантирует его выполнение. Отношения реализации встречаются в двух случаях: во-первых, между интерфейсами и реализующими их классами или компонентами, а во-вторых, между прецедентами и реализующими их кооперациями.Диаграмма
в UML - это графическое представление набора элементов, изображаемое чаще всего в виде связанного графа с вершинами (сущностями) и ребрами (отношениями).В UML выделяют девять типов диаграмм: 1) диаграммы классов; 2) диаграммы объектов; 3) диаграммы прецедентов; 4) диаграммы последовательностей; 5) диаграммы кооперации; 6) диаграммы состояний; 7) диаграммы действий; 8) диаграммы компонентов; 9)диаграммы развертывания
Строительные блоки UML нельзя произвольно объединять друг с другом. Как и любой другой язык, UML характеризуется набором правил, определяющих, как должна выглядеть хорошо оформленная модель, т.е. семантически самосогласованная и находящаяся в гармонии со всеми моделями, которые с нею связаны.