SRS) Software Requirement Specification) یک مستند برای بیان راه حل هایی است که با استفاده از آن ها می توانیم به نیازمندیهای مطرح شده کارفرما که در قالب مستند CSR مطرح شده است، پاسخ مناسب دهیم. در این مستند بیان جزئیات بخشهای پروژه، امکانات و ویژگیهای هر بخش به تفکیک و سطوح دسترسی آن از نظر انواع کاربرانی که در آینده باید از پروژه مدنظر استفاده نمایند، الزامی است. در نهایت این مستند با بیان دقیق ارتباط بین بخش ها با استفاده از تنظیم انواع فلوچارتها، USE Caseها، Class Diagramها و هرگونه نمودار دیگری که عملکرد هر بخش و ارتباطات آنها را بهتر بیان میکند، تمام خواهد شد.
در زیر به بخش های این مستند به صورت خلاصه و البته تعریف هرکدام از آنها، اشاره شده است:
بخش اول: معرفی پروژه
۱) هدف
در این قسمت هدف تهیه مستند و مخاطبان مستند شرح داده خواهد شد.
۲) محدوده پروژه
در این بخش نام سامانه به همراه کاربرد و هدف کلی سامانه و همچنین مزایا و اهداف که مشخص کننده اندازه پروژه و اندازه جامعه کاربری سامانه هست شرح داده خواهد شد
۳) تعاریف، اصطلاحات و اختصارات
همه کلماتی که باید در طول مستند با استفاده از آن، به یک معنی و کاربرد خاصی برسیم در این قسمت شرح داده خواهد شد. فقط باید توجه داشت که از این کلمات در کل مستند بهصورت عیناً مشابه استفاده شود.
۴) منابع و مراجع
در این بخش منابعی که در هر جایی از مستند به آن ارجاع داده شده و یا از آنها استفاده شده ذکر میگردد.
۵) نگاه اجمالی
بخشبندی مستند بهصورت کلی در یک نگاه در این قسمت مشخص میشود. به عبارتی خوانندهی مستند باید بتواند با مطالعه این قسمت از بخش بندی و دستهبندی کلی مستند را بهصورت اجمالی مطلع شود.
بخش دوم: شرح کلی
در این بخش عواملی را که روی نیازمندیهای پروژه تأثیر گذار هستند توضیح داده میشوند البته این بدان معنی نیست که نیازمندیها را در این بخش تعریف کنیم زیرا در ادامه بخش مربوط به شرح نیازمندیها در مستند خواهیم داشت. به عبارتی در این قسمت باید صرفاً بهصورت تیتر وار به نیازمندیها اشاره شود تا عملاً خواننده مستند یک دید کلی نسبت به پروژه و امکانات آن داشته باشد.
۱) دورنمای محصول یا محیط سیستم
در این قسمت بهصورت کلی همه سیستمها، زیر سیستمها، سیستمهای خارجی و داخلی و بهصورت کلی همه عواملی که مستقیم و غیرمستقیم با پروژه و نیازمندهای آن در ارتباط هستند، شرح داده خواهد شد.
در واقع یک چشم انداز بیرونی از سیستم ارائه میشود. و رابطهای استفاده از سیستم مشخص میگردند. این بخش را میتوان صرفاً با یک توضیح متنی کامل نمود و یا آنکه در قالب موارد نیز مورد بررسی قرار گیرد:
۲) رابطهای کاربری: در این بخش توضیحی در خصوص راههای ارتباطی کاربر و سامانه ارائه میشود(مانند پنل مدیریتی و بخش پرتال یا سایت، نسخه موبایل) و همچنین جوانب استفاده از سایت و موارد سهولت در استفاده شرح داده خواهد شد.
۳) رابطهای سخت افزاری: مثال این مورد میتواند ارتباط با یک GSM Modem باشد.
۴) رابطهای نرم افزاری: منظور ارتباط با سایر برنامههای نرم افزاری هست.
۵) رابطهای ارتباطی: منظور استفاده از پروتکلهای شبکهای هست. مثلاً ممکن است در یک پروژه نیازمند ارتباط با FTP یا MailServer باشیم. موارد ایمیلی، SMS و مشابه در این بخش ذکر میگردد.
۶) فعالیتها و کارکردهای سامانه
این بخش خلاصهایی از کارکردها و عملیات اصلیایی که در پروژه، مدنظر است را در بر خواهد گرفت. مثلاً اگر یک سیستم حسابداری مدنظر ما باشد باید در این بخش ” نگهداری حسابهای مشتری” و “آماده سازی صورتحساب مشتری ” را در کارکردهای اصلی درج کرده و به جزییات موارد اشاره نکنیم. باید در حدی واضح بنویسیم که هر شخصی که برای اولین بار این مستند را میخواند کارکردهای سیستم برایش قابل درک باشد. مثلاً بخش محصولات، فروشگاه و …
۷) ویژگیهای کاربران سیستم
در این بخش مشخصهها و ویژگیهای کاربران سیستم شرح داده خواهد شد. در واقع مشخص میکند چه کاربرانی نیاز به استفاده از این پروژه دارند و بهصورت کلی از چه قسمتهایی نیز باید در جهت رسیدن به هدفشان استفاده نمایند. در واقع این بخش همانند بخش معرفی مخاطبان یک کتاب که این کتاب برای چه کسانی نوشته شده است هست.
۸) محدودیتها
در این بخش به شرح نیازمندیهایی که توسعه نرم افزار را وابسته به عوامل خارجی خواهد کرد که عملاً دست توسعه دهنده را در توسعه امکانات میبندد، میپردازیم.
۹) فرضیات و وابستگیها
فاکتورها و مواردی که روی سیستم تأثیرگذار هستند مشخص میکنیم. فرضیاتی را بیان میکنیم که تغییر آنها در عملکرد نیازمندیهای ما تأثیر بگذارد مثلاً فرض اینکه در صورتی که ارتباط با وب سرویس خاصی برقرار نبود برخی امکانات نیز در دسترس نخواهد بود و یا نحوه سرویس دهی متفاوت خواهد بود.
بخش سوم: مشخصه نیازها
۱) رابطههای بیرونی
در این بخش مواردی که سامانه نرم افزاری از طریق آن ورودی گرفته و یا به آنها خروجی میدهد، بهطور کامل باید شرح داده شود. در این بخش تمامی رابطهای که پیشتر لیست شدند باید شرح داده شوند. مثلاً ویژگیهای رابطهای کاربری. ممکن است برخی از موارد در بخشهای دیگر توضیح داده باشد، اما در این قسمت بخشهایی از نیازمندی مدنظر است که به گرفتن ورودی یا خروجی ارتباط دارد.
۲) امکانات سامانه
در این قسمت به شرح ریز و دقیق بخشهای هر نیازمندی میپردازیم. جهت آشنایی با فرمت شرح هر نیازمندی چند مورد بهصورت نمونه در این قسمت درج شده است.
۲٫۱) سؤالات متداول
شرح: در این قسمت لیست سؤالات متداولی که کاربران میپرسند به تفکیک و دسته بندی قابلمشاهده خواهد بود.
ویژگیهای این قسمت
فیلدهای قابلمشاهده در این قسمت عبارتاند از
۳) نیازمندیهای طراحی و استانداردها
۴) ویژگیهای سامانه
۴٫۱) امنیت
مواردی که از نظر امنیتی مدنظر است بهصورت ریز در این قسمت باید درج شود، حتی به شرح انتظاراتی که در این قسمت از بحث امنیت خواهیم داشت باید بهصورت ریز و دقیق اشاره شود.
۴٫۲) سئو
مواردی که از نظر سئو مدنظر است بهصورت ریز در این قسمت باید درج شود، حتی به شرح انتظاراتی که در این قسمت از بحث سئو خواهیم داشت باید بهصورت ریز و دقیق اشاره شود.
۴٫۳) بهینه سازی نمایش در مرورگرهای مختلف
مواردی که از نظر بهینه سازی نمایش در مرورگرهای مختلف مدنظر است بهصورت ریز در این قسمت باید درج شود، حتی به شرح انتظاراتی که در این قسمت از بحث بهینه سازی نمایش در مرورگرهای مختلف خواهیم داشت باید بهصورت ریز و دقیق اشاره شود.