Uploaded by ali ata

5-UseCases-new

advertisement
‫مورد کاربرد‬
‫)‪Larman chapter 6 , 7 (further reading: Bruegge 4.4‬‬
‫مدل‌سازی‌‬
‫کسب‌و‌کار‬
‫مهندسی نیاز(مندی)ها‬
‫مورد کاربرد‬
‫نیازمندی‌ها‬
‫تحلیل نیازمندیها‬
‫طراحی‬
‫پیاده‌سازی‬
‫آزمون‬
‫‪2‬‬
‫‪1‬‬
‫اهمیت نیازمندیها‬
‫نیازمندیها توافق بین مشتری و توسعه دهندگان را بیان میکنند‪.‬‬
‫‪3‬‬
‫اهمیت نیازمندیها‬
‫نیازمندیها از نقطه نظر کاربر ‪ ،‬راه درست برای حل مساله است‪.‬‬
‫‪James Rambaugh‬‬
‫‪4‬‬
‫‪2‬‬
‫مهندسی نیازها‬
‫تعریف‪ :‬شامل همه فعالیتها برای کشف‪ ،‬مستندسازی و نگهداری‬
‫مجموعه نیازمندیها با توجه به کسب و کار و سیستم‪ ،‬برای‬
‫سیستم مبتنی بر کامپیوتر است‪.‬‬
‫ز‬
‫‌سنج‪ ،‬بدست‬
‫‌‬
‫مکانیم‌های‌ برای جمع‌آوری‪ ،‬تحلیل‪ ،‬ارزیای‌ امکان‬
‫شامل‬
‫ی‬
‫آوردن راه حل‪ ،‬توصیف راه حل‪ ،‬درست‌سنج‌ توصیف ‌و مدیریت‬
‫نیازمندی‌ه‌ا د ‌ر هنگام توسعه سیستم است‬
‫‪5‬‬
‫مولفههای مهندسی نیازها‬
‫مهندسی نیازها‬
‫توسعه‬
‫نیازمندیها‬
‫‪Object-Oriented‬‬
‫‪Analysis & Design‬‬
‫جمعآوری‪ /‬استخراج‬
‫نیازمندیها‬
‫‪6‬‬
‫‪3‬‬
‫‪Structured‬‬
‫‪Analysis & Design‬‬
‫تحلیل‬
‫نیازمندیها‬
‫‪Agile Development‬‬
‫‪User Stories‬‬
‫مدیریت‬
‫نیازمندیها‬
‫توصیف دقیق‬
‫نیازمندیها‬
‫درستیسنجی‬
‫نیازمندیها‬
‫استخراج نیازمندیها‬
‫(‪)Requirement Gathering/Elicitation‬‬
‫کشف نیازمندیها از طریق برقراری ارتباط با افرادی که در توسعه‬
‫و درک سیستم تاثیرگذارند‬
‫از طریق تحلیل سازمان‪ ،‬دامنه کاربرد و فرآیند کسب و کار یعنی جایی که‬
‫قرار است سیستم استفاده شود‪ ،‬انجام می‌شود‬
‫به مشتری کمک می‌کنیم تا بفهمد چه می‌خواهد‪ :‬چه کارهای قرار است‬
‫سیستم انجام دهد‪ ،‬چگونه نیاز‌های کسب و کار او را رفع می‌کند و سیستم‬
‫چگونه استفاده خواهد شد‬
‫ذی‌نفعان پروژه متفاوتند و مشتری‌‌ها به ندرت می‌دانند که چه می‌خواهند‬
‫‪7‬‬
‫تحلیل نیازمندیها‬
‫(‪)Requirement Analysis‬‬
‫پاالیش و تکمیل نیازهای مشتری ‪ :‬هدف شناسایی نیازهایی که در‬
‫تضاد ‪ /‬همپوشانی یکدیگر قرار دارند ؛ نیازهای غیرواقعی و مبهم‬
‫شناسایی میشوند‬
‫با استفاده از سناریوهایی که نشان میدهند کاربران با سیستم‬
‫تعامل دارند میتوانیم نیازمندیها ‪ ،‬اهمیت و اولویت آنها را درک‬
‫و پاالیش کنیم‪.‬‬
‫ابزار‌مهندسی‌نیازمندی‌ها‌‪‌:‬مورد‌کاربردی‌(‪)use case‬‬
‫‪8‬‬
‫‪4‬‬
‫معرفی مدلسازی مورد کاربرد‬
‫ تحلیل و توصیف نیازمندیهای سیستم است‬،‫ابزاری برای کشف‬
‫متنی است که شرح استفاده کاربر از سیستم را نشان میدهد‬
)‫(میتواند مختصر یا با جزئیات باشد‬
system
boundary
Use Case UCUnlock
First tier use cases
Use Case1:UC1:
Related
Related
Second tier use cases
de »
«inclu
actor
Unlock
REQ1, REQ3, REQ4, and REQ5 stated in Table 2-1
Requirem’ts:
«initiate »
REQ1, REQ3, REQ4, and REQ5 stated in Table 2-1
Initiating Actor:
Any of: Tenant, Landlord
Requirem’ts:
Actor’s Goal:Any of: Tenant,
To disarm
the lock and enter, and get space lighted up automatically.
Initiating Actor:
Landlord
Tenant
Participating
Actor’s Goal:
To disarm the lock and enter, and get space lighted up automatically.
LockDevice, LightSwitch, Timer
LockDevice, LightSwitch, Timer
UC2: Lock
menu
choices
“Lock”
and “Unlock.”
• The system
displays
theare
menu
of available
functions; at the door keypad the
LockDevice
»
«pa
rticip
ate
»
LightSwitch
«initiate + participate »
• The set of• valid
keys stored
in the
is non-empty.
Preconditions:
The system
displays
thesystem
menu database
of available
functions; at the door keypad the
Preconditions:
«participate »
»
ate
rticip
«pa
«participa
te
ate »
«particip
»
«initiate »
• The set of valid keys stored in the system database is non-empty.
Actors:
«in
itia
te »
te
itia
«in
Actors:
Participating
UC1: Unlock
UC7: AuthenticateUser
Landlord
communication
use case
Timer
menu choices
“Lock” and
Postconditions:
Theare
auto-lock
timer“Unlock.”
has started countdown from autoLockInterval.
Flow of Events
forauto-lock
Main Success
Scenario:
Postconditions:
The
timer has
started countdown from autoLockInterval.
Flow of Events for Main Success Scenario:
9
‫مدلسازی موارد کاربردی سیستم‬
‫ترتیب مشخصی برای گامهای زیر وجود ندارد و بهطور معمول به‬
‫ اکتورها و مورد‬،‫صورت تکراری انجام میشوند تا اینکه مرز‬
‫کاربرد پایدار شوند‬
‫شناسای‌اکتورها‬
‫شناسای‌موارد‌کاربرد‬
‫شناسای‌ارتباط میان‌اکتورها‌و‌موردهای‌کاربرد‬
‫شناسای‌مرز‌سیستم‬
10
5
‫تعریف اکتور‬
‫اکتورها موجودات خارجی میباشند (دارای رفتار هستند) که‬
‫سیستم با آنها تعامل دارد‬
‫انسان‬
‫‌‬
‫سیستم‌خارج‬
‫سازمان‬
‫‪11‬‬
‫تعریف اکتور (ادامه)‬
‫اکتور دارای مسوولیتی است که برای انجام آن از سیستم کمک‬
‫میگیرد‬
‫ز‬
‫اهداف‌ را‌دنبال‌یم‌کند؛‬
‫برای‌تحقق‌مسوولیت خود‌‬
‫برای‌رسیدن‌به‌هدف خود‪‌،‬عمیل را‌انجام‌یم‌دهد‌( رشوع‌تعامل)؛‬
‫سیستم‌برای‌پاسخگوی‌ ممکن‌است‌ا ‌ز اکتورهای‌دیگر‌کمک بگید‪.‬‬
‫‪UML notation‬‬
‫‪12‬‬
‫‪6‬‬
‫شناسایی اکتورهای سیستم راهبر مسافرتی‬
‫در هنگام اضافه کردن اکتور به این سوال پاسخ دهید‪:‬‬
‫آیا‌سیستم‌خدمت‌جدیدی‌را‌به‌اکتور‌جدید‌ارائه‌یم‌دهد‌؟‬
‫مسوول کنترل راهها‬
‫?‬
‫‪GPS‬‬
‫سیستم راهبر‬
‫مسافرتی‬
‫راننده‬
‫راننده ماشین سنگین‬
‫‪13‬‬
‫مورد کاربرد‬
‫سناریو ‪ :‬ترتیبی مشخصی از اعمال و تعامالت میان اکتور و سیستم‬
‫(نمونه کاربردی از سیستم)‬
‫مثال ‪ :‬اخذ واحد در سیستم گلستان‬
‫سناریوی موفق ‪ :‬دانشجو‪ ،‬شماره درس و گروه مورد نظر را به‬
‫سیستم میدهد‪ .‬سیستم امکان اخذ درس برای آن دانشجو را‬
‫ممکن مییابد و سپس واحد را به دانشجو تخصیص میدهد و‬
‫لیست دانشجویان درس را بهروز میکند‪.‬‬
‫‪14‬‬
‫‪7‬‬
‫مورد کاربرد (ادامه)‬
‫ادامه سناریوهای اخذ واحد (به شکل غیررسمی)‬
‫سناریوی ناموفق ‪ :‬دانشجو شماره درس و گروه مورد نظر را به‬
‫سیستم میدهد‪ .‬سیستم امکان اخذ درس برای آن دانشجو را‬
‫ناممکن مییابد و سپس به او هشدار میدهد‪ .‬دانشجو واحد دیگری‬
‫را اخذ میکند‪ .‬سیستم امکان اخذ درس برای آن دانشجو را ممکن‬
‫مییابد و سپس واحد را به دانشجو تخصیص میدهد‪.‬‬
‫‪15‬‬
‫مورد کاربرد (ادامه)‬
‫تعریف‪ :‬مورد کاربرد شرح استفاده کاربر (سناریوهای موفق ‪/‬‬
‫ناموفق مرتبط ) از سیستم برای تحقق اهداف کاری او بهکمک‬
‫سیستم مورد مطالعه میباشد‪.‬‬
‫به‌طور‌معمول‌به‌ازای‌هر‌هدف‌کارب ‌ر‪‌،‬یک‌مورد‌کاربرد‌تعریف یم‌کنیم‪.‬‬
‫‪16‬‬
‫‪8‬‬
‫تهیه مورد کاربرد‬
‫برای نوشتن مورد کاربرد بیان میکنیم ‪...‬‬
‫ر‬
‫اکتورهای‌شکت‌کننده در‌‬
‫مورد‌کاربرد‬
‫مورد‌کاربرد‌توسط‌یک‌اکتور‌آغاز‌یم‌شود‬
‫مورد‌کاربرد‌پس‌از‌آغاز‪‌،‬ممکن‌است‌با‌اکتورهای‌دیگری‌تعامل داشته‌‬
‫باشد‪.‬‬
‫سناریو‌استفاده‌‪ :‬لیست‌ترتیب‌اعمال‌و‌تعامالت‌میان‌اکت ‌ور‌و‌سیستم‌‬
‫جریان‌رویدادها‬
‫میتواند مختصر‪ ،‬غیررسمی و یا رسمی (با جزئیات) باشد‬
‫‪17‬‬
‫تهیه مورد کاربرد (ادامه)‬
‫مختصر (‪ :)brief‬متن خالصهای در یک پاراگراف که سناریوی‬
‫موفق را نشان میدهد‪.‬‬
‫غیررسمی (‪ : )Casual‬چندین پاراگراف که سناریوهای مختلف را‬
‫پوشش میدهد‪.‬‬
‫رسمی (‪ :)fully-dressed‬تمامی گامها و سناریوهای مختلف با‬
‫جزئیات کامل نوشته میشوند‪ .‬دارای بخشهایی مانند پیش شرط‬
‫و ‪ ...‬است‪.‬‬
‫‪18‬‬
‫‪9‬‬
‫تهیه مورد کاربرد (ادامه)‬
‫مورد کابرد اخذ واحد (به شکل خالصه)‬
‫دانشجو لیست واحدهای ارائه شده در ترم جاری را مشاهده‬
‫میکند و سپس واحد مورد نظر خود را انتخاب میکند‪ .‬سیستم‬
‫امکان اخذ درس برای آن دانشجو را بررسی میکند‪ .‬در‬
‫صورت امکان اخذ آن واحد‪ ،‬سیستم واحد را به دانشجو‬
‫تخصیص میدهد و لیست دانشجویان درس را بهروز میکند‪.‬‬
‫‪19‬‬
‫تهیه مورد کاربرد (ادامه)‬
‫مورد کابرد اخذ واحد (به شکل غیررسمی)‬
‫دانشج ‌و لیست واحدهای ارائه شده د ‌ر ترم جاری ر‌ا مشاهده یم‌کن ‌د ‌و سپس‬
‫واحدهای مور‌د نظ ‌ر خو ‌د ر‌ا انتخاب یم‌کند‪ .‬سیستم امکان اخ ‌ذ واحده‌ا ر‌ا‬
‫برای آن دانشج ‌و برریس یم‌کند‪ .‬د ‌ر صورت امکان اخ ‌ذ آن واحدها‪ ،‬سیستم‬
‫واحده‌ا ر‌ا به دانشج ‌و تخصیص یم‌ده ‌د ‌و لیست دانشجویان درس‌ه‌ا ر‌ا به‌رو ‌ز‬
‫یم‌کند‪.‬‬
‫اگ ‌ر امکان اخ ‌ذ دریس برای دانشج ‌و وجو ‌د نداشت‪ ،‬به دانشج ‌و هشدا ‌ر داده‬
‫یم‌شو ‌د ‌و لیست واحده‌ا برای جایگزین کردن انتخاب به ا ‌و نشان داده‬
‫یم‌شود‪.‬‬
‫‪...‬‬
‫‪20‬‬
‫‪10‬‬
)‫(به شکل رسمی‬
)‫تهیه مورد کاربرد (ادامه‬
... :‫پیش شرط و پس شرط‬
: ‫رویداد اصلی‬
.‫ دانشجو از سیستم لیست واحدهای ارائه شده در ترم جاری را درخواست میکند‬.1
.‫ سیستم واحدهای ممکن را به دانشجو نشان میدهد‬.2
‫ دانشجو واحدهای مورد نظر را انتخاب میکند و به سیستم تقاضای اخذ میدهد‬.3
‫ واحدها را به دانشجو تخصیص‬،‫ سیستم امکان اخذ واحدها را بررسی میکند و در صورت ممکن بودن‬.4
‫میدهد و لیست دانشجویان درس را بهروز میکند‬
‫ سیستم تایید نهایی اخذ واحدها را به دانشجو اطالع میدهد‬.5
:‫رویداد فرعی‬
‫ در این صورت اجرای روند اصلی خاتمه‬.‫الف * دانشجو در هر یک از مراحل میتواند انصراف دهد‬
‫مییابد‬
: ‫ اگر انتخاب واحد ممکن نبود‬.‫الف‬4
‫ سیستم به دانشجو هشدار مناسب میدهد‬.1
‫ رویداد اصلی‬2 ‫ ادامه از گام‬.2
21
)‫تهیه مورد کاربرد (ادامه‬
‫شرح رسمی مورد کاربرد‬
Use Case Name
Scope
Level
Primary Actor
Stakeholders and Interests
Start with a verb.
The system under design: “system” or “business”
"user-goal" or "subfunction"
Calls on the system to deliver its services.
Who cares about this use case, and what do they want?
Preconditions
What must be true on start, and worth telling the reader?
Success Guarantee
What must be true on successful completion, and worth
telling the reader.
A typical, unconditional happy path scenario of success.
Main Success Scenario
Extensions/Alternatives
Special Requirements
Technology and Data
Variations List
Frequency of Occurrence
Miscellaneous
Alternate scenarios of success or failure.
Related non-functional requirements.
Varying I/O methods and data formats.
Influences investigation, testing, and timing of
implementation.
Such as open issues.
22
11
‫مثال‬
‫خرید اعتباری در دیجیپی‬
‫‪23‬‬
‫تهیه مورد کاربرد (ادامه)‬
‫کوکبرن (‪ )cockburn‬میگوید‪:‬‬
‫سیستم همانند قراردادی میان ذینفعان است‪،‬‬
‫بهکمک موارد کاربرد جنبههای رفتاری این قرارداد‬
‫با جزئیات بیان میشود ‪ ...‬مورد کاربرد به عنوان‬
‫قراردادی برای رفتار سیستم‪ ،‬رفتارهای مرتبط برای‬
‫برآورده کردن اهداف ذینفعان را جمعآوری میکند‬
‫‪24‬‬
‫‪12‬‬
‫توصیف رسمی ‪ :‬بازیابی رمز عبور‬
‫رویدادهای اصلی‬
‫‪ .1‬کاربر از سیستم میخواهد در بازیابی رمز عبور به او کمک کند‪.‬‬
‫‪ .2‬سیستم شناسه عبور و آدرس الکترونیکی کاربر را میپرسد‪.‬‬
‫‪ .3‬کاربر اطالعات مذکور را تکمیل و به سیستم ارسال میکند‪.‬‬
‫‪ .4‬سیستم مجموعهای از سواالت شخصی به کاربر نشان میدهد‪.‬‬
‫‪ .5‬کاربر سوال شخصی را انتخاب و جواب آن را مینویسد و از سیستم درخواست‬
‫بررسی میکند‪.‬‬
‫‪ .6‬سیستم شناسه کاربر ‪ ،‬سوال شخصی و پاسخ او را اعتبارسنجی میکند و در صورت‬
‫درست بودن‪ ،‬رمز کاربر را به آدرس الکترونیکی او ارسال میکند‪.‬‬
‫‪25‬‬
‫توصیف رسمی ‪ :‬بازیابی رمز عبور (ادامه)‬
‫رویدادهای فرعی‬
‫‪.3‬الف‪ -‬اگر شناسه عبور‪/‬آدرس الکترونیکی داده نشده بود‪ ،‬سیستم خطا میدهد و ادامه‬
‫از گام ‪ 2‬رویداد اصلی ‪.‬‬
‫‪.5‬الف‪ -‬اگر سوال‪ /‬پاسخ انتخاب‪/‬داده نشده بود‪ ،‬سیستم خطا میدهد و ادامه از گام ‪4‬‬
‫رویداد اصلی ‪.‬‬
‫‪.6‬الف‪ -‬اگر مجموع شناسه کاربر ‪ ،‬سوال شخصی و پاسخ درست نبودند‪ ،‬کاربر تا ‪ 3‬بار‬
‫میتواند تالش کند (ادامه از گام ‪ 2‬رویداد اصلی)؛ درغیراینصورت سیستم مورد کاربرد‬
‫«بازیابی رمز عبور» را برای آن شناسه تا ‪ 24‬ساعت غیرفعال میکند‪.‬‬
‫‪.6‬ب‪ -‬در صورت غیرفعال بودن «بازیابی رمز عبور»‪ ،‬سیستم پیغام «غیرفعال بودن»‬
‫مستقل از معتبر بودن ورودیها را میدهد‪.‬‬
‫‪26‬‬
‫‪13‬‬
‫ مورد کاربرد پردازش فروش‬:‫مثال‬
‫در سیستم هایپراستار‬
Use Case Name
Scope
Level
Primary Actor
Stakeholders and Interests
Process sale
POS Application
user-goal
cashier
Cashier: Wants accurate, fast entry, and no payment
errors, as cash drawer shortages are deducted from
his/her salary.
- Salesperson: Wants sales commissions updated.
- Customer: Wants purchase and fast service with minimal
effort. Wants easily visible display of entered items and
prices. Wants proof of purchase to support returns.
- Company: ...
27
Technology and Data
Variations List
Frequency of Occurrence
Miscellaneous
…
3a. Item identifier entered by bar code laser scanner (if
bar code is present) or keyboard.
3b. Item identifier may be any UPC, EAN, JAN, or SKU
coding scheme.
7a. Credit account information entered by card reader or
keyboard.
7b. Credit payment signature captured on paper receipt.
But within two years, we predict many customers will want
digital signature capture.
Could be nearly continuous.
- What are the tax law variations?
- What customization is needed for different businesses?
- Can the customer directly use the card reader, or does
the cashier have to do it?
- …..
28
14
‫رهنمونهایی برای نوشتن مورد کاربرد‬
‫نام مورد کاربرد باید فعل باشد و هدف کاربر را نشان دهد‬
‫اکتورها باید نام باشند‬
‫مرز سیستم باید مشخص باشد؛ گامهایی که توسط کاربر و سیستم‬
‫برداشته میشوند باید مشخص گردد‬
‫در جریان رویداد فاعل مشخص باشد و مجهول نباشند‪.‬‬
‫ارتباط میان گامها در جریان رویدادها مشخص باشد (علت و‬
‫معلول)‬
‫سناریوهای مستثنی باید مشخص کردند‬
‫واسط کاربری نباید بیان شوند و مستقل از تکنولوژی باشد‬
‫‪29‬‬
‫مثال ‪ :‬نوشتن نادرست مورد کاربرد‬
‫‪30‬‬
‫‪15‬‬
‫مثال ‪ :‬نوشتن نادرست مورد کاربرد‬
‫‪31‬‬
‫جمعبندی مورد کاربرد‬
‫مدل کاربرد مستندی متنی است‪ ،‬نه نمودار و منظور از مدلسازی‬
‫مورد کاربرد نوشتن متن آنهاست‪ ،‬نه تهیه نمودار ‪ /‬شکل‪.‬‬
‫میتوانیم نیازهای غیرکارکردی مرتبط مورد کاربرد را نیز مستند‬
‫کنیم‪.‬‬
‫چرا سراغ مورد کاربرد میرویم ؟‬
‫ی‬
‫مشییان د ‌ر تهیه ‌و پاالیش موردهای‬
‫سادگ‌ مور‌د کاربرد‪ ،‬امکان رشکت‬
‫کاربر‌د یم‌دهد (کاهش ریسک)‬
‫ارزش این روش تاکی ‌د درست ب ‌ر روی اهداف کارب ‌ر ‌و دیدگاه‌های اوست‪.‬‬
‫ز‬
‫اهداف ر‌ا دنبال یم‌کند‪ ،‬سناریوهای استفاده ا ‌ز‬
‫‌‬
‫• چه کیس ا ‌ز سیستم استفاده یم‌کند‪ ،‬چه‬
‫سیستم چیست‬
‫‪32‬‬
‫‪16‬‬
‫یم‌توان ‌د جزئیات د ‌ر ح ‌د دلخواه ر‌ا پوشش دهد‬
‫انواع اکتورها‬
‫اکتور آغازگر (اکتور اصلی یا اولیه یا کاربر) ‪ :‬اکتورهایی که مورد‬
‫کاربرد سیستم را آغاز میکنند و اهدافشان توسط خدمات سیستم‬
‫مورد مطالعه تامین میشود‪.‬‬
‫شناسایی این اکتورها ما را در شناسایی کارکردهای سیستم کمک‬
‫میکند‬
‫ز‬
‫به‌منظور‌تحقق‌هدف‌تب ز‬
‫یی‌شده‌است‬
‫هر‌کارکرد‌سیستم‌(مورد‌کاربرد)‬
‫‪33‬‬
‫انواع اکتورها (ادامه)‬
‫اکتور شرکت کننده (اکتور فرعی یا ثانویه) ‪:‬‬
‫خدمت (مانن ‌د اطالعات) به‬
‫ی‌‬
‫اکتو ‌ر پشتیبان (‪: )supporting‬‬
‫سیستم مور‌د مطالعه ارائه یم‌دهد‬
‫•‬
‫• درگاه‌پرداخت‌آنالین‬
‫مرکز‌داده‌پردازی‌در‌برداشت‌پول‌در‌مثال‌‪ATM‬‬
‫شناسای‌ آن‌ها‪ ،‬محدودیت‌های‌واسط‌را‌مشخص‌یم‌کنند‪.‬‬
‫‪34‬‬
‫‪17‬‬
‫انواع اکتورها (ادامه)‬
‫اکتور شرکت کننده (اکتور فرعی یا ثانویه) ‪:‬‬
‫اکتو ‌ر پنهان (‪ :)offstage‬رشکت کننده منفعیل است که نه م ‌ور‌د‬
‫کاربر‌د ر‌ا آغا ‌ز یم‌کن ‌د ‌و نه د ‌ر انجام آن کمک یم‌کن ‌د بلکه د ‌ر مور‌د‬
‫جنبه‌های‌ ا ‌ز سیستم مور‌د مطالعه آگاه یم‌گردد (به نتیجه خدمات‬
‫سیستم مور‌د مطالعه عالقمن ‌د است)‬
‫ی‬
‫کزی‪‌،‬سازمان‌امور‌مالیای‌‬
‫• بیمه‌مر‬
‫ز‬
‫ی‬
‫‌یا‌قانوی‌را‌مشخص‌یم‌کنند‪.‬‬
‫عملیای‬
‫محدودیت‌های‌‬
‫‪35‬‬
‫شناسایی اکتورها (ادامه)‬
‫سواالت زیر ما را در شناسایی اکتورها کمک میکنند ‪:‬‬
‫ای یم‌شوند‌؟‬
‫چه‌کاربر زای‌توسط‌سیستم‌برای‌انجام‌کارهایشان‌پشتیب ز ‌‬
‫چه‌کاربر زای‌سیستم‌را‌اجرا‌و‌یا‌تمام یم‌کنند؟‬
‫چه‌کاربر زای‌سیستم‌‌را‌نگهداری و‌مدیریت یم‌کنند؟‬
‫با‌چه‌سخت‌افزا ‌ر یا‌نرم‌افزار‌خارج‌سیستم‌تعامل‌دارد؟‬
‫پس از شناسایی اکتورها ‪ ،‬با بررسی موردهای کاربرد که به هر‬
‫اکتور ارائه میگردد میتوانیم نیازمندیهای سیستم را تکمیل‬
‫نماییم‬
‫‪36‬‬
‫‪18‬‬
‫سیستم فروش کتابهای دست دوم‬
‫هدف تهیه سیستمی برای خرید و فروش کتابهای دست دوم‬
‫دانشجویان دانشکده است‪ .‬هر فرد میتواند کتابهای خود را از طریق این‬
‫سیستم به حراج بگذارد ‪ .‬برای این منظور هر فرد حراجی را ایجاد و‬
‫مشخصات کتاب خود را اعالن میکند‪ .‬هر حراجی در مدت زمان‬
‫مشخصی اعتبار دارد ‪ .‬این مدت زمان توسط فروشنده معین میگردد که‬
‫نباید بیشتر از حد معینی نیز باشد‪ .‬در هر حراجی مشخصات کتاب و حتی‬
‫عکسی از جلد کتاب گذاشته میشود و قیمت پایه و نحوه تحویل کتاب‬
‫(حضوری‪ ،‬پیک‪ )... ،‬مشخص میگردد‪ .‬در صورت خاتمه زمان اعتبار‬
‫حراجی‪ ،‬صاحب آن باید حراجی را ببندد‪ .‬سیستم باید در مدیریت‬
‫حراجیهای بسته نشده بدون اعتبار به ما کمک کند‪...‬‬
‫‪37‬‬
‫شناسایی اکتورها و مورد کاربردهای سیستم‬
‫فروش کتابهای دست دوم‬
‫چه اکتورها و مورد کاربردهایی برای سیستم میتوانید تشخیص‬
‫دهید‬
‫اکتور آغازگر‬
‫فروشنده‬
‫‪38‬‬
‫‪19‬‬
‫مورد کاربرد‬
‫ایجاد حراجی‪ ،‬ویرایش حراجی‪ ،‬حذف‬
‫حراجی‬
‫اکتورهای درگیر‬
‫خاتمه‪/‬بستن حراجی‬
‫خریدارها (پیشنهاد دهندگان)‬
‫خریدار‬
‫پیوستن به حراجی ‪ /‬پیشنهاد دادن به‬
‫حراجی‪،‬‬
‫فروشنده (درصورت نیاز به‬
‫آگاهسازی وی)‬
‫کاربر‬
‫جستجو‪ ،‬مشاهده (اطالعات) حراجی‬
‫مدیر سیستم‬
‫گزارشگیری‬
‫؟‬
‫درخواست بستن حراجی‪ /‬ارسال هشدار‬
‫فروشنده‬
)‫شناسایی اکتورها (ادامه‬
‫درخواست بستن حراجی» را‬/‫چه کسی مورد کاربرد «ارسال هشدار‬
‫فراخوانی میکند؟‬
‫ است و خودش هیچوقت مورد‬reactive ‫سیستم ما همیشه‬
‫کاربرد را آغاز نمیکند‬
‫زمان عامل محرک خارجی نسبت به سیستم است که مورد کاربرد‬
 !‫را آغاز میکند‬
‫(استفاده ا ‌ز ساعت سیستم یک تصمیم طراج برای به دست آوردن زمان‬
)‫است‬
39
‫آیا زمان اکتور است؟‬
http://www.ibm.com/developerworks/rational/library/content/RationalEdge
/jun02/DrUseCaseJun02.pdf
If we do, then suddenly, any nonhuman
trigger can be the Primary Actor for a use
case: Humidity, Dew Point, Temperature,
Light, and more!
We can capture all the system features
that surround the running of payroll.
setting the timetables for running payroll,
handling discrepancies, manual intervention,
and holidays
40
20
‫مورد کاربرد ایجاد حراجی‬
‫اکتور ‪ :‬کاربر (فروشنده)‬
‫پیش شرط ‪ :‬کاربر باید الگین کرده باشد‪( .‬بدیهی و قابل حذف است)‬
‫شرط موفقیت (پس شرط)‪ :‬لیست حراجیهای فروشنده به روز میشود (اهمیت زیادی برای بیان ندارد)‪.‬‬
‫رویداد اصلی ‪:‬‬
‫‪ .1‬فروشنده درخواست ایجاد حراجی به سیستم دهد‪.‬‬
‫‪ .2‬سیستم اطالعات حراجی را از فروشنده میپرسد‪ .‬این اطالعات شامل نام کتاب‪ ،‬نویسنده‪ ،‬نسخه ‪ ،‬سال‬
‫انتشار ‪ ،‬عکس جلد (اختیاری) ‪ ،‬وضعیت کتاب ‪ ،‬قیمت پایه برای فروش و گزینههای ممکن برای تحویل‬
‫کتاب (مانند حضوری‪ ،‬پیک و ‪ )...‬است‪.‬‬
‫‪ .3‬فروشنده اطالعات خواسته شده را به سیستم ارسال میکند‪.‬‬
‫‪ .4‬سیستم درستی اطالعات وارد شده را ارزیابی میکند و در صورت درستی اطالعات‪ ،‬حراجی را به‬
‫لیست حراجیهای فروشنده اضافه میکند‪ .‬همچنین زمان اعتبار حراجی را با توجه به زمان ایجاد آن‬
‫مقداردهی میکند‪.‬‬
‫‪41‬‬
‫مورد کاربرد ایجاد حراجی (ادامه)‬
‫رویداد فرعی ‪:‬‬
‫الف*‪ .‬فروشنده در هر یک از مراحل میتواند از مورد کاربرد خارج شود‪.‬‬
‫‪4‬الف‪ .‬اگر فیلدهای اجباری خالی بودند و یا مقدار درستی نداشتند (برای مثال حجم عکس فایل باید‬
‫کمتر از ‪ KB200‬باشد) ‪...‬‬
‫‪4‬ب‪ .‬اگر فروشنده حراجی نامعلومی داشته باشد ‪ ...‬قابل بیان به صورت پیششرط است که اگر به‬
‫صورت پیش فرض بیان شود‪ ،‬مورد کاربرد در این صورت اجرا نخواهد شد‬
‫‪42‬‬
‫‪21‬‬
‫مورد کاربرد خاتمه حراجی (توسط فروشنده)‬
‫در هنگام اجرای این مورد کاربرد‪ ،‬اعتبار حراجی ممکن است باقی مانده‬
‫باشد‬
‫در هنگام خاتمه حراجی‪ ،‬فروشنده میتواند به برنده و بازنده پیام دلخواه‬
‫بفرستد و یا پیام پیش فرضی ارسال شود‪.‬‬
‫ارسال ا ‌ز طریق ایمیل انجام شود‬
‫حراجی میتواند بدون برنده باشد (در صورت داشتن شرکت کننده‪ ،‬باید‬
‫به فروشنده هشدار داده شود)‬
‫به منظور مدیریت حراجیهای بسته نشده‪ ،‬پس از مدتی از خاتمه اعتبار‬
‫حراجی (پس از ارسال تعداد مشخصی هشدار)‪ ،‬از طرف مدیر خودکار‬
‫بدون برنده بسته میشود‬
‫‪43‬‬
‫مورد کاربرد خاتمه حراجی‬
‫اکتور آغازگر‪ :‬فروشنده‪ ،‬مدیر سیستم‬
‫پیش شرط ‪ :‬اگر توسط فروشنده آغاز شده باشد ‪ ،‬باید فروشنده در سیستم الگین کرده باشد و‬
‫حراجی متعلق به فروشنده باشد‪ .‬اگر از طرف مدیر سیستم (بهطور خودکار) آغاز شده باشد‪ ،‬باید‬
‫اعتبار حراجی و مهلت بستن به اتمام رسیده باشد‪.‬‬
‫پس شرط‪ :‬تغییر وضعیت حراجی به اتمام‬
‫رویداد اصلی ‪:‬‬
‫‪ .1‬فروشنده درخواست خاتمه حراجی مشخصی را به سیستم میدهد‪.‬‬
‫‪ .2‬سیستم اطالعات حراجی که شامل لیست پیشنهادهای دریافتی برای حراجی نیز است را به‬
‫فروشنده نشان میدهد‪.‬‬
‫‪ .3‬فروشنده از سیستم میخواهد با اعمال فیلتر مناسب به او در انتخاب کمک کند‪.‬‬
‫‪44‬‬
‫‪22‬‬
‫‪ .4‬سیستم لیست پیشنهادها را براساس فیلتر مشخص شده به فروشنده نشان میدهد‪.‬‬
‫‪ .5‬فروشنده یکی از پیشنهادها را به عنوان برنده انتخاب میکند و از سیستم میخواهد حراجی را با‬
‫این پیشنهاد برنده خاتمه دهد ‪.‬‬
‫‪ .6‬درصورتی که نحوه تحویل کاال به صورت حضوری باشد‪ ،‬شماره موبایل خریدار به فروشنده از‬
‫طریق پیامک ارسال میشود‬
‫‪ .7‬سیستم به شرکتکنندگان نتیجه حراجی را از طریق ایمیل اطالع میدهد‪.‬‬
‫مورد کاربرد خاتمه حراجی‬
‫رویداد فرعی ‪:‬‬
‫الف*‪ .‬فروشنده در هر یک از مراحل میتواند از مورد کاربرد خارج شود‪.‬‬
‫‪1‬الف‪ .‬در صورت خاتمه مهلت بستن حراجی‪،‬‬
‫‪ .1‬به طورخودکار از طرف مدیر سیستم درخواست بستن حراجی به سیستم دادمیشود‪.‬‬
‫‪ .2‬سیستم حراجی را بدون برنده خاتمه میدهد و ایمیلی به شرکت کنندگان ارسال میگردد‬
‫‪5‬الف‪ .‬فروشنده بدون تعیین برندهای‪ ،‬به سیستم درخواست خاتمه حراجی میدهد‪ .‬سپس سیستم به‬
‫فروشنده هشدار میدهد و ادامه از گام ‪ 7‬اصلی‬
‫‪6‬الف‪ .‬درصورتی که ارسال از طریق اسنپ باکس باشد ‪...‬‬
‫‪45‬‬
‫شناسایی اکتورها (ادامه)‬
‫آیا صفحه کلید ‪ /‬موس ‪ /‬پرینتر اکتور هستند ؟‬
‫صوری ابزاری اکتو ‌ر ماست که توسط برنامه ما ی‬
‫کنیل شو ‌د ؛ به‬
‫ی‌‬
‫د ‌ر‬
‫ی‬
‫عباری‌ دارای رفتا ‌ر باشد؛ محدودیت‌های ارتبایط م‌ا ر‌ا مشخص یم‌کند‪.‬‬
‫فعال‌کننده‌ها‌(‪ )actuator‬در‌سیستم‌های‌‪IoT‬‬
‫‪46‬‬
‫‪23‬‬
‫شناسایی اکتورها (ادامه)‬
‫آیا مشتری برای نرمافزار خرید در فروشگاه شهروند‪/‬هایپراستار‬
‫اکتور است؟‬
‫برای سیستم خرید آنالین هایپراستار چطور ؟‬
‫‪47‬‬
‫شناسایی اکتورها (ادامه)‬
‫آیا پایگاه داده اکتور است؟‬
‫پایگاه‌داده‌ممکن‌است‌جزی‌از‌سیستم‌باشد‌و‌در‌مواقیع‌اکتوری‌از‌‬
‫سیستم‌‬
‫هنگایم‌پایگاه‌داده‌اکتور‌است‌که‌از‌قبل‌وجود‌دارد‌و‌سیستم‌ما‌با‌آن‌‬
‫ی‬
‫تعامل‌دارد؛‌به‌عباری‌خارج از‌مرز‌سیستم‌قرار‌دارد‌‬
‫‪48‬‬
‫‪24‬‬
‫شناسایی مورد کاربرد‬
‫مختصر و مفید باشد ‪ :‬شامل جزئیات کافی برای نشان دادن‬
‫نیازمندی کاربر باشد‬
‫بر روی چیستی تمرکز داشته باشد ‪ ،‬نه چگونگی‬
‫سیستم ر‌ا به‌صورت جعبه سیاه ببیند ‪ .‬مثال ‪ :‬ذخیه سازی اطالعات به‬
‫صوری که پایگاه داده ج ‌ز سیستم‬
‫ی‌‬
‫جای ارسال داده به پایگاه داده (د ‌ر‬
‫باشد)‬
‫‪49‬‬
‫درشتدانگی و ریزدانگی مورد کاربرد مناسب باشد‪ .‬از شکستن‬
‫نابجای مورد کاربرد امتناع کنیم‪.‬‬
‫آیا الگین مورد کاربرد است ؟‬
‫‪BAD:‬‬
‫‪GOOD:‬‬
‫‪Login‬‬
‫‪AddUser‬‬
‫‪Login‬‬
‫‪AddUser‬‬
‫‪SetDevicePrefs‬‬
‫‪Landlord‬‬
‫‪Landlord‬‬
‫‪SetDevicePrefs‬‬
‫• مورد‌کاربرد‌با‌اهداف‌کاربر‌شناسای‌یم‌شوند‪.‬‬
‫ر‬
‫کاربر‌با‌شوع‌تعامل‌به‌دنبال‌تحقق‌هدف‌خود‌است‪.‬‬
‫•‬
‫ز‬
‫ز‬
‫ز‬
‫‌کردن‌است‌و‌یا‌از‌الگی‌هدف‌را‌دنبال‌یم‌کند‌؟‬
‫آیا‌هدف‌کاربر‌فقط‌الگی‬
‫•‬
‫‪50‬‬
‫‪25‬‬
‫درشتدانگی موردهای کاربرد‬
‫سطح مفید بیان مورد کاربرد برای تحلیل نیازمندیها چیست ؟‬
‫کدامیک از موارد زیر مورد کاربرد (معتبر) هستند؟‬
‫خرید‌کردن‌(دیج‌کاال)‬
‫درخواست‌سفر‌یا‌تایید‌راننده‌(اسنپ)‬
‫هاییاستار)‬
‫بازگرداندن‌کاال‌( ر‬
‫ز‬
‫الگی‌‬
‫اعمال‌کد‌تخفیف‌(ریحون)‬
‫حذف‌کارمند‬
‫آزمونهایی سرنگشتی وجود دارد که به ما در درک این سطح‬
‫کمک میکنند‬
‫‪51‬‬
‫درشتدانگی موردهای کاربرد (ادامه)‬
‫آزمون رئیس‪ :‬رئیس شما باید از پاسخ شما به سوال «تمام امروز‬
‫در حال انجام چه کاری بودید؟» خوشحال شود!‬
‫رئیس ‪ :‬تمام‌امروز‌در‌حال‌انجام‌چه‌کاری‌بودید‌؟‬
‫ز‬
‫الگی‌کردن‬
‫شما‪:‬‬
‫رئیس‪..... :‬‬
‫‪52‬‬
‫‪26‬‬
‫درشتدانگی موردهای کاربرد (ادامه)‬
‫رد شدن در این آزمون به این معناست که‬
‫ارزش افزوده‌ای ا ‌ز کا ‌ر شم‌ا به دست نیامده است!‬
‫ز‬
‫پایی‌ت ‌ر ا ‌ز سطح تحلیل نیازمندی‌ه‌ا باش ‌د ‌و‬
‫شای ‌د مور‌د کاربر‌د د ‌ر سطج‬
‫به علت تکرا ‌ر د ‌ر تعدادی مور‌د کاربرد‪ ،‬به عنوان مور‌د کاربر‌د شناسای‌‬
‫شده باشد‪)subfunction( :‬‬
‫ممکن است مواردی که توسط آزمون رئیس پذیرفته نمیشوند را‬
‫همچنان به دلیل پیچیدگی کار به عنوان مورد کاربرد درنظر‬
‫بگیریم‬
‫ز‬
‫سازمای‌‬
‫احرا ‌ز هویت مرکزی د ‌ر سیستم‌های‬
‫‪53‬‬
‫درشتدانگی موردهای کاربرد (ادامه)‬
‫آزمون فرآیند کسب و کار ابتدایی ‪ :‬کار در یک جلسه در چندین‬
‫گام انجام میشود و تاکید آن بر ارزش افزوده قابل مشاهده است‪.‬‬
‫فرآیند کسب و کار ابتدایی ()‪:)Elementary Business Process (EBP‬‬
‫کاری که فرد در یک مکان در یک زمان در پاسخ به یک رویداد کسب و‬
‫کار انجام می‌دهد که دارای ارزش افزوده (قابل اندازه‌گیری) در کسب و کار‬
‫است و داده‌های سیستم را در یک حالت پایدار قرار می‌دهد‪.‬‬
‫‪54‬‬
‫‪27‬‬
‫مثال‪ :‬ایجاد درخواست در نرمافزار استاد کار‬
‫‪55‬‬
‫درشتدانگی موردهای کاربرد (ادامه)‬
‫آزمون اندازه ‪ :‬باید ‪ 3‬تا ‪ 10‬صفحه اندازه (در فرمت رسمی) داشته‬
‫باشد‪ .‬اگر اندازه کم است شاید قوانین کسب و کار را به درستی‬
‫بررسی نکردهاید‪.‬‬
‫بهطور معمول مورد کاربرد دارای چندین گام است‪ .‬نباید گامی از‬
‫مجموعه گامهای مربوط به هم که یک هدف را دنبال میکنند به‬
‫عنوان مورد کاربرد درنظر بگیرید‪.‬‬
‫‪56‬‬
‫‪28‬‬
‫درشتدانگی موردهای کاربرد (ادامه)‬
‫کدامیک از موارد زیر مورد کاربرد هستند‬
‫ز‬
‫ی‬
‫‌و‌طوالی‌تر‌از‌یک‌‪ EBP‬است‬
‫بیشی‬
‫خرید‌کردن‌(دیج‌کاال)‪:‬‬
‫مورد‌کاربرد‌در‌سطح‌کسب‌و‌کار‌‬
‫درخواست‌سفر‌‪ /‬تایید‌راننده‌(اسنپ)‪ :‬از‌نظر‌رئیس‌خوبه‪‌،‬مثل‌یک‌‬
‫‪ EBP‬نیست‪‌،‬اندازه‌خوبه‌(هر‌دو‌با‌هم‌جز‌یک‌‪ EBP‬هستند)‬
‫هاییاستار)‪ :‬ا ‌ز نظ ‌ر رئیس خوبه‪ ،‬مثل یک ‪ EBP‬است‪،‬‬
‫بازگشت کاال ( ر‬
‫اندازه خوبه‬
‫الگی‪ :‬رئیس‌ر ز‬
‫اض‌نیست‬
‫ز‌‬
‫اعمال ک ‌د تخفیف (ریحون)‪ :‬ا ‌ز نظ ‌ر آزمون اندازه ر‌د یم‌شود‪ .‬گایم ا ‌ز مور‌د‬
‫کاربرد «ثبت سفارش» است‬
‫حذف کارمند‪ :‬؟؟؟ گایم ا ‌ز مور‌د کاربر‌د تسویه حساب است‬
‫‪57‬‬
‫درشتدانگی موردهای کاربرد (ادامه)‬
‫مواردی هستند که ممکن است توسط هیچ کدام از آزمونها قبول‬
‫نشوند ولیکن به عنوان مورد کاربرد شناسایی میشوند‬
‫پیچیدگ‌کار‌‪ :‬احراز‌هویت‌مرکزی‬
‫مراحیل که د ‌ر تعدادی مور‌د کاربر‌د عینا تکرا ‌ر یم‌شوند‪ :‬پرداخت ب‌ا کارت‬
‫اعتباری‪ ،‬جستجو‪ ،‬مشاهده اطالعات‬
‫‪58‬‬
‫‪29‬‬
)‫درشتدانگی موردهای کاربرد (ادامه‬
‫شرح رسمی مورد کاربرد‬
Use Case Name
Scope
Level
Primary Actor
Stakeholders and Interests
Start with a verb.
The system under design: “system” or “business”
"user-goal" or "subfunction"
Calls on the system to deliver its services.
Who cares about this use case, and what do they want?
Preconditions
What must be true on start, and worth telling the reader?
Success Guarantee
What must be true on successful completion, and worth
telling the reader.
A typical, unconditional happy path scenario of success.
Main Success Scenario
Extensions/Alternatives
Special Requirements
Technology and Data
Variations List
Frequency of Occurrence
Miscellaneous
Alternate scenarios of success or failure.
Related non-functional requirements.
Varying I/O methods and data formats.
Influences investigation, testing, and timing of
implementation.
Such as open issues.
59
‫اکتورها و مورد کاربردهای سیستم فروش‬
‫کتابهای دست دوم‬
‫چه اکتورها و مورد کاربردهایی برای آنان میتوانید تشخیص دهید‬
‫اکتورهای درگیر‬
‫مورد کاربرد‬
‫ایجاد حراجی‬
‫خریدار‬
‫اکتور آغازگر‬
‫فروشنده‬
‫بستن حراجی‬/‫خاتمه‬
‫ پیشنهاد دادن فروشنده (درصورت نیاز‬/ ‫پیوستن به حراجی‬
)‫به آگاهسازی وی‬
،‫به حراجی‬
‫اینها قسمتی از مورد کاربرد‬
‫ مشاهده (اطالعات) حراجی‬،‫جستجو‬
‫«پیوستن به حراجی» هستند و در‬
‫گزارشگیری‬
‫ یا الیه‬subfunctional ‫سطح‬
‫ ارسال‬/‫درخواست بستن حراجی‬
‫فروشنده دوم (اسالید بعدی) قابل تعریف‬
‫هشدار‬
‫هستند‬
‫خریدار‬
‫کاربر‬
‫مدیر سیستم‬
‫مدیر سیستم‬
60
30
‫نمودار مورد کاربرد‬
‫الیه دوم‬
‫الیه اول‬
‫>‬
‫>‪e‬‬
‫‪ud‬‬
‫>>‪<<initiate‬‬
‫‪l‬‬
‫‪nc‬‬
‫‪i‬‬
‫<<‬
‫‪< < in‬‬
‫‪c lude‬‬
‫>>‬
‫>>‪<<include‬‬
‫‪ud‬‬
‫>‪e‬‬
‫>‬
‫‪in‬‬
‫‪cl‬‬
‫<<‬
‫>>‬
‫‪de‬‬
‫‪c lu‬‬
‫‪< in‬‬
‫<‬
‫>>‪<<initiate‬‬
‫‪61‬‬
‫شناسایی ارتباط میان اکتورها و موردهای‬
‫کاربرد‬
‫مورد کاربرد به دو گروه دستهبندی میشوند‪:‬‬
‫الیه اول (‪ : )first tier‬خدمت‌های اصیل ارائه شده سیستم به کاربر‬
‫الیه دوم (‪ :)second tier‬زیرخدمت‌های‌ ا ‌ز خدمت‌های اصیل یم‌باشند‬
‫نمودار مورد کاربرد‪ ،‬سیستم را در الیه کارکرد مدل میکند و جریان‬
‫اطالعات را نشان میدهد‬
‫>>‪<<initiate‬‬
‫>>‪<<participate‬‬
‫>>‪ :<<extend‬پیاده‌سازی دیگری ا ‌ز مور‌د اصیل ر‌ا نشان یم‌دهد‪ .‬برای‬
‫جداسازی جریان رویدا ‌د ی‬
‫مستثت استفاده یم‌شود‬
‫ز‌‬
‫مشیک ‌و‬
‫قسمت ا ‌ز یک مور‌د کاربر‌د ر‌ا نشان یم‌دهد‪ .‬برای کاهش‬
‫ی‌‬
‫>>‪:<<include‬‬
‫کارهای تکرا ‌ر د ‌ر میان مور‌د کاربر‌د استفاده یم‌شود‪.‬‬
‫‪62‬‬
‫‪31‬‬
‫مقایسه رابطه شمول و گسترش‬
‫شمول >>‪<<include‬‬
‫مور‌د کاربر‌د پایه بدون موار‌د کاربر‌د شامل شده کامل نیست (رفتاری ا ‌ز‬
‫سیستم ر‌ا مشخص نیم‌کند)‬
‫گسترش >>‪<<extend‬‬
‫امکان افزودن ‪ /‬درج رفتا ‌ر جدیدی ر‌ا به مور‌د کاربر‌د پایه یم‌دهد‬
‫تغیی ندهیم‪.‬‬
‫‌‬
‫• یم‌خواهیم ت‌ا جای‌ که یم‌توانیم مور‌د کاربر‌د پایه ر‌ا‬
‫ی‬
‫یس است که د ‌ر‬
‫گسی ر ‌‬
‫مور‌د کاربر‌د پایه خو ‌د کامل است ویل دارای نقاط‬
‫آن رفتا ‌ر دیگری برای مور‌د کاربر‌د پایه ارائه یم‌شود‬
‫هاییاستار‬
‫• پرداخت ب‌ا کارت هدیه د ‌ر سیستم ر‬
‫‪63‬‬
‫مقایسه رابطه شمول و گسترش (ادامه)‬
‫‪64‬‬
‫‪32‬‬
‫مقایسه رابطه شمول و گسترش (ادامه)‬
‫‪65‬‬
‫مقایسه رابطه شمول و گسترش (ادامه)‬
‫‪66‬‬
‫‪33‬‬
‫سازماندهی مدل مورد کاربرد‬
‫الرمن‪ ،‬فصل ‪30‬‬
‫سازماندهی موارد کاربرد تاثیری در رفتار سیستم و نیازمندیها‬
‫ندارد‪ .‬به مدیریت ‪ ،‬درک و کاهش متن کمک میکند‬
‫تعمیم‌(‪ )generalization‬مورد‌کاربرد‌و‌اکتورها‬
‫تعریف‌رابطه‌های‌‪ extend‬و‌‪include‬‬
‫هر چه مستند موارد کاربرد ساده باشد بهتر است‬
‫ا ‌ز زیاده‌گوی‌ ‌و استفاده ا ‌ز لغات بیج‌ا خودداری کنی ‌د ‌و زمان زیادی برروی موار‌د‬
‫غیارزشمن ‌د هد ‌ر ندهید‬
‫‪67‬‬
‫تعمیم مورد کاربرد و اکتورها‬
‫کاربر‬
‫مدیریت کابران‬
‫حذف کاربر‬
‫اضافه کردن کاربر‬
‫تعمیم مورد کاربرد‬
‫‪68‬‬
‫‪34‬‬
‫ُفروشنده‬
‫تعمیم اکتورها‬
‫خریدار‬
‫تعمیم در مورد کاربرد و اکتورها (ادامه)‬
‫تعمیم اکتور ‪ :‬هنگامی که دو اکتور با مجموعه یکسانی از موارد‬
‫کاربرد تعامل دارند ‪ ،‬میتوانیم از تعمیم استفاده کنیم‪.‬‬
‫تعمیم مورد کاربرد‪ :‬هنگامی که مورد کاربرد بیان مشخصی از یک‬
‫توصیف کلیتر است‪ ،‬میتوانیم از تعمیم استفاده کنیم‪.‬‬
‫مورد کاربرد فرزند میتواند‬
‫قابلیت‌هایی را از پدر به ارث می‌برد‬
‫قابلیت‌هایی را اضافه می‌کند‬
‫قابلیت‌هایی را ‪ override‬می‌کند‬
‫‪69‬‬
‫تعمیم در مورد کاربرد و اکتورها (ادامه)‬
‫‪70‬‬
‫‪35‬‬
‫نمودار مورد کاربرد در مقابل مورد کاربرد‬
‫هدف از نمودار مورد کاربرد به تصویر کشیدن خدمات سیستم‬
‫بهطور اجمالی است‪( .‬مدل سازی سیستم در سطح کارکرد)‬
‫مورد کاربرد متنی از جزئیات تعامالت کاربر با سیستم برای‬
‫دریافت خدمت است‬
‫توصیف‌کامل‌مورد‌کاربرد‬
‫ترتیت‌از‌تعامالت‌سیستم‌و‌اکتورهاست‬
‫ی‬
‫چه‌اطالعای‌از‌مرز‌سیستم‌عبور‌یم‌کنند‬
‫‪71‬‬
‫مهندسی نیازمندی و مورد کاربرد‬
‫ابزار مورد کاربرد همیشه به درد بخور نیست‬
‫تعامل‌را‌به‌خوی‌نشان‌یم‌دهد‌‬
‫بیشتر برای سیستمهایی که متعاملند (واکنشی هستند) مناسب‬
‫است تا سیستمهایی که الگوریتمی و یا پردازشگر داده هستند‬
‫(نمیتوانند فعالیتهای سیستم را نشان دهند)‪.‬‬
‫‪72‬‬
‫‪36‬‬
‫سازماندهی مستندات نیازمندی‬
‫چشم انداز‬
‫واژهنامه‬
‫قواعد دامنه‬
‫نیازمندیهای تکمیلی‬
‫مورد کاربرد‬
‫)‪Software Requirement Specification (SRS‬‬
‫‪73‬‬
‫سازماندهی مستندات ‪( ...‬ادامه)‬
‫مورد کاربرد جنبههای رفتاری سیستم (نیازمندیهای کارکردی) را‬
‫پوشش میدهند‪.‬‬
‫مورد کاربرد همانند محور‪ ،‬نیازمندیهای مختلف را به یکدیگر‬
‫وصل میکند (قسمتی از سند توصیف نیازمندی است)‬
‫خارج ا ‌ز سند‪ ،‬به برنامه‌ریزی پروژه‪،‬‬
‫تعیی ساختا ‌ر تیم و ‪ ...‬کمک یم‌کند‬
‫ز‌‬
‫‪74‬‬
‫‪37‬‬
‫]‪Writing Effective Use Cases [http://alistair.cockburn.us/get/2465‬‬
‫زمان تهیه معماری اولیه و قرارداد‬
‫‪Elaborate on next 10-15% of‬‬
‫‪use cases‬‬
‫‪Vision and Business Case‬‬
‫‪Use-Case Model: 10% of the use cases (i.e., those UCs that are architecturally‬‬
‫‪significant , high business value , high risk ) will be analyzed in detail‬‬
‫‪Supplementary Specification: key non-functional requirements that have will have‬‬
‫‪a major impact on the architecture‬‬
‫‪Glossary‬‬
‫در هنگام نوشتن گامهای موردهای کاربرد (تحلیل مورد‬
‫‪Risk‬‬
‫کاربرد)‪ ،‬معماری و نیازمندیهای غیرکارکردی درنظرگرفته‬
‫‪Iteration Plan‬‬
‫‪ 75‬میشوند‬
‫مستندات دیگر‬
‫چشم انداز (‪)Vision‬‬
‫ایده کالن پروژه را بهطور خالصه بیان میکند‪:‬‬
‫چرا‌قرار‌است‌نوشته‌شود؟‌‬
‫چه‌مشکلی‌را‌حل‌می‌کند‌و‌اهدافی‌را‌دنبال‌می‌کند؟‬
‫برتری‌آن‌بر‌سیستم‌رقبا‌چگونه‌است؟‬
‫چگونه‌در‌آینده‌تکمیل‌شود‬
‫بیان‌‪Feature‬های‌سیستم‌(قابلیت‌های‌کارکردی‬
‫قابل‌مشاهده‌سیستم‌در‌سطحی‌پایین‌تر‌از‌مورد‌کاربرد)‬
‫با‌استفاده‌از‌تست‌«سیستم‌می‌تواند‌‪ X‬را‌انجام‌دهد»‬
‫سیستم‌می‌تواند‌‪ payment authorization‬را‌انجام‌دهد‬
‫‪76‬‬
‫‪38‬‬
‫الرمن‪ ،‬فصل ‪7‬‬
‫مستندات دیگر (ادامه)‬
‫قوانین کسب و کار (‪ :)business rules‬عملکرد یک دامنه یا کسب و کار‬
‫را بیان میکند‪ .‬آنها نیازهای سیستم نیستند بلکه بر نیازها تاثیر‬
‫میگذارند‪ .‬سیاستهای کسب و کار ‪ ،‬قوانین فیزیک و قوانین دولتی از‬
‫قوانین رایج کسب و کار هستند‪:‬‬
‫ز‬
‫قوانی‌مالیات‌برارزش‌افزوده‬
‫ی‬
‫ز‬
‫قوانی‌تخفیف‌برای‌مشییان‪/‬کارمندان‬
‫قوانی ز‬
‫ز‬
‫‌فییک‌برای‌شبیه‌سازی‬
‫واژه نامه‬
‫لغت‌های‌مورد‌استفاده‌(لغات‌مشابه‌(‪))aliases‬‬
‫فرمت‪‌،‬مقادیر‌ممکن‪...،‬‬
‫‪77‬‬
‫جمعبندی‬
‫مورد کاربرد ابزاری برای جمع آوری نیازمندیهای کارکردی‬
‫سیستم است‬
‫برای سیستم‌های متعامل مناسب است‬
‫رشج از ترتیب انجام مراحل برای رسیدن کارب ‌ر به هدفش است‬
‫نمودار مورد کاربرد سیستم را در سطح کارکرد مدل میکند‬
‫‪78‬‬
‫‪39‬‬
Download