پیشنهاد می گردد قبل از مطالعه این مقاله، مقاله نیازمندیهای نرم افزار را مطالعه نمایید.

مهندسی نیازمندی­های نرم افزار چیست؟

 

مهندسی نیازمندیهای نرم افزار

requirementsengineering

 

برای شروع کار مهندسی نیازمندی­های نرم افزار لازم است که به سئوالاتی پاسخ داده شود.

این سوالات بر اساس اصل W5HH ارائه شده، توسط آقای بوهم(Boehm) می­باشد.

با مطرح­ نمودن این سئوالات ما می­توانیم اهداف، برنامه­ ها، راه­ حل­ها، مسئولیت­ها و منابع مورد نیاز یک پروژه نرم­ افزاری را بررسی نماییم.

Why (چرا به سیستم نیاز دارید؟)

شما با دریافت پاسخ این سئوال حتی می­توانید حدو مرز سیستم مورد نظر را تعیین کنید که قرار است با چه سیستم­هایی در ارتباط باشد؟
یا کاربرانش در چه نقاطی قرار دارند؟
مثلا در شعبه­ های مختلفی در سراسر ایران هستند که قرار است با هم ارتباط برقرار کنند.
در برخی مواقع چرایی برای این پرسیده می­شود که شاید درخواستشان با روش­های ساده ­تری قابل انجام است، نیازی به هزینه کردن و ایجاد سیستم نمی­باشد، به عنوان مثال مشتری درخواست این را دارد،
می­خواهیم یک لیستی از فروشمان داشته باشیم و آنها را فیلتر کنیم و یا اینکه بر روی نمودارهایی برای مقایسه مثلا سال­های فروش ترسیم نماییم، شما با بررسی مواردی که مطرح شد و آشنایی که با سیستم­ها دارید به این نتیجه می­رسید که این کار به راحتی با نرم افزار Excel قابل انجام است.
پس دانستن چرایی از اهمیت ویژه­ای برخوردار است.

What till when: (چه کاری تا چه زمانی انجام خواهد شد؟)

تعیین نقاط عطف و کارهای کلیدی که باید انجام شود.
مثلا تعیین اولویتهایی که یک سیستم باید داشته باشد در اولین مرحله برای یک فروشگاه اینترنتی، ایجاد صفحاتی برای مشاهده کالا می­باشد، پس باید در کوتاه­ترین زمان ممکن انجام شود.
در مراحل بعدی موارد دیگر اضافه شود، در ابتدای کار ایجاد ویترینی از کالاها از اهمیت خاصی برخوردار است.

Who: (چه کسی یا کسانی مسئولیت انجام یک عملکرد را دارند؟)

تعریف نقش هر یک از اعضا سیستم.

Where: (این مسئولیت­ها هر کدام در کجا انجام می­شود؟)

مثلا مشتری یک فروشگاه اینترنتی از هر جای کشور باید بتواند خریدش را انجام دهند و یا اینکه یک کاربر انبار فقط نیاز دارد، با سیستم انبار کار کند.

How: (چگونه این کار به صورت سیستمی (فنی) قابل انجام است؟)

تک­تک مراحل باید شرح داده شود.

How much

چه میزان از هر یک از منابع مورد نیاز است؟

به عنوان مثال: چرایی؟
شما نیاز به استراحت دارید؟
می­خواهید به یک مسافرت به مدت یک هفته بروید؟
با چه کسی یا کسانی می­خواهید به مسافرت بروید؟
هر یک چه مسئولیت­هایی دارند؟ مقصد کجاست؟
چگونگی رفتن باید مشخص شود به فرض اگر قرار است به شمال بروید از چه مسیری بروید، بهتر است.
با ماشین شخصی یا هواپیما یا اتوبوس یا پیاده؟
اگر بخواهیم با ماشین شخصی برویم،  به چه مقدار بنزین نیازمندیم؟
چه مقدار بودجه نیاز است؟
پاسخ به این سئوالات باعث می­شود که مقصدها (راه ­حل­ها) محدودتر شود.
مثلا اگر هیچ امکاناتی وجود ندارد، بهترین مکان برای استراحت پارک است.

مهندسی نیازمندی های نرم افزار

مهندسی نیازمندی های نرم افزار رویکردی نظام مند، برای تعیین و مدیریت نیازمندی ها می باشد. اهداف آن عبارتند از:

  • شناخت نیازمندیهای واقعی ذینفعان و رسیدن به توافق بر سر نیازمندیها با ذینفعان، مستند سازی نیازمندیها بر اساس استانداردها و مدیریت آنها به صورت مداوم
  • درک و مستندسازی خواسته ها و نیازمندی های ذینفعان- تعیین و مدیریت نیازمندیها با به حداقل رساندن ریسک ناشی از عدم تطابق سیستم با نیازمندیهای ذیفعان

چهار فعالیت اصلی در مهندسی نیازمندی­های نرم افزار 

استخراج نیازمندی­های نرم افزار

با استفاده از تکنیک­های مختلف استخراج­ نیازمندی­ها باید از ذینفعان و دیگر منابع، نیازمندی­های اصلی را بدست آوریم. یعنی همه تکنیک­های موجود را بدانیم و هر جا متناسب با شرایط، از یک یا چند تکنیک استفاده کنیم.

تکنیک­های استخراج ­نیازمندی­ها عبارتند از مصاحبه، مشاهده، مهندسی معکوسReverse engineering، نمونه سازی Prototyping، توفان فکری Brainstorming، گروه متمرکز Focus group و …..

مستندسازی نیازمندی­های نرم افزار

 بعد از استخراج ­نیازمندی­ها، نیازهای­ اصلی یا باید تایپ شود و یا باید مدلسازی شود یا از هر دو روش استفاده شود.
به عنوان مثال برای مدلسازی نیازمندی­ها می­توانیم از زبان استاندارد مدلسازی UML استفاده کنیم. نمودارهای­اصلی آن مانند نمودار مورد کاربردUse case Diagram، نمودار کلاس Class Diagram، نمودار فعالیت Activity Diagram، نمودار وضعیت State Diagram را رسم کنیم.

اعتبارسنجی

 برای اطمینان از درستی نیازمندی­های مستند­شده نیاز است، اعتبارسنجی صورت گیرد، یعنی توسط ذینفعان درستی درک نیازمندی، تایید شود.
به دلیل تفاوت فکری ما با افرادی که شاید اطلاعات فنی زیادی نداشته باشند، باعث می­شود که ما یک ذهنیت و آنها هم ذهنیت دیگری داشته باشند.
با این کار می­توانیم قبل از اینکه وقت و هزینه ­ای گذاشته شود، به ذهنیت مشترک دست پیدا کنیم.

مدیریت نیازمندی­های نرم افزار

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

 

                                                                                                       شاد و پیروز باشید

                                                                                                               زهرا غلامی

3 دیدگاه. ارسال دیدگاه جدید

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.
برای ادامه، شما باید با قوانین موافقت کنید

Solve : *
21 + 4 =


فهرست