با استفاده از نقشه گوگل میتوانید، بهترین مسیر رسیدن به مقصد خود در یک کشور و یا شهر جدید پیدا کنید. به همین ترتیب، در تولید نرم افزار ، بعید است که بدون اسناد نیازمندیهای نرم افزاری، محصول مناسبی و مطابق با نیاز بسازید.
مستند کردن نیاز ها باعث میشود که اعضای تیم چه طراح چه سهامداران، در یک خط فکری قرار بگیرند و همگی هدف شفافی را انتخاب و در راستای آن قدم بردارند.
هر چقدر تولید و توسعه محصول نرمافزار میتواند جذاب باشد، نوشتن مستندات نیازمندی پروژه به شدت خسته کنند است.
معمولا این مدل مستندات شامل متنهای طولانی و اصطلاحات فنی بسیاری هستند که فهمیدن و درک کردن بعضی متنها را دشوار میکند. همین موضوع باعث میشود که تفسیرهای غلطی برداشته شود که باعث به وجود آمدن مشکلاتی بسیار شود.
برای جلوگیری از به وجود آمدن از این قبیل مشکلات، مدیران محصول و توسعهدهندگان نرمافزار معمولا از یک الگوهای از پیش ساخته شده یا به عبارتی از 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): نیازهای غیر عملیاتی به عنوان مثال بودجه ، تیم و غیره
[…] سند نیازمندیهای نرم افزار چیست؟ چه مواردی باید در سند ن… […]