Форум Сообщества Аналитиков
Дисциплины => Системный Анализ и Требования => Варианты Использования (Use Case) => Тема начата: bas от 22 Августа 2011, 20:05:51
-
Коллеги,
Представим, что есть два ВИ, которые выполняет оператор некоторой банковской системы:
1. Оформить перевод денег со счета на счет внутри банка
2. Оформить перевод денег за счета внутри банка на внешний счет
По идеи поток событий у этих двух ВИ очень схожий, но отличается некоторым нюансом, н-р, фиксации дополнительных параметров при переводе денег на внешний счет (упрощенный пример, не предлагать сделать это в виде одного ВИ).
По хорошему эти два ВИ нужно обобщить (связь generalization) в один ВИ - Оформить перевод денег.
Как правильно при этом написать сценарии к этим трем ВИ?
Я думаю так:
Описываем общий сценарий в ВИ "Оформить перевод денег", если где-то есть разветвление, то ссылаемся на поток событий в ВИ обобщения.
Но нюанс в том, что ветвиться в главном ВИ может несколько раз ...
Что думаете по этому поводу?
-
Почитай вот наш FAQ (http://Обобщение вариантов использования)
-
Может и для другого примера можно и ветвить ВИ, но для именно этого (зная хорошо специфику банковских процессов), лучше не ветвить :)
-
Мдаааа, а ФАК то наш хорошо ) Я даже когда читал эту статейку )
Но честно говоря переписывать сценарий родителя в потомке - как-то грустно ( и можно попасть на рассинхронизацию, но реально другого метода наверное нет.
-
Честно говоря, я к наследованию UC всегда настороженно относился.Примерно так: в UML UC - это классификатор. И авторы предусмотрели наследование. Ну, пусть наследуют, если хотят. А я обойдусь!
Но, если серьезно.
Если чисто текстовое описание, я себе ничего представить не могу, кроме переписывания.
Я бы попробовал моделировать так:
- общий предок содержит описание - деятельность и, соответственно, описывается диаграммой деятельности
- архитектурно существенные части (действия диаграммы), которые изменяются у потомка, в предке - вызываемое поведение и точки расширения, внешне - UCE со своими деятельностями, можно с параметрами
- в потомках этим точкам расширения соответствуют другие UCE (и деятельности, имеющие ту же сигнатуру)
Если хочется показать на диаграмме UC - показывать UC с точками расширения. У потомков в тех же точках расширения - другие UCE.
Если изменения несущественное - нечего огород городить. Можно решить альтернативными потоками.
Это, конечно, "соображения". Реального примера у меня нет. А придумывать - будет "придуманное".