Проектирование и анализ ПО Дмитриев Андрей Владиславович 2007
Часть 4. UML( Unified Modeling Language) o Введение в UML o Обзор языка o Классы и отношения между ними o Моделирование использования o Моделирование структуры o Моделирование поведения o Управление моделями o UML и процесс разработки o Действующие лица и варианты использования o Автоматы, блок-схемы и кооперации
План раздела по языку UML o Терминология, литература, нотация o Назначение UML o Способы использования языка o Структура определения языка
UML как язык ФормальныйНеформальный Искусственный ПаскальЭсперанто UML ЕстественныйМатематикаРусский
Инструмент моделирования o Жизненный цикл разработки приложения o Модель процесса разработки o Моделирование – составление и использование моделей
Унифицированный язык моделирования Историческая справка Развитие путем объединения и унификации Авторы и международное сообщество Современные тенденции
Историческая справка Петроглифы Блок-схемы Р-технология Диаграммы потоков данных (DFD) Диаграммы «сущность-связь » (ERD) Методология структурного анализа и проектирования (SADT)
Авторы UML Grady Booch James Rumbaugh Ivar Jacobson
Моделирование Спецификация (specification) Формальная, наглядная Визуализация (visualization) для общения Проектирование (construction) архитектуры (конструирование?) Документирование (documenting) всех артефактов
Формальные спецификации Спецификация =описание (программы) В понимании заказчика. В понимании разработчика. Полная формальная (математическая) спецификация возможна, но: Объем спецификации больше объема кода Математики дороже программистов Наилучшая спецификация программы – код Формализация дороже автоматизации Формализованная спецификация
Визуализация Текст Текст с иллюстрациями Иллюстрации с текстом UML
Проектирование Автоматический синтез программ алгоритмически неразрешим Частичная генерация кода возможна Опора на стереотипные компоненты Уменьшение количества ошибок Обратное проектирование восстановление модели по коду round-trip engineering
Документирование Все элементы моделей UML могут содержать текстовые описания Почти все инструменты умеют собирать из них осмысленные документы Почти никто из программистов не пишет текстов
UML не является: Языком программирования Спецификацией инструмента (CASE) Инструменты: Sun, Together, Rose, MS Visio, Argo Моделью процесса модель необходима и имеется (Rational Unified Process -> Unified Software Development Process)
Спецификация OMG UML 1.4 UML Summary 4 UML Semantics 83 UML Notation Guide 66 UML Extensions 4 UML CORBA 55 UML XMI DTD 362 OCL 52 Glossary 24 Всего страниц ~1000
Спецификация OMG UML 2.0 OMG = Object Management Group UML 2.0 Superstructure 640 UML 2.0 Infrastructure 99 UML 2.0 Diagram Interchange 34 UML Extensions … UML MOF Metamodel … UML CORBA … UML XMI DTD … OCL … Всего страниц … много.
Компоненты передачи идей Теория – откуда это взялось Прагматика – зачем это нужно Нотация – составные элементы Семантика – значение элемента Метамодель – упрощенный абстрактный синтаксис
Нотация Фигуры – двумерные с внутренностью Линии – одномерные с наружностью Значки – двумерные с наружностью Тексты Рамки (UML 2.0)
Инструментарий Sun Visio Together Rose Argo UML
Выводы UML – еще один формальный язык, который необходимо быстро освоить Знание UML является необходимым, но не является достаточным условием построения разумных моделей UML имеет синтаксис,семантику и прагматику, которые нужно использовать с учетом особенностей фактического инструмента
Ссылки UML Language Reference (Three Amigos) Специальный справочник (Питер,2002) UML 2-е издание (Питер,2006) UML Distilled (Martin Fowler &Kendall Scott) Основы UML второе издание (Символ,2002) В кратком изложении (Мир,999) UML User Guide (Three Amigos) Руководство пользователя (ДМК,2000,Питер 2003) Самоучитель (Леоненков) (БХВ,200,2004) Kendall Scott Fast Track UML 2.0 Apress © Sinan Si Alhir «Learning UML» O'Reilly. Sinan Si Alhir
Ссылки
Q&A
Дмитриев Андрей Владиславович Спасибо!