نمودار مورد کاربرد (Use Case Diagrams) چه کاربردی دارد؟
در زبان مدل سازی یکپارچه ی UML، به طور کلی پنج دیاگرام برای مدل سازی ماهیت پویای سیستم در دست داریم که نمودار Use case یکی از آن ها می باشد. حال از آنجایی که نمودار مورد کاربرد (use case) ذاتا پویا می باشد، باید تعدادی عامل خارجی و داخلی برای برقراری تعامل و برهمکنش دخیل باشند.
این agent های داخلی و خارجی (عوامل) تحت عنوان عملگر یا actor معرفی می شوند. نمودارهای مورد کابرد از عملگرها، موارد کابرد (use case) و رابطه ی میان آن ها تشکیل می شود. نمودار نام برده جهت مدل سازی سیستم ها و subsystem های برنامه ی کاربردی استفاده می شود. یک نمودار use case مجرد تنها قادر به نمایش گذاشتن یک قابلیت یا عملیات قابل اجرای سیستم می باشد.
از این رو به منظور ارائه ی تصویری جامع از کل سیستم، ملزوم به استفاده از چندین نمودار use case هستیم.
مورد استفاده ی نمودار use case
همان طور که تصریح شد، نمودار مورد کابرد کارکرد ارائه شده توسط یک سیستم را در قالب عملگرها (Actor) و اهداف آنها که به صورت مورد کاربرد نشان داده میشوند و نیز وابستگی بین موردهای کاربرد را مدل می نماید.
مقصود از بکاربردن نمودار use case نمایش گرافیکی جنبه های پویای یک سیستم می باشد. اما این تعریف بیش از حد عمومی بوده و هدف این نمودار را به طور دقیق تشریح نمی کند. چهار نمودار دیگری که در UML مورد استفاده قرار می گیرند (statechart، collaboration، sequence و activity) نیز همین کاربرد را دارند.
به این خاطر هدف دقیق تری که برای نیل به آن طراحی شده را مورد بررسی و پژوهش قرار می دهیم تا دلیل تفاوت آن از دیگر دیاگرام ها مشخص گردد.
نمودارهای use case به منظور شناسایی نیازهای که قرار است توسط سیستم مورد نظر برآورده شود و همچنین موارد استفاده ی آن، مورد استفاده قرار می گیرد. این نیازها غالبا مربوط به طراحی هستند. بنابراین زمانی که سیستمی برای شناسایی قابلیت ها و عملیات قبل اجرای آن مورد تجزیه و تحلیل قرار می گیرد، دیاگرام های use case آماده سازی شده و عملگرهای (actor) آن شناسایی می شوند.
پس از اینکه گام اول تکمیل شد، نمودار use case برای ارائه ی نمای خارجی مدل سازی می شود.
اکنون می توان موارد استفاده ی نمودارهای use case را به طور خلاصه تشریح نمود:
۱٫ شناسایی موارد کاربرد سیستم و نیازهایی که قرار است برآورده سازد.
۲٫ ارائه ی نمای خارجی از سیستم.
۳٫ شناسایی عوامل داخلی و خارجی که سیستم را تحت تاثیر قرار می دهند.
۴٫ نمایش تعامل و interaction مابین موارد کاربرد در قالب عملگرها (کارکرد ارائه شده توسط یک سیستم را در قالب بازیگران (Actor) واهداف آنها که به صورت مورد کاربرد نمایش داده میشوند و وابستگی بین موردهای کاربرد، مدلسازی میکند.)
نحوه ی ترسیم نمودار use case
نمودار use case نمایی از عملگرها که در تعامل با سیستم نقش هایی را ایفا می کنند، ارائه می دهد.
نمودارهای use case برای تجزیه و تحلیل سطح بالای موارد استفاده ی سیستم بکار می روند. بنابراین هنگامی که نیازهای سیستم تجزیه و تحلیل می شوند، تمامی قابلیت ها در نمودارهای use case نمایش داده می شوند. با توجه به آنچه گفته شد، use case ها چیزی به جز قابلیت ها و کارکردهای سیستم نیستند که به صورت سازمان یافته رسم می شوند. دیگر جز متعلق به نمودار use case، عملگر یا actor ها هستند. actor را می توان عملگرهایی نامید که با سیستم تعامل برقرار می کند.
این actor ها می توانند یک کاربر انسان، برنامه های داخلی یا خارجی باشند.
پس پیش از اقدام به ترسیم نمودار use case، لازم است آیتم های زیر را شناسایی نمود:
۱٫ قابلیت هاو کارکردها که به صورت use case نمایش داده شوند.
۲٫ actor (عملگرها)
۳٫ رابطه ی میان use case ها و actor ها
نمودار use case جهت نمایش موارد استفاده و کارکردهای عملی سیستم مورد استفاده قرار می گیرد. بعد از شناسایی آیتم های بالا، رهنمودها و دستورالعمل های زیر را برای ترسیم نمودار کارآمد use case رعایت نمایید:
۱٫ اسم use case یا مورد کاربرد از اهمیت ویژه ای برخوردار است. اسم بایستی طوری انتخاب شود که عملیات قابل اجرا توسط سیستم را بیان نماید.
۲٫ اسم مناسبی برای actor ها انتخاب نمایید.
۳٫ رابطه ها و همچنین رابطه های وابستگی (dependency) می بایست به صراحت در نمودار نمایش داده شوند.
۴٫ لزومی ندارد تمامی رابطه ها را در نمودار نمایش دهید. آنچه از بالاترین اهمیت برخوردار است، به تصویر کشیدن کارکردهای سیستم می باشد.
۵٫ هرجایی که لازم بود از یادداشت ها و note ها برای توضیح بخش های نمودار استفاده کنید.
در زیر نمونه ای از نمودار use case را مشاهده می کنید که تصویری از سیستم مدیریت سفارش ارائه می نماید. با مشاهده ی نمودار سه کارکرد سیستم مورد نظر (Order، SpecialOrder و NormalOrder) و یک عملگر یا actor که customer یا همان مشتری می باشد. دو use case (مورد کاربرد) SpecialOrder و NormalOrder از use case ای به نام Order منشعب می شوند. نتیجتا رابطه ی بین آن ها از نوع extend می باشد. نکته ی مهم دیگری که باید درنظر داشت، شناسایی boundary (مرز ) سیستم است که در تصویر حاضر نمایش داده شده است. Actor که در این نمودار customer نام دارد بیرون از دیاگرم قرار گرفته زیرا یک کاربر خارجی سیستم محسوب می شود.
کجا از نمودار use case استفاده می شود؟
همان طور که قبلا شرح داده شد، در کل پنج نوع نمودار وجود دارد در زبان UML وجود دارد که با استفاده از آن ها نمای پویا از سیستم را مدل سازی می کنیم. تمامی مدل ها یک کارکرد خاص دارند. می توان گفت که این کارکردها درواقع نگاه به سیستم از زوایای مختلف است.
برای آشنایی با چگونگی عملکرد سیستم، بایستی انواع نمودار را مورد استفاده قرار داد. نمودار use case تنها یکی از مجموعه نمودار است و هدف آن شناسایی کارکردها و actor ها می باشد.
نمودارهای use case رخدادهای سیستم و جریان آن ها را نمایش می دهد، اما در به تصویر کشیدن نحوه ی پیاده سازی آن ها هیچ نقشی را ایفا نمی کند. نمودار use case را یک جعبه ی سیاه درنظر بگیرید که در آن فقط ورودی، خروجی و عملکرد جعبه سیاه برای ما مشخص می باشد.
این نمودارها در سطوح بالای طراحی بکار گرفته می شوند. سپس این طراحی سطح بالا بارها و بارها مورد بازبینی قرارگرفته و تصحیح می شود تا تصویری کاربردی و کامل از سیستم بدست آید. یک دیاگرام use case که به صورت کارامد و سازمان یافته ترسیم شده باشد، precondition ها، post condition ها و استثنات را نمایش می دهد. المان های نام برده همگی در ایجاد test case ها یا موارد آزمایش، به هنگام اجرای تست بکار می روند.
اگرچه use case ها گزینه های مناسبی برای مهندسی معکوس و روبه جلو نمی باشند، اما با کمی تنظیم می توان آن ها را برای مهندسی معکوس و روبه جلو بکار برد.
در مهندسی رو به جلو، می توان به کمک نمودارهای use case موارد آزمایش (test case) را شناسایی کرده و در مهندسی معکوس موارد کاربرد (use case) را جهت استخراج جزئیات کارکردها از یک برنامه ی از پیش ساخته و آماده استفاده کرد.
اهداف استفاده از نمودار use case در زیر شرح داده شده است:
۱٫ تجزیه و تحلیل کارکردها (عملیاتی که قرار است انجام دهد و نیازهایی که برآورده سازد) و نیز طراحی سطح بالا.
۲٫ مدل سازی بستر یا context سیستم.
۳٫ مهندسی معکوس.
۴٫ مهندسی رو به جلو.