You are on page 1of 16

Software Engineering

Lecturer: Habibullah Nazari


Faculty of Computer Science
1
‫مهندسی خواسته ها‬

‫▪ خواسته های سیستم‪ ،‬توصیف کارهای است که سیستم باید انجام دهد(سرویس های که سیستم فراهم می سازد و‬
‫محدودیت های است که بر عملیات سیستم حاکم است) یا بصورت ساده قابلیت های که سیستم داشته باشد‪.‬‬
‫▪ خواسته های‪ ،‬نیازمندی ها مشتریان را از سیستم مشخص میکند‪.‬‬
‫▪ فرآیند یافتن‪ ،‬تحلیل‪ ،‬مستندسازی و چک کردن این سرویس ها و محدودیت ها را مهندسی خواسته ها (‪ )RE‬می‬
‫نامند‬
‫▪ مهندسی خواسته ها به دو نوع تقسیم میشود‪:‬‬
‫▪ خواسته های کاربر‪ :‬مستنداتی به زبان طبیعی به همراه نمودار های از سرویس های است که انتظار می رود‬
‫سیستم آنها را ارائه کند و محدودیت های است که سیستم باید تحت آن محدودیت کارکند‪.‬‬
‫▪ سرویس و محدودیت های سیستم را به تفصیل بیان میکنند‪ .‬سند خواسته های سیستم که گاهی مشخصات‬
‫عملکردی نام دارد باید دقیق باشد ممکن به عنوان قرارداد بین خریدار سیستم و توسعه دهنده سیستم محصوب‬
‫شود‪.‬‬

‫‪2‬‬
‫مهندسی خواسته ها‬

‫▪ خواسته های کاربر معموال به صورت انتزاعی و خواسته های سیستم بصورت مشرح بیان میشود‪.‬‬

‫‪3‬‬
‫خواسته های کاربر و سیستم‬

‫‪4‬‬
‫خواسته های عملکردی و غیر عملکردی‬

‫▪ خواسته های عملکردی( ‪ :)Functional requirement‬این خواسته ها بیانی از سرویس های هستند‬
‫که سیستم باید ارائه نماید‪ ،‬سیستم چگونه باید به ورودی های خاصی پاسخ دهد و سیستم در وضعیت‬
‫های خاص چگونه باید رفتار کند‪.‬‬
‫▪ خواسته های غیر عملکردی‪ :‬این ها محدودیت های در سرویس ها یا عملکردهایی هستند که توسط‬
‫سیستم پیشنهاد می شود مانند محدودیت های زمانی اجرائی‪ ،‬محدودیت‬

‫‪5‬‬
‫خواسته های عملکردی(‪)Functional requirement‬‬

‫▪ خواسته های عملکردی سیستم‪ ،‬مشخص می کند سیستم چه کارهای باید انجام دهد‪ .‬این خواسته ها به‬
‫نوع نرم افزار‪ ،‬کاربران نرم افزار و رهیافت کلی سازمان در هنگام نوشتن خواسته ها بستگی دارد‪.‬‬
‫▪ عدم دقت در مشخصات خواسته ها علت اغلب مشکالت مهندسی نرم افزار است‪.‬‬
‫▪ مشخصات خواسته های عملکردی سیستم باید کامل و سازگار باشد (تمام سرویس های کاربر باید‬
‫تعریف شده باشد) سازگاری به معنی خواسته ها تعریف های متضاد نداشته باشد‪.‬‬
‫▪ کاربر قادر است لیست نوبت تمام کلینیک ها را جستجو کند‪.‬‬
‫▪ سیستم هر روز برای هر کلینیک لیستی از بیمارانی را که انتظار می رود در آن روز ویزیت شوند تولید‬
‫کند‪.‬‬
‫▪ هر کارمندی که از سیستم اتسفاده میکند با شماره ی کارمندی ‪ 8‬رقمی خود شناسایی می شوند‪.‬‬

‫‪6‬‬
‫خواسته های غیر عملکردی(‪)nonfunctional requirements‬‬

‫▪ خواسته های غیر عملکردی آنهای هستند که مستقیما به سرویس های تحویل شده به کاربران مربوط‬
‫نمی شود بلکه به ویژگی های مثل قابلیت اعتماد بودن زمان پاسخ و محل استقرار بستگی دارد‪.‬‬
‫▪ خواسته های غیر عملکردی مانند امنیت‪ ،‬قابلیت دسترس پذیری و غیره است‪.‬‬
‫▪ اگر خواسته های غیر عملکردی مهمتر از خواسته های عملکردی است‪ .‬اگر یک خواسته غیر‬
‫عملکردی مهم را در نظر نگیریم و تمام خواسته های عملکردی را در نظر بگیریم ممکن سیستم غیر‬
‫قابل استفاده شود‪ .‬مانند سیستم هواپیما اگر خواسته های اعتماد را نداشته باشد در حقیقت غیر قابل‬
‫استفاده است‪.‬‬
‫▪ خواسته های غیر عملکردی بیشتر ساختار کلی سیستم را تحت تاثیر قرار میدهد‪.‬‬

‫‪7‬‬
‫معیار های خواسته های غیر عملکردی‬

‫‪8‬‬
‫استندرد های سند خواسته ها‬

‫▪ سازمان دفاع آمریکا و ‪ IEEE‬استاندارد های برای اسناد خواسته ها تعریف کرده است‪.‬‬
‫▪ برای استخراج خواسته های نرم افزار از استندرد ها و سیستم های موجود که در این این زمینه وجود‬
‫دارد استفاده میشود‪.‬‬
‫▪ سند خواسته های نرم افزار‪ :‬یک بیان رسمی از چیزهای است که مورد نیاز توسعه دهنده ای سیستم‬
‫است که شامل خواسته های کاربر و سیستم باشد‪.‬‬
‫▪ خواسته های کاربر معموال بصورت کلی است و اما خواسته های سیستم بصورت مشرح تر است که‬
‫جزئیات بیشتر ارائه میکند‪.‬‬

‫‪9‬‬
‫سند خواسته های نرم افزار‬

‫▪ سند خواسته های نرم افزار (‪ )SRS software requirement specification‬یک بیان رسمی از‬
‫چیزهایی است که مورد نیاز توسعه دهنده ی سیستم است باید شامل خواسته های کاربر و مشخصات‬
‫تفصیلی خواسته های سیستم باشد‪.‬‬
‫▪ در بعضی از موارد خواسته های کاربر و سیستم ممکن است در یک توصیف جامعیت پیدا کند‪.‬‬
‫▪ ممکن سند خواسته های کاربر و سیستم بصورت جداگانه تعریف شود در صورتیکه سیستم پیچیده باشد‪.‬‬

‫‪10‬‬
‫سند خواسته ها از دید کاربران مختلف‬

‫‪11‬‬
‫تعین مشخصات خواسته ها‬

‫▪ تعیین مشخصات خواسته ها‪ ،‬فرآیند نوشتن خواسته های کاربر و سیستم در سند خواسته ها است‪.‬‬
‫▪ خواسته های کاربر برای سیستم باید خواسته های عملکردی و غیر عملکردی را توصیف کند به طوری که کاربرانی‬
‫غیر فنی هم درک کند‪.‬‬
‫▪ برای به حداقل رساندن مشکالت در هنگام نوشتن خواسته ها به زبان طبیعی از رهنمود های ذیل استفاده شود‪.‬‬
‫یک فرمت استاندارد اختراع کنید و مطمیئین شوید که تعریف تمام خواسته ها از آن فرمت پیروی میکنند استاندارد سازی‬ ‫‪.1‬‬
‫این فرمت کمبود ها را به حداقل می رساند و چک کردن خواسته ها آسانتر خواهد شد‪ .‬هرخواسته باید در یک جمله بیان‬
‫شود‪.‬‬
‫برای تمایز بین خواسته های اجباری و مطلوب از زبان به طور مناسب استفاده شود‪ .‬خواسته های اجباری آنهای اند که‬ ‫‪.2‬‬
‫سیستم باید از آنها پشتیبانی کند و معموال با استفاد ‪ shall‬مشخص میشود و خواسته های مطلوب اساسی نیستند وبا‬
‫‪ should‬نوشته میشوند‪.‬‬

‫‪12‬‬
‫تعین مشخصات خواسته ها‬

‫برای مشخص کردن بخش های مهم خواسته ها آن بخش ها را برجسته کنید( رنگی‪ ،‬پررنگ‪ ،‬ایتالیک و‬ ‫‪.3‬‬
‫غیره)‬
‫فرض نکنید که خوانندگان زبان فنی مهندسی نرم افزار را درگ می کنند‪ .‬خوانندگان ممکن است واژه‬ ‫‪.4‬‬
‫های معماری و ماژول را درک نکنند بنابر این نباید از اصطالحات فنی و اختصارات استفاده کنید‪.‬‬
‫در صورت امکان‪ ،‬برای هر خواسته ی کاربر دلیلی ارائه دهید‪ .‬این دلیل باید توضیح دهید که چرا این‬ ‫‪.5‬‬
‫خواسته در نظر گرفته شده است این موضوع در هنگام تغییر خواسته ها مفید است زیرا ممکن تصمیم‬
‫برای تغیرات گرفته شود‪.‬‬

‫‪13‬‬
‫مثال سند خواسته ها تعین مشخصات خواسته ها‬

‫‪14‬‬
‫اطالعات الزم برای تعین خواسته‬

‫‪ .1‬توصیفی از عملکرد یا موجودیتی که مشخص می شود‪.‬‬


‫‪ .2‬توصیفی از ورودی های آن و جایی که این ورودی ها می آیند‪.‬‬
‫‪ .3‬توصیفی از خروجی های آن و جایی که این خروجی ها می روند‪.‬‬
‫‪ .4‬نشانه ای از سایر موجودیت هایی که استفاده می شوند(بخش نیاز ها)‬
‫‪ .5‬توصیف عملی یا عملیات که باید صورت گیرد‪.‬‬
‫‪ .6‬اگر از روش عملکرد ی استفاده شود پیش شرطی تعین شود که مشخص کند قبل از اجرای آن عملکرد‬
‫چه شرایطی باید برقرار باشد و پس شرطی تعیین شود که مشخص کند پس از اجرای آن عملکرد چه‬
‫شرطی باید برقرار باشد‪.‬‬
‫‪ .7‬توصیفی از اثرات جانبی عملیات‪.‬‬

‫‪15‬‬
‫مطالعه ی امکان سنجی‬

‫▪ مطالعه امکان سنجی یک مطالعه ی کوتاه و مفید است که در آغاز فرآیند مهندسی نرم افزار صورت‬
‫می گیرد باید به سه پرس اساسی پاسخ داده شود‪.‬‬
‫▪ آیا سیستم می تواند اهداف کلی سازمان را برآورده کند؟‬
‫▪ آیا سیستم با استفاده از تکنالوژی فعلی می تواند در زمان بندی و بودجه ی تعیین شده پیاده سازی شود؟‬
‫▪ آیا سیستم می تواند با سیستم های دیگر موجود ترکیب شود؟‬

‫▪ اگر پاسخ تمام پرسش های فوق منفی باشد‪ ،‬احتماال نباید پروژه را انجام داد‪.‬‬

‫‪16‬‬

You might also like