de_DEen_USes_ESfa_IRfr_FRhi_INid_ID

رویکرد مورد استفاده: راهنمای جامع برای ثبت نیازهای عملکردی در مهندسی نرم‌افزار

Table of Contents hide

در محیط در حال تکامل مهندسی نرم‌افزار، یک روش همواره مورد آزمون زمان بوده است: روش رویکرد مورد استفاده. این روش به طور گسترده در روش‌های سنتی، آگیل و ترکیبی پذیرفته شده است و راهکاری قدرتمند و متمرکز بر کاربر برای تعریف و ارتباط نیازهای عملکردی ارائه می‌دهد. ریشه در تفکر مبتنی بر اهداف و رفتار خارجی سیستم دارد و رویکرد مورد استفاده فاصله بین ذینفعان تجاری و تیم‌های فنی را پر می‌کند—به این ترتیب که آنچه ساخته می‌شود واقعاً ارزش ایجاد می‌کند.

این روش توسط ایوار یاکوبسون در دهه 1990 معرفی شد و توسط پیشگامانی مانند الیستر کاکبرن بهبود یافت، و هم‌اکنون هم بسیار مرتبط است—به ویژه با تطبیق‌های مدرنی مانند استفاده از مورد 2.0که اصول برش‌بندی آگیل را برای تحویل تکراری ادغام می‌کند.

این مقاله شما را از طریق چرخه کامل رویکرد مبتنی بر مورد استفاده، از درک اولیه مسئله تا مشخص‌سازی جزئیات سناریوها همراهی می‌کند و راهنمایی عملی، بهترین روش‌ها و بینش‌های واقعی ارائه می‌دهد.


1. از مسئله شروع کنید: درک حوزه و اهداف

هر پروژه نرم‌افزاری با کد یا معماری شروع نمی‌شود—بلکه با یک مسئلهیا یک نیاز تجاری.

مثال‌ها:

  • مشتریان شکایت از پردازش کند از سفارش دارند.

  • یک بیمارستان با برنامه‌ریزی نامناسب جلسات بیمار مواجه است.

  • یک پلتفرم تجارت الکترونیک نرخ بالای ترک سبد خرید را مشاهده می‌کند.

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

🔍 سوالات کلیدی برای پرسیدن:

  • کی هستند کاربران اصلییا موجودیت‌های خارجی که با سیستم تعامل دارند؟

  • چه اهدافمی‌خواهند به چه موفقیتی برسند؟

  • چه ارزشسیستم به آنها چه چیزی ارائه می‌کند؟

✅ بر «چه» تمرکز کنیدنه «چگونه»
به سرعت به راه‌حل‌های فنی نپردازید. هدف این است که درک کنیدقصد کاربرنه منطق داخلی.

این مرحله پایه‌ای برای تمام مراحل بعدی است—با اطمینان از اینکه سیستم حول نیازهای واقعی کاربر طراحی شودنیازهای واقعی کاربرنه فرضیات.


2. شناسایی و نام‌گذاری موارد استفاده

زمانی که درک خوبی از حوزه داشتید، وقت آن است که موارد استفاده را شناسایی کنیدموارد استفاده.

📌 مورد استفاده چیست؟

یک مورد استفاده به این صورت است:

  • یکمتمرکز بر هدفتوضیحی متمرکز بر هدف از اینکه یک بازیگر چگونه از سیستم برای دستیابی به یک نتیجه مشخص، قابل مشاهده و ارزشمند استفاده می‌کند.

  • با استفاده از یکعبارت فعلیاز دیدگاه بازیگر (مثلاً«سفارش آنلاین دادن»«برداشت نقدی»«برنامه‌ریزی جلسه»).

  • متمرکز بررفتار قابل مشاهده کاربر، نه ساختارهای داده داخلی یا الگوریتمها.

✅ بهترین روشها برای شناسایی موارد استفاده (سبک کاکبورن):

اصل راهنمایی
سطح هدف کاربر هر مورد استفاده باید نماینده یک هدف واحد و کامل باشد که کاربر بتواند در طی ۵ تا ۱۵ دقیقه تعامل آن را به انجام برساند.
اندازه مناسب از موارد استفاده بسیار کوچک (مثلاً «وارد کردن نام کاربری») یا بسیار بزرگ (مثلاً «اجرای کل کسب‌وکار») خودداری کنید.
تعداد موارد استفاده هدف ۲۰ تا ۵۰ مورد استفاده در یک سیستم متوسط باشد—به اندازه‌ای که پوشش کافی داشته باشد، اما نه آنقدر زیاد که مدیریت‌پذیر نباشد.
الگوی مورد استفاده از فرمت زیر استفاده کنید: «به عنوان [اقدام‌گر]، می‌خواهم [هدف] تا [منفعت].»این امر ارتباط و ارزش تجاری را تأیید می‌کند.
اولویت‌بندی موردهای استفاده را بر اساس تأثیر تجاری، خطر و وابستگی رتبه‌بندی کنید.

❌ اشتباهات رایجی که باید اجتناب شوند:

  • برخورد باعملکردهای داخلی سیستم (مانند به‌روزرسانی پایگاه داده) به عنوان موارد استفاده.

  • لیست کردنعملیات CRUD به صورت جداگانه به جای اینکه آنها را در زیر اهداف معنادار گروه‌بندی کنید.

  • ایجاد موارد استفاده‌ای که توصیف کنندجزئیات داخلی سیستمبه جای نتایج کاربر.

💡 نکته حرفه‌ایاگر یک مورد استفاده نتواند به یک ذینفع غیرفنی به زبان ساده توضیح داده شود، احتمالاً بیش از حد فنی یا به درستی تعریف نشده است.


۳. ایجاد نمودار مورد استفاده: یک نمای کلی بصری

با شناسایی موارد استفاده، مرحله بعدی نمایش آنها در یکنمودار موارد استفاده UML.

این نمودار به عنوان یکفهرست سطح بالاوابزار ارتباطی—نه مشخصات اصلی. همانطور که مارتین فولر به طور معروف اشاره کرد:«نمودار مشخصات نیست؛ متن است.»

🧩 عناصر اصلی نمودار موارد استفاده:

عنصر توضیحات
اکتورها به صورت شکل‌های میله‌ای نمایش داده می‌شوند. می‌توانند کاربران انسانی، سیستم‌های خارجی یا حتی تایمرها/رویدادها باشند.
موارد استفاده اُل‌ها با عبارات فعل-اسم برچسب‌گذاری شده‌اند (مثلاًبرداشت نقدی).
مرز سیستم مستطیلی که تمام موارد استفاده را احاطه می‌کند—محدوده سیستم را تعریف می‌کند.
وابستگی‌ها خطوط پر که اکتورها را به موارد استفاده‌ای که آنها را آغاز می‌کنند متصل می‌کنند.
رابطه‌ها (به طور محدود استفاده کنید)
– شامل کردن پیکان نقطه‌چین با«شامل کردن»برچسب. نشان‌دهنده یک زیرروند الزامی است. (مثلاًپردازش پرداختدر داخلثبت سفارش)
– تمدید پیکان نقطه‌چین با«تمدید»برچسب. نشان‌دهنده رفتار اختیاری و شرطی است. (مثلاًاعمال تخفیفتمدید می‌شودثبت سفارشتحت شرایط خاص.)
– تعمیم وراثت بین بازیگران یا موارد استفاده (مثلاًمشتری → مشتری پرمیوم).

🖌️ مراحل رسم یک نمودار مورد استفاده واضح:

  1. شناسایی و رسم بازیگرانبر اساس نقش‌های موجود در سیستم.

  2. لیست موارد استفاده اصلیکه از اهداف کاربر مشتق شده‌اند.

  3. رسم ارتباطاتبین بازیگران و موارد استفاده مربوطه.

  4. اضافه کردن مرز سیستمبرای تعیین حوزه کاربرد.

  5. ارتباطات شامل/تمدید را فقط در صورت ساده‌سازی پیچیدگی اضافه کنید—از استفاده بیش از حد خودداری کنید.

📌 به یاد داشته باشید: نمودار باید ساده، قابل خواندن و به عنوان یک نقشه—نه یک نقشه دقیق.


۴. نوشتن توضیحات دقیق موارد استفاده: قلب فرآیند

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

📝 ساختار استاندارد (بر اساس الگوی «کامل پوشیده» آلیستر کاکبورن):

بخش هدف
نام مورد استفاده برچسب واضح، فعل-اسمی (مثلاً برداشت نقدی)
شرکت‌کنندگان شرکت‌کنندگان اصلی و فرعی
دامنه سیستمی که مدل‌سازی می‌شود (مثلاً سیستم بانکی ATM)
سطح هدف کاربر، خلاصه یا زیرعملکرد
شرکت‌کنندگان و علاقه‌مندی‌ها کی به این مورد استفاده اهمیت می‌دهد و چرا؟
شرایط پیش از شروع وضعیت دنیا قبل از شروع مورد استفاده
شرایط پس از اتمام حالت تضمین شده پس از اتمام موفقیت‌آمیز
سناریوی اصلی موفقیت‌آمیز (مسیر شاد) دنباله مرحله به مرحله اقدامات منجر به دستیابی به هدف
گسترش‌ها / جریان‌های جایگزین شاخه‌ها در نقاط کلیدی (مثلاً 3a، 5b)
استثناها / مدیریت خطاها مسیرهای بازیابی برای شکست‌ها
نیازهای ویژه نیازهای غیرعملکردی (امنیت، عملکرد، انطباق)
فرکانس / مسائل باز چند بار استفاده می‌شود؛ سوالات حل‌نشده

✅ مثال: برداشت نقدی (سیستم ATM)

سناریوی اصلی موفقیت‌آمیز

  1. مشتری کارت خود را وارد دستگاه ATM می‌کند.

  2. سیستم کارت را اعتبارسنجی می‌کند و از کاربر درخواست PIN می‌کند.

  3. مشتری PIN خود را وارد می‌کند.

  4. سیستم PIN را اعتبارسنجی می‌کند و منوی اصلی را نمایش می‌دهد.

  5. مشتری گزینه «برداشت نقدی» را انتخاب می‌کند.

  6. سیستم از کاربر درخواست مبلغ برداشت می‌کند.

  7. مشتری مبلغ را وارد می‌کند.

  8. سیستم موجودی را بررسی می‌کند و نقدی را صادر می‌کند.

  9. سیستم کارت را خارج می‌کند.

  10. مشتری نقدی و کارت خود را می‌گیرد.

گسترش‌ها (جریان‌های جایگزین/استثناها)

  • 3a. PIN نامعتبر → سیستم پیام خطا را نمایش می‌دهد و امکان تلاش مجدد را فراهم می‌کند (تا حداکثر 3 بار).

  • 8a. موجودی کافی نیست → سیستم پیام را نمایش می‌دهد و به منوی اصلی بازمی‌گردد.

  • 8b. ماشین پرداخت خودکار پول ندارد → سیستم عذرخواهی نمایش داده و به منو بازمیگردد.

  • 9a. مشتری کارت را به موقع مناسب خارج میکند → سیستم کارت را قفل کرده و از امنیت اطلاع میدهد.

🎯 نکته: گسترشها با شماره مرحله و پسوندها (مثلاً8a5b) برای حفظ ردیابی.


توضیح سناریوها: مفاهیم و راهنمایی‌ها

سناریوها کاربردهای واقعی را زنده میکنند. اینها داستانهای مشخصی از نحوه تعامل کاربران با سیستم هستند.

🔑 مفاهیم کلیدی:

مفهوم توضیح
مسیر موفق پرکاربردترین و موفق‌ترین جریان — آنچه زمانی که همه چیز به درستی پیش میرود رخ میدهد.
جریانهای جایگزین تنوعهایی که همچنان به هدف می‌انجامند (مثلاً پرداخت از طریق کارت اعتباری در مقابل کارت بانکی).
جریانهای استثنا اشتباهات یا خطاها — قابل بازیابی یا نه.
گسترشها در مقابل کاربردهای جداگانه ازگسترشبرای تغییرات شرطی همین هدف؛ از کاربردهای جداگانه برای اهداف متفاوت استفاده کنید.
سبک مکالمه‌ای به صورت مکالمه بنویسید:شخصیت → سیستم → شخصیت → سیستم…
نگاه جعبه سیاه فقط رفتار قابل مشاهده را توصیف کنید—هرگز پیاده‌سازی داخلی را نگویید.
تمرکز بر هدف هر مرحله باید به سمت هدف پیشرفت کند یا انحراف را مدیریت کند.

✅ بهترین روش‌ها برای نوشتن موارد استفاده:

  • مراحل را به طور واضح شماره‌گذاری کنیدو افزودن‌ها را برای خوانایی ایجاد کنید.

  • از صوت فعالو زمان حال.

  • مراحل را حفظ کنید اتمی—هر کدام باید مسئولیت واضحی داشته باشند.

  • جزئیات ویژه رابط کاربری را اجتناب کنید مگر اینکه ضروری باشند (مثلاً «کلیک بر دکمه ارسال می‌کند» → بهتر: «درخواست ارسال می‌کند»).

  • برای شرکت‌کنندگان—خوانندگان غیرفنی باید جریان را درک کنند.

  • تکرار کنید—بررسی با کاربران و بهبود بر اساس بازخورد.

  • برای آگیل برش دهید: در مورد استفاده 2.0، موارد استفاده بزرگ را به برش‌ها—افزایش‌های حداقلی و ارزشمند که در چرخه‌های کوتاه قابل ارائه هستند.

  • محدودیت جزئیات—شروع سبک، تنها در صورت نیاز جزئیات رسمی اضافه کنید.


چرا این جریان مهم است: ارزش استراتژیک موارد مورد استفاده

رویکرد مورد استفاده تنها یک تکنیک مستندسازی نیست—این یکچارچوب سیستماتیکبرای ساخت نرم‌افزار بهتر.

✅ مزایای رویکرد مبتنی بر مورد استفاده:

مزیت توضیح
کاهش گسترش دامنه مرزهای واضح و اهداف تعیین‌شده از بروز بیش‌ازحد ویژگی‌ها جلوگیری می‌کنند.
نیازهای گم‌شده را آشکار می‌کند بررسی سناریوها، موارد لبه و وابستگی‌های پنهان را آشکار می‌کند.
تیم‌ها را همگام می‌کند توسعه‌دهندگان، آزمون‌کنندگان، طراحان و تحلیلگران کسب‌وکار از درک مشترکی برخوردارند.
از آزمون‌ها حمایت می‌کند جریان‌های اصلی موفقیت و جریان‌های جایگزین به آزمون‌های طبیعی تبدیل می‌شوند.
**راهنمای طراحی UI و معماری سناریوهای مورد استفاده به طور مستقیم به طراحی وایرفریم‌ها، جریان‌های ناوبری و مسئولیت‌های مؤلفه‌های سیستم کمک می‌کنند.
تحویل آگیل را ممکن می‌سازد استفاده از نسخه 2.0 امکان تقسیم موارد استفاده بزرگ به ویژگی‌های تدریجی و قابل ارسال را فراهم می‌کند—این امر برای توسعه تکراری عالی است.
ارتباط را بهبود می‌بخشد نمودارهای بصری و توضیحات به زبان ساده، امکان مشارکت و تأیید توسط ذینفعان غیرفنی را آسان می‌کند.

تکامل‌های مدرن: نسخه 2.0 مورد استفاده و ادغام با آگیل

اگرچه ابتدا در زمینه پروژه‌های سنتی آبشاری توسعه یافته بود، رویکرد مورد استفاده به گونه‌ای تکامل یافته که در محیط‌های آگیل موفق عمل می‌کندمحیط‌های آگیل.

🔄 مورد استفاده 2.0 چیست؟

مقدمه‌ای توسط آلیستر کاکبرن و بهبود یافته توسط مربیان معاصر،مورد استفاده 2.0رویکرد کلاسیک را با اصول آگیل بهبود می‌بخشد:

  • تقسیم: بزرگ‌ترین موارد استفاده را به بخش‌های کوچک‌تر و ارزشمند تقسیم کنید (مثلاً«سفارش دادن» → «افزودن آیتم به سبد خرید»«ورود اطلاعات ارسال»«انتخاب روش پرداخت»).

  • تمرکز بر ارزش: هر بخش ارزش عملیاتی قابل اندازه‌گیری ارائه می‌دهد و می‌تواند به صورت مستقل آزمون و اجرا شود.

  • بهبود تکراری: موارد استفاده از طریق حلقه‌های بازخورد تکامل می‌یابند، نه از طریق مستندات سفت و سخت اولیه.

  • داستان‌سرایی مشارکتی: موارد استفاده به عنوان پایه‌ای برای داستان‌های کاربر، معیارهای پذیرش و موارد آزمون عمل می‌کنند.

🎯 مثال: به جای نوشتن یک مورد استفاده یکپارچه «مدیریت موجودی»، آن را به بخش‌های زیر تقسیم کنید:

  • افزودن محصول جدید

  • به‌روزرسانی موجودی محصول

  • حذف آیتم فاقد موجودی

  • تولید گزارش موجودی کم

هر بخش می‌تواند اولویت‌بندی، توسعه و تحویل در یک اسپرینت انجام شود.


زمان مناسب برای استفاده از موارد استفاده (و زمانی که نباید استفاده کرد)

✅ موارد استفاده برای این موارد ایده‌آل هستند:

  • سیستم‌های پیچیده با چندین عملگر و تعاملات.

  • پروژه‌هایی که نیاز به هم‌آمیزی قوی ذینفعان دارند (مثلاً بهداشت و درمان، مالی، دولت).

  • سیستم‌هایی که جریان‌های کاربری پیچیده و مستعد خطا هستند (مثلاً بانکداری، تجارت الکترونیک).

  • تیم‌های آگیل که به دنبال جمع‌آوری نیازمندی‌های ساختاریافته اما انعطاف‌پذیر هستند.

❌ از موارد استفاده خودداری کنید وقتی:

  • سیستم ساده است (مثلاً یک وبسایت استاتیک ساده).

  • نیازها از پیش به خوبی تعریف شده و پایدار هستند (مثلاً برنامه‌های CRUD با منطق حداقلی).

  • شما از توسعه مبتنی بر رفتار خالص (BDD) با سناریوهای سبک Gherkin استفاده می‌کنید (اگرچه حتی در این حالت، موارد مورد استفاده می‌توانند به آنها راهنمایی کنند).

⚠️ هشدار: از اDocumentation بیش از حد خودداری کنید. موارد مورد استفاده باید باشندسبک‌وزنوفقط به اندازه کافی—نه جامع و نه بیش از حد رسمی.


نتیجه‌گیری: یک تکنیک بی‌پایان برای توسعه نرم‌افزار مدرن

رویکرد مورد استفاده همچنان یکی از موثرترین روش‌ها برای ثبت نیازهای عملکردی است—نه به این دلیل که قدیمی است، بلکه به این دلیل که اساساً متمرکز بر انسان استبه طور اساسی متمرکز بر انسان.

با تمرکز براهداف کاربررفتار قابل مشاهدهوسناریوهای واقعی دنیای واقعیاین امر تضمین می‌کند که نرم‌افزار بر اساس فرضیات ساخته نشود، بلکه بر اساس نیازهای واقعی.

چه به عنوان کار در یک پروژه آبشاریپروژه آبشاری سنتییا در یک محیط ترکیبیمحیط ترکیبییا در یک چرخه آگیل سریعچرخه آگیلرویکرد مبتنی بر مورد استفاده مسیری روشن، منطقی و همکارانه از مشکل به راه‌حل ارائه می‌دهد.


✅ لیست نهایی: به کارگیری مؤثر رویکرد مورد استفاده

مرحله اقدام
1. مشکل را درک کنید با کاربران صحبت کنید. نقاط درد و اهداف تجاری را شناسایی کنید.
2. اهداف کاربر را شناسایی کنید مورد استفاده را با استفاده از «به عنوان [اکتور]، می‌خواهم [هدف] تا [منفعت]» الگو.
3. یک نمودار مورد استفاده ایجاد کنید از UML برای نمایش دامنه، اکتورها و روابط کلیدی استفاده کنید. آن را ساده نگه دارید.
4. توضیحات دقیق مورد استفاده بنویسید از یک الگوی ساختاریافته استفاده کنید. روی مسیر شاد تمرکز کنید، سپس گسترش‌ها و استثناها.
5. سناریوها را توضیح دهید از زبان مکالمه‌ای استفاده کنید. مراحل را اتمی و متمرکز بر هدف نگه دارید.
6. برش‌دهی برای آگیل (در صورت امکان) مورد استفاده بزرگ را به بخش‌های کوچک و ارزشمند تقسیم کنید.
7. بررسی و بازبینی کنید با ذینفعان به اشتراک بگذارید. بر اساس بازخورد بهبود بخشید.

فکر نهایی: چیز درست را به درستی بسازید

«چیزی که فکر می‌کنید می‌خواهند بسازید، نسازید. چیزی که واقعاً نیاز دارند بسازید.»

رویکرد مورد استفاده به شما کمک می‌کند دقیقاً همین کار را انجام دهید—با اینکه نرم‌افزار خود را در اهداف واقعی کاربران، تعاملات قابل مشاهده و درک مشترک پایه‌گذاری کنید.

از سادگی شروع کنید. بر ارزش تمرکز کنید. با هدف بازبینی کنید.

و به یاد داشته باشید:

🌟 بهترین نرم‌افزار فقط کار می‌کند—بلکه منطق دارد.
و رویکرد مورد استفاده یکی از قدرتمندترین ابزارها برای وقوع این امر است.

This post is also available in Deutsch, English, Español, Français, English and Bahasa Indonesia.