Немного остановимся и посмотрим на проблему сверху. Итак есть магазин. Его основная миссия продажа книг в розницу. Для продажи книг нужно изучать рынок книг, новинок и т.п. и поставлять эти книги по мере необходимости.
Таким образом можно грубо и схематично сказать есть два процесса:
Продажа книг, которая включает размещение книг в торговом зале согласно отделу и тематике и принятой в магазине системе размещения. Мы знаем что книги размещаются на стеллажах. Каждый стеллаж имеет номер, в стеллаже есть полки, которые тоже нумеруются. Таким образм каждая книга может быть обнаружена по - названию отдела, номеру стеллажа в нем, номеру полки, где она располагается. Есть информационная система или нет вся эта информация должна где-то быть учтена, например в некотором журнале, где каждой книге присваивается классификатор места хранения (например по типу библиотеки). это важно для проведения инвентаризации и т.п. Иначе воруй не хочу.... Далее в каждом отделе работает консультант, помогающий выбрать покупателю книгу, но покупатель может изучать и выбирать книги совершенно самостоятельно, не прибегая к помощи консультанта. поэтому у консультанта все-таки не только функция консультрования, но и функция размещения книг, при этом он вероятно сообщает помечает где-то место расположение конкретной книги. Кроме того возможно консультатн наклеивает стикерры на книги при ее раззмещении. После выбора книги покупатель идет в кассу, где собственно и оформляется покупка. Покупатель получает книгу и чек и довольный покидает магазин. Кассир - возможно фиксирует продажу в тетрадочки (как часто это делается в разных небольших магазинах - иначе как узнать что когда и сколько продалось).
В конце рабочего дня кассир сдает выручку, отчитывается о продажах перед менеджером или администратором зала. На этом можно считать процесс законченым Это уход товара из магазина - источник дохода.
Второй процесс закупка книг(поставка книг). Вероятно процесс начинается с анализа коньюктуры рынка, рынка новинок и т.п. Далее составляется заявка с определенной частотой(раз в неделю, каждый день, раз в месяц, по мере необходимости). Как составляется заявка? вопрос интересный и требует внимательного изучения. Я вдруг не скажу. Примитивно - есть некий критерий - товар закончился и составляется заказ на приобретение чего-то у поставщика. Но у поставщика есть свои критерии - например отпускает только упаковками по 20 книг. Итак заявка составлена по форме такойто, где указывается ее номер, поставщик, книга, количество, сумма заказа, подписи. Например заявка должна быть утверждена главным бухгалтером - а вдруг нет денег на счету или еще какая оказия - вопрос больше чем ответом, значит как-то упрощаем, считаем что заявку не надо утверждать, а просто подготовить и отослать поставщику(а может одать экспедитору, который сам едет к поставщику?). Поставщик выполняет заказ(заявку) и привозит книги (сам ли, или магазин самовывозом доставляет, или используется служба доставки- опять же нужно конкретизировать). Заказ пришел. Кладовщик принимает заказ. Проверяет его на соотвествие, подписывает счет-фактуру. Далее поставщик получает в кассе деньги, или может они работают по договору, тогда бухгалтер оформляет банковский перевод денег. Опять же нужно уточнять и конкретизировать. далее кладовщик оприходует полученные книги, вписывает ценники, делает наклейки на книги, или прикладывает накладную и передает ее в торговый зал. где консультаты уже сами делают стиккеры приклеивают на книги, а в накладной вписывают место расположение книги. В общем конец процеcса приема книг.
Т.е. вот такая ситуация. Теперь мы предлагаем решение в виде системы, которая будет учитывать все продажи (дата время, какая книга, по какой цене была продана), все поставки ( дата время оприходывания - поступления книги, цена поступления, цена продажи (наценка), соотвествующий штрихкода, где размещается). Кто будет указывать место размещение? естесвтенно то кто размещает, а как? Да просто используя систему.
Будет работать с системой клиент? поставщик? нет!, а банк? ну через систему авторизации, а система авторизации чья? стандартная интегрируеммая с вашей системой? тогда и банк как таковой долой.
Что отстается:
кассир - работает с подситемой регистрации продаж
консультант - работает с подсистемой - каталог книг + с подсистемой управления запасами на правах ввода истинного места размещения
кладовщик - оприходует книги - работает с подсистемой управления запасами,
менеджер - готовит заявки на поставки, назначает или изменяет цены на продажу, работает с подсистемой управления запасами.
Итак архитектура - подсистема продаж, подсистема управления запасами, возможно подсистема ведения каталога книг в торговом зале (если не все книги выставляются в зал сразу после привоза) вообщем думать можно.
Тогда при переходе к требования к системе мы и описываем варинаты использования и действующих лиц КОТОРЫЕ РАБОТАЮТ С СИСТЕМОЙ , но никто не межает дополнить модель моделью участники и интересы, в которых учесть все интересы.
Далее все просто -делаем модель классов предметной области, а потом при необходимости модель классов приложения (которое у нас разбито уже на подсистемы - сиречь архитектура)