مشخصات کاربردی

یک **مشخصه کاربردی**  (همچنین مشخصات، سند مشخصات کاربردی ( FSD )، مشخصات مورد نیاز کاربردی)
در مهندسی سیستم و توسعه نرم‌افزار، یک سند است که عملکردهایی را مشخص می‌نماید که یک سیستم یا یک جزء تشکیل دهنده باید اجرا نماید (اغلب بخشی از یک مشخصات الزامات) (ISO/IEC / IEEE 24765-2010)

مستندسازی معمولاً توصیف می‌کند که کاربر سیستم و همچنین مشخصات درخواست شده ورودیها و خروجیها (به‌عنوان مثال سیستم نرم‌افزاری) به چه نیاز دارند. یک مشخصه کاربردی واکنش فنی تری به یک سند الزامات تطبیقی به‌شمار می‌رود، به‌عنوان مثال سند الزامات محصول "PRD" [ارجاع لازم است]. بنابراین آن نتایج مرحلهٔ تجزیه و تحلیل الزامات را سرعت می‌دهد. در سیستمهای پیچیده تر سطوح چندگانه از مشخصات کاربردی معمولاً در کنار یکدیگر قرار دارند، به‌عنوان مثال در سطح سیستم روی سطح ماژول یا روی سطح جزئیات فنی.

## بررسی اجمالی
یک مشخصه کاربردی عملکرد درونی سیستم پیشنهادی را تعریف نمی‌کند و شامل مشخصه کاربردی نحوهای که عملکرد سیستم اجرا می‌شود، نمی‌شود. درعوض، بر اینکه عوامل مختلف خارجی (به‌عنوان مثال افرادی که از برنامه استفاده می‌کنند، لوازم جانبی یا سایر کامپیوترها) چگونه ممکن است در حال تعامل با سیستم «ملاحظه شوند» تمرکز می‌نماید.

یک لازمهٔ کاربردی در یک مشخصه کاربردی ممکن است به شرح زیر باشد:

هنگامی که کاربر بر روی دکمهٔ OK کلیک می‌کند، گفتگو بسته می‌شود و تمرکز به پنجره اصلی به حالت قبل از نمایش این گفتگو بازمی‌گردد.

چنین لازمهای تعاملی بین یک عامل خارجی (کاربر) و سیستم نرم‌افزاری را توصیف می‌کند. هنگامی که کاربر با کلیک کردن بر روی دکمه OK وارد سیستم می‌شود، برنامه با بسته شدن پنجره گفتگو حاوی دکمه OK پاسخ می‌دهد (یا باید پاسخ دهد).

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

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

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

### روشها
یکی از روش‌های محبوب نوشتن یک سند مشخصات کاربردی شامل طراحی یا ارائه یک فریم ساده یا تصویرهای دقیق و از لحاظ گرافیکی طراحی شده UI است. پس از اینکه این امر انجام شد، و نمونه‌های صفحه نمایش توسط همه ذینفعان تأیید شدند، عناصر گرافیکی می‌توانند شماره گذاری شوند و دستور العملهای نوشته شده می‌توانند برای هر عدد در نمونهٔ صفحه نمایش اضافه شوند. به‌عنوان مثال، یک صفحه ورود به سیستم می‌تواند فیلد نام کاربری با برچسب '۱' و فیلد رمزعبور با برچسب ' ۲ ' داشته باشد و سپس هر عدد را می‌توان در نوشتن برای استفاده توسط مهندسان نرم‌افزار و بعدها برای اهداف آزمایش بتا اعلام نمود تا اطمینان حاصل شود که عملکرد مورد انتظار بوده‌است. مزیت این روش این است که جزئیات اضافی بی‌شماری را می‌توان به نمونه‌های صفحه نمایش پیوند داد.

## نمونه‌هایی از مشخصات کاربردی
* - ساختار گذرگاه پیشرفته میکروکنترلر
* - رابط ابزار با نرم‌افزار ثابت توسعه‌پذیر
* - مشخصاتی با چند راه‌انداز سیستم
* - مشخصات بلادرنگ برای جاوا
* - مشخصات UNIX واحد

## انواع مشخصات توسعه نرم‌افزار
* - مشخصات بیت (ابهام‌زدایی)
* - مشخصات طراحی
* - مشخصات طراحی تشخیصی
* - مشخصات طراحی محصول
* - مشخصات الزامات نرم‌افزاری

## جستارهای وابسته
* محک‌زنی
* فرایند توسعه نرم‌افزار
* اعتبار و درستی‌سنجی نرم‌افزار

## منابع
 
* 
* https://en.m.wikipedia.org/wiki/Functional_specification

## پیوند به بیرون
* Painless Functional Specifications, 4-part series by Joel Spolsky
* ISO/IEC/IEEE 24765:2010 Systems and software engineering — Vocabulary

رده:مستندسازی نرم‌افزار
رده:مهندسی سامانه‌ها
رده:ویکی‌سازی رباتیک
رده:طراحی نرم‌افزار