سند نیازمندی های نرم افزار:
مستند کردن نیازها باعث میشود که اعضای تیم چه طراح چه سهامداران، در یک خط فکری قرار بگیرند و همگی هدف شفافی را انتخاب و در راستای آن قدم بردارند.
برای جلوگیری از به وجود آمدن از مشکلات، مدیران محصول و توسعهدهندگان نرمافزار معمولا از یک الگوهای از پیش ساخته شده یا به عبارتی از Templateها استفاده میکنند تا در روند مستندات برای همه تا میزان قابل توجهی قابل فهم کند.
پیش از اینکه با یک الگو نیازمندی نرمافزاری آشنا بشیم، باید ابتدا درک کنیم که دقیقا یک سند نرمافزاری چیست؟ و چه مواردی باید در این سند گنجانده شود.
سند نیازمندیهای نرمافزار چیست؟
سند نیازمندیهای نرم افزار که بعضا با عنوان “سند مشخصات نیازمندیهای نرمافزار” (Software Requirements Specification) که به اختصار سند SRS نیز شناخته میشود، سندی است که چالشها، ویژگیها و آنچه که نیاز است تا به واسطه این نرمافزار برطرف شود را توصیف میکند. این اسناد بایستی پیش از آغاز یک پروژه تهیه شوند.
سند نیازمندیهای نرمافزار توسط چه افرادی باید نوشته شود؟
با توجه به میزان فنی بودن، سند نیازمندیهای نرمافزار توسط تیم فنی نوشته میشود. البته بایستی همکاران غیر فنی، کاربران و همچنین افرادی که به نحوی در روند توسعه این محصول نرم افزاری دخیل هستند نوشته شود.
چرا نوشتن سند نیازمندیهای نرمافزار بسیار مهم است؟
اسناد نیازمندیهای نرمافزار در واقع یک نقشه از تمام ویژگیهای (Features) محصول نرمافزاری را به تمامی اعضای تیم نشان میدهد. این نقشه محصول کمک میکند تیم فنی و غیر فنی، انتظارات یکسانی از نرمافزار را داشته باشند. از این رو باعث می شود به عنوان مثال بعد از ۱ سال و اتمام پروژه، محصول ساخته شده مطابق با نیاز های مشتریان نهایی نرمافزار باشند.
سند نیازمندیها برای اضافه یا خروج عضو جدید به تیم توسعه محصول و کارفرما مورد نیاز است
برخی پروژه های نرمافزاری، بازه زمانی تولید بیشتر ۲ سال را دارند و یا در پی فرآیند پشتیبانی و نگهداری (Maintenance) افراد جدید به تیم اضافه میشوند و یا از تیم خروج میکنند.
این سند باعث میشود شخص جدیدی (فنی و غیر فنی) بتواند در جریان اصلی قرار بگیرد و بتواند در کوتاه مدت به صورت اثر بخش به تیم کمک کند.
مواردی که در این سند نیازمندی های نرم افزار گنجانده شده است.
با توجه به نرمافزار شما میتواند موضوع های بیشتر و یا کمتری باشد. که با انجام دادن پروژه می توان آن را کامل نمود.
۱٫مقدمه (Introduction):
هدف از ایجاد شهر هوشمند، ادغام فناوری اطلاعات و ارتباطات (ICT) و دستگاههای فیزیکی مختلف متصل به شبکه اینترنت اشیاء (IoT) برای بهینهسازی فرایندهای شهری و خدمات دهی بهینه و ارتباط با شهروندان است. فناوری شهر هوشمند به مسئولان یک شهر اجازه میدهد به صورت مستقیم با جامعه و زیرساختهای شهری تعامل برقرار کرده و به نیازهای شهر و شهروندان پاسخهای فوری دهند.
در همین راستا پروژه ای با عنوان گرمسار من قابل تعریف می باشد که شامل بخش های زیر است:
۱٫۱ هدف (Purpose) انتظارات برای نتیجه محصول:
این نرم افزار برای مدیریت خدمات شهری در شهر گرمسار به صورت بومی طراحی میگردد تا در آن بتوانند خدمات را با کیفیتی بهتر و به صورت الکترونیکی به شهر ارائه دهند.
۱٫۲ مخاطب مورد نظر (Intended Audience) نرم افزار برای چه کسی استفاده می شود؟ کاربر نهایی کیست؟ آیا این نرم افزار به صورت داخلی در یک شرکت یا خارجی مورد استفاده قرار می گیرد؟
نرم افزار توسط شهروندان شهر گرمسار و پرسنل شهرداری گرمسار جهت ورود داده قابل استفاده خواهد بود. نرم افزار در داخل سازمان بصورت شبکه داخلی و محلی که سرور قرار دارد و در خارج از شرکت در صورت موافقت کارفرما از طریق بستر اینترنت قابل استفاده خواهد بود تا بتوان از طریق تبلت و یا لپ تاپ در جلسات استفاده نموده و یا گزارش گیری کرد. همچنین شهروندان قادر خواهند بود از طریق بستر اینترنت از سیستم مورد نظر استفاده نمایند.
۱٫۳ استفاده در نظر گرفته شده (Intended Use) نرم افزار برای چه کاری استفاده می شود؟ چه مشکلی را حل می کند؟
نرم افزار برای ارائه خدمات الکترونیکی به شهروندان قابل استفاده خواهد بود.
۱٫۴ تعاریف و کلمات اختصاری (Definitions and Acronyms) مروری بر تعاریفی که خواننده قبل از خواندن باید درک کند.
فرم: صفحه ای از نرم افزار می باشد که کاربر مشاهده می کند و در آن داده وارد می نماید.
داشبورد: مانند داشبورد ماشین می باشد که با مشاهده آن فرم از نرم افزار مدیران ارشد یک دید کلی نسبت به تمام پروژه های خود در شرکت پیدا میکنند.
پروژه: می تواند قطعه ای باشد که قرار است ساخته شود و کاری باشد که در یک زمان مشخص باید انجام و تحویل گردد.
موجودیت: منظور بخش های اصلی نرم افزار می باشد.
۲٫۱ نیازهای کاربر (User Needs) برای این نرم افزار:
ثبت مشکلات موجود در شهر توسط شهروندان:
در این بخش شهروندان قادر خواهند بود از طریق اپلیکیشن تحت وب (PWA) و یا اندروید native از طریق تلفن همراه و یا سایت از طریق کامپیوتر و یا لپ تاپ مشکلات موجود در شهر را با تعیین مختصات جغرافیایی اعلام نمایند و کد رهگیری دریافت کنند. هر موقع که بخواهند با ورود به بخش ثبت مشکلات شهری، لیست درخواست ها و مشکلات قبلی ثبت شده را مشاهده نمایند. سپس کارمندان شهرداری مشکل ثبت شده را در سیستم خود مشاهده کرده و قادر به ارسال پیام برای شهروند می باشند، (برای مثال مشکل شما در حال بررسی می باشد و یا مشکل شما برطرف گردید و یا متن های مشابه). همچنین می توانند وضعیت درخواست را تغییر دهند (در حال انجام، انجام شده و …).
این بخش می تواند سیستم مانیتورینگی داشته باشد که شهردار در آن بتواند تمامی درخواست ها را به صورت هر درخواست یک نقطه قرمز (برای درخواست هایی که هیچ اقدامی صورت نگرفته) و یا زرد (برای درخواست های در حال انجام) مشاهده نماید و با کلیک بر روی هر درخواست متن آن را مشاهده نماید.
احراز هویت کاربر:
احراز هویت کاربر از طریق ۲ وب سرویس سیتاد و شاهکار صورت می پذیرد. بدین صورت که کاربر ابتدا کد ملی خود را وارد کرده، سپس شماره موبایل خود را وارد می کند، از طریق وب سرویس شاهکار بررسی میگردد مالک شماره موبایل وارد شده همان کلی کد ملی وارد شده است یا خیر، در صورت مثبت بودن مرحله قبل، در مرحله بعد تاریخ تولد فرد درخواست می شود، از طریق وب سرویس سیتاد با کد ملی و تاریخ تولد کاربر اطلاعات شناسنامه ای فرد مانند نام و نام خانوادگی و … فراخوانی میگردد و در سیستم ثبت می شود. بدین ترتیب کاربر احراز هویت شده و از طریق کد ملی می توان در مراحل بعدی با سیستم شهرسازی ارتباط برقرار نمود.
نمایش پرونده های شهرسازی شهروند
از طریق وب سرویس های شرکت ایران سیستم می توان با استفاده از کد ملی بدست آمده در مرحله احراز هویت، پرونده های شهرسازی را به شهروند نمایش داد، از جمله وضعیت پرونده و یا پرداخت عوارض به صورت آنلاین از طریق درگاه پرداخت.
پرداخت عوارض پسماند و نوسازی:
از طریق وب سرویس های شرکت ایران سیستم و کد ملی احراز شده در مرحله احراز هویت می توان عوارض پسماند و نوسازی املاک شهروند را نشان داده و بصورت آنلاین شهروند عوارضش را پرداخت نماید.
ثبت پیشنهادات و انتقادات:
در این بخش شهروندان می توانند انتقادات و پیشنهادات خود را در سیستم ثبت کرده و کد رهگیری دریافت نمایند. سپس پرسنل مربوطه در شهرداری مورد را بررسی کرده و می تواند پاسخی به درخواست ثبت شده بدهد.
برگزاری مسابقات به صورت آنلاین:
در این بخش مسابقاتی مانند مسابقه عکاسی و یا نقاشی و یا سایر مسابقات می تواند توسط پرسنل شهرداری تعریف شود، وقتی شهروند وارد سیستم می شود، بر اساس تاریخ فعال بودن برگزاری مسابقه، آن را خواهد دید و می تواند شرکت کند، به سوالات پاسخ دهد، عکس ها و یا نقاشی های خود را آپلود نماید و پرسنل مربوطه در شهرداری قادر خواهد بود موارد ثبت شده را مشاهده نماید.
سیستم نظرسنجی:
شهرداری می تواند در بازه های زمانی مشخص اقدام به تولید فرم های نظر سنجی نماید، سپس شهروندان می توانند با مراجعه به بخش مربوطه، در نظر سنجی شرکت نموده و پرسنل مربوطه در شهرداری می تواند نظر سنجی را بسته و پاسخ های کاربران را به صورت گزارش و یا به صورت آماری مشاهده نماید.
ثبت درخواست نظام مهندسی:
در این بخش وقتی شهروندی درخواست نظام مهندسی دارد، می تواند با رجوع به این بخش درخواست خود را ثبت نماید و مدارکش را آپلود نماید، پرسنل مربوطه در شهرداری این درخواست را دیده و برای آن زمان تعیین می کند و در صورت نیاز اطلاعاتی را به عنوان پاسخ برای شهروند درج می نماید.
ثبت درخواست ملاقات مردمی:
با توجه به بازه زمانی ملاقات شهرداری با مردم، شهروندان می توانند درخواست خود را ثبت نمایند و سپس پس از تایید پرسنل شهرداری، شهروند در تاریخ و ساعت مشخص در شهرداری جهت ملاقات مردمی حضور بهم رسانده و مسائل خود را مطرح نمایند.
۲٫۲ فرضیات و وابستگی ها(Assumptions and Dependencies) چه فرضیاتی وجود دارد که می تواند در رویکرد خطایی ایجاد کند؟ آیا پروژه به عوامل دیگری که می تواند در توسعه نرم افزار تأثیر بگذارد متکی است؟
یکی از مشکلاتی که ممکن است طراحی و ساخت نرم افزار را با چالش روبرو کند شفاف نبودن نیازهای کارفرما می باشد که پس از طراحی ممکن است باعث طراحی مجدد و دوباره کاری گردد، برای حل این مشکل، این سند نیازسنجی توسط پیمانکار طراحی گردید تا نیازهای کاربر بصورت کامل مستند شوند.
- ویژگی ها و الزامات سیستم (System Features and Requirements)
۳٫۱ نیازمندیهای غیر عملیاتی (Nonfunctional Requirements) به عنوان مثال بودجه، تیم و غیره
افراد مورد نیاز در پروژه سمت پیمانکار:
مدیر پروژه برای ایجاد هماهنگی بین پیمانکار و کارفرما
مسئول عقد قرارداد و انجام امور مالی و بیمه ای کارشناسان پروژه و ارسال صورت حساب
کارشناس تجزیه و تحلیل: جهت دریافت نیازمندی ها از پیمانکار، بررسی و ارسال برای توسعه دهنده، ایجاد تغییرات در لایه پایگاه داده
کارشناس توسعه دهنده Front End
کارشناس توسعه دهنده Back End
کارشناس تست نرم افزار
کارشناس پشتیبانی
کارشناس استقرار
افراد مورد نیاز در پروژه سمت کارفرما:
کاربر استفاده کننده و ورود داده در نرم افزار
مدیر پروژه (رابط پروژه) مسئول پاسخگویی به سوالات پیمانکار و هماهنگی های مورد نیاز
مسئول مالی برای دریافت و امور مربوط به صورت حساب ها و پرداخت ها