فروشگاه

توضیحات

پروژه مهندسی نیازمندی ها و نرم افزار

کیفیت نرم افزار به فاکتورهای متعددی مانند تحویل به موقع -براساس هزینه پیش بینی شده- و برآورده شدن نیازمندی های کاربران وابسته است.

تحقیقات نشان داده است که موضوع مهم در توسعه کیفیت نرم افزار، تخمین دقیق است، این تخمین وابستگی زیادی به میزان پیچیدگی نرم افزار دارد.

از طرفی کنترل پیچیدگی باید از شروع فاز توسعه نرم افزار آغاز شود.

پروژه مهندسی نیازمندی ها و نرم افزار

مهندسی نیازمندی ها نقش بسیار مهمی را در کنترل پیچیدگی نرم افزار، برقراری و نگاهداشت کیفیت نرم افزار ایفا می کند.

در این مقاله، با تکیه بر فرایند مهندسی نیازمندی ها، به بررسی و تحلیل فاکتورهای تاثیرگذار در پیچیدگی نرم افزار-در فاز اولیه توسعه نرم افزار- پرداخته

می شود، تا در این راستا با شناسایی آنها، از ورود خطا به فرایند و

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

واژگان کلیدی
پیچیدگی نرم افزار، مهندسی نیازمندی ها، کیفیت نرم افزار

۱۰صفحه فایل ورد (Word) فونت ۱۴ منابع دارد  

 

پس از پرداخت آنلاین میتوانید فایل کامل این پروژه را دانلود کنید 

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

پروژه مهندسی نیازمندی ها و نرم افزار
پروژه مهندسی نیازمندی ها و نرم افزار

 

۱ مقدمه
کیفیت نرم افزار به فاکتورهای متعددی مانند تحویل به موقع-طبق

هزینه پیش بینی شده- و برآورده شدن نیازمندی های کاربران وابسته است.

تحقیقات نشان داده است که موضوع مهم در توسعه کیفیت نرم افزار، تخمین دقیق است، این تخمین وابستگی زیادی به میزان پیچیدگی نرم افزار دارد.

از طرفی کنترل پیچیدگی باید از شروع فاز توسعه نرم افزار آغاز شود.

مهندسی نیازمندی ها نقش بسیار مهمی را در کنترل پیچیدگی نرم افزار، برقراری و نگاهداشت کیفیت نرم افزار، ایفا می کند.

پروژه مهندسی نیازمندی ها و نرم افزار

فرایند کلیدی مهندسی نرم افزار، مهندسی نیازمندی ها می باشد،

که نقش مهمی را در طول چرخه حیات مهندسی نرم افزار ایفا می کند. تحقیقات متعدد نشان داده است که منشا شکست پروژه های نرم افزاری اغلب در ضعف نیازمندی ها بوده است. نیازمندی های خوش تعریف احتمال موفقیت

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

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

بعدی توسعه نرم افزار وابستگی زیادی به کیفیت نیازمندی های فراهم

شده در این مرحله دارد، همین امر دلیل خوبی برای توجه به فرایند RE می باشد.

پروژه مهندسی نیازمندی ها و نرم افزار

محققان متعدد، با تکیه بر تحقیقات تجربی و آزمایشات صنعتی، تاکید

بسیاری روی فرایند RE به عنوان پشتیبانی ضروری، جهت کیفیت کلی

محصول نرم افزاری دارند. گزارش CHAOS[2] که توسط گروه Standish منتشر شد

قویاً از این استدلال پشتیبانی می کند. مطابق این گزارش تکنیک های

معتبر RE نسبت به سایر فاکتورها که در جدول(۱) به آن اشاره شده است، بیش از ۴۲% در موفقیت کلی پروژه سهم دارند.

جدول (۱): فاکتورهای موفقیت پروژه
فاکتورهای موفقیت پروژه %تاثیر فاکتورهای مرتبط با RE

درگیری کاربر ۱۵٫۹% *
پشتیبانی از مدیریت اجرایی ۱۳٫۹% *
توضیحات شفاف از نیازمندیها ۱۳% *
برنامه ریزی صحیح ۹٫۶%
انتظارات واقع بینانه ۸٫۲%
مراحل کوتاه تر در پروژه ۷٫۷%
صلاحیت و شایستگی افراد پروژه ۷٫۲%

پروژه مهندسی نیازمندی ها و نرم افزار

مالکیت ۵٫۳%
اهداف و نگرش صحیح ۲٫۹%
تمرکز و پرکاری افراد پروژه ۲٫۴%
دلایل دیگر ۱۳٫۹%
بطور مشابه، تکنیک های نامناسب RE مسئول بیش از ۴۳%

از دلایل تاخیر یا سرریز بودجه می باشند. جدول(۲) را مشاهده فرمایید.

جدول (۲): فاکتورهای شکست پروژه
فاکتورهای شکست پروژه %تاثیر فاکتورهای مرتبط با RE
نیازمندی های ناقص ۱۳٫۱% *
ارتباط کم یا عدم ارتباط با کاربر ۱۲٫۴% *
فقدان و نبود منابع ۱۰٫۶%
نداشتن برنامه ریزی صحیح ۸٫۱%
انتظارات غیر واقعی ۹٫۹%
تغییر در نیازمندی ها و توصیفات ۸٫۷% *
عدم پشتیبانی از مدیریت اجرایی ۹٫۳% *
فقدان مدیریت IT 6.2%
بی اطلاعی از تکنولوژی ۴٫۳%
دلایل دیگر ۹٫۹%

این مقاله، هر دو زمینه مهندسی نیازمندی ها و پیچیدگی را معرفی و به دنبال آن فاکتورهای تاثیرگذار بر پیچیدگی نیازمندی ها را معرفی می کند.
۲- پیچیدگی نرم افزار

در چند دهه اخیر پیچیدگی نرم افزار[۳] دوره جدیدی در زمینه دانش

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

با هزینه های بالای نرم افزار و این حقیقت که حدود ۷۵% چرخه حیات نرم افزار به

تست و نگهداری نرم افزار سپری می شود[۴]، مساله پیچیدگی نرم افزار

اهمیت ویژه ای پیدا کرده است. به تعبیری کاهش پیچیدگی قلب توسع

ه نرم افزار است. پیچیدگی نرم افزار از عوامل اصلی افزایش سریع هزینه های توسعه و نگهداری می باشد و از طرف دیگر تاثیر بسزایی در کیفیت و بهره وری محصول دارد[۱].

پروژه مهندسی نیازمندی ها و نرم افزار

پیچیدگی نرم‏افزار یک موضوع وسیع در مهندسی نرم‏افزار است از

سال ۱۹۷۶[۵] محققان زیادی تلاش کرده‏اند تا تعریف دقیقی برای پیچیدگی نرم‏افزار پیدا کنند و میزان‏های زیادی برای اندازه‏گیری پیچیدگی نرم‏افزار ارایه کرده‏اند.

در واقع توافقی عمومی بر روی چگونگی تعریف پیچیدگی نرم‏افزار

وجود ندارد ولی بیشتر تعاریف مبتنی بر دیدگاهZuse از پیچیدگی

است[۶]، «پیچیدگی نرم‏افزار سختی تحلیل، نگهداری، تست، طراحی و تغییر نرم‏افزار است.»، به عبارت دیگر پیچیدگی نرم افزار موضوعی است که در کل فرایند توسعه نرم افزار و در هر مرحله از چرخه حیات محصول وجود دارد.

زمانی که با مسئله کاهش پیچیدگی کاربردها روبرو هستیم، توسعه دهندگان در انتخاب جایی که بتوانند تلاش خود را انجام دهند با چالش مواجه می شوند. آرایه وسیعی از متریک ها را می توان برای کنترل پیچیدگی مورد استفاده قرار داد. در حال کلی این متریک ها در چند بعد تعریف شده اند:
• متریک های پیچیدگی مبتنی بر کد : که در این میان می توان متریک های دورانی McCabe[7] – که از نظر درستی و اطمینان، یک متریک نرم افزاری

پروژه مهندسی نیازمندی ها و نرم افزار

مورد توجه است و مستقیماً تعداد مسیرهای مستقل خطی در درون یک پیمانه را اندازه گیری می‏کند- و متریک پیچیدگی Halstead[8] – این میزانها در بین متریک های ابتدایی قویترین شاخص های تعیین پیچیدگی کد بودند و بطور مستقیم پیچیدگی را از روی کد منبع و با تأکید بر پیچیدگی محاسباتی اندازه گیری می کنند- را نام برد.

• متریکهای پیچیدگی شناختی : که می توان متریک پیچیدگی جریان اطلاعات Henry و Kafura[9] – که جریان اطلاعات از/به پیمانه‏ها را اندازه‏گیری می‏کنند. مقادیر بالای جریان اطلاعاتی فقدان چسبندگی در طراحی

است که باعث ایجاد پیچیدگی بالاتر می‏شود- ، متریک پیچیدگی KLCID[10]- این روش مبتنی بر متغیر های برنامه و چگالی شناسه ها می باشد. برای محاسبه آن تعداد خطوط منحصر به فرد برنامه محاسبه می شود

(خطوطی با ترتیبی یکسان از عملگرها با نوع یکسان مشابه می باشند)- را نام برد

بیشتر متریک های پیچیدگی نرم افزار مبتنی بر کد و یا روش های

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

را در ابتدای چرخه حیات سیستم و قبل از مرحله تحلیل و طراحی

انجام داده و در همین امتداد موجبات کاهش هزینه در مراحل توسعه و نگهداری نرم افزار را نیز به دنبال دارد.

۳- مهندسی نیازمندی ها

مهندسی نیازمندی ها فرآیند کشف نیازمندی های ذینفعان و مستند

سازی آنها به منظور تحلیل، ایجاد ارتباطات و پیاده سازی آنها است[۱۱].

ممکن است بسیاری از خطاها در فاز نیازمندی ها شناسایی شوند. Davis [12] ادعا می کند که تعمیر خطاهای کشف شده در مراحل بعدی توسعه نرم افزار

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

Brooks F.P[13] بیان می کند که «سخت ترین بخش از ساخت یک سیستم نرم افزاری تصمیم گیری در باب تعیین ساختن چه چیز است». هیچ یک از

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

فرایند مهندسی نیازمندی ها متشکل از پنج وجه است: استخراج

نیازمندی ها ، تحلیل نیازمندی ها ، مستندسازی(ذکر خصوصیات) نیازمندی ها ، اعتبارسنجی و تصدیق نیازمندی ها ، و مدیریت نیازمندی ها . ثبت و تحلیل نیازمندی های کاربری اولین فاز از فرایند مهندسی نیازمندی ها می باشد.

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

برنامه ریزی، گزارش دهی و ردیابی کمک می کند. اولویت بندی

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

پروژه مهندسی نیازمندی ها و نرم افزار

سازماندهی می شود و مستند تشریح الزامات نرم افزار به عنوان

خروجی ارائه می شود. به این نکته توجه شود که یک SRS خوب باید دارای شرایط ویژه ای باشد که در استاندارد IEEE [14] این موارد بیان شده اند، مثلاً می توان به عدم ابهام، کمال، قابل تصدیق، سازگاری، تغییرپذیری، قابلیت ردیابی

وغیره اشاره کرد. با این حال مشتری همیشه نمی تواند در شروع فرایند،

نیازمندی های مورد نظرش را بصورت صحیح و کامل مشخص کند. نیازمندی ها

تغییر می کنند و محدودیت هایی روی هزینه یا زمانبندی در پروژه وجود

خواهد داشت. ثبت نیازمندی ها الزامی است، اما چالش واقعی این است که آنها

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

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

۴- فاکتورهای موثر در پیچیدگی نیازمندی ها

مطابق مدل آبشاری[۱۵] و همانگونه که در شکل مشاده می شود، بطور معمول، چرخه حیات نرم افزار از پنج فاز تشکیل شده است. فاز۱: تجزیه و

تحلیل نیازمندی ها و ذکر مشخصات، فاز۲: طراحی، فاز۳: پیاده سازی، فاز۴: تست، فاز۵: نگهداری. در فاز اول، الزامات نرم افزار، کارکردهای کسب و کار،

صفات طراحی، و ویژگی های کارایی را تعیین می کنند. تحقیقات اخیر اذهان دارند که ۴۴% تا ۸۰% از خطاها در فاز نیازمندی ها وارد می شوند[۱۶].
شکل (۲): مدل آبشاری چرخه حیات نرم افزار

از طرف دیگر، همانگونه که در شکل (۲) نشان داده شده است، هزینه مورد نیاز برای اصلاح خطاها در طی چرخه حیات بصورت نمایی افزایش می یابد،

به اینصورت که هزینه اصلاح خطا در فاز کد۱۰-۵ مرتبه نسبت به فاز نیازمندی ها افزایش یافته و در فاز نگهداری، بین ۲۰۰-۱۰۰ مرتبه نسبت به فاز نیازمندی ها افزایش می یابد[۱۷].

شکل (۲): نسبت هزینه رفع خطا در چرخه حیات نرم افزار

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

۴-۱- دیدگاه نیروی انسانی
وقتی که درباره منابع انسانی صحبت می شود، منظور بخشی از منابع پروژه می باشد.

با تعیین و اندازه گیری مقدار و وضعیت منابع دردسترس و در مراحل آغازین چرخه حیات، می توان تعیین مقدار پیچیدگی نیازمندی ها را تخمین زد.

از این دیدگاه نیروی انسانی در دو سطح مورد بررسی قرار می گیرد. سطح ذینفعان و سطح تیم توسعه پروژه.

• سطح ذینفعان: ذینفعان افراد یا سازمان هایی هستند که تحت تاثیر پروژه قرار گرفته و همچنین بطور مستقیم یا غیر مستقیم روی نیازمندی های سیستم تاثیر می گذارند. به هنگام انجام یک پروژه برای یک سازمان این احتمال قوی وجود دارد که همه ذینفعان در یک محل جغرافیایی نباشند. این بدان معناست که استخراج نیازمندی ها از ذینفعانِ مختلف، متعدد و در مکان های مختلف انجام می شود.

پروژه مهندسی نیازمندی ها و نرم افزار

با توجه به این حقیقت که استخراج نیامندی ها فرایند شناسایی نیازمندی های مورد نظر ذینفعان است و از طرف دیگر با درنظر گرفتن چالش های متداول فاز تحلیل نیازمندی ها که اطمینان از ارتباط موثر بین ذینفعان و استخراج دانش

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

علاوه بر تاثیر توزیع شدگی ذینفعان در پیچیدگی نیازمندی ها می توان به عدم اشتراک در یک زبان مشترک جهت بیان یا ثبت نیازمندی ها به عنوان یکی دیگر از علل ایجاد پیچیدگی در فاز تحلیل نیازمندی ها اشاره کرد.

• سطح تیم توسعه پروژه: به منظور توسعه موثر نرم افزار، تخصص فنی نقش بسیار مهمی را بازی می کند. همچنین می توان به مهارت اعضای پروژه به عنوان یک فاکتور تاثیرگذار بر پیچیدگی نیازمندی های کاربر اشاره کرد. گرچه مهارت اعضای پروژه به روش های بسیار پیچیده ای قابل اندازه گیری است ،

اما تنها فاکتور مشخص و مهم عبارتند از: آیا عضو تیم پروژه قبلاً روی پروژه مشابهی کار کرده است؟ و اگر چنین است در چه تعداد پروژه پروژه مشابه شرکت داشته است؟

همچنین محاسبه صفات شخصی منجر به شناسایی تخصص شخصی می شود، مقدار این فاکتور از صفات گرداننده هزینه ی مدل واسط COCOMO [18]قابل استخراج ا……………..
…………………………

 

بلافاصله بعد از پرداخت موفق میتوانید فایل کامل این پروژه را با سرعت و امنیت دانلود کنید

 

 

 

 

1 نقد وبررسی برای پروژه مهندسی نیازمندی ها و نرم افزار

  1. samira motahedi

    پروژه مهندسی نیازمندی ها و نرم افزار عالی بود

افزودن نقد و بررسی

پروژه مهندسی نیازمندی ها و نرم افزار

1 نقد و بررسی

پروژه مهندسی نیازمندی ها و نرم افزار

کاربرد مهندسی نیازمندی ها در کنترل پیچیدگی نرم افزار

قیمت : تومان160,000