В курсе рассматриваются современные методы и средства разработки программного обеспечения, применяемые в рамках подхода Model-Driven Software Development – MDSD.
Помимо лекций слушателям будет предложено выполнить несколько практических заданий. Итоговая оценка по курсу будет определяться по работе в семестре (выполнению заданий) и по результату письменного экзамена, схожего по формату с экзаменом по ООАП. Курс не рекомендуется для студентов, у которых нет желания или возможности осваивать материал во время семестра. Публикаций на русском языке по тематике курса мало.
Примерное содержание курса
Точный перечень глав и состав практических заданий будет определён в течение семестра.
1. Введение
Принципы разработки, управляемой моделями. Модели, спецификации и их роль в создании программных систем. Моделе-ориентированная программная инженерия.
2. Unified Modelling Language (UML)
Общие сведения об унифицированном языке моделирования. Виды диаграмм UML и их область применения. Элементы диаграмм UML, виды связей между ними. Механизмы расширения UML: стереотипы, метасвойства, примечания, ограничения.
3. Object Constraint Language (OCL)
Объектный язык ограничений. Типы, коллекции, n-ки (tuple), операции OCL. Виды OCL-ограничений, примеры. Ограничения и наследование. Стандартная библиотека OCL. Инструменты, поддерживающие работу с OCL.
4. Спецификация ПО с помощью UML и OCL
Общие сведения об унифицированном языке моделирования и объектном языке ограничений. Среда UML-based Specification Environment (USE). Язык среды USE – Simple OCL-based Imperative Language (SOIL). Состав спецификации. Примеры. Практическое задание №1. Создание спецификации в среде USE.
5. Метамоделирование. Профили UML
Метамодель UML и метаметамодель (MOF). Диаграммы профилей. Использование OCL в описаниях профилей. Примеры профилей UML. Практическое задание №2. Создание профиля UML.
6. Генерация текстов по моделям (M2T)
Стандарт OMG MOF2T. Инструменты М2Т. Генерация спецификаций, кода и документации по моделям. Способы интеграции сгенерированного кода с кодом, написанным вручную. Практическое задание №3. Реализация M2T трансформации.
7. Трансформация моделей (M2M). Рефакторинг моделей
Языки и инструменты трансформации моделей. Практическое задание №4. Реализация M2M-трансформации.
8. Предметно-ориентированные языки моделирования (DSML)
Основные понятия. Пример DSML. Инструменты для создания предметно-ориентированных языков. Этапы реализации DSML. Практическое задание №5. Реализация DSML.
9. Дополнительные вопросы моделирования программного обеспечения
Обзор современных течений в области моделе-ориентированной программной инженерии. Элементарные образцы проектирования. Фабрики программного обеспечения. Текстовые нотации UML.
Литература:
Volter M. et al. Model-Driven Software Development: Technology, Engineering, Management. John Wiley & Sons, 2006 [PDF]
Warmer J. B., Kleppe A. G. The Object Constraint Language: Getting Your Models Ready for MDA. Addison-Wesley Professional, 2003
Gogolla M., Buttner F., Richters M. USE: A UML-Based Specification Environment for Validating UML and OCL
Voelter M. DSL Engineering. 2013 [HTML]
Brambilla M., Cabot J., Wimmer M. Model-Driven Software Engineering in Practice. Morgan & Claypool Publishers, 2012
Фаулер М. Предметно-ориентированные языки программирования - Вильямс, 2011.
Кознов Д. В. Основы визуального моделирования. – БИНОМ. Лаборатория знаний, ИНТУИТ. 2008
Kolovos D., Rose L., Garcia-Dominguez A., Paige R. The Epsilon Book, 2013
Гринфилд Д. и др. Фабрики разработки программ: Потоковая сборка типовых приложений, моделирование, структуры и инструменты. Диалектика, 2007
Смит Дж. Элементарные шаблоны проектирования. Вильямс, 2013
UML Human-Usable Textual Notation (HUTN) [HTML]
|