مورد کاربرد )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