Критика Qwen3.8-Max + FPF
Критика модели путешествия майки с опорой на FPF
Модель описывает путешествие объекта (майки) через серию трансформаций. Это корректная постановка задачи по A.22 (путешествие = изменение состояния объекта во времени и пространстве). Однако модель содержит системные проблемы по нескольким паттернам FPF. Разберу по категориям.
1. Раздувание ролей (Антипаттерн Apparatus overwrap, F.19)
Проблема: Модель содержит ~19 отдельных ролей агентов для бытовой задачи:
Сортировщик белья (встречается дважды)
Сборщик пакета для стирки
Доставщик белья к стиральной машинке
Оператор стиральной машинки
Стиральщик футболки
Контролер
Контролер процесса сушки
Развешиватель белья
Формирователь пакета для глажки белья
Установщик доски
Подключатель удлинителя к розетке
Доставщик утюга
Заправщик утюгов
Раскладыватель футболки
Гладильщик футболки
Доставщик белья (снова)
Складываетель белья
Укладчик белья в шкаф
Почему это проблема по FPF:
- По F.6 (Role Assignment & Enactment Cycle), каждая роль должна быть семантически различимой (разные права, разные методы, разные контексты). Здесь роли различаются только объектом действия (доставить утюг, доставить доску, доставить удлинитель), но не семантикой роли.
- По A.2 (Role as part anti-pattern), роли не должны дублироваться, если они выполняют одну и ту же функцию в разных подпроцессах.
Доставщик утюга и Доставщик удлинителя — это одна роль Доставщик объектов к месту глажки, параметризованная объектом.
- Модель не указывает, один агент играет все роли или разные агенты. Если один человек делает всё, то 19 ролей на одного агента — это семантический шум.
Ремонт: Сократить до 5-7 семантически различных ролей:
1. Сортировщик белья (сортировка и формирование пакетов)
2. Оператор стирки (загрузка, выбор режима, извлечение)
3. Развешиватель/Сниматель белья (сушка)
4. Гладильщик (подготовка оборудования, глажка)
5. Укладчик (складывание, размещение в шкафу)
Роли Доставщик, Подключатель, Заправщик — это подшаги методов, а не отдельные роли.
2. Путаница между Методом, Описанием Метода и Работой (Нарушение A.15)
Проблема: Модель смешивает три разных сущности:
| Термин в модели |
Что это по FPF |
Проблема |
ВЫПОЛНЯЕТ РАБОТЫ ПО сортировка белья |
U.Work (датированное выполнение) |
Корректно |
ПО МЕТОДУ СОРТИРОВКИ НА СКЛАДЕ ЗАПАСОВ |
U.Method (семантический способ) |
Корректно |
МЕТОДОМ СБОРКА ПАКЕТА ДЛЯ СТИРКИ |
Смешение: МЕТОДОМ + СБОРКА (существительное) |
Грамматическая и семантическая путаница |
РЕЗУЛЬТАТОМ РАБОТ ЯВЛЯЕТСЯ ПАКЕТ БЕЛЬЯ |
Результат работы |
Не указана дельта изменения состояния (U.Work.Δ) |
СОБЫТИЕ запуск программы на исполнение |
Событие |
Не указано, кто его инициирует (агент? машина? время?) |
Почему это проблема по FPF:
- По A.15,
U.Method — это абстрактный способ (не документ, не план). MethodDescription — это описание метода (рецепт, инструкция). U.Work — это датированное выполнение с конкретными параметрами.
- Модель не различает: “как делать” (метод), “инструкция как делать” (описание метода), “что было сделано” (работа).
Ремонт: Для каждой работы явно указать:
Работа: Сортировка белья
├─ Агент: Человек в роли СортировщикБелья@КонтекстСтирки
├─ Метод: МетодСортировкиБелья (семантический способ)
├─ Описание метода: Инструкция по сортировке (если есть)
├─ Параметры: {поЦвету: Да, поТкани: Да, поРежиму: Да}
├─ Входное состояние: Майка в состоянии "Грязная, в баке"
├─ Выходное состояние (Δ): Майка в состоянии "В пакете для стирки, отсортирована"
├─ Ресурсы: Время агента = 2 мин, Электричество = 0 кВт·ч
└─ Критерий завершения: Пакет соответствует требованиям стиральной машины
3. Отсутствие явной композиции методов (Нарушение B.1.5, Γ_method)
Проблема: Модель перечисляет работы последовательно, но не показывает:
- Какие работы могут быть параллельными (например, доставка утюга и доставка доски могут быть параллельными)
- Какие работы зависят от других (нельзя гладить, пока утюг не нагрелся)
- Какие условия должны быть выполнены для перехода к следующей работе
- Какие ветвления возможны (что если майка не отстиралась? что если нет электричества?)
Почему это проблема по FPF:
- По B.1.5 (Γ_method), метод должен быть композицией шагов с явными типами связей (
SerialStepOf, ParallelFactorOf). Модель не использует ни одного из этих типов.
- По A.3.1, метод должен быть контекстно-определённым допустимым способом. Модель не указывает, в каком контексте допустима каждая работа.
Ремонт: Построить граф работ с явными связями:
Сортировка → ФормированиеПакета → ДоставкаКМашинке → Загрузка → ВыборРежима → Стирка
↓
Укладка ← ДоставкаВШкаф ← Складывание ← Глажка ← ПодготовкаУтюга ← Извлечение
Добавить условия перехода:
Стирка → Извлечение: условие ПрограммаЗавершена == true
Глажка → Складывание: условие ФутболкаПоглажена == true
4. Отсутствие модели динамики (Нарушение A.22, U.Dynamics)
Проблема: Модель упоминает состояния майки (Грязная, Постиранная, Мокрая, Сухая, Помятая, Поглаженная, Готова к использованию), но не формализует:
- Пространство состояний (какие состояния возможны, какие атрибуты описывают состояние)
- Закон перехода (при каких условиях майка переходит из одного состояния в другое)
- Инварианты (что должно быть истинно в каждом состоянии)
Почему это проблема по FPF:
- По A.22, путешествие объекта — это изменение состояния объекта во времени и пространстве. Без явной модели динамики невозможно проверить, что объект действительно прошёл через все состояния.
- Модель не различает состояние майки и состояние пакета белья. Когда майка в пакете, её состояние — “в пакете” или “грязная”? Это разные атрибуты.
Ремонт: Определить модель динамики майки:
Пространство состояний Майки:
├─ Чистота: {Грязная, Постиранная}
├─ Влажность: {Сухая, Мокрая}
├─ Гладкость: {Помятая, Поглаженная}
├─ Местоположение: {В баке, В пакете, В машинке, На сушилке, На доске, В шкафу}
├─ Готовность: {Не готова, Готова к использованию}
Закон перехода:
├─ Грязная → Постиранная: при выполнении работы "Стирка" с параметрами {Режим: Деликатный, Температура: 40}
├─ Мокрая → Сухая: при выполнении работы "Сушка" с условием {ВремяСушки > 2 часа}
├─ Помятая → Поглаженная: при выполнении работы "Глажка" с условием {ТемператураУтюга ≥ 150}
Инварианты:
├─ Майка не может быть одновременно Грязная и Постиранная
├─ Майка не может быть Готова к использованию, если не Поглаженная и не Сухая
5. Путаница объекта внимания: майка или футболка? (Нарушение A.22, EntityOfConcern)
Проблема: Модель начинает с майки, но в середине переключается на футболку:
- “Грязная майка - обработка - чистая майка”
- “АГЕНТ В РОЛИ СТИРАЛЬЩИК ФУТБОЛКИ”
- “РАСКЛАДЫВАТЕЛЬ ФУТБОЛКИ”
- “ГЛАДИЛЬЩИК ФУТБОЛКИ”
- “Вопрос с футболкой закрыт”
Почему это проблема по FPF:
- По A.22,
EntityOfConcern — это конкретный объект, о котором идёт речь. Модель не определяет, является ли объектом внимания майка, футболка, или бельё в целом.
- Если это модель путешествия майки, то футболка — это другой объект, и его появление требует явного моста (по F.9).
- Если это модель путешествия белья в целом, то майка и футболка — это экземпляры класса, и модель должна быть параметризована.
Ремонт: Явно определить EntityOfConcern:
EntityOfConcern: Майка (конкретный экземпляр)
Класс: Бельё (верхняя одежда)
Атрибуты экземпляра: {Тип: Майка, Цвет: Белый, Ткань: Хлопок, Размер: M}
Или, если это модель для любого белья:
EntityOfConcern: Бельё (абстрактный класс)
Параметры класса: {Тип: {Майка, Футболка, Рубашка}, Цвет: {Белый, Цветной}, Ткань: {Хлопок, Синтетика}}
6. Отсутствие контекстов (Нарушение BoundedContext, A.1)
Проблема: Модель не указывает, в каком контексте происходит каждая работа. Например:
- Сортировка происходит в контексте “Склад запасов” или в контексте “Ванная комната”?
- Стирка происходит в контексте “Стиральная комната” или в контексте “Кухня”?
- Глажка происходит в контексте “Гладильная комната” или в контексте “Спальня”?
Почему это проблема по FPF:
- По A.1, каждый объект и каждая работа существуют в конкретном контексте. Контекст определяет, какие свойства объекта релевантны, какие методы допустимы, какие роли активны.
- Модель упоминает “конвейер”, но не определяет, какой контекст управляет конвейером.
Ремонт: Явно определить контексты:
Контекст 1: Склад грязного белья
├─ Объекты: Бак для грязного белья, Майка
├─ Роли: Сортировщик белья
├─ Методы: Сортировка, Формирование пакета
Контекст 2: Стиральная комната
├─ Объекты: Стиральная машина, Пакет белья
├─ Роли: Оператор стирки
├─ Методы: Загрузка, Выбор режима, Стирка
Контекст 3: Сушильная комната
├─ Объекты: Сушилка, Мокрое бельё
├─ Роли: Развешиватель белья
├─ Методы: Развешивание, Сушка
Контекст 4: Гладильная комната
├─ Объекты: Гладильная доска, Утюг, Удлинитель
├─ Роли: Гладильщик
├─ Методы: Подготовка оборудования, Глажка
Контекст 5: Шкаф для чистого белья
├─ Объекты: Шкаф, Поглаженное бельё
├─ Роли: Укладчик
├─ Методы: Складывание, Размещение
7. Отсутствие модели ресурсов (Нарушение B.1.6, Γ_work)
Проблема: Модель не указывает, какие ресурсы потребляются каждой работой:
- Сколько времени агента уходит на каждую работу?
- Сколько электричества потребляет стиральная машина?
- Сколько воды расходуется на стирку?
- Сколько порошка используется?
Почему это проблема по FPF:
- По B.1.6 (Γ_work), работа должна быть описана как потраченные ресурсы. Без этого невозможно оценить эффективность процесса или сравнить альтернативные методы.
- Модель упоминает “экономную стирку”, но не определяет, что значит экономная (по воде? по электричеству? по времени?).
Ремонт: Для каждой работы указать ресурсы:
Работа: Стирка
├─ Ресурсы агента: Время = 5 мин
├─ Ресурсы машины: Электричество = 1.5 кВт·ч, Вода = 40 л
├─ Расходные материалы: Порошок = 50 г
├─ Общая стоимость: 15 руб (электричество) + 5 руб (вода) + 10 руб (порошок) = 30 руб
8. Отсутствие явных критериев качества (Нарушение C.16)
Проблема: Модель упоминает “контролер”, но не определяет:
- Какие критерии использует контролер (визуальный осмотр? измерение белизны?)
- Какие метрики измеряются (процент чистоты? уровень влажности?)
- Какие пороги определяют успех (чистота > 95%? влажность < 5%?)
Почему это проблема по FPF:
- По C.16, качество должно быть описано через характеристики (Characteristics) и метрики (Metrics). Модель не определяет ни одной метрики.
- Модель упоминает “контроль чистоты”, но не говорит, как именно измеряется чистота.
Ремонт: Определить характеристики качества:
Характеристика: Чистота белья
├─ Метрика: Процент удаления загрязнений (визуально или спектрометром)
├─ Порог успеха: ≥ 95%
├─ Метод измерения: Визуальный осмотр контролером
Характеристика: Сухость белья
├─ Метрика: Процент остаточной влажности
├─ Порог успеха: ≤ 5%
├─ Метод измерения: Тактильный контроль или влагомер
Характеристика: Гладкость белья
├─ Метрика: Отсутствие видимых складок
├─ Порог успеха: 0 видимых складок на лицевой стороне
├─ Метод измерения: Визуальный осмотр контролером
Итоговая таблица проблем
| # |
Проблема |
Паттерн FPF |
Серьёзность |
| 1 |
Раздувание ролей (19 ролей) |
F.19, A.2 |
Критично |
| 2 |
Путаница Метод / Описание метода / Работа |
A.15 |
Критично |
| 3 |
Отсутствие композиции методов |
B.1.5 |
Критично |
| 4 |
Отсутствие модели динамики |
A.22 |
Критично |
| 5 |
Путаница объекта (майка / футболка) |
A.22 |
Критично |
| 6 |
Отсутствие контекстов |
A.1 |
Серьёзно |
| 7 |
Отсутствие модели ресурсов |
B.1.6 |
Серьёзно |
| 8 |
Отсутствие критериев качества |
C.16 |
Умеренно |
Рекомендуемый следующий шаг
Вместо доработки текущей модели, перестройте её по схеме:
- Определите
EntityOfConcern (майка или бельё как класс)
- Определите модель динамики (пространство состояний, закон перехода, инварианты)
- Определите контексты (склад, стиральная, сушильная, гладильная, шкаф)
- Определите роли (5-7 семантически различных, не 19)
- Определите методы (семантические способы, не описания)
- Постройте граф работ с явными связями (
SerialStepOf, ParallelFactorOf)
- Добавьте ресурсы для каждой работы
- Добавьте критерии качества для каждой трансформации
Если нужна помощь с перестройкой модели в конкретный формат (таблица, граф, YAML), скажите — подготовлю шаблон.
Ремонт модели со стороны Qwen3.8-Max
Отремонтированная модель: «Путешествие футболки — от грязной до готовой к использованию»
1. Паспорт модели
| Параметр |
Значение |
| Тип модели |
Путешествие объекта (трансформация состояния во времени и пространстве) |
| Паттерн FPF |
A.22 (travel of an object), A.15 (Method/MethodDescription/Work), B.1.5 (Γ_method), B.1.6 (Γ_work), C.16 (quality characteristics) |
| EntityOfConcern |
Футболка_белая_хлопок (конкретный экземпляр) |
| Исполнитель |
Один агент (Человек_Иван) во всех ролях |
| Место действия |
Дом (4 зоны: стирка, сушка, глажка, хранение) |
| Начальное состояние |
Футболка {Грязная, Сухая, Помятая, В баке} |
| Конечное состояние |
Футболка {Постиранная, Сухая, Поглаженная, В шкафу, Готова} |
2. Модель динамики футболки (U.Dynamics)
2.1 Пространство состояний
| Атрибут |
Допустимые значения |
Чистота |
Грязная, Постиранная |
Влажность |
Сухая, Мокрая |
Гладкость |
Помятая, Поглаженная |
Местоположение |
В баке, В пакете, В машинке, На сушилке, На доске, В шкафу |
Готовность |
Не готова, Готова к использованию |
2.2 Закон переходов (transitionLaw)
| Переход |
Работа-триггер |
Условие |
Грязная → Постиранная |
Стирка |
{Режим, Температура, МоющееСредство} заданы |
Мокрая → Сухая |
Сушка |
ВремяСушки > 2 ч |
Помятая → Поглаженная |
Глажка |
ТемператураУтюга ≥ ТребуемаяДляХлопка |
Не готова → Готова |
Завершение размещения |
Постиранная ∧ Сухая ∧ Поглаженная ∧ В шкафу |
2.3 Инварианты
- Футболка не может быть одновременно
Грязная и Постиранная
- Футболка не может быть одновременно
Мокрая и Сухая
- Футболка не может быть
Готова, если не выполнено {Постиранная ∧ Сухая ∧ Поглаженная}
2.4 Траектория (последовательность состояний)
| № |
Чистота |
Влажность |
Гладкость |
Местоположение |
Готовность |
| 1 |
Грязная |
Сухая |
Помятая |
В баке |
Не готова |
| 2 |
Грязная |
Сухая |
Помятая |
В пакете |
Не готова |
| 3 |
Грязная |
Сухая |
Помятая |
В машинке |
Не готова |
| 4 |
Постиранная |
Мокрая |
Помятая |
В машинке |
Не готова |
| 5 |
Постиранная |
Мокрая |
Помятая |
На сушилке |
Не готова |
| 6 |
Постиранная |
Сухая |
Помятая |
На сушилке |
Не готова |
| 7 |
Постиранная |
Сухая |
Помятая |
На доске |
Не готова |
| 8 |
Постиранная |
Сухая |
Поглаженная |
На доске |
Не готова |
| 9 |
Постиранная |
Сухая |
Поглаженная |
В шкафу |
Готова |
3. Контексты (зоны дома)
| Контекст |
Зона |
Объекты |
Активные роли |
Ограничения |
КонтекстСтирки |
Ванная / прачечная |
Бак, СтиральнаяМашина, МоющееСредство, ПакетДляСтирки |
СортировщикБелья, ОператорСтиральнойМашины |
ТемператураВоды ≤ 90, Загрузка ≤ 5 кг |
КонтекстСушки |
Балкон / комната |
Сушилка, МокроеБельё |
РазвешивательБелья |
ВлажностьВоздуха ≤ 80%, Температура ≥ 15 |
КонтекстГлажки |
Комната с доской |
ГладильнаяДоска, Утюг, Удлинитель |
Гладильщик |
ТемператураУтюга ≤ 200, НаличиеРозетки |
КонтекстХранения |
Шкаф / гардеробная |
Шкаф, ПоглаженноеБельё |
УкладчикБелья |
СвободноеМесто ≥ ОбъёмБелья |
4. Роли (5 семантически различных)
| Роль |
Метод |
Ключевые объекты |
Подшаги |
СортировщикБелья@КонтекстСтирки |
СортировкаБельяПоПризнакам |
Футболка, Бак, ПакетДляСтирки |
осмотр, сортировка по цвету/ткани/режиму, формирование пакета |
ОператорСтиральнойМашины@КонтекстСтирки |
СтиркаБелья |
СтиральнаяМашина, ПакетДляСтирки, МоющееСредство |
загрузка, выбор режима, запуск, извлечение |
РазвешивательБелья@КонтекстСушки |
СушкаБелья |
Сушилка, МокраяФутболка |
развешивание, контроль высыхания, снятие |
Гладильщик@КонтекстГлажки |
ГлажкаБелья |
Утюг, ГладильнаяДоска, Удлинитель, СухаяФутболка |
подготовка оборудования, нагрев утюга, глажка |
УкладчикБелья@КонтекстХранения |
СкладываниеИРазмещениеБелья |
Шкаф, ПоглаженнаяФутболка |
складывание, транспортировка к шкафу, размещение |
Все роли назначены одному агенту: Человек_Иван через U.RoleAssignment с различными window по зонам.
5. Композиция работ (Γ_method)
N1 СортировкаБелья
└─→ N2 ФормированиеПакетаДляСтирки
└─→ N3 ТранспортировкаПакетаКМашине
└─→ N4 ЗагрузкаПакетаВМашину
└─→ N5 ВыборРежимаСтирки
└─→ N6 Стирка (основной процесс)
└─→ N7 ИзвлечениеПостиранногоБелья [условие: ПрограммаЗавершена]
└─→ N8 ТранспортировкаМокрогоБельяКСушилке
└─→ N9 РазвешиваниеНаСушилке
└─→ N10 Сушка (основной процесс)
└─→ N11 СнятиеВысохшегоБелья [условие: Влажность == Сухая]
└─→ N12 ТранспортировкаСухогоБельяКЗонеГлажки
└─→ N13 ПодготовкаОборудованияДляГлажки (параллельные подшаги)
├─ N13a ТранспортировкаДоски → РазложениеДоски
├─ N13b ТранспортировкаУдлинителя → ПодключениеУдлинителя
└─ N13c ТранспортировкаУтюга → ДоливВодыВУтюг
└─ Join → N14 НагревУтюга
└─→ N15 Глажка (основной процесс) [условие: ТемператураУтюга ≥ Требуемая]
└─→ N16 СкладываниеПоглаженнойФутболки [условие: Гладкость == Поглаженная]
└─→ N17 ТранспортировкаКШкафу
└─→ N18 РазмещениеВШкафу → ГОТОВО
Типы связей: SerialStepOf для последовательных узлов; ParallelFactorOf + Join внутри N13.
6. Детализация ключевых работ (цепочка A.15)
6.1 Работа: Стирка футболки
U.Work: СтиркаФутболки@2026-07-18T10:00..11:00
├─ performedBy: RoleAssignment(holder=Человек_Иван, role=ОператорСтиральнойМашины@КонтекстСтирки)
├─ enactsMethod: МетодСтиркиБелья
├─ methodDescriptionRef: ИнструкцияКСтиральнойМашине_модельX
├─ executedWithin: СтиральнаяМашина_модельX
├─ affected: Футболка_белая_хлопок
├─ parameters: {Режим: Деликатный, Температура: 40, МоющееСредство: ПорошокY}
├─ входное состояние: {Чистота: Грязная, Влажность: Сухая, Гладкость: Помятая}
├─ выходное состояние: {Чистота: Постиранная, Влажность: Мокрая, Гладкость: Помятая}
├─ ресурсы: {Электричество: 1.5 кВт·ч, Вода: 40 л, Порошок: 50 г, ВремяАгента: 5 мин}
└─ критерий завершения: Чистота == Постиранная ∧ Влажность == Мокрая
6.2 Работа: Сушка футболки
U.Work: СушкаФутболки@2026-07-18T11:15..15:15
├─ performedBy: RoleAssignment(holder=Человек_Иван, role=РазвешивательБелья@КонтекстСушки)
├─ enactsMethod: МетодСушкиБелья
├─ methodDescriptionRef: ПамяткаПоСушкеБелья
├─ affected: Футболка_белая_хлопок
├─ parameters: {Способ: ЕстественнаяСушка, Место: СушилкаНаБалконе}
├─ входное состояние: {Чистота: Постиранная, Влажность: Мокрая, Гладкость: Помятая}
├─ выходное состояние: {Чистота: Постиранная, Влажность: Сухая, Гладкость: Помятая}
├─ ресурсы: {ВремяАгента: 3 мин, ВремяСушки: 4 ч, Электричество: 0 кВт·ч}
└─ критерий завершения: Влажность == Сухая
6.3 Работа: Глажка футболки
U.Work: ГлажкаФутболки@2026-07-18T15:30..15:45
├─ performedBy: RoleAssignment(holder=Человек_Иван, role=Гладильщик@КонтекстГлажки)
├─ enactsMethod: МетодГлажкиБелья
├─ methodDescriptionRef: ИнструкцияПоГлажкеХлопка
├─ affected: Футболка_белая_хлопок
├─ parameters: {ТемператураУтюга: 150, Режим: Отпаривание, Ткань: Хлопок}
├─ входное состояние: {Чистота: Постиранная, Влажность: Сухая, Гладкость: Помятая}
├─ выходное состояние: {Чистота: Постиранная, Влажность: Сухая, Гладкость: Поглаженная}
├─ ресурсы: {Электричество: 0.5 кВт·ч, ВодаДляОтпаривания: 100 мл, ВремяАгента: 10 мин}
└─ критерий завершения: Гладкость == Поглаженная
7. Сводная таблица ресурсов (Γ_work)
| Работа |
Время агента |
Электричество |
Вода |
Расходники |
Стоимость |
| Сортировка + формирование пакета |
3 мин |
0 |
0 |
0 |
0 руб |
| Стирка |
5 мин |
1.5 кВт·ч |
40 л |
Порошок 50 г |
~30 руб |
| Сушка (естественная) |
3 мин |
0 |
0 |
0 |
0 руб |
| Глажка |
10 мин |
0.5 кВт·ч |
100 мл |
0 |
~5 руб |
| Складывание + размещение |
2 мин |
0 |
0 |
0 |
0 руб |
| ИТОГО |
23 мин |
2.0 кВт·ч |
~40 л |
Порошок 50 г |
~35 руб |
8. Критерии качества (C.16)
| Характеристика |
Метрика |
Порог успеха |
Метод измерения |
Чистота белья |
Процент удаления загрязнений |
≥ 95% |
Визуальный осмотр |
Сухость белья |
Процент остаточной влажности |
≤ 5% |
Тактильный контроль / влагомер |
Гладкость белья |
Отсутствие видимых складок |
0 видимых складок на лицевой стороне |
Визуальный осмотр |
Целостность белья |
Отсутствие повреждений ткани |
0 повреждений |
Визуальный осмотр |
9. Связь с паттернами FPF
| Элемент модели |
Паттерн FPF |
Обоснование |
| Футболка как объект путешествия |
A.22 |
Трансформация состояния объекта во времени и пространстве |
| Пространство состояний + закон переходов |
A.22, A.3.3 |
Явная модель динамики вместо перечисления состояний |
| Разделение Метод / Описание метода / Работа |
A.15 |
Предотвращение категориальных ошибок |
| Граф работ с условиями и параллельностью |
B.1.5 |
Явная композиция методов (SerialStepOf, ParallelFactorOf, Join) |
| Ресурсы работ |
B.1.6 |
Работа как потраченные ресурсы |
| Роли с контекстами |
A.2.1, A.1 |
Семантически различимые роли в ограниченных контекстах |
| Критерии качества |
C.16 |
Характеристики, метрики, пороги |
| Контроль завершения |
B.1.5 (guards) |
Условия перехода между состояниями |
10. Что было исправлено относительно исходной модели
| # |
Исходная проблема |
Ремонт |
| 1 |
19 ролей на одного агента |
Сокращено до 5 семантически различных ролей |
| 2 |
Смешение Метод / Описание метода / Работа |
Явная цепочка по A.15 |
| 3 |
Отсутствие композиции методов |
Граф с SerialStepOf, ParallelFactorOf, Join |
| 4 |
Отсутствие модели динамики |
Пространство состояний + закон переходов + инварианты |
| 5 |
Путаница «майка» / «футболка» |
Явный EntityOfConcern: Футболка_белая_хлопок |
| 6 |
Отсутствие контекстов |
4 контекста по зонам дома |
| 7 |
Отсутствие ресурсов |
Таблица ресурсов для каждой работы |
| 8 |
Отсутствие критериев качества |
4 характеристики с метриками и порогами |
Такие дела. Даже в банальной стирке футболки есть работа для FPF 