سند نیازمندی های نرم افزار

مقدمه:
با استفاده از نقشه گوگل میتوانید، بهترین مسیر رسیدن به مقصد خود در یک کشور و یا شهر جدید پیدا کنید. به همین ترتیب، در تولید نرم افزار ، بعید است که بدون اسناد نیازمندیهای نرم افزاری، محصول مناسبی و مطابق با نیاز بسازید.
مستند کردن نیاز ها باعث میشود که اعضای تیم چه طراح چه سهامداران، در یک خط فکری قرار بگیرند و همگی هدف شفافی را انتخاب و در راستای آن قدم بردارند.
برای جلوگیری از به وجود آمدن از مشکلات، مدیران محصول و توسعهدهندگان نرمافزار معمولا از یک الگوهای از پیش ساخته شده یا به عبارتی از Templateها استفاده میکنند تا در روند مستندات برای همه تا میزان قابل توجهی قابل فهم کند.
پیش از اینکه با یک الگو نیازمندی نرمافزاری آشنا بشیم، باید ابتدا درک کنیم که دقیقا یک سند نرمافزاری چیست؟ و چه مواردی باید در این سند گنجانده شود.
سند نیازمندیهای نرمافزار چیست؟
سند نیازمندیهای نرم افزار که بعضا با عنوان “سند مشخصات نیازمندیهای نرمافزار” (Software Requirements Specification) که به اختصار سند SRS نیز شناخته میشود، سندی است که چالشها، ویژگیها و آنچه که نیاز است تا به واسطه این نرمافزار برطرف شود را توصیف میکند. این اسناد بایستی پیش از آغاز یک پروژه تهیه شوند.
سند نیازمندیهای نرمافزار توسط چه افرادی باید نوشته شود؟
با توجه به میزان فنی بودن، سند نیازمندیهای نرمافزار توسط تیم فنی نوشته میشود. البته بایستی همکاران غیر فنی، کاربران و همچنین افرادی که به نحوی در روند توسعه این محصول نرم افزاری دخیل هستند نوشته شود.
چرا نوشتن سند نیازمندیهای نرمافزار بسیار مهم است؟
اسناد نیازمندیهای نرمافزار در واقع یک نقشه از تمام ویژگیهای (Features) محصول نرمافزاری را به تمامی اعضای تیم نشان میدهد. این نقشه محصول کمک میکند تیم و فنی و غیر فنی، انتظارات یکسانی از نرمافزار را داشته باشند. از این رو باعث می شود به عنوان مثال بعد از ۱ سال و اتمام پروژه، محصول ساخته شده مطابق با نیاز های مشتریان نهایی نرمافزار باشند.
سند نیازمندیها برای اضافه یا خروج عضو جدید به تیم توسعه محصول و کارفرما مورد نیاز است
برخی پروژه های نرمافزاری، بازه زمانی تولید بیشتر ۲ سال را دارند و یا در پی فرآیند پشتیبانی و نگهداری (Maintenance) افراد جدید به تیم اضافه میشوند و یا از تیم خروج میکنند.
این سند باعث میشود شخص جدیدی (فنی و غیر فنی) بتواند در جریان اصلی قرار بگیرد و بتواند در کوتاه مدت به صورت اثر بخش به تیم کمک کند.
مواردی که در این سند نیازمندی های نرم افزار گنجانده شده است.
با توجه نرمافزار شما میتواند موضوع های بیشتری باشد و یا کمتری باشد. که با انجام دادن پروژه می توان آن را کامل نمود.
۱٫ مقدمه (Introduction):
۱٫۱ هدف (Purpose) انتظارات برای نتیجه محصول:
۱٫۲ مخاطب مورد نظر (Intended Audience) نرم افزار برای چه کسی استفاده می شود؟ کاربر نهایی کیست؟ آیا این نرم افزار به صورت داخلی در یک شرکت یا خارجی مورد استفاده قرار می گیرد؟
۱٫۳ استفاده در نظر گرفته شده (Intended Use) نرم افزار برای چه کاری استفاده می شود؟ چه مشکلی را حل می کند؟
۱٫۴ حوزه (دامنه) نرم افزار را توضیح می دهیم.(Scope) اهداف و اهداف اصلی چیست؟ ارتباط آنها با اهداف شرکت چگونه است؟
۱٫۵ تعاریف و کلمات اختصاری (Definitions and Acronyms) مروری بر تعاریفی که خواننده قبل از خواندن باید درک کند.
توضیحات کلی (Overall Description) چه چیزی میسازیم؟ و برای چه کسی می سازیم؟
۲٫۱ نیازهای کاربر (User Needs) برای این نرم افزار:
۲٫۲ فرضیات و وابستگی ها(Assumptions and Dependencies) چه فرضیاتی وجود دارد که می تواند در رویکرد خطایی ایجاد کند؟ آیا پروژه به عوامل دیگری که می تواند در توسعه نرم افزار تأثیر بگذارد متکی است؟
ویژگی ها و الزامات سیستم (System Features and Requirements)
۳٫۱ نیازمندیهای عملیاتی (Functional Requirements) که برای ساخت نرم افزار ضروری است.
۳٫۲ الزامات رابط خارجی (External Interface Requirements) آیا الزامات UX و UI وجود دارد که باید هنگام ساخت به خاطر سپرد؟
۳٫۳ ویژگی های سیستم(System Features) که برای نرمافزار لازم است.
۳٫۴ نیازمندیهای غیر عملیاتی (Nonfunctional Requirements) به عنوان مثال بودجه، تیم و غیره