1.02k likes | 1.46k Views
Моделирование на UML. Политехнический университет 2012. Оглавление слайдов. Об этом курсе (3 – 13) Введение в UML (14 – 102) Моделирование использования Моделирование структуры Моделирование поведения. Моделирование на UML. Об этом курсе. Содержание. Предыстория курса
E N D
Моделирование на 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) • Иванов Денис Юрьевич, р. 1973 • В 1997 году закончил кафедру «Информационные системы» Ленинградского института авиационного приборостроения. • Более 10 лет опыта работы в индустрии разработки программного обеспечения. • Сфера профессиональных интересов включает вопросы связанные с разработкой и проектированием программных систем и методы совершенствования процессов разработки ПО.
Сведения об авторах (2/2) • Новиков Федор Александрович, р. 1951 • Закончил кафедру "Математическое обеспечение ЭВМ" математико-механического факультета Ленинградского государственного университета в 1974. • Кандидат физико-математических наук. • Области научных интересов: автоматический синтез программ, управление качеством при разработке программного обеспечения, автоматное программирование.
Моделирование на UML Введение в UML
Содержание • Что такое UML? • Назначение UML • Определение UML • Модель и ее элементы • Виды моделей • Диаграммы • Представления • Общие механизмы • Выводы
Что такое UML? Язык Моделирования Унифицированный UML = Unified Modeling Language
UML UML – это язык
UML – это язык моделирования • Модель – основной артефакт фазы проектирования • Деятельность – моделирование • Составление и использование моделей • Должность – (системный) архитектор
... Петроглифы Блок-схемы P-технология Диаграмма потоков данных (DFD) Диаграмма “сущность-связь” (ERD) Методология структурного анализа и проектирования (SADT) ... UML – это унифицированный язык моделирования • . . . • SDL • MSC • . . .
Назначение UML “UML – графический язык моделирования общего назначения, предназначенный для спецификации, визуализации, проектирования и документирования всех артефактов, создаваемых при разработке приложений” Г.Буч
Моделирование = Спецификация (specification) • формальная, но наглядная + Визуализация(visualization) • для общения + Проектирование(construction) • конструирование? + Документирование(documenting) • всех артефактов
Спецификация Спецификация = описание (программы) • в понимании заказчика ≠ • в понимании разработчика ≠ • на самом деле
Формализованная спецификация • UML– • (полу) формальное • (иногда) удобное • (почти) универсальное средство для уменьшения расхождений в толковании спецификаций
Полная формальная математическая спецификация Невозможна ?Возможна !Но … Объем математической спецификации больше объема кода (в несколько раз) Математики дороже программистов Математические теории разрабатываются медленнее, чем программы Наилучшая спецификация программы – код Формализация дороже автоматизации Формальная спецификация
Спецификация: «программа вычисления двух вещественных корней квадратного уравнения» Полная (?) формальная математическая спецификация: Предусловие: a 0 & b2 – 4ac > 0 Постусловие: ax2 + bx+ c = 0 Пропущено «вещественных» Тип bool = {F,T} + таблицы истинности Тип int = коммутативное кольцо с единицей вычетов по модулю 232 Тип double = ? ? ? Пример формальной спецификации
Жизненный цикл работника на предприятии
Проектирование • Автоматический синтез программ • Алгоритмически неразрешимая массовая проблема • Известны разрешимые подклассы • Автоматическая (частичная) генерация программного кода по модели • Генеративное программирование • Непосредственная интерпретация моделей • Автоматическое построение моделей по коду готового приложения • Инженерный анализ программ (Reverse engineering)
Документирование Все элементы модели могут содержать текстовое описание Почти все инструменты могут собирать из них осмысленные документы Почти никто из разработчиков этим не пользуется
Чем не является UML? • Языком программирования • Генерация кода возможна • Спецификацией инструмента • Инструменты подразумеваются и имеются • Моделью процесса разработки приложений • Модель необходима и имеется – Rational Unified Process (RUP)
Рисование картинок Обмен информацией Спецификация систем Повторное использование архитектурных решений Генерация кода Имитационное моделирование Верификация моделей Способы использования UML
Варианты использования UML (1/2) • Рисование диаграмм • обдумывание, обмен идеями, документирование и тому подобного • значимым результатом является само изображение диаграмм. • Моделирование систем • создание и изменение модели системы в терминах тех элементов моделирования, которые предусматриваются метамоделью UML • значимым результатом является машинно-читаемый артефакт с описанием модели • Разработка приложений • детальное моделирование, реализацию и тестирование приложения в терминах UML. • значимым для пользователя результатом является работающее приложение, которое может быть скомпилировано в язык, поддерживаемый конкретной системой программирования или сразу интерпретировано средой выполнения инструмента
Определение UML • Точный понятный, краткий полный: компромисс • Определение методом раскрутки • Семантика: диаграммыклассов/пакетов + ограничения (OCL) + текст (Plain English) • Нотация: отображение семантики в картинке (а не наоборот!) OCL = ObjectConstraintsLanguage
Терминология UML –независимый от конкретных языков программирования новые термины для исключения совпадений UML – унифицированныйразные терминологические традиции По-русски: устоявшейся терминологии нет основной критерий: как можно точнее передать смысл Терминология UML довольно замысловатая и не всегда последовательная
Нотация Фигуры Линии Значки Тексты
Фигуры • 2D • Псевдо 3D • Замкнутые • Контейнер
Линии • Одномерные • Точки присоединения • Прямые, ломанные, плавные кривые • Толщина • Пересечение • Стиль • сплошная • пунктирная • Дополнительные элементы • текст • украшения (стрелки)
Значки • Не контейнер • Дополнительный элемент • текст
Тексты • Смысл • Гарнитура, размер, цвет • Начертание • прямое • подчеркнутое • курсив
Фаулер М. UML. Основы. 3-е издание. Символ-Плюс, 2005 Литература Буч Г., Рамбо Д., Якобсон А. Язык UML. Руководство пользователя. 2-е издание. ДМК, 2006 Буч Г., Якобсон А., Рамбо Д. UML. 2-е издание. Классика CS. Питер, 2006 Иванов Д., Новиков Ф. Моделирование наUML. НиТ, 2009
Модель и ее элементы Модель UML— это совокупность конечного множества конструкций языка, главные из которых —сущности и отношения Сущности и отношения модели являются экземплярами метаклассовметамодели
Модель UML Нагруженный мульти-псевдо-гипер-орграф • Вершины и ребра нагружены информацией и могут иметь сложную внутреннюю структуру • Вершины - сущности, ребра - отношения