مقدمه:
با استفاده از نقشه گوگل میتوانید، بهترین مسیر رسیدن به مقصد خود در یک کشور و یا شهر جدید پیدا کنید. به همین ترتیب، در تولید نرم افزار ، بعید است که بدون اسناد نیازمندیهای نرم افزاری، محصول مناسبی و مطابق با نیاز بسازید.
مستند کردن نیاز ها باعث میشود که اعضای تیم چه طراح چه سهامداران، در یک خط فکری قرار بگیرند و همگی هدف شفافی را انتخاب و در راستای آن قدم بردارند.
برای جلوگیری از به وجود آمدن از مشکلات، مدیران محصول و توسعهدهندگان نرمافزار معمولا از یک الگوهای از پیش ساخته شده یا به عبارتی از 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) به عنوان مثال بودجه، تیم و غیره
افراد مورد نیاز در پروژه سمت پیمانکار:
مدیر پروژه برای ایجاد هماهنگی بین پیمانکار و کارفرما
مسئول عقد قرارداد و انجام امور مالی و بیمه ای کارشناسان پروژه و ارسال صورت حساب
کارشناس تجزیه و تحلیل: جهت دریافت نیازمندی ها از پیمانکار، بررسی و ارسال برای توسعه دهنده، ایجاد تغییرات در لایه پایگاه داده
کارشناس توسعه دهنده Front End
کارشناس توسعه دهنده Back End
کارشناس تست نرم افزار
کارشناس پشتیبانی
کارشناس استقرار
افراد مورد نیاز در پروژه سمت کارفرما:
کاربر استفاده کننده و ورود داده در نرم افزار
مدیر پروژه (رابط پروژه) مسئول پاسخگویی به سوالات پیمانکار و هماهنگی های مورد نیاز
مسئول مالی برای دریافت و امور مربوط به صورت حساب ها و پرداخت ها
جدول شکست کار به ریز فعالیت:
نحوه محاسبه هزینه نفر ساعت:
هر گونه درخواست و انجام کار بصورت روزانه و در نهایت بصورت ماهانه جمع بندی و به کارفرما اعلام می گردد.
نحوه محاسبه مبلغ به وسیله فرمول زیر و بر اساس تعرفه نظام صنفی رایانه ای کشور نسخه ۱ مصوب خرداد سال ۱۴۰۱ محاسبه می گردد.
ضرایب کارشناس:
- نرخ ساعت پایه خدمات ) ریال( = 1.۲۱۱.۰۰۰
- رده شغلی 𝑝۱جدول شماره ۲ – ۳ = کارشناس ۱.۰۸
- رتبه شغلی 𝑝۲جدول شماره ۲ – ۴ = ارشد ۱.۳۳
- مدرک تحصیلی 𝑝۳جدول شماره ۲ – ۵ = کارشناسی ارشد ۱.۱۵
- سابقه کاری مفید سال 𝑝۴ جدول شماره ۲ – ۶= 10 تا ۱۵ سال = 1.۵۵
- رده مدرک تخصصی 𝑝۵ جدول شماره = ۲ – ۷ داخلی مرتبط = ۷ عدد = 1.۱۴
ضرایب شرکت:
- رتبه شرکت بر اساس نظام رتبه بندی شرکتهای انفورماتیکی توسط سازمان برنامه و بودجه 𝑐۱ جدول شماره۲ – ۸ = بدون رتبه = 1.۰۰
- حوزه فعالیت شرکت 𝑐۲جدول شماره ۲ – ۹ = نرم افزار = 1.۲۰
- ارزش مالی دارائیهای مشهود و نامشهود انفورماتیکی شرکت = 1.۰۰
𝑓۱=𝑐۱∗𝑐۲∗𝑐۳ = 1 .۰۰ * ۱.۲۰ * ۱.۰۰ = 1.۲۰
𝑓۲=𝑝۱∗𝑝۲∗𝑝۳∗𝑝۴∗Σ𝑝۵∗ 𝑛𝑖 = 1.۰۸ * ۱.۳۳ * ۱.۱۵ * ۱.۵۵ * ۱.۱۴ = 2.۹۱۸۸۳۶۶۲
𝐹=𝑓۱∗𝑓۲ = 1.۲۰ * ۲.۹۱۸۸۳۶۶۲ = 3.۵۰۲۶۰۳۹۴۴
هزینه به ازای ۱ نفر ساعت = ۳.۵۰۲۶۰۳۹۴۴* ۱.۲۱۱.۰۰۰ = 4,۲۴۱,۶۵۳ ریال
لیست پروژه های بیشتر: