- •Концепция RUP
- •Методы проектирования ИС
- •IDEF0 (Integration Definition for Function Modeling)
- •проектирования
- •Объектно-ориентированное проектирование
- •Почему объектная ориентация работает???
- •Язык UML – унифицированный язык моделирования
- •Что такое UML?
- •Большие современные программные системы, как правило, нуждаются в инструментальной поддержке.
- •Rational Unified
- •RUP использует итеративную модель разработки.
- •1. Начальная стадия (Inception)
- •2. Уточнение (Elaboration)
- •3. Построение (Construction)
- •4. Внедрение (Transition)
- •Rational Unified Process и его содержание
- •RUP основан на трех ключевых идеях.
- •Принципы моделирования
- •иерархическое построение - при описании системы используются различные уровни абстрагирования и детализации в
- •Диаграммы UML и их виды
- •Структурные диаграммы:
- •При этом в качестве самостоятельных представлений в языке UML используются следующие диаграммы:
- •Диаграмма вариантов использования представляет собой наиболее общую
- •Что значит - «унифицированный язык»?
- •Объекты и UML
- •Основные элементы UML
- •Сущности UML
- •Сущности UML
- •Структурные сущности
- •Активный класс(active class) имеет экземпляры, каждый из которых выполняет и управляет собственным потоком
- •Поведенческие сущности являются динамическими составляющими модели UML. Это глаголы, которые описывают поведение модели
- •Сущности UML
- •Группирующие сущности являются
- •Аннотационные сущности - это пояснительные части модели UML: комментарии для дополнительного описания, разъяснения
- •Отношения
- •Пример UML отношений
- •В языке UML определены следующие типы отношений: зависимость , ассоциация , обобщение и
- •Ассоциация представляет наиболее абстрактную семантическую связь между двумя элементами, которая выявляется на ранней
- •Диаграммы
- •1. Технология построения диаграммы Варианты использования в UML
- •1. Диаграммы вариантов использования (Use Case)
- •Назначение диаграмм Варианты использования
- •Суть диаграммы use
- •В языке UML пакет Варианты использования является подпакетом пакета Элементы поведения.
- •Стандартные
- •Содержание варианта использования может быть представлено в форме дополнительного пояснительного текста, который раскрывает
- ••Варианты использования описывают не только взаимодействия между пользователями и сущностью, но также реакции
- •Хорошо описанный вариант использования имеет следующие атрибуты:
- •Актеры
- ••В качестве актеров могут выступать другие системы, подсистемы проектируемой системы или отдельные классы.
- ••Поскольку в общем случае актер всегда находится вне системы, его внутренняя структура никак
- •Интерфейсы
- ••На диаграмме вариантов использования интерфейс изображается в виде маленького круга, рядом с которым
- ••Важность интерфейсов заключается в том, что они
- •Примечания
- •Отношения на диаграмме вариантов
- •Два варианта использования, определенные для одной и той же сущности, не могут взаимодействовать
- •Отношение ассоциации
- •Отношение ассоциации
- •Два символа, разделенные двумя точками. При этом первый из них является целым неотрицательным
- •Отношение расширения
- •Отношение обобщения
- •Отношение включения
- •Пример диаграммы вариантов использования
- •Значения указанных на данной диаграмме кратностей отражают общие правила оформления заказов на покупку
- •На следующем этапе разработки данной диаграммы вариант использования "Оформить заказ на покупку товара"
- •Приведенная диаграмма вариантов использования, в свою очередь, может быть детализирована далее с целью
- •В рамках рассматриваемой системы продажи товаров может иметь самостоятельное значение и специфические особенности
- •Второе из основных направлений детализации диаграмм вариантов использования связано с последующей структуризацией ее
- •ICQ (от англ. I seek you — «я ищу тебя») — бесплатная система
- •Диаграмма Вариантов Использования для системы обработки заказов.
- •В заключение приведем пару примеров законченных диаграмм прецедентов. Первый пример (смысл которого понятен
- •Подводя итоги, можно выделить такие цели создания диаграмм прецедентов:
- •2.Технология построения диаграммы классов в UML
- •Понятие класса
- •Предполагается, что окончательный вариант диаграммы содержит наиболее полное описание классов, которые состоят из
- •Имя класса
- •Атрибуты класса
- •Имя атрибута представляет собой строку текста, которая используется в качестве идентификатора соответствующего атрибута
- •Тип атрибута представляет собой выражение, семантика которого определяется языком спецификации соответствующей модели. В
- •Исходное значение служит для задания некоторого начального значения для соответствующего атрибута в момент
- •При задании атрибутов могут быть использованы две дополнительные синтаксические конструкции — это подчеркивание
- •Строка-свойство служит для указания значений атрибута, которые не могут быть изменены в программе
- •Операция
- •Имя операции является единственным обязательным элементом синтаксического обозначения операции.
- •Строка-свойство служит для указания значений свойств, которые могут быть применены к данному элементу.
- •Примеры операций:
- •Отношения между классами
- •На диаграмме классов данное отношение связывает отдельные классы между собой, при этом стрелка
- •Так, для рассмотренного ранее примера кратность "1" для класса "Компания" означает, что каждый
- •Частным случаем отношения ассоциации является отношение агрегации. Оно имеет место между несколькими классами
- •Отношение обобщения является обычным отношением между более общим элементом (родителем или предком) и
- •Первый пример весьма прост. Иллюстрирует с помощью операции наследования или генерализации "генеалогическое древо"
- •И опять-таки смысл этой диаграммы ясен без особых пояснений. Даже бегло рассмотрев ее,
- •здесь уже все более серьезно - кроме кратности обозначены свойства (и их типы)
- •Интерфейсы
- •Таким образом , Диаграмма классов UML
- •В языке UML определены три основных стереотипа классов: Boundary (граница);
- •Управляющие классы
- •ОПЕРАЦИИ
- •Операции реализации
- •Связ
- •Имена связей
- •Пакет. Механизм пакетов
- •Другой подход заключается в объединении классов по их функциональности. Например, в пакете Security
- •Зависимость между двумя элементами имеет место в том случае, если изменения в определении
- •Объекты
- •Примеры изображения объектов
- •1.Объект (object) - конкретная материализация абстракции;
- •Для чего нужны диаграммы объектов?
- •О чем здесь идет речь, в принципе, понятно: некоторая фирма "раскручивает" новый товар
- •Эта диаграмма тоже понятна в общих чертах даже без дополнительных объяснений. Здесь мы
- •Динамические диаграммы
- •Потоки данных показываются в виде стрелок. Синхронизации двух видов — развилки (forks) и
- •Примеры диаграмм активности
- •Процесс доставки
- •Диаграмма последовательностей (sequence diagram)
- •- На диаграмме последовательности изображаются исключительно те объекты, которые непосредственно участвуют во взаимодействии
- •- Второе измерение диаграммы последовательности – вертикальная временная ось, направленная сверху вниз. Начальному
- •-Вовсе не обязательно создавать все объекты в начальный момент
- •Фокус управления
- •ФОКУС УПРАВЛЕНИЯ
- •Теперь о том, какие обозначения используются на диаграмме последовательностей.
- •это работа обычного домового лифта, которым мы пользуемся каждый день! Кстати, посмотрите на
- •Диаграмма кооперации
- •- Далее, как и на диаграмме классов, показываются структурные отношения между объектами в
- •Как видите, эта диаграмма описывает (очень грубо) работу персонала библиотеки по обслуживанию клиентов:
- •Описывает процесс управления учебными курсами (очевидно, путем создания их из готовых модулей) для
- •Диаграмма кооперации
- •- Диаграммы компонентов(component diagrams)
- •Компонент изображается в виде прямоугольника с несколькими прямоугольными или другой формы «зубами» на
- •На диаграмме компонентов можно также увидеть пакеты, изображаемые в виде «папок», точнее —
- •Диаграмма развертывания (deployment diagram)
- •Диаграмма развертывания (deployment diagram)
- •Диаграмма развертывания показывает топологию системы и распределение компонентов системы по ее узлам, а
- •ООП и последовательность построения диаграмм
- •5.Шаблоны или параметризованные классы
- •Шаблон не может быть непосредственно использован в качестве класса, поскольку содержит неопределенные параметры.
- •Выводы
В заключение приведем пару примеров законченных диаграмм прецедентов. Первый пример (смысл которого понятен и без дополнительных пояснений) демонстрирует включение, расширение и наследование прецедентов. Обратите внимание на стрелки, которые направлены к экторам, изображающим шлюзы. Все правильно - ведь система пользуется их услугами при отправке сообщений, в то время как маркетолог, наоборот, пользуется
услугами системы, и потому стрелки направлены от него
Подводя итоги, можно выделить такие цели создания диаграмм прецедентов:
•определение границы и контекста моделируемой предметной области на ранних этапах проектирования;
•формирование общих требований к поведению проектируемой системы;
•разработка концептуальной модели системы для ее последующей детализации;
•подготовка документации для взаимодействия с заказчиками и пользователями системы.
2.Технология построения диаграммы классов в UML
Центральное место в ООАП занимает разработка логической модели системы в виде диаграммы классов.
Диаграмма классов (class diagram) служит для представления статической структуры модели системы в терминологии классов объектно-ориентированного программирования. Диаграмма классов может отражать, в частности, различные взаимосвязи между отдельными сущностями предметной области, такими как объекты и подсистемы, а также описывает их внутреннюю структуру и типы отношений. На данной диаграмме не указывается информация о временных аспектах функционирования системы.
Понятие класса
Класс (class) в языке UML служит для обозначения множества объектов, которые обладают одинаковой структурой, поведением и отношениями с объектами из других классов.
Класс (class) - категория вещей, которые имеют общие атрибуты и операции.
Классы - это строительные блоки любой объектно-ориентированной системы. Они представляют собой описание совокупности объектов с общими атрибутами, операциями, отношениями и семантикой. При проектировании объектно- ориентированных систем диаграммы классов обязательны.
Классы используются в процессе анализа предметной области для составления словаря предметной области разрабатываемой системы. Это могут быть как абстрактные понятия предметной области, так и классы, на которые опирается разработка и которые описывают программные или аппаратные сущности.
Графически класс изображается в виде прямоугольника, который дополнительно может быть разделен горизонтальными линиями на разделы или секции. В этих разделах могут указываться имя класса, атрибуты (переменные) и операции (методы).
Предполагается, что окончательный вариант диаграммы содержит наиболее полное описание классов, которые состоят из трех разделов или секций. Иногда в обозначениях классов используется дополнительный четвертый раздел, в котором приводится семантическая информация справочного характера или явно указываются исключительные ситуации.
Имя класса
Имя класса должно быть уникальным в пределах пакета, который описывается некоторой совокупностью диаграмм классов (возможно, одной диаграммой). Оно указывается в первой верхней секции прямоугольника. В дополнение к общему правилу наименования элементов языка UML, имя класса записывается по центру секции имени полужирным шрифтом и должно начинаться с заглавной буквы. Рекомендуется в качестве имен классов использовать существительные, записанные по практическим соображениям без пробелов.
Имена классов образуют словарь предметной области при ООАП.
Класс может не иметь экземпляров или объектов. В этом случае он называется абстрактным классом, а для обозначения его имени используется наклонный шрифт (курсив).
Атрибуты класса
Во второй сверху секции прямоугольника класса записываются его атрибуты (attributes) или свойства. В языке UML принята определенная стандартизация записи атрибутов класса, которая подчиняется некоторым синтаксическим правилам. Каждому атрибуту класса соответствует отдельная строка текста, которая состоит из квантора видимости атрибута, имени атрибута, его кратности, типа значений атрибута и, возможно, его исходного значения:
<квантор видимости><имя атрибута>[кратность]:
<тип атрибута> = <исходное значение>{строка-свойство}
Квантор видимости может принимать одно из трех возможных значений и, соответственно, отображается при помощи специальных символов:
•Символ "+" обозначает атрибут с областью видимости типа общедоступный (public).
•Символ "#" обозначает атрибут с областью видимости типа защищенный (protected).
•знак "-" обозначает атрибут с областью видимости типа закрытый (private).
•знак “~" используется для обозначения операции с областью видимости типа пакетный ( package ).
Отсутствие квантора видимости трактуется как public или private
Имя атрибута представляет собой строку текста, которая используется в качестве идентификатора соответствующего атрибута и поэтому должна быть уникальной в пределах данного класса. Имя атрибута является единственным обязательным элементом синтаксического обозначения атрибута.
Кратность атрибута характеризует общее количество конкретных атрибутов данного типа, входящих в состав отдельного класса. В общем случае кратность записывается в форме строки текста в квадратных скобках после имени соответствующего атрибута:
[нижняя_граница1 .. верхняя_граница1, нижняя_граница2.. верхняя_граца2, ..., нuжняя_гpaнuцak .. верхняя_границаk]
Нижняя_граница и верхняя_граница являются положительными целыми числами, каждая пара которых служит для обозначения отдельного замкнутого интервала целых чисел. В качестве верхней_границы может использоваться специальный символ "*".
Если кратность атрибута не указана, то по умолчанию принимается ее значение равное 1..1, т. е. в точности 1.
[1..3,7.. 10] означает, что кратность атрибута может принимать любое значение из чисел: 1, 2, 3, 7, 8, 9, 10.
Тип атрибута представляет собой выражение, семантика которого определяется языком спецификации соответствующей модели. В нотации UML тип атрибута иногда определяется в зависимости от языка программирования, который предполагается использовать для реализации данной модели. В простейшем случае тип атрибута указывается строкой текста, имеющей осмысленное значение в пределах пакета или модели, к которым относится рассматриваемый класс.
Примеры задания имен и типов атрибутов классов:
цвет: Соlоr — здесь цвет является именем атрибута, Color — именем типа данного атрибута.
имя_сотрудника [1..2] : String — здесь имя_сотрудника является именем атрибута, который служит для представления информации об имени, а возможно, и отчестве конкретного сотрудника.
видимость:Boolean — здесь видимость есть имя абстрактного атрибута, который может характеризовать наличие визуального представления соответствующего класса на экране монитора. В этом случае тип Boolean означает, что возможными значениями данного атрибута является одно из двух логических значений: истина (true) или ложь (false).
Исходное значение служит для задания некоторого начального значения для соответствующего атрибута в момент создания отдельного экземпляра класса. Здесь необходимо придерживаться правила принадлежности значения типу конкретного атрибута. Если исходное значение не указано, то значение соответствующего атрибута не определено на момент создания нового экземпляра класса. С другой стороны, конструктор соответствующего объекта может переопределять исходное значение в процессе выполнения программы, если в этом возникает необходимость.
Примеры
•цвет:Соlоr = (255, 0, 0) — в RGB-модели цвета это соответствует чистому красному цвету в качестве исходного значения для данного атрибута.
•видимость:Вооlеаn = истина — может соответствовать ситуации, когда в момент создания экземпляра класса создается видимое на экране монитора окно, соответствующее данному объекту.
