PDA

View Full Version : آیا ایجاد یک Use Case بدون حضور Actor صحیح است؟



orion188
دوشنبه 23 مهر 1386, 21:55 عصر
من در امر مهندسی نرم افزار یک تازه وارد هستم، بنا بر این ممکنه یک سری اصطلاحات رو به اشتباه به کار ببرم:

برنامه ای رو فرض کنید که مهمترین کارهایی که میخواد انجام بده، بدون نیاز به دخالت یک شخص از خارج از سیستمه. برای مثال فرض کنید برنامه ای قراره در مدت زمان اجرا، اطلاعات رو از یک سنسور خاص بخونه، کلی پردازش روی آطلاعات دریافتی انجام بده، و نتیجه رو به صورت تقریبا بلادرنگ (real time) روی صفحه نمایش بده.

من میخوام بدونم در دیاگرام use case چطور میشه چنین چیزی رو مدل کرد؟ آیا واقعا این مهمترین عملکرد سیستم باید در این دیاگرام پنهان بمونه؟ یا اینکه میشه یک use case بدون هیچگونه دخالتی از طرف actor براش در نظر گرفت؟

پیشاپیش ممنونم

smhoseyni
سه شنبه 24 مهر 1386, 08:22 صبح
مدل use-case برای نشان دادن نیازمندی‌های رفتاری سیستم از دید کاربران و ناظران خارجی است. بنابراین فقط نیازمندی‌های رفتاری را مدل می‌کند که از دید کاربران و ناظران خارجی قابل مشاهده باشد. در واقع خصوصیت رفتاری که از دید کاربر (ناظر خارجی) قابل مشاهده نباشد نباید به صورت use-case مدل شود. پس همیشه لازم است هر use-case حداقل یک actor داشته باشد.
اما ابهامی که شما دارید در اغلب موارد به دلیل عدم شناخت درست actor ها ایجاد می‌شود.


فرض کنید برنامه ای قراره در مدت زمان اجرا، اطلاعات رو از یک سنسور خاص بخونه، کلی پردازش روی آطلاعات دریافتی انجام بده، و نتیجه رو به صورت تقریبا بلادرنگ (real time) روی صفحه نمایش بده.


مثلا در همین مثالی که ذکر کردید دو actor وجود دارد :
1- سنسوری که نرم‌افزار داده‌ها را از آن می‌خواند.
2- کاربری که قرار است نتیجه بلادرنگ پردازشها رو از روی صفحه نمایش ببینه (قطعا اطلاعاتی که شما روی صفحه نمایش، نمایش می‌دهید قرار است مورد استفاده یک کاربر قرار بگیرد دیگر).

اگر کمی دقت کنید در تمامی موارد نیازمندیهای رفتاری، عوامل خارجی وجود دارند که اطلاعات ورودی برای آن خصوصیت رفتاری را فراهم می‌کنند یا از نتایج آن به نحوی بهره مند می‌شوند؛ اینها actor هستند.

orion188
سه شنبه 24 مهر 1386, 12:02 عصر
سلام
ممنون از پاسختون
1- میتونید برای همین مثال خاص نمونه ای از طراحی use case رو به طور کلی بیان کنید؟ چون من دقیقا نمیدونم چه use case ای برای اون سنسور در نظر گرفته میشه.
2- من احساس میکنم این دیاگرام مناسبی برای پوشش عملکرد این سیستم نیست. فکر میکنید کدوم یک از دیاگرامهای موجود (یا کدوم مجموعه دیاگرام) میتونن این سیستم رو به بهترین شکل مدل کنن؟

smhoseyni
سه شنبه 24 مهر 1386, 13:56 عصر
1- میتونید برای همین مثال خاص نمونه ای از طراحی use case رو به طور کلی بیان کنید؟ چون من دقیقا نمیدونم چه use case ای برای اون سنسور در نظر گرفته میشه.

قاعدتا باید اطلاعات بیشتری از نیازمندیهای رفتاری سیستم ارائه کنید. ولی در حد خیلی کلان سنسورها و کاربرانی که قرار است از نتایج پردازش‌ها مطلع شوند Actor هستند و عملیات مختلف پردازش یا نظارت use-case خواهند بود (پاسخ من به اندازه سوال شما کلی است :لبخندساده:)


2- من احساس میکنم این دیاگرام مناسبی برای پوشش عملکرد این سیستم نیست. فکر میکنید کدوم یک از دیاگرامهای موجود (یا کدوم مجموعه دیاگرام) میتونن این سیستم رو به بهترین شکل مدل کنن؟
هر کدام از دیاگرام ها برای توصیف جنبه خاصی بکار می روند. Ue-case برای توصیف نیازمندی‌ها است، ولی برای توصیف چگونگی طراحی از نمودارهای دیگری استفاده می‌شود. دیاگرام دیگری که می‌تواند برای توصیف نیازمندی‌ها (در واقع برای هر use-case ) استفاده شود activiy diagram است که فکر می‌کنم نیاز شما را بیشتر برآورده سازد.