Перейти к содержимому

Планирование

Да, в такой постановке идея становится заметно лучше: сначала дать теорию моделирования как способ думать о системе, а UML потом показать как один из инструментов фиксации этих мыслей.

Тогда порядок действительно должен быть не «от одной UML-диаграммы к другой», а примерно такой:

зачем моделировать → что такое модель → что именно моделируем → как понять требования → как описать поведение → как выделить предметную область → как перейти к проектным решениям → как проверить согласованность модели.

  1. Введение в предмет
  2. Зачем нужно моделирование на примере
  3. Понятие модели и её необходимость
  4. Задачи моделирования
  5. Принципы моделирования
  6. Признаки хорошей модели
  7. Ценность хорошей модели, недостатки плохой

Это нормальный старт. Здесь важно не уходить в UML вообще. UML можно максимум упомянуть как будущий инструмент, но не раскрывать.

2. Моделирование как язык описания системы

Заголовок раздела «2. Моделирование как язык описания системы»
  1. Переход от текста к нотациям
  2. Список нотаций
  3. Зачем нужны разные представления одной системы

Я бы добавил пункт 10, потому что он связывает первый блок с последующими. Нужно объяснить, что одну и ту же систему нельзя хорошо описать одной моделью: нужны модели требований, процессов, данных, архитектуры, развёртывания и т.д. Это соответствует общей идее из текущей лекции 1: UML используется для спецификации, визуализации, проектирования и документирования, но сама потребность появляется раньше UML .

3. Информационная система как объект моделирования

Заголовок раздела «3. Информационная система как объект моделирования»
  1. Понятие ИС как объекта моделирования
  2. Элементы ИС: люди, процессы, данные, ПО, инфраструктура, регламенты
  3. Уровни архитектуры ИС
  4. Жизненный цикл ПО и место моделирования в нём

Этот блок лучше поставить до требований. Иначе требования как будто собираются к абстрактной программе, а не к ИС. В текущей лекции 2 эта логика уже есть: сначала определяется ИС и уровни архитектуры, затем жизненный цикл и требования .

  1. Требования и их типы
  2. Источники требований
  3. Способы сбора требований
  4. Оценка качества требований
  5. Стейкхолдеры и пользователи
  6. Внешние участники взаимодействия с системой
  7. Граница системы
  8. Бизнес-правила как особый вид ограничений

Здесь я бы пока не использовал слово “актор” как основное. Можно сказать: «в UML такой внешний участник потом будет называться актором», но в теоретическом блоке лучше говорить шире: пользователь, внешняя система, организация, роль, заинтересованная сторона.

Бизнес-правила действительно лучше не держать отдельным повтором после словаря предметной области. Их логичнее дать здесь: как правила, ограничения, регламенты и условия, которые влияют на требования, сценарии и проектные решения.

  1. Функциональные возможности системы
  2. Вариант использования как способ описания пользовательской цели
  3. Спецификация варианта использования
  4. Сценарий варианта использования
  5. Основной, альтернативные и исключительные потоки
  6. Связь сценариев с требованиями и бизнес-правилами

Этот блок можно оставить до диаграмм, потому что use case — это не только UML-овал. Это нормальный аналитический инструмент: есть участник, цель, предусловия, основной сценарий, альтернативы, результат.

Но формулировку «связь с диаграммой» лучше пока убрать. Вместо:

Сценарий варианта использования и связь с диаграммой

лучше:

Сценарий варианта использования как текстовая модель поведения системы

А связь с диаграммой уже оставить на UML-блок.

  1. Структурное проектирование и декомпозиция
  2. Текущий и целевой процессы
  3. Процесс как последовательность действий и решений
  4. Участники процесса и зоны ответственности
  5. Потоки управления
  6. Потоки данных и информационные объекты в процессе

Вот здесь хорошо ложатся твои пункты про структурное проектирование, текущий/целевой процесс и виды потоков. Но опять же, лучше пока не говорить «диаграмма деятельности», а говорить «процессная модель». В лекции 3 структурное проектирование как раз вводится до самой диаграммы деятельности и объясняется через декомпозицию, последовательность, ветвление и цикл .

7. Предметная область и концептуальная модель

Заголовок раздела «7. Предметная область и концептуальная модель»
  1. Понятие предметной области
  2. Структура словаря предметной области
  3. Объекты предметной области
  4. Свойства объектов, связи, ограничения
  5. Бизнес-правила в предметной области
  6. Концептуальная модель

Вот сюда лучше перенести словарь предметной области. Он не должен разрывать блок требований. Его естественное место — перед концептуальной моделью.

В текущей лекции 4 эта логика уже есть: объектно-ориентированное проектирование начинается со словаря предметной области, затем понятия сопоставляются классам, после чего определяются атрибуты, операции и связи .

  1. Этапы объектно-ориентированного проектирования
  2. Методы объектно-ориентированного проектирования
  3. Концептуальная и техническая модели
  4. Переход от понятий предметной области к программным сущностям
  5. Проектные решения и их фиксация

Тут важно развести:

  • анализ: что есть в предметной области;
  • концептуальная модель: какие понятия и связи важны;
  • техническая модель: какие классы, интерфейсы, компоненты, слои нужны для реализации;
  • проектные решения: почему выбрали именно такую структуру.
  1. Архитектура данных
  2. Слоистая архитектура ПО
  3. Программная архитектура ИС
  4. Системная архитектура ИС
  5. Тонкий и толстый клиент
  6. Деплоймент и среды выполнения

Я бы добавил «программная архитектура ИС» как отдельный пункт, потому что у тебя есть слоистая архитектура, но нет общего перехода к программной архитектуре.

«Архитектура данных» можно поставить либо перед программной архитектурой, либо после концептуальной модели. Если ты хочешь показать движение:

предметная область → данные → программные слои → системное размещение,

то она хорошо стоит первой в этом блоке.

  1. Согласованность модели
  2. Трассируемость модели
  3. Типовые ошибки при переходе между уровнями модели

Последний пункт я бы добавил обязательно. Он очень полезен именно в теоретическом блоке. Например:

  • требование есть, но ни в одном сценарии не реализовано;
  • сценарий есть, но не связан с целью пользователя;
  • в процессе используются данные, которых нет в предметной области;
  • в технической модели появляются классы, не имеющие отношения к концептуальной модели;
  • архитектурное решение не связано с нефункциональными требованиями;
  • модель описывает реализацию, но не объясняет бизнес-смысл.

Из твоего исходного списка часть пунктов лучше оставить не в теории, а в инструментальном блоке:

ТемаГде лучше
Переход от текста к нотациямв теории, как мост
Список нотацийв теории, обзорно
Акторыв теории как «внешние участники», в UML — как actor
Спецификация варианта использованияв теории
Сценарий и связь с диаграммойразделить: сценарий — теория, связь с диаграммой — UML
Виды потоков в сценариитеория
Концептуальная и техническая моделитеория
Деплоймент и среды выполнениятеория
Согласованность и трассируемостьтеория + затем практическое применение в UML

Итоговая логика курса без привязки к диаграммам

Заголовок раздела «Итоговая логика курса без привязки к диаграммам»

Я бы зафиксировал такую последовательность:

  1. Моделирование вообще Что такое модель, зачем она нужна, чем хорошая модель отличается от плохой.

  2. Моделирование систем Почему систему нужно описывать с разных сторон и почему текстовой модели быстро становится мало.

  3. ИС как объект моделирования Люди, процессы, данные, ПО, инфраструктура, регламенты, уровни архитектуры.

  4. Требования и граница системы Что система должна делать, для кого, в каком контексте и с какими ограничениями.

  5. Функциональное описание Пользовательские цели, варианты использования, сценарии, основные и альтернативные потоки.

  6. Процессное описание Текущие и целевые процессы, декомпозиция, участники, потоки управления и данных.

  7. Предметная область Словарь, понятия, объекты, связи, бизнес-правила, концептуальная модель.

  8. Проектирование Переход от концептуальной модели к технической, проектные решения, слои, данные, программная архитектура.

  9. Системная архитектура Клиенты, серверы, среды выполнения, инфраструктура, развёртывание.

  10. Качество модели Согласованность, трассируемость, проверка полноты и отсутствия противоречий.

То есть твоя идея разделения правильная. Более того, она делает курс методически сильнее: студенты сначала учатся думать моделями, а уже потом — рисовать эти модели в UML.