• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site
Article
Statistical testing of segment homogeneity in classification of piecewise-regular objects

Savchenko A., Belova N. S.

International Journal of Applied Mathematics and Computer Science. 2015. Vol. 25. No. 4. P. 915-925.

Article
Reconstruction of a word from a finite set of its subwords under the unit shift hypothesis. I. Reconstruction without for bidden words1

Smetanin Y., Ulyanov M.

Cybernetics and Systems Analysis. 2015. Vol. 50. No. 1. P. 148-156.

Article
VTMine Framework as Applied to Process Mining Modeling

Sergey Andreevich Shershakov.

International Journal of Computer and Communication Engineering. 2015. Vol. 4. No. 3. P. 166-179.

Software Systems Architecture Design

2020/2021
Academic Year
RUS
Instruction in Russian
5
ECTS credits
Type:
Compulsory course
When:
3 year, 3, 4 module

Instructors

Поваляева Елизавета Максимовна

Поваляева Елизавета Максимовна

Программа дисциплины

Аннотация

В рамках дисциплины «Проектирование архитектуры программных систем» студенты третьего курса бакалавриата ОП «Программная инженерия» осваивают теоретический материал и получают практические навыки проектирования и анализа архитектуры программных систем разного типа. Архитектура программной системы — структурное и поведенческое описание устройства этой системы. Архитектурные решения имеют ключевое значение для работоспособности, адаптивности, расширяемости, эффективности разрабатываемой системы, простоты её поддержки, доработки, исправления. Именно поэтому архитектурные решения должны приниматься ответственно и взвешенно. В рамках данного курса студенты приобретают способность применять систематический инженерный подход к принятию архитектурных решений. Проектирование осуществляется на основе анализа требований к информационным системам. Студенты изучают основные задачи программного архитектора и проектировщика в рамках унифицированного процесса (Unified Process), а также обучаются навыкам визуального моделирования программных систем в CASE-средствах с использованием унифицированного языка моделирования UML. Рассматриваются особенности конкретных реализаций унифицированного процесса, в том числе методологии IBM Rational Unified Process (IBM RUP). Кроме того, студенты приобретают навыки документирования принятых архитектурных решений в соответствии с отечественными и мировыми стандартами (ГОСТ Р 57100-2016). Длительность курса — 16 недель.
Цель освоения дисциплины

Цель освоения дисциплины

  • Получение теоретических знаний и практических навыков работы с требованиями к программным информационным системам (ИС) как входными данными для проектирования архитектуры ИС.
  • Получение практических навыков при выполнении основных задач архитектора и проектировщика в рамках унифицированного процесса (УП, Unified Process) проектирования и визуального моделирования с использованием унифицированного языка моделирования UML.
  • Знакомство с методологией IBM Rational Unified Process (IBM RUP).
Планируемые результаты обучения

Планируемые результаты обучения

  • Владеть основными определениями, относящимися к области архитектуры программного обеспечения
  • Уметь применять на практике унифицированный процесс проектирования и разработки программных систем
  • Уметь применять на практике методы объектно-ориентированного анализа и проектирования
  • Уметь документировать архитектуру программных систем
  • Уметь проектировать программное обеспечение с учётом нефункциональных требований к системе
  • Владеть навыками визуального моделирования программного обеспечения с использованием CASE-средств
  • Знать и уметь использовать основные архитектурные стили и шаблоны проектирования для программного обеспечения
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Архитектура программных систем. Унифицированный процесс разработки.
    Вводная информация. Понятие архитектуры программной информационной системы (ИС). Роль архитектуры в контексте процесса разработки программного обеспечение. Проект и архитектура. Цель проектирования архитектуры ИС. Парадигмы проектирования: структурная, объектно-ориентированная, функциональная, логическая. Объектно-ориентированный анализ и проектирование (ООАиП). Унифицированный процесс (УП) разработки программного обеспечения (ПО). Методология IBM Rational Unified Process (IBM RUP) как пример унифицированного процесса.
  • Унифицированный язык моделирование UML. Диаграммы UML. Процесс выявления требований к ИС. Прецеденты (сценарии использования). Эскиз и спецификация прецедента. Диаграмма прецедентов UML.
    Основные принципы визуального моделирования. Сложность ПО и архитектурные представления. Статические и динамические диаграммы языка UML. Репозиторий модели CASE-средства. Прямое и обратное проектирование ПО и структуры базы данных (БД). Стереотипы UML и их использование. Заинтересованные лица, свойства ИС, классификация свойств. Формулировка проблемы. Диаграмма причинно-следственных связей. Матрица трассировки требований. Выявления трудоемкости реализации прецедента и свойств ИС. Понятие риска. Понятие объема работ проекта (Scope). Инструментальная поддержка процесса проектирования. Известные подходы к идентификации прецедентов. Первичные и вторичные экторы. Эскиз и спецификация прецедента. Выявление прецедентов в бизнес-процессах. Типовая структура спецификации. Основной и альтернативные потоки действий. Шаблоны выявления прецедентов ИС. Учет бизнес-правил при составлении спецификации прецедента. Пред-условия и пост-условия прецедента. Визуальное представление на UML модели прецедентов (сценариев использования). Словарь проекта. Концепция ИС. Модель прецедентов.
  • Классы и объекты. Отношения между классами. Диаграммы классов UML. Модель предметной области. Шаблоны проектирования.
    Понятия класса и объекта. Отношения между классами и их визуальное представление с помощью UML. Ассоциация и ее разновидности. Понятия навигации ассоциации, наследования, зависимости. Отличие агрегации от композиции. Понятие кратности ассоциации. Шаблоны действий при создании и преобразовании UML диаграмм классов. Ассоциативные классы и их использование в проекте. Процесс формирования визуальной модели программного обеспечения. Регистрируемые события и объекты. Связь модели предметной области с задачей идентификации функциональных требований к ИС. Используемые UML-диаграммы, шаблоны при их построении. Понятие состояния объекта и его визуальное представление. Поиск экторов в модели предметной области.
  • Анализ и проектирование — дисциплина унифицированного процесса. Рабочий поток анализа. Задача архитектора: «Архитектурный анализ».
    Обзор дисциплины «Анализ и проектирование». Входные и выходные артефакты (рабочие материалы) дисциплины. Роли и задачи дисциплины. Назначение и задачи этапов дисциплины. Используемые диаграммы языка UML в задачах проектирования. Роль архитектора в проекте и выполняемые им задачи. Ключевые абстракции и их идентификация. Диаграммы UML для визуализации ключевых абстракций. Архитектурные механизмы, их назначение. Архитектурные шаблоны и их использование. Понятие слоя и его представление в языке UML. Структура «реализация прецедента» (use case realization) и ее представление в визуальной модели.
  • Рабочий поток анализа. Задача разработчика: «Анализ прецедента». Объектная динамика при проектировании. Диаграммы взаимодействия UML. Диаграмма «Представление классов участников».
    Выявление классов-участников. Применение прецедентов для проектирования объектной динамики. Стереотипы «граничный» («boundary»), «управляющий» («control»), «сущность» («entity») классов-участников реализации. Шаблоны для идентификации классов. Диаграммы последовательности и коммуникации UML. Правила использования стереотипов «boundary», «control», «entity» при проектировании объектной динамики. Диаграмма классов-участников (VOPC). Правила идентификации операций (ответственностей) классов. Правила идентификации отношений между классами – ассоциаций и зависимостей.
  • Архитектурные представления. Пакеты в UML. Рабочий поток проектирования. Задачи архитектора «Идентификация проектных элементов», «Идентификация проектных механизмов».
    Понятие заинтересованных лиц. Детальность проекта. Архитектурные шаблоны и их использование в архитектурном проекте. Использование модели предметной области при решении задачи проектирования. Пакеты в UML. Связи между пакетами UML и их использование в представлении архитектуры. Задача архитектора «Идентификация проектных элементов». Определение классов, подлежащих декомпозиции. Упаковка концептуальных классов по пакетам проекта. Зависимости между пакетами. Архитектурный шаблон «Слои» и его использование при проектировании ИС. Задача архитектора «Идентификация проектных механизмов». Понятие проектного шаблона. Представление шаблонов в CASE-средстве. Типы архитектурных механизмов и их представление в визуальное модели.
  • Рабочий поток проектирования. Задачи проектировщика «Проектирование прецедентов», «Проектирование подсистем».
    Задача проектировщика «Проектирование прецедентов». Реализация прецедента на этапе проектирования. Применение архитектурных механизмов. Представление компонентов в проекте. Использование интерфейсов на диаграммах последовательности UML. Задача проектировщика «Проектирование подсистем». Отличие пакетов и подсистем. Структурный класс UML и его использование. Операции интерфейса и их реализация в проекте подсистемы. Диаграмма последовательности UML. Динамическое и статическое представление дизайна подсистемы. Использование проектных механизмов. Зависимости классов и пакетов.
  • Рабочий поток проектирования. Задача разработчика «Проектирование классов». Проектирование поведения ИС. Диаграммы состояний, диаграммы деятельности языка UML. Другие языки моделирования.
    Проектные классы. Ответственности и операции классов. Выбор атрибутов классов. Атрибуты и понятие состояния объекта. Шаблоны выявления состояний. Специальные состояния – начальное и конечное. Супер состояние и его использование. Диаграммы состояний UML. Условия на диаграмме состояний. Правила перехода из состояния в состояния и из запись на диаграмме. Диаграммы деятельности языка UML. Их использование в рамках унифицированного процесса. Семантика деятельности. События, исключения. Конечные автоматы. Конечные автоматы в рамках унифицированного процесса. Конечные автоматы и язык UML. Состояния и переходы. Другие языки моделирования поведения: сети Петри, модели BPMN.
  • Документирование проекта архитектуры программной системы.
    Документирование проектируемой архитектуры ИС. Способы описания и документирования архитектуры ИС. Архитектурный документ как артефакт проекта. Представление архитектуры N+1(4+1). Документ программной архитектуры (Software Architecture Document, SAD). Архитектурные представления. Архитектурные факторы. Архитектурные решения. Применение и оформление диаграмм UML в документации проекта. Государственный стандарт ГОСТ Р 57100-2016. Использование этого стандарта.
  • Нефункциональные требования в архитектуре ИС. Объектный язык ограничений OCL.
    Нефункциональные требования. Эффективность, сложность, масштабируемость, расширяемость, адаптируемость, безопасность, зависимости системы. Учёт нефункциональных требований в проекте архитектуры ИС. Трассируемость требований в архитектуре при проектировании. Объектный язык ограничений OCL. Возможности OCL и область применения. Синтаксис и типы выражений. OCL в диаграммах UML.
  • Лучшие практики разработки информационных систем. CASE-средства визуального моделирования. Прямое и обратное проектирование.
    Лучшие практики разработки ИС. Назначение лучших практик. Связь практик с визуальным моделированием. Инструментальная поддержка практик. Понятие компонента архитектуры ИС. Интерфейс компонента. Версионный контроль основных артефактов проекта. Понятие конфигурации. CASE-средства визуального моделирования. Прямое и обратное проектирование. Различия рисования и визуального моделирования. Репозиторий CASE-средства и синхронизация его содержимого на UML диаграммах. Понятие каркасного кода при прямом проектировании. Сравнение возможностей CASE-средств визуального моделирования.
  • Архитектурные стили, шаблоны. Плюсы и минусы различных архитектурных стилей.
    Понятия архитектурного стиля, шаблона, фреймворка. Отличия архитектурного шаблона от шаблона проектирования. Популярные стили и шаблоны архитектуры ИС. Шаблон «Слои». Трёхзвенная (многозвенная) архитектура. Шаблоны «модель-представление-контроллер» (MVC), «сенсор-вычислитель-контроллер» (SCC). Стили «программа и подпрограммы», «виртуальная машина», «клиент-сервер», «каналы-и-фильтры», «классная доска», «издатель-подписчики», «событийная архитектура», «пиринговая архитектура», «конечный автомат». Плюсы и минусы различных архитектурных стилей. Соответствие стиля задаче. Описание и оценка архитектурного стиля. Архитектурные фреймворки: 4+1, TOGAF, RM-ODP, SOMF.
  • Шаблоны проектирования GRASP. Шаблоны проектирования GoF. Адаптация и поддержка архитектуры ИС. Тестирование и рефакторинг.
    Шаблоны проектирования GRASP. Шаблоны: Creator, Information Expert, Low Coupling, Controller, High Cohesion, Polymorphism, Pure Fabrication, Indirection, Protected Variations. Шаблоны проектирования GoF. Шаблоны: Adapter, Factory, Singleton, Strategy, Composite, Facade, Observer и другие. Связь между шаблонами проектирования и архитектурными стилями. Применение шаблонов проектирования. Принципы проектирования: SRP, OCP, LSP, ISP, DIP. Адаптация и поддержка архитектуры ИС. Тестирование и рефакторинг при проектировании архитектуры. Итеративность и инкрементальность при проектировании архитектуры ИС. Элементы гибких процессов проектирования.
  • Реализация и развертывание ИС. Рабочий поток реализации. Влияние особенностей аппаратного обеспечения на программную архитектуру. Диаграммы развертывания языка UML.
    Реализация и развертывание ИС. Рабочий поток реализации унифицированного процесса. Учёт особенностей реализации и развертывания при проектировании архитектуры ИС. Связь программного и аппаратного обеспечения. Влияние особенностей аппаратного обеспечения на программную архитектуру. Артефакты реализации. Диаграммы развертывания языка UML. Применение диаграмм развертывания для проектирования процесса развертывания и адаптации ИС.
  • Архитектурные стили сетевых и распределенных программных систем.
    Проектирование архитектуры сетевых и распределенных программных систем. Архитектурный стиль «пиринговая архитектура» (peer-to-peer). Архитектурный стиль Representational state transfer (REST). Связь архитектурного стиля REST и устройства всемирной сети Интернет. Архитектурный шаблон «Удаленный вызов процедур» (RPC). Веб-сервисы. Стиль «Сервис-ориентированная архитектура приложений» (SOA). Проектирование архитектуры мобильных и встроенный приложений.
  • Проектирование защищенных ИС. Проектирование и разработка программной системы — командная работа.
    Защищенность как ключевое нефункциональное требование к ИС. Проектирование защищенных ИС. Принципы и шаблоны проектирования архитектуры для обеспечения защищенности программной системы. Контроль доступа. Проектирование и разработка программной системы — командная работа. Роли и распределение задач в команде. Значение организации процесса при проектировании. Ещё раз о лучших практиках разработки и проектирования: гибкость, итеративность, инкрементальность процесса. История создания и развития языка UML. Группа Object Management Group (OMG). Заключительные замечания.
Элементы контроля

Элементы контроля

  • неблокирующий Командный проект (Пр)
    Выполнение проекта по заданной постановке задачи в инструментальном CASE-средстве
  • неблокирующий Домашнее задание (ДЗ)
    Задачи периодически выдаются для закрепления пройденных тем на семинарах (практических занятиях)
  • неблокирующий Работа на семинаре (С)
    Задачи периодически выдаются для закрепления пройденных тем на семинарах (практических занятиях)
  • неблокирующий Экзамен (Экз)
    Экзамен продолжительностью 60 минут. Студенты отвечают на вопросы на протяжении всех 60 минут. Вопросы могут как требовать выбор из различных вариантов ответа, так и предполагать свободный ответ (такие ответы проверяются преподавателем). Для проведения экзамена в онлайн-режиме могут использоваться одобренные в университете образовательные инструменты (например, платформы LMS или SmartLMS). Технические требования: студент должен иметь персональный компьютер с доступом к сети Интернет, а также возможность сканировать или сфотографировать свой ответ на вопрос в письменном виде (для этого может использоваться сканер, фотоаппарат, смартфон и т.д.).
Промежуточная аттестация

Промежуточная аттестация

  • Промежуточная аттестация (4 модуль)
    0.25 * Домашнее задание (ДЗ) + 0.25 * Командный проект (Пр) + 0.2 * Работа на семинаре (С) + 0.3 * Экзамен (Экз)
Список литературы

Список литературы

Рекомендуемая основная литература

  • Буч Г., Рамбо Д., Якобсон И. - Язык UML. Руководство пользователя - Издательство "ДМК Пресс" - 2008 - 496с. - ISBN: 5-94074-334-X - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/1246
  • Халл Э., Джексон К., Дик Дж. - Инженерия требований - Издательство "ДМК Пресс" - 2017 - 218с. - ISBN: 978-5-97060-214-0 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/93270

Рекомендуемая дополнительная литература

  • Mens, T., Serebrenik, A., & Cleve, A. (2014). Evolving Software Systems. Heidelberg, Germany: Springer. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=685626
  • Гамма Э., Хелм Р., Джонсон Р. - Приемы объектно ориентированного проектирования. Паттерны проектирования - Издательство "ДМК Пресс" - 2007 - 368с. - ISBN: 5-93700-023-4 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/1220
  • Гома Х. - UML. Проектирование систем реального времени, параллельных и распределенных приложений - Издательство "ДМК Пресс" - 2007 - 704с. - ISBN: 5-94074-101-0 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/1232
  • Розенберг Д., Скотт К. - Применение объектного моделирования с использованием UML и анализ прецедентов - Издательство "ДМК Пресс" - 2007 - 160с. - ISBN: 5-94074-050-2 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/1226