
- •Стратегии «Руководство по основным действиям и компонентам».
- •Стратегии идентификации назначения и характерных свойств системы
- •Описание примера: Магазин (приложение для торгового терминала)
- •1.4.1. Идентификация назначения системы
- •1.4.2. Идентификация характерных свойств системы
- •Определение средств регистрации важной информации
- •Определение средств ведения бизнеса
- •Определение средств анализа результатов бизнеса
- •Определение средств взаимодействия с другими системами
- •Замечания по поводу назначения и характерных свойств системы
- •1.5. Выбор объектов
- •1.5.1. Использование компонентов модели для организации работы
- •1.5.2. Выбор объектов проблемной области
- •Выбор актеров и участников
- •1.6. Применение образцов: выбор и упорядочивание объектов проблемной области
- •1.6.1. Участник-транзакция
- •1.6.2. Место-транзакция
- •1.6.3. Транзакция - следующая транзакция
- •1.6.4. Контейнер-содержимое
- •1.6.5. Транзакция-экземпляр строки транзакции
- •1.6.6. Актер-участник
- •1.6.7. Общая схема на данный момент
- •1.7. Применение стратегий для определения обязанностей объектов проблемной области
- •1.7.1. Обязанности актеров и участников Актер: человек
- •Участник: кассир
- •Участник: покупатель.
- •1.7.2. Обязанности мест Магазин
- •1.7.3. Обязанности реальных вещей
- •Экземпляр товара
- •Универсальный код товара upc
- •Описание каждого атрибута
- •Регистрирующее устройство
- •Ящик кассового аппарата
- •Важное замечание по поводу состояния операции
- •Категория налога
- •1.7.4. Обязанности транзакций проблемной области
- •Продажа
- •Экземпляр строки продажи
- •Описание каждой службы
- •Новый вариант экземпляра строки продажи
- •Что совпадает, а что отличается Оплата и ее виды
- •1.8. Применение образцов: определение обязанностей в проблемной области
- •Множество-рабочий
- •Участник-транзакция
- •Транзакция-экземпляр строки транзакции
- •Экземпляр товара-экземпляр строки
- •Общая схема на данный момент
- •1.9. Разработка динамики проблемной области с помощью сценариев
- •1.9.1. Выбор ключевых сценариев
- •1.9.2. Сценарий: вычисление общей суммы при продаже
- •1.10. Выбор объектов взаимодействия с человеком
- •1.10.1. Выбор окон
- •1.10.2. Выбор отчетов
- •1.11. Определение обязанностей для взаимодействия с человеком
- •1.11.1. Обязанности для окон
- •Окно регистрации
- •Окно продажи
- •1.11.2. Обязанности отчетов Получение денег
- •1.12. Разработка динамики взаимодействия с человеком с помощью сценариев
- •1.12.1. Поиск имеющих смысл сценариев взаимодействия с человеком
- •Сценарий: регистрация в системе
- •Сценарий: провести продажу
- •1.13.2. Взаимодействие в данной системе
- •1.13.3. Определение обязанностей для взаимодействия систем
- •1.13.4. Множество систем авторизации
- •1.13.5. Разработка динамики взаимодействия систем с помощью сценариев
- •1.14. Выбор объектов управления данными и их обязанностей
- •1.14.1. Поиск
- •1.14.2. Сохранение
- •1.14.3. Разработка динамики управления данными с помощью сценариев
- •1.15. Общая схема на данный момент
Участник: покупатель.
X решила найти способ определения особенных покупателей. Допустим, что имеется объект customer(покупатель).
#88. Стратегия "Почему? Почему? Почему?" |
• Добавьте значение, спрашивая: "Почему? Почему? Почему?" Почему вообще системе нужен данный объект? На какие полезные вопросы он может ответить и какие полезные действия способен выполнять? Что из выполняемого вне данного объекта он может сделать самостоятельно? |
Активная сторона объекта показывает, зачем он нужен в объектной модели. Объект customerможет вычислять:
— количество покупок за интервал времени;
— стоимость покупок за интервал времени;
— количество возвратов за интервал времени;
— количество плохих (например, ошибочных) чеков за интервал времени.
Такие службы можно вынести под один важный заголовок "оценить покупателя", или "квалифицировать покупателя".
Заметим, что "оценка" — это стереотипное поведение участника; к данной службе нужно обращаться при рассмотрении активной стороны объекта participant.
1.7.2. Обязанности мест Магазин
Зачем нужен объект store(магазин)? Для того, чтобы отслеживать название, адрес и другие значения его атрибута. Важно то, что данный объект обеспечивает место для подсчетов, касающихся всего содержимого магазина: регистрирующих устройств, экземпляров товара и кассиров.
#102. Стратегия "Служба на всем множестве" |
• Рассмотрите службу на всем множестве объектов. Добавьте службу к объекту-множеству (он знает обо всем этом множестве и действует в нем). Дайте возможность каждому рабочему в данном множестве сделать максимум того, на что он способен, используя свои знания. • Убедитесь, что множество делает именно то, что относится к нему, и позволяет своим рабочим максимально реализовывать свои способности. • Для всех рабочих данного множества введите обязательные бизнес-правила. |
А. Определение обязанностей: "что я знаю".
#53. Стратегия"Определение атрибутов места" |
• Для расположения места установите: номер, имя, адрес (возможно, географические координаты). |
Для магазина пока достаточно имени:
имя.
Б. Определение обязанностей: "кого я знаю".
#75. Стратегия "Определение связей между объектами для места" |
• Для расположения места включите в модель связи с объектами, которые на нем находятся, ... или которые оно содержит. • Для расположения места включите в модель связи с объектами транзакции, чтобы показать участие места в данной транзакции. |
Объект store в качестве контейнера знает собственное содержимое:
— регистрирующие устройства (ни одного, одно или несколько);
— экземпляры товаров (ни одного, один или несколько);
— кассиров (ни одного, один или несколько).
Он обязан также знать свои транзакции, чтобы отвечать на вопросы и вести расчеты на множестве собственных транзакций:
продажи, выполненные в магазине (ни одной, одна или несколько).
Ему необходимо иметь сведения о некоторых дескриптивных объектах:
— категории налогов, применяемые в магазине (ни одной, одна или несколько).
В. Определение обязанностей: "что я делаю".
#95. Стратегия "Определение служб для места" |
• Для места включите в модель следующие службы: calculate for me (вычислить для меня), rate me (оценить меня), is <value> (есть <значение>). • Для места в качестве множества нужны следующие службы: howmany,howmuch(сколько?),ranktransactions(оценить транзакцию),rankcontents(оценить содержимое),rankcontainerlineitems(оценить экземпляры строки контейнера),calculateovertransactions(провести вычисления на множестве транзакций),calculateovercontents(провести вычисления на содержимом),calculateovercontainerlineitems(провести вычисления на экземплярах строки контейнера), а также службы для выполнения бизнес- правил на всем этом множестве. |
Для поддержки системы торгового терминала объект store должен:
— получать экземпляры для UPC;
— определять кассира по номеру.
Рассмотрев содержимое каждого окна и отчета, можно добавить также службы, "распространяющиеся на все, что находится в магазине".
Определите обязанности store относительно модели (рис. 1.24).
Рис. 1.24. Магазин: что я знаю, кого я знаю, что я делаю