نیازمندی های نرم افزار
نیازمندی چیست؟
نیازمندی یک شرط یا قابلیتی است که کاربر از طریق آن مسئله اش حل شود و یا به هدفش برسد.
منظور از مسئله میتواند مشکلی باشد که در وضعیت جاری انجام فرآیند کار وجود دارد و یا فرصتی که برای تحقق ایدههای جدید در جهت بهبود و پیشرفت در کار باشد و یا اینکه ایده ای نو که برای اولین بار مطرح میشود.
چند وقت پیش در مورد چگونگی ایجاد فروشگاه اینترنتی دیجی کالا در اینترنت مطلب میخواندم، خیلی برام جالب بود.
برادران دوقلویی که عکاسی دیجیتال انجام می دادند، تصمیم گرفتند که یک دوربین تهیه کنند، در اینترنت جستجو کرده تا شاید اطلاعات فنی بدست آورند ولی موفق نشدند!!!
آنها به بازار مراجعه و دوربین را خریداری کردند، بعد از چند روز متوجه شدند که لنز روی دوربین دست دوم و تعمیری است.
اینجا بود که ایده تاسیس چنین فروشگاهی به ذهنشان رسید.
فروشگاهی اینترنتی که بتواند اطلاعات فنی خوبی در اختیار مردم قرار دهد تا با آگاهی بیشتری کالای خود را خریداری نمایند و به مردم این امکان را بدهد تا بتوانند کالای با کیفیت را به شیوه درست و اصولی امروزی خریداری کنند.
در اینجا ما با مسئله یا یک فرصت مواجه هستیم که قرار است فروشگاهی راه اندازی شود که نیازهای مشتریان را برآورده کند به این صورتکه علاوه بر داشتن اطلاعات فنی کالا و این اطمینان به مشتری داده شود که کالای با کیفیتی را خریداری مینماید.
مثال دیگری که میتوانم مطرح کنم، ایده سایت مامان پز است. در برنامه کلید آپارات مصاحبه با خانم تبسم لطیفی را میدیدم، اینکه ایده زمانی به ذهنش رسید که وقت نداشت صرف آشپزی کند و دوست داشت غذاهای خانگی بخورند.
به عنوان مسئله یا فرصت میتوانیم ایجاد کسب وکاری را در نظر بگیریم که از خانمها که دارای تجربه آشپزی هستند، دعوت به کار نموده و از طریق سایت، ویترینی از غذاها را به افراد نشان دهند تا اشخاص بتوانند غذاهایی که توسط مادران پخته میشود را از سایت انتخاب و خریداری نماید.
برای تحقق این فرصت نیاز است، در سیستمی که طراحی میشود، مواردی همچون انتخاب غذا، پرداخت آنلاین هزینه و … را به عنوان نیازمندی در نظر گرفته شود تا با گذاشتن این امکانات مشتریان به بهترین نحو این خرید را انجام دهند.
همچنین صاحب کسب و کار هم از اینکه نیازمندیهایش به درستی درک شده و قابل اجرا میباشد، رضایت داشته باشد.
انواع نیازمندی ها کدامند؟
دسته بندی های متفاوتی برای نیازمندی ها وجود دارد از جمله:
نیازمندیهای عملکردی
نیازمندی هایی که برای راه اندازی سیستم باید قابل انجام باشند. به عنوان مثال در یک فروشگاه اینترنتی امکان انتخاب یک کالا و امکان پرداخت الکترونیکی، نیازمندیهایی هستند که باید برآورده شوند.
نیازمندیهای کیفیتی یا نیازمندیهای غیرعملکردی
کیفیت، شاخصی حیاتی است بعد از اینکه کاربر نیازهای اولیه اش برآورده شد به دنبال کیفیت انجام کار میگردد که باعث ایجاد رضایتمندی در او خواهد شد.
به عنوان مثال اینکه کاربر به راحتی و توسط روشهای متفاوتی با سیستم، ارتباط برقرار کند، با ورود به سیستم تمام مراحل انجام کار برایش مشخص باشد، نیازمندی غیرعملکردیِ کاربرپسندی سیستم میباشد.
به عنوان مثال در هنگام خرید یک کالا، یا مشتری باید از قبل در سیستم ثبت نام کرده باشد و یا اینکه بعد از انتخاب کالا از او مشخصات لازم برای ثبت نام پرسیده شود تا بتواند فرآیند خرید را به آسانی انجام دهد.
این نیازمندیها در مدلهای مختلفی تعریف شده است که برای دریافت اطلاعات بیشتر میتوانید به فصل دوم کتاب مهندسی کاربردهای متریکهای نرم افزاری اینجانب مراجعه نمایید.
محدویت ها
شرایطی که برای عملکرد سیستم تعیین میشود. این محدودیتها میتواند بر روی راه حلهای پیشنهادی تاثیرگذار باشد.
همچنین آنها میتوانند از جنبه های مختلفی مانند موضوعات اقتصادی، سیاسی، تکنولوژی، سیستمها، محیط، زمانبندی و منابع مطرح گردد.
به عنوان مثال ممکن است نیاز باشد، این سیستم جدید با سیستمهای قبلی به صورت یکپارچه کار کند و یا شرایط ویژه ای برای انتخاب فناوری داشته باشد مثلا در انتخابِ نوع بانک اطلاعاتی محدودیت وجود داشته باشد، فرض کنید اگر سیستم عامل سرورها لینوکس باشد اوراکل یکی از بانکهای اطلاعاتی است که روی لینوکس بهتر کار میکند.