Corporation, “Ten steps to effective requirements management,” IBM Corporation, the United States of America, 2013.

Dhirendra Pandey, Ugrasen Suman and A. K. Ramani’ “$Q (IIHFWLYH 5HTXLUHPHQW (QJLQHHULQJ 3URFHVV 0RGHO IRU 6RIWZDUH HYHORSPHQW DQG 5HTXLUHPHQW 0DQDJHPHQW”‘ 3URF. RI ,QWHUQDWLRQDO &RQIHUHQFH RQ $GYDQFHV LQ 5HFHQW Technologies in Communication DQG &RPSXWLQJ’ $57&RPʼ ۲۰۱۰′ ,((( &RPSXWHU 6RFLHW\’ ,((( ;SORUH’ 2010′
ISBN: 978-0-7695-4201-0, Kerala, pp.287-291, 2010.

Dhirendra Pandey, Ugrasen Suman and A. K. Ramani’ “$Q $SSURDFK WR ,QIRUPDWLRQ 5HTXLUHPHQW (QJLQHHULQJ”‘

Proc. Of IEEE International Conference on Information Security and Application, ICISA, 2011, ISBN: 978-1-4244-9223-7/11, South Korea.

Dhirendra Pandey, Ugrasen Suman and A. K. Ramani’ “A )UDPHZRUN WR 0RGHOLQJ 6RIWZDUH 5HTXLUHPHQW”‘
International Journal of Computer Science Issues, Malaysia, ISSN: 1694-0814, Vol. 8, No. 3, pp.164-171, 2011.

Dhirendra Pandey, Ugrasen Suman and A. K. Ramani’ “,PSDFW RI 5HTXLUHPHQW (QJLQHHULQJ 3UDFWLFHV LQ 6RIWZDUH HYHORSPHQW 3URFHVVHV IRU HVLJQLQJ 4XDOLW\ 6RIWZDUH 3URGXFWV”‘ 1DWLRQDO &RQIHUHQFH RQ NCAFIS, DAVV,
Indore, 2008.

Dhirendra Pandey, Ugrasen Suman and A. K. Ramani’ “3HUIRUPDQFH 0HDVXUHPHQW RI LIIHUHQW 5HTXLUHPHQW (QJLQHHULQJ 3URFHVV: $ VWXG\”‘ ,QWHUQDWLRQDO -RXUQDO RI &RPSXWHU (QJLQHHULQJ DQG 7HFKQRORJ\’ ,-&(7′ 7DPLOQDGX’
ISSN: 0976-6375, Vol. 1, No. 2, pp.286-300, 2010.

,PUDQ ,TEDO’ 1DYHHG $EEDV 0LUDQL DQG $OL -DYHG’ “(IIHFWLYH 5HTXLUHPHQW 0DQDJHPHQW 7KURXJK 9HUVLRQ &RQWURO DWD FHQWULF $SSURDFK”‘ 3URF. RI ,QWHUQDWLRQDO -RXUQDO RI &RPSXWHU 6FLHQFH ,VVXHV’ 9RO. 9′ ,VVXH 2′ 1R 1′ 0DUFK
۲۰۱۲٫

Ugrasen Suman, Dhirendra Pandey DQG $. .. 5DPDQL’ “6RFLDO-Organizational Participation difficulties in Requirement Engineering Process- A Study”, National Conference on Emerging Trends in Software Engineering and Information Technology, Gwalior Engineering College, Gwalior,2009.

Ugrasen Suman, Dhirendra Pandey and A. K. Ramani’ ” HVLJQ DQG HYHORSPHQW RI 5HTXLUHPHQWV 6SHFLILFDWLRQ RFXPHQWV IRU 0DNLQJ 4XDOLW\ 6RIWZDUH 3URGXFWV” 1DWLRQDO &RQIHUHQFH RQ ,&,6′ .3. 9LSUD &ROOHJH’ %LODVSXU’
۲۰۰۹٫

Vandana Pandey, Abhinav Shukla, Dhirendra Pandey’ “)(5(3: )UDPHZRUN IRU (IIHFWLYH 5HTXLUHPHQW (QJLQHHULQJ 3URFHVV 0RGHO”‘ 3URF. RI International Journal of Advance Research in Science and EngineeringIJARSE, Vol1, Issue1, 2013.

×

مقدمه

نیازمندها عبارتست از نیازهای مورد توافق ذینفعان جهت، رفع مشکلات فعلی (بهبود وضعیت جاری)در راستای رسیدن به وضعیت مطلوب آتی، با توجه به اهداف، سیاستها، فرصتها و محدودیتها،که باید با ساخت یک سیستم جدید یا بهبود سیستم فعلی برآورده شوند.مهندسی نیازمندیها یک رویکرد سیستماتیک است که از طریق آن مهندس نرم افزار نیازمندیهای مربوط به منابع مختلف را گردآوری کرده و آنها را در فرایندهای توسعه نرم افزار به اجرا میگذارد.و عبارتست از امکان تحلیل نیازها،برآورد امکانات، دستیابی به راهکارهای منطقی،بیان راه حل مذکور به طور روشن و واضح،ارزیابی خصوصیات و مدیریت نیازمندیها هنگامی که به سیستم عملیاتی تبدیل می شوند فرایند مهندسی نیازمندیها یک فرایند افزایشی و تکرار شونده است که فعالیتهای کل سیستم و چرخه زندگی توسعه نرم افزار را در بر میگیرد و به موازات سایر فعالیتهای سیستم مثل طراحی، کد زدن و غیره انجام میشود۲۰۱۰Dhirendra)،ص۱و۲۰۱۳ Dhirendra،ص.(۱

مهندسی نیازمندیها حاوی یک مجموعه از فعالیتها برای کشف ، تجزیه و تحلیل ، مستند سازی ، تایید، اعتبارسنجی و حفظ یک مجموعه از نیازمندیها برای یک سیستم است. مهندسی نیازمندیها به دو گروه اصلی گروهبندی میشود الف) توسعه نیازمندیها و ب) مدیریت نیازمندیها. توسعه نیازمندیها فعالیتهای مربوط به کشف، تجزیه و تحلیل، مستندسازی و اعتبارسنجی نیازمندیها را پوشش میدهد، در حالی که مدیریت نیازمندیها شامل فعالیتهای مربوط به قابلیت ردگیری و مدیریت تغییر نیازمندیها است. نیازمندیها باید به شکل موثر تعریف و مدیریت بشود تا پاسخگوی نیازهای مشتری بر اساس بودجه و برنامه زمانبندی شده باشند. تعریف ضعیف نیازمندیها می تواند تاثیر منفی داشته باشد که منجر به از دست دادن زمان ،هزینه،موجب دوباره کاری ،تحویل ناقص و تخطی از بودجه شود(۲۰۱۰Dhirendra،ص۱و ۲۰۱۳Dhirendra،ص۱و ۲۰۱۲Imran،ص۲و۲۰۰۹ Pandey،ص.(۲

نیازمندیها، پایه و اساس توسعه سیستمها و نرمافزار هستند، بنابراین تیم پروژه باید ویژگیهای مختلف نیازمندیهای خوب را بدانند که ویژگیهای خوب عبارتنداز :

جدول((۱ ویژگیهای مختلف نیازمندیهای خوب[۲, ۳, ۴]

ویژگی توضیح

درست باشد نیازمندیها از لحاظ فنی دقیق، قانونی و مناسب باشند.

کامل باشد شرط کامل بودن ارائه یک ایده کامل است.

دقیق باشد به وضوح تعریف شده و مبهم نباشد.

سازگار باشد در تضاد با دیگر نیازمندیها نباشد.

قابل اثبات باشد قابل تایید بودن نیازمندیها(نرم افزار باید مناسب محل مورد نیاز باشد)

قابل ردیابی باشد هر نیازمندی باید بطور مشخص تعریف و دنبال شده باشد.

امکانپذیر باشد هر نیازمندی باید بطور واقعی منطبق بر محدودیتهای برنامه و هزینه مشخص شده باشد.

ماژولار باشد هر نیازمندی باید براحتی یا بدون استفاده از تلاش بیش از حد بتواند تغییر کند.

طراحی مستقل در نیازمندی مهم نیست که حتما از راه حلهای خاص طراحی استفاده شود.

مورد نیاز بودن نیازمندیها واقعاً مورد نیاز بوده و اهداف سیستم را محقق سازند.

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

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

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

هدف اصلی مهندسی نیازمندیها کشف نیازمندیها با کیفیتی است که بتوانند در توسعه نرم افزار استفاده شوند.نیازمندیها بعد از گردآوری باید توسط تیم توسعه به فرمتی که ویژگیهای جدول((۱ را داشته باشند در بیایند تا محصولی با کیفیت تولید شود. مدل مورد نظر در شکل((۱ نشان داده شده است و عمدتا شامل چهار مرحله است یعنی الف) استخراج و توسعه نیازمندیها ب) مستندسازی نیازمندیها ج) اعتبارسنجی و تایید نیازمندیها د) مدیریت و برنامهریزی نیازمندیها

۲۰۱۳IBMCorporation)،ص۳و۲۰۱۰Dhirendra،ص۲و۲۰۱۱ Dhirendra،ص.(۳

شکل((۱ مدل فرایند مهندسی نیازمندیها(۲۰۱۰Dhirendra،ص(۲

الف) استخراج و توسعه نیازمندیها

استخراج نیازمندیها فاز اول مهندسی نیازمندیها است و نقش مهمی در طول چرخه ی عمر توسعه ی نرم افزار دارد. و یکی از فعالیتهای کلیدی و پیچیده محسوب می شود مرحله استخراج و توسعه نیازمندیها عمدتاً متمرکز بر روی بررسی و گردآوری نیازمندیهای اولیه، شناسایی ذینفعان سیستم و اهداف مطلوب برای سیستم از چشمانداز های مختلف است. توسعه نیازمندیها می تواند مبتنی بر شرایطی باشد که در شکل((۲ نشان داده شده است. مشاهده میشود که در مهندسی نیازمندیها، فرایند گردآوری نیازمندیها از مشتری و محیط به شیوههای سیستماتیکی می باشد که تحلیلگر سیستم نیازمندیهای اولیه را گردآوری کرده و سپس تحلیل نفصیلی انجام میدهد و بازخورد دریافت میکند سپس این پیامدها با خاصیت فنی سیستم مقایسه شده و نیازمندیهای مطلوب و ضروری برای توسعه نرمافزار را بوجود میآورند(۲۰۱۰Dhirendra،ص۲و۲۰۱۱ Dhirendra،ص.(۴

شکل((۲ توسعه نیازمندیها(۲۰۱۰Dhirendra،ص۲و۲۰۱۳ Dhirendra،ص(۴

برای استخراج و توسعه نیازمندیها بیش از ۴۰ نوع تکنیک مختلف جود دارد که در جدول((۲ به برخی از تکنیکهای پرکاربرد اشاره شده است.

جدول (۲) تکنیک های استخراج و جمع آوری نیازها(۲۰۱۳Dhirendra،ص(۸
تکنیک تشریح
مصاحبه نیازمندیها از طریق گفتگوی رودررو با مشتری استخراج میشوند و به دو نوع ساختیافته و غیرساختیافته انجام میشود.
نظرسنجی برای انجام جمعآوری اطلاعات از جمعیت بزرگی از افراد ذینفع بکار میرود.
پرسشنامه بعنوان ابزار سادهای بکار میروند که ممکن است شامل سئوالات باز یا بسته باشند.
کارگروه ذینفعان مختلف برای انجام جلسه گروهی و همکاری برای استخراج نیازمندیهای سیستم جهت توسعه دعوت میشوند
طوفان مغزی یک فرایند تولید نظرات ،پیشنهادات و ایدههای جدید در شرایط آزاد است.
مشاهده تکنیکی است که در آن مهندسین نیازمندیها محیط و موقعیت مشتری را در سایت مشتری بازدید و مشاهده می کنند.
نمونه سازی یک مدل از محصول نهایی است که که قرار است جهت ارائه خدمات به کاربران به بازار عرضه شود. که به دو صورت دورریختنی و تکاملی انجام میشود.

این تکنیکها در جدول (۳) بر اساس معیارهای: انگیزه کاربر در پاسخگویی، میزان کسب بازخورد از آن تکنیک، مشاهده ارتباطات غیرکلامی، هزینه، زمان، وابستگی به موقعیت مکانی و جامعه آماری با یکدیگر مقایسه شده اند.