Здесь объясняется разница между ними. Но то, что не было объяснено, заключается в том, что <<include>>
и <<extend>>
просто не должны использоваться вообще.
Если вы читаете Bittner / Spence, вы знаете, что варианты использования - это синтез, а не анализ. Повторное использование прецедентов - это вздор. Это ясно показывает, что вы неправильно нарушили свой домен. Добавленная стоимость должна быть уникальной как таковой. Единственное повторное использование добавленной стоимости, которую я знаю, - это франшиза. Так что, если вы в бизнесе бургер, хорошо. Но везде ваша задача как BA - попытаться найти USP. И это должно быть представлено в хороших вариантах использования.
Всякий раз, когда я вижу людей, использующих одно из этих отношений, это когда они пытаются выполнять функциональную декомпозицию. И это просто неправильно.
Проще говоря: если вы можете без колебаний ответить на своего босса «Я сделал ...», тогда «...» - ваш прецедент, так как вы получили деньги за то, что делаете Это. (Это также ясно укажет на то, что «логин» вообще не является вариантом использования.)
В этом отношении поиск самостоятельных вариантов использования, которые включены или продлевают другие варианты использования, очень маловероятен. В конце концов, вы можете использовать <<extend>>
, чтобы показать, что ваша система является опциональной, т. Е. Какая-то схема лицензирования, которая позволяет включать варианты использования некоторых лицензий или опускать их. Но еще - просто избегайте их.
Директива PROC
ищет в стеке аргументы даже при использовании ML64.exe. Но «Соглашение о вызовах Microsoft x64» передает аргументы в регистрах. Вы можете сохранить регистры в процедуре в так называемом теневом пространстве или - лучше - работать напрямую с регистрами:
intadd PROC
mov eax, ecx
add eax, edx
ret
intadd ENDP
Кстати: DWORD
эквивалентно unsigned int
. Итак, адаптируйте строку формата: printf("%u", intadd(1,1));
. Или используйте тип C int
в файле C.