МОДЕЛИРОВАНИЕ НА UML Политехнический университет 2012.

Презентация:



Advertisements
Похожие презентации
Моделирование на UML Денис Иванов. Ай Ти Консалтинг.
Advertisements

Проектирование и анализ ПО Дмитриев Андрей Владиславович 2007.
2. UML – унифицированный язык моделирования систем.
Презентация дисциплины по выбору Для студентов, обучающихся по направлению «Прикладная информатика» (магистерская программа «Прикладная информатика.
The UML Тимофеев Никита
Программная инженерия Андрей Дмитриев ©2009.
Унифицированный язык моделирования UML является графическим языком для визуализации, конструирования и документирования систем, в которых большая роль.
Structure Analysis and Design Technique (SADT) Методология: графическое представление блочного моделирования графическое представление блочного моделирования.
1 Диаграммы реализации (implementation diagrams).
UML МИЭМ, План лабораторной UML Краткий обзор средств моделирования Паттерны проектирования Практическая часть 2.
Кандидат технических наук, доцент Грекул Владимир Иванович Учебный курс Проектирование информационных систем Лекция 9.
Объектно- ориентированный подход к моделированию систем.
Разработка объектно- ориентированного ПО Итеративная модель разработки (развитие водопадной модели) анализ проектирование кодирование тестирование.
WORK WITH UML Универсальный язык моделирования (UML) Studybook for students Author Dudnik Oxana.
Разработка программного обеспечения при объектном подходе Объектно-ориентированный подход.
РАЗРАБОТКА ЭЛЕКТРОННОГО КУРСА ПО UML– ПРОЕКТИРОВАНИЮ. МОДЕЛЬ КУРСА С ТОЧКИ ЗРЕНИЯ ДИАГРАММ АКТИВНОСТИ И ВАРИАНТОВ ИСПОЛЬЗОВАНИЯ. БУДИНКЕВИЧ А. В. НАУЧНЫЙ.
Этап моделирования предметной области в методологии RUP.
Проектирование архитектуры ИСО 1. UML 2 Структура определения языка 4.
Методология объектно- ориентированного программирования.
Представление предметной области. Методы представления предметной области. Модель сущность-связь. Инфологическое описание предметной области.
Транксрипт:

МОДЕЛИРОВАНИЕ НА UML Политехнический университет 2012

Оглавление слайдов Об этом курсе (3 – 13) Введение в UML (14 – 102) Моделирование использования Моделирование структуры Моделирование поведения

МОДЕЛИРОВАНИЕ НА UML Об этом курсе

Содержание Предыстория курса Назначение курса Особенности курса Методика курса Сведения об авторах

Предыстория курса Развернутый пример для самообразования Самообучение 1997 – 2001 Заказной лекционный курс OOAD with UML Авторские корпоративные тренинги 2001 – 2003 Лекции + книга + практика + … ИТМО, СПбГПУ, СПбГУ + ТЕКАМА 2004 – 2007 Полная переработка ( Денис Иванов ) Интернет, он - лайн тренинги, … 2008 – 2009

Назначение курса Ясное понимание основных идей UML Знание базовых конструкций UML Приобретение практических навыков моделирования на UML Осознание тенденций развития UML

Уровни понимания У обучающегося возникает приятное чувство понимания излагаемого материала Он может повторить изложенное своими словами Обучающийся видит ошибки и недочеты в изложении и в состоянии их исправить Это курс для мотивированного обучающегося

Особенности курса Апокрифичность Имеется канонический, но малоэффективный первоисточник Широта охвата материала UML, но не только Прагматичность Зачем все это ?

Три ипостаси курса Курс молодого бойца для начинающих Справочник и поваренная книга для опытных пользователей Информация к размышлению для экспертов

Методика курса Лекции Всего пять занятий с лекциями + 1 встреча Сквозной пример Тестирование в конце лекции (moodle) Самостоятельная работа Изучение книг и лекций Практическое моделирование в парах Презентация и обсуждение моделей Зачет = Практические задания.docx

Логическая структура книги и лекций Логическая структура Структура курса

Сведения об авторах (1/2) Иванов Денис Юрьевич, р В 1997 году закончил кафедру « Информационные системы » Ленинградского института авиационного приборостроения. Более 10 лет опыта работы в индустрии разработки программного обеспечения. Сфера профессиональных интересов включает вопросы связанные с разработкой и проектированием программных систем и методы совершенствования процессов разработки ПО.

Сведения об авторах (2/2) Новиков Федор Александрович, р Закончил кафедру " Математическое обеспечение ЭВМ " математико - механического факультета Ленинградского государственного университета в Кандидат физико - математических наук. Области научных интересов : автоматический синтез программ, управление качеством при разработке программного обеспечения, автоматное программирование.

МОДЕЛИРОВАНИЕ НА UML Введение в UML

Содержание Что такое UML? Назначение UML Определение UML Модель и ее элементы Виды моделей Диаграммы Представления Общие механизмы Выводы

Что такое UML? UML = Unified Modeling Language Моделирования Язык Унифицированный

UML – это язык ФормальныйНеформальный ИскусственныйПаскальЭсперанто ЕстественныйМатематикаРусский UML

Авторы UML: Буч Гради Буч (Grady Booch), р американский ученый и инженер Степень бакалавра получил в 1977 в Военно - воздушной академии США, а степень магистра в 1979 в Калифорнийском университете, Санта Барбара Работал главным научным сотрудником корпорации Rational Software, которая была куплена корпорацией IBM в 2003 году В настоящее время является главным научным сотрудником IBM Research

Авторы UML: Якобсон Ивар Якобсон (Ivar Hjalmar Jacobson), р.1939 шведский ученый и инженер Степень магистра получил в 1962 году, а степень доктора в 1985 году в Королевском технологическом институте в Стокгольме Идея сборочного программирования на основе программных компонентов (1967) Изобретение диаграмм последовательности (1985) и вариантов использования (1986) Соавторство при разработке языков SDL (1976) и UML (1997)

Авторы UML: Рамбо Джеймс Рамбо (James Rumbaugh) американский инженер и ученый Бакалаврская степень по физике в Массачусетском технологическом институте, магистерская степень по астрономии в Калтехе, докторская степень по информатике в Массачусетском технологическом институте Более 25 лет проработал в исследовательском центре корпорации General Electric В 1994 перешел в Rational Software, где вместе с Бучем и Якосоном разработал UML

UML – это язык моделирования Модель – основной артефакт фазы проектирования Деятельность – моделирование Составление и использование моделей Должность – ( системный ) архитектор

UML – это унифицированный язык моделирования... Петроглифы Блок - схемы P- технология Диаграмма потоков данных (DFD) Диаграмма сущность - связь (ERD) Методология структурного анализа и проектирования (SADT)... SDL MSC...

История развития UML

Назначение UML UML – графический язык моделирования общего назначения, предназначенный для спецификации, визуализации, проектирования и документирования всех артефактов, создаваемых при разработке приложений Г. Буч

Моделирование = Спецификация (specification) формальная, но наглядная + Визуализация (visualization) для общения + Проектирование (construction) конструирование ? + Документирование (documenting) всех артефактов

Спецификация Спецификация = описание ( программы ) в понимании заказчика в понимании разработчика на самом деле

Формализованная спецификация UML – (полу) формальное (иногда) удобное (почти) универсальное средство для уменьшения расхождений в толковании спецификаций

Как это бывает

Формальная спецификация Полная формальная математическая спецификация Невозможна ? Возможна ! Но … Объем математической спецификации больше объема кода ( в несколько раз ) Математики дороже программистов Математические теории разрабатываются медленнее, чем программы Наилучшая спецификация программы – код Формализация дороже автоматизации

Пример формальной спецификации Спецификация: «программа вычисления двух вещественных корней квадратного уравнения» Полная (?) формальная математическая спецификация: Предусловие: a 0 & b 2 – 4ac > 0 Постусловие: ax 2 + bx + c = 0 Пропущено «вещественных» Тип bool = {F,T} + таблицы истинности Тип int = коммутативное кольцо с единицей вычетов по модулю 2 32 Тип double = ? ? ?

Визуализация

Жизненный цикл работника на предприятии

Проектирование Автоматический синтез программ Алгоритмически неразрешимая массовая проблема Известны разрешимые подклассы Автоматическая (частичная) генерация программного кода по модели Генеративное программирование Непосредственная интерпретация моделей Автоматическое построение моделей по коду готового приложения Инженерный анализ программ (Reverse engineering)

Документирование Все элементы модели могут содержать текстовое описание Почти все инструменты могут собирать из них осмысленные документы Почти никто из разработчиков этим не пользуется

Чем не является UML? 1. Языком программирования Генерация кода возможна 2. Спецификацией инструмента Инструменты подразумеваются и имеются 3. Моделью процесса разработки приложений Модель необходима и имеется – Rational Unified Process (RUP)

Способы использования UML Рисование картинок Обмен информацией Спецификация систем Повторное использование архитектурных решений Генерация кода Имитационное моделирование Верификация моделей

Варианты использования UML (1/2) Рисование диаграмм обдумывание, обмен идеями, документирование и тому подобного значимым результатом является само изображение диаграмм. Моделирование систем создание и изменение модели системы в терминах тех элементов моделирования, которые предусматриваются метамоделью UML значимым результатом является машинно - читаемый артефакт с описанием модели Разработка приложений детальное моделирование, реализацию и тестирование приложения в терминах UML. значимым для пользователя результатом является работающее приложение, которое может быть скомпилировано в язык, поддерживаемый конкретной системой программирования или сразу интерпретировано средой выполнения инструмента

Варианты использования UML (2/2)

Определение UML Точный понятный, краткий полный : компромисс Определение методом раскрутки Семантика : диаграммы классов / пакетов + ограничения (OCL) + текст (Plain English) Нотация : отображение семантики в картинке ( а не наоборот !) OCL = Object Constraints Language

Структура стандарта UML ДокументСодержаниеСтр. UML Infrastructure (2.4.1) Описание базовых механизмов 230 UML Superstructure (2.4.1) Описание самого языка748 UML Diagram interchange (1.0) Описание формата обмена дополнительными данными 86 OCL Specifications (2.2) Описание объектного языка ограничений

Терминология 1.UML – независимый от конкретных языков программирования новые термины для исключения совпадений 2.UML – унифицированный разные терминологические традиции 3.По-русски: устоявшейся терминологии нет основной критерий: как можно точнее передать смысл Терминология UML довольно замысловатая и не всегда последовательная

Нотация ФигурыЛинии ЗначкиТексты

Фигуры 2D Псевдо 3D Замкнутые Контейнер

Линии Одномерные Точки присоединения Прямые, ломанные, плавные кривые Толщина Пересечение Стиль сплошная пунктирная Дополнительные элементы текст украшения ( стрелки )

Значки Не контейнер Дополнительный элемент текст

Тексты Смысл Гарнитура, размер, цвет Начертание прямое подчеркнутое курсив

Фаулер М. UML. Основы. 3-е издание. Символ-Плюс, 2005 Буч Г., Рамбо Д., Якобсон А. Язык UML. Руководство пользователя. 2-е издание. ДМК, 2006 Буч Г., Якобсон А., Рамбо Д. UML. 2- е издание. Классика CS. Питер, 2006 Иванов Д., Новиков Ф. Моделирование на UML. НиТ, 2009 Литература

Модель и ее элементы Модель UML это совокупность конечного множества конструкций языка, главные из которых сущности и отношения Сущности и отношения модели являются экземплярами метаклассов метамодели

Модель UML Нагруженный мульти - псевдо - гипер - орграф Вершины и ребра нагружены информацией и могут иметь сложную внутреннюю структуру Вершины - сущности, ребра - отношения

Структурные сущности Тип сущностиНазваниеПеревод Структурные артефактartifact вариант использования use case действующее лицоactor интерфейсinterface классclass компонентcomponent кооперацияcollaboration объектobject узелnode

Нотация структурных сущностей (1/2) артефакт действующее лицо вариант использования класс компонент

Нотация структурных сущностей (2/2) интерфейс объект узел кооперация

Прочие сущности Тип сущностиНазваниеПеревод Поведенческие действиеaction деятельностьactivity состояниеstate Группирующие пакетpackage Аннотационные примечаниеnote

Нотация прочих сущностей пакет состояние примечаниедеятельность и действие

Отношение зависимости Зависимость: независимая сущность каким-то образом влияет на зависимую Смысл часто уточняется стереотипом: « »

Отношение ассоциации Ассоциации: одна сущность непосредственно связана с другой

Отношение обобщения Обобщение: одна сущность частный случай другой

Отношение реализации Реализация: одна сущность реализация другой

Виды моделей Реальные модели сложны. Сложную систему представляют в виде набора моделей с разной степенью детализации ( абстракции ) Виды моделей Концептуальная ( аналитическая ) модель Модель проектирования Модель реализации

Диаграммы Диаграмма это графическое представление некоторой части графа это накладываемая на модель структура, которая облегчает создание и использование модели Модель – объединение диаграмм

Иерархия диаграмм UML1

Иерархия диаграмм UML2 (1/2)

Иерархия диаграмм UML2 (2/2)

Нотация диаграммы

Теги диаграмм (1/2) ДиаграммаТег (стандарт)Тег (практика) использованияuse case или ucuse case классовclass автомата state machine или stm state machine деятельностиactivity или actactivity последовательност и interaction или sdsd коммуникацииinteraction или sdcomm

Теги диаграмм (2/2) ДиаграммаТег (стандарт)Тег (практика) компонентов component или cmp component размещенияне определенdeployment объектовне определенobject внутренней структуры class class или component обзорная взаимодействия interaction или sdinteraction синхронизацииinteraction или sdtiming пакетовpackage или pkgpackage

Общие диаграммы Практически не зависят от предмета моделирования Могут применяться в любом программном проекте o Диаграмма использования (Use case diagram) o Диаграмма классов (Class diagram) o Диаграмма автомата (State machine diagram) o Диаграмма деятельности (Activity diagram) o Диаграмма последовательности (Sequence diagram) o Диаграмма коммуникации (Communication diagram) o Диаграмма компонентов (Component diagram) o Диаграмма размещения (Deployment diagram)

Диаграмма использования

Диаграмма классов

Диаграмма автомата

Диаграмма деятельности

Диаграмма последовательности

Диаграмма коммуникации

Диаграмма компонентов

Диаграмма размещения

Специальные диаграммы Служат для дополнения какой - либо общей диаграммы Являются частным случаем Уточняют детали o Диаграмма объектов (Object diagram) o Диаграмма внутренней структуры (Composite structure diagram) o Обзорная диаграмма взаимодействия (Interaction overview diagram) o Диаграмма синхронизации (Timing diagram) o Диаграмма пакетов (Package diagram)

Диаграмма объектов

Диаграмма внутренней структуры

Обзорная диаграмма взаимодействия

Диаграмма синхронизации

Диаграмма пакетов

Представления Реальные модели сложны. Сложную модель невозможно обозреть с одной точки зрения Представление проекция ( фильтрация ) единого графа модели средство логического структурирования модели

UML 1. Классические представления Словарь предметной области Сборка системы, управление конфигурацией Топология системы, распределение, установка Производительность, масштабируемость, пропускная способность Функциональные требования

UML 2.Классические представления (1/2) ПредставленияДиаграммыКомментарий Статическое представление (Static view) Диаграмма классовВ UML 1 Design view Представление проектирования (Design view) Диаграмма внутренней структуры, коммуникации, компонентов В UML 1 Process view и Сomponent view Представление использования (Use Case view) Диаграмма использования Добавлены диаграммы взаимодействия, состояний и деятельности Представление конечных автоматов (State machine view) Диаграмма автоматаВ UML 1 используется всеми представлениями по необходимости

UML 2.Классические представления (2/2) ПредставленияДиаграммыКомментарий Представление деятельности (Activity view) Диаграмма деятельности, обзорная диаграмма взаимодействия В UML 1 используется всеми представлениями по мере необходимости Представление взаимодействия (Interaction view) Диаграмма последовательности, коммуникации, синхронизации В UML 1 используется всеми представлениями по мере необходимости Представление развертывания (размещения) (Deployment view) Диаграмма развертывания Добавлены диаграммы взаимодействия, состояний и деятельности Представление управления моделью (Model Management view) Диаграмма пакетовОтсутствует в UML 1

Три представления Представление использования Представление структуры Представление поведения ЧТО делает система Диаграммы использования ИЗ ЧЕГО состоит система Диаграммы классов, компонентов и размещения КАК работает система Диаграммы автомата, деятельности и взаимодействия

Классификация диаграмм Как работает система? Диаграмма деятельности Activity diagram Диаграмма коммуникации Communication diagram Диаграмма последовательности Sequence diagram Диаграмма автомата State machine diagram Обзорная диаграмма взаимодействия Interaction overview diagram Диаграмма синхронизации Timing diagram Из чего состоит система? Диаграмма классов Class diagram Диаграмма компонентов Component diagram Диаграмма размещения Deployment diagram Диаграмма объектов Object diagram Диаграмма внутренней структуры Composite structure diagram Диаграмма пакетов Package diagram Что делает система? Диаграмма использования / Use case diagram

Итеративный процесс моделирования

Общие механизмы Внутреннее представление = Спецификации (specifications) Дополнения (adornments) UML 1 Украшения (decorations) UML 2 Стандартные дихотомии (common divisions) Класс – объект Интерфейс – реализация Механизмы расширения (extension mechanisms) Стереотипы (stereotypes) Именованные значения (tagged values) Ограничения (constraints) Пакетная структура

Внутреннее представление и XMI (XML Metadata Interchange)

Украшения ( Дополнения )

Стандартные дихотомии. Класс - объект

Стандартные дихотомии. Интерфейс - реализация

Механизмы расширения (1/4) Механизмы расширения встроенный в язык способ изменить язык позволяют определять новые элементы модели на основе существующих управляемым и унифицированным способом

Механизмы расширения (2/4) Помеченное значение : имя свойства и значение свойства Ограничение : логическое утверждение

Механизмы расширения (3/4) Стереотип : определение нового элемента моделирования на основе существующего

Механизмы расширения (4/4) отношение обобщения

Общие свойства модели Синтаксическая правильность Проверяет инструмент Семантическая непротиворечивость Проверяем мы Полнота Недостижима и не нужна Точки вариации семантики (semantic variation points) Статическая или динамическая классификация? Зарыто глубоко

Пакетная структура Проблема управления моделями - когда модель достаточно велика Разделить на части обозримого размера и рассматривать их по отдельности ! Универсальная группирующая сущность пакет

Свойства пакета Отношение владения Пространство имен Видимость элементов

« Хорошая » структура модели « Магическое » число 7±3 (5±2): Количество сущностей Ширина ветвления в дереве вложенности пакетов с учетом диаграмм Число использующих вхождений элементов модели

Выводы UML это формальный графический объектно- ориентированный язык моделирования, который необходимо освоить UML имеет нотацию, семантику и прагматику, которые нужно знать и использовать с учетом особенностей реальной задачи и инструмента Модель UML состоит из описания сущностей и отношений между ними Элементы модели группируются в диаграммы и представления для наилучшего описания моделируемой системы с различных точек зрения В случае необходимости элементы UML могут быть расширены и переопределены средствами самого языка