Внешная Система как инициатор ВИ(Прочитано 25269 раз)
Re: Внешная Система как инициатор ВИ Ответ #15 : 17 Декабря 2008, 20:19:01
Т.е. два человеа подходят к двери и одновременно пытаются зайти в эту дверь?

Ну, представь, например, что нужно не дверь открыть, а дать команду, скажем, на старт ракеты. Участники находятся в разных углах помещения, чтобы один человек не мог одновременно воспользоваться двумя картами. Один из них - авторизованное лицо из списка (поэтому проверяется по сетчатке глаза), а другой - дежурный офицер (система с ним заранее "не знакома", но у него есть доступ к кодам запуска).

Это я фантазирую, конечно.


По-моему, если вариант использования позволяет компактно описать требуемое поведение системы так, чтобы оно было однозначно (в смысле, одинаково) воспринято закзачиком, разработчиком и тестировщиком, то это хороший ВИ.

Пример с дверью (или ракетой), конечно, несколько надуман, но в нём есть два очевидных участника, равноправных с точки зрения системы. Нельзя сказать, что кто-то один их них инициирует процедуру. Они должны одновременно поднести карты к ридерам. Но "одновременно" - это с точки зрения человека, конечно, в реальности запросы в систему придут последовательно, и система должна воспринимать их в любом порядке.

Если представить себе реализацию, то система должна ждать любого их двух событий - запрос с ридера 1 или запрос с ридера 2. После обработки обоих запросов она снова должна ждать двух событий в любом порядке. Если ещё остался соблазн использовать ветвления "для красоты", то можно добавить ещё парочку событий - экспоненциальный рост количества комбинаций в конце концов убедит кого угодно. :)


Я что хочу сказать. Я не вижу необходимости в каких-либо жёстких ограничениях по числу действующих лиц (хотя признаю разумные ограничения по заранее достигнутому соглашению). Тот же Коберн даёт только рекомендации (и сам, кстати, постоянно это подчёркивает). Очень хорошие рекомендации, и их можно считать "классикой", но не догмы. И выражения "нельзя использовать" или "ни в коем случае" применительно к описаниям требований считаю, как минимум, спорными, пока не будут представлены исчерпывающие доказательства и объяснения, почему именно нельзя.
greesha.ru

Реальность - это убийство прекрасной теории бандой мерзких фактов. (Роберт Гласс)



Re: Внешная Система как инициатор ВИ Ответ #16 : 17 Декабря 2008, 20:19:54
Да, насчёт сетчатки это я, конечно, загнул.
Наверное, всё-таки по радужной оболочке. :)
greesha.ru

Реальность - это убийство прекрасной теории бандой мерзких фактов. (Роберт Гласс)



Re: Внешная Система как инициатор ВИ Ответ #17 : 18 Декабря 2008, 09:52:27
Рассмотрим такой вариант. Чтобы открыть дверь, два человека в разных местах должны поднести свои карты к ридерам. При этом один из них дополнительно аутентифицируется по сетчатке глаза, а другой вводит код с клавиатуры.

Как будет выглядеть ВИ с одним актором?
Это будет один ВИ "Получить доступ в помещение", например. Где пользователь будет подносить карту, затем вводить свои данные (глаз или код или еще что-нибудь) и получать доступ. Способы получения доступа можно описать отдельно. Соглашусь с Эдом - могут быть альтернативные потоки.

А вот инстанса ВИ в данном примере будет 2:
Первый - когда Петя (первый инстанс актора) подставляет глаз и происходит проверка его глаза :) (выполняется  сценарий 1)
Второй - когда Вася (второй инстанс актора) вводит код и происходит проверка кода (выполняется сценарий 2).
То что одновременно должны выполняться 2 инстанса - это ограничение (бизнес-правило, так сказать). Согласитесь, что можно придумать и 1 и 3 и 4 и хоть групповую идентификацию? В данном случае просто система будет ждать заданное количество времени (например 1 секунду) и если за это время не придет запрос со второй карты, то "до свидания"

Вопрос здесь именно в том, кому как удобно и для чего применяют ВИ. Я пишу системные варианты использования, довольно подробно описывая все действия пользователя и большое количество альтернативных потоков и эксепшинов, так как по ним сразу кодят разработчики и пишут тест кейсы тестеры (RUP, ICONIX).
Как говорится о вкусах не спорят ;)
« Последнее редактирование: 18 Декабря 2008, 10:03:35 от Виталий Григораш »
Если вы не знаете куда идете, то вы вряд ли туда дойдете [Форест Гамп]
www.grigorash.ru



Re: Внешная Система как инициатор ВИ Ответ #18 : 18 Декабря 2008, 19:00:29
И выражения "нельзя использовать" или "ни в коем случае" применительно к описаниям требований считаю, как минимум, спорными, пока не будут представлены исчерпывающие доказательства и объяснения, почему именно нельзя.
Ничего подобное мною не было озвучено кроме тгго, что ВИ должен инициироваться извне. Т.е. первый шаг всегда за актором. Даже если актор событие времени.
В нашем случае два основных лица, но кто-то всегда первый инициирует процесс. В результате имеем две альтернативы. Если первый инициирует процесс- сценарий идет так, другой иницирует процесс - сценарий идет иначе.

Если задача предсталяет собой сложную систему точек принятия решений - так это конечный автомат, таблица решений, дерево решений. Ясно что в этом случае ВИ не очень подходит. Разве что только для задания контекста, то есть закрепления понимания цели - запуск ракеты, открытия двери.



Re: Внешная Система как инициатор ВИ Ответ #19 : 25 Декабря 2008, 13:21:52
А вот интересно как будет выгладить пример ДВИ по варианту Boatman?!
С двумя или с тремя Актерами??
Не важно какой ты сейчас - большой или маленький, важно - как ты растешь.
Б.А.С.




 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19