OpenU.Ru

| Стратегия №13. "Выбор актеров". |
| Выбор обобщенных объектов модели. |
| Определение актеров, которые действуют как обобщенные активные участники системы (актер: человек, организация и т. п.). |
Для нашей системы актеры: человек.
| Стратегия №14. "Выбор участников". |
| Определение объектов модели, связанных с ролями актеров. |
| Выделите участников системы, т.е. те роли актеров, которые необходимо учесть в моделируемой системе (роли могут быть: человек - служащий, клиент, покупатель, агент, директор, кладовщик и т.д.; операция - поставщик, потребитель, посредник, банк, филиал и так далее). |
Для нашей системы участники: покупатель (активный участник), кассир (активный участник), главный кассир (активный участник).
| Стратегия №68. "Частично применимые атрибуты". |
| Определение обязанностей: "Что я знаю?". |
Класс: главный кассир не попадает под стратегию №68.
| Стратегия №121. "Частично применимые службы". |
| Определение обязанностей: "Что я делаю". |
Выделите определенный класс, если:
|
Главный кассир не подходит под стратегию №121, т.о. он не будет являться классом нашей системы.
| Стратегия №47. "Идентификация". |
| Определение обязанностей "Способ узнать". |
| Поместите класс в пакет NT, если нет способа узнать данные конкретного экземпляра этого класса. |
Участник: покупатель подходит под эту стратегию, т.о. он не будет классом системы. Т.о. кассир - единственный остается победителем.
Получаем:

| Стратегия №38. "Словарь области". |
| Выбор названий. |
|
| Стратегия №15. "Выбор мест". |
| Выбор объектов. |
| Найдите места расположения вещей и других объектов системы (места: населенный пункт, район, склад, полка, секция, этаж, железнодорожные станции и т.д.). |
Места для нашей системы: магазин; отдел; полка; склад; рабочее место.
| Стратегия №42. "Обязанности системы". |
| Выбор объектов. |
| Задайте вопрос: обязана ли система что-то знать об этом объекте или что-то с ним делать; если нет, то поместите его в NT. |
Магазин - надо;
Отдел
NT;
Полка
NT;
Склад
NT;
Рабочее место
NT.
| Стратегия №22. "Выбор контейнера объектов". |
| Выбор объектов. |
| Используйте объект, который является контейнером для других объектов. |
! Магазин обязательно оставляем.
| Стратегия №34. "Выбор видов объектов". |
| Выбор объектов. |
| Применяйте метод "обобщение специализации" (класс - подкласс, суперкласс - подкласс) для определения классов. Примеры: товар вообще - конкретные виды товаров; участник - виды участников. |
Магазин - не обобщение; магазин - не специализация. Магазин не подходит под стратегию №34.
Получаем:


| Стратегия №16. "Выбор реальных вещей". |
| Выбор объектов. |
|
Реальные вещи нашей системы: экземпляр товара; деньги и кредитные карточки; терминал; ящик для денег.
По стратегии №47 деньги отправляем в NT. Как класс кредитная карточка обладает соответствующими свойствами, но для предметной области у нее нет ни атрибутов, ни служб. Терминал оставляем, он будет классом, т.к. он будет регистрировать начало и конец сеанса работы с кассиром. Пока ящик оставляем, т.к. он содержит информацию о наличных, накопленных за сеанс работы. Попробуем применить стратегию №34 к товару. Можно выделить следующие виды товаров:
У этих видов товаров нет ни атрибутов, ни служб (в рамках нашей системы), не применимых к товару вообще (штрих-код, название, цена - присущи всем товарам).
| Стратегия №17. "Выбор транзакций". |
| Выбор объектов. |
Найдите транзакции - запомненные события (события, о которых система все должна помнить). Транзакция - момент времени или временной интервал, например, покупка, продажа, отгрузка, прием товара; интервал, например, прокат, аренда, выполнение плана. Замечание1. Почти все транзакции состоят из экземпляров строк транзакции (транзакция почти всегда составной объект; состоящий из нескольких маленьких объектов), например, продажа- строки в чеке или в счете по каждому товару. Замечание2. Возможные источники транзакции: самый типичный - окно (зарегистрированное событие основано на взаимодействии с человеком в некоторый момент времени); еще может быть: объект, отслеживающий события и регистрирующий их; другая система, с которой мы взаимодействуем. |
Транзакции для нашей системы: продажа (транзакция возврата), оплата, сеанс работы кассира.
Транзакции: продажа и возврат отличаются только знаком (значением атрибута); класс-продажа будет для них общим.

| Образец №6. "Транзакция, Строка Транзакции". |
![]() |

В программировании это называется наследованием.
| Образец №2. "Обобщение - специализация, актер - участник". |
![]() |
| Образец №3. "Участник - транзакция". |
![]() |

| Образец №4. "Место - транзакция". |
![]() |

| Образец №7. "Транзакция - следующая транзакция". |
![]() |

| Образец №14. "Контейнер - содержимое". |
![]() |
