این مطلب بخشی از آموزش اصول برنامه نویسی شی گرا هست.
پس از تمرکز بر روی نیازمندی های برنامه که مشخص میکند برنامه یا سیستم چه کاری باید انجام دهد،این بار به سراغ کاربران سیستم میرویم و اینکه چگونه میتوانند هدف خاصی را در سیستم انجام دهند. به این امر، موارد استفاده یا use case گفته میشود، یک روش خاص برای نوشتن use case وجود ندارد و میتوان به چندین روش این کار را انجام داد.
use case به سه چیز اساسی نیاز دارد: عنوان (Title)، که یک هدف را مشخص میکند، شخصی که برای دستیابی به آن هدف با برنامه تعامل برقرار میکند، که در اینجا به آن بازیگر اصلی (Primary Actor) میگوییم و روند اجرا یا مراحل لازم برای تحقق هدف که به آن سناریو هدف (Success Scenario) میگوییم.
عنوان مورد استفاده باید یک عبارت کوتاه با یک فعل معلوم باشد که هدفی را توصیف میکند. خُب به عنوان یک فضانورد، اولین هدف گرم کردن یک وعده غذایی خوشمزه است. (پیشنهاد میکنم آموزش های قبل رو ببینید) برای این مورد، use case میتواند اینگونه بیان شود : وعده غذایی گرم. دقت کنید که عنوان باید کوتاه و ساده باشد.
دلیل اینکه از کلمه بازیگر بجای کاربر استفاده میکنیم این است که ما اغلب باید دقیقاً مشخص کنیم چه کسی با سیستم تعامل دارد. بازیگر علاوه بر اینکه ممکن است کاربر باشد، میتواند فرد خاصی مانند مشتری یا کارمند نیز باشد. بنابراین بازیگران همه انسانهایی هستند که میتوانند با برنامه تعامل داشته باشند. نه تنها انسان ها، هر موجودیت خارجی ای که بر روی سیستم عملی انجام میدهد، میتواند بازیگر محسوب شود، از جمله سایر سیستم های رایانه ای.
یک راه نوشتن سناریو، نوشتن آن به عنوان یک پاراگراف واحد است، مثلا برای use case ما که وعده غذایی گرم فضانوردان است، سناریو به این صورت است: "فضانورد بسته غذا را در دستگاه قرار میدهد، سیستم بسته غذا را تشخیص میدهد، سیستم بسته را به مدت معینی گرم میکند، سیستم به فضانورد، آماده شدن بسته غذایی را به وسیله پیجر فضایی اطلاع میدهد و در آخر فضانورد بسته غذایی را از دستگاه خارج میکند."
هدف نوشتن کوتاه و ساده سناریو با استفاده از زبان روزمره و غیر فنی میباشد، طوریکه کاربر معمولی هم آن را بفهمد.
راه دیگر نوشتن سناریو نوشتن آن به عنوان لیستی از موارد میباشد، مثلا برای use case ما اینگونه میباشد.
1. فضانورد بسته غذایی را در دستگاه قرار میدهد.
2. سیستم بسته غذایی را تشخیص میدهد.
3. سیستم بسته غذایی را به مدت معینی گرم میکند.
و بقیه موارد...
با توجه به شرایط، میتوانیم از عبارت های مختلف با جزییات متفاوت استفاده کنیم.
مثال ما یک سناریو موفق و ساده را نشان میدهد، اما اگر چیزی درست پیش نرفت، آن وقت سناریو ما چگونه خواهد بود؟ خُب use case معمولا برای توصیف عملیات موفقیت آمیز نوشته میشود، اما میتوانیم مراحل اضافه و یا جایگزین نیز برای مواقعی که خطا پیش میآید نیز داشته باشیم. بطور مثال برای زمانی که دستگاه بسته غذایی را تشخیص نمیدهد یا زمانی که پیجر فضایی خراب شده باشد.
در صورت نیاز میتوانیم جزییات بیشتری نیز اضافه کنیم، بطور مثال میتوانیم پیش شرط هایی برای شروع use case اضافه کنیم که از قبل باید انجام شوند. در مورد مثال ما یک پیش شرط میتواند این باشد که فضانورد حداقل یک بسته غذایی را از قبل شناسایی کرده باشد.
میتوانیم با اضافه کردن بخش های بیشتری مانند پس شرط ها، بازیگران ثانویه و ... یک use case کامل داشته باشیم. معمولا یک قالب آماده برای use case کامل، بصورت Word و یا PDF موجود است که شما میتوانید آن را تکمیل کنید.
دقت کنید که استفاده نابجا از یک قالب use case کامل، میتواند باعث ایجاد مشکلاتی نیز بشود. اگر در حال مدیریت یک پروژه بزرگ هستید که افراد مختلفی از سراسر جهان در آن مشغول به کار هستند، استفاده از یک use case کامل میتواند مفید باشد، اما در بیشتر موارد داشتن یک use case ساده خیلی کارامدتر خواهد بود.
به عنوان یک قانون اساسی شما نباید بیشتر از چند روز روی نوشتن use case زمان بگذارید. اگر در مراحل اولیه تمام اطلاعات لازم برای نوشتن use case را ندارید اشکالی ندارد، use case شما میتواند در آینده تغییر کند و تکمیل شود.
اگر علاقه بیشتری به نوشتن use case ها دارید میتوانید کتاب Writing Effective Use Cases نوشته Alistair Cockburn Cockburn را مطالعه کنید. در این کتاب نمونه های موفق و اشتباهات رایج در نوشتن use case ها بررسی شده است.
قسمت قبلی : آموزش اصول برنامه نویسی شی گرا : چالش دستگاه پخش موسیقی
قسمت بعدی : در حال تکمیل ...