Основную часть в прикладных системах занимают следующие части:
1. Метаописание
2. Вьювер
3. Редактор
4. Хранилище
5. Отслеживание изменений
6. ИИ
Метаописание - описывает "сущностный" граф системы, то с чем мы работаем
1) сущности
2) свойства
3) взаимосвязи
4) ограничения
5) следствия
6) цели/требования(?)
Вьювер - предоставляет просмотр состояния системы
1) просмотр всей системы
2) просмотр множества сущностей
3) просмотр отдельной сущности
4) фильтрация/поиск
5) сортировка
6) сравнение(?)
Редактор - предоставляет редактирование состояния системы
1) изменение отдельных значений
2) групповые операции
3) copy/paste
4) undo/redo
5) соблюдение ограничений, накладываемых метаописанием
6) подсказка ввода/изменений
Хранилище - хранение внутреннего состояния системы
1) Надежность
2) Восстановление после сбоев
3) атомарность по внесению изменений
4) атомарность/независимость хранения состояния отдельных подчастей
5) поддержка версионности
6) поддержка хранения противоречивой информации
7) история изменений
Отслеживание изменений - подсистема, которая на основе метаописания отслеживает текущее состояние и изменения, и пытается применить следствия зафиксированные в метаописании.
Данная подсистема активно взаимодействует с редактором и ИИ.
Пример:
Текстовый редактор
гориз. скролбар.Размер = max(строка.длина);
вер. скролбар.Размер = строки.Кол-во
При изменение текста - данная подсистема должна проверить следствия - пересчитать величины скролбаров.
ИИ - подсистема принятия решений в автоматизированном или полуавтоматизированном виде.
1. Выделить возможные решения
2. Сформировать критерии оценки решения
3. Выбрать лучшее решение
4. Активно взаимодействовать с внешними экспертами (пользователями или другими системами).