Professional Documents
Culture Documents
Software Engineering
Software Engineering
▪ خواسته های سیستم ،توصیف کارهای است که سیستم باید انجام دهد(سرویس های که سیستم فراهم می سازد و
محدودیت های است که بر عملیات سیستم حاکم است) یا بصورت ساده قابلیت های که سیستم داشته باشد.
▪ خواسته های ،نیازمندی ها مشتریان را از سیستم مشخص میکند.
▪ فرآیند یافتن ،تحلیل ،مستندسازی و چک کردن این سرویس ها و محدودیت ها را مهندسی خواسته ها ( )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
اطالعات الزم برای تعین خواسته
15
مطالعه ی امکان سنجی
▪ مطالعه امکان سنجی یک مطالعه ی کوتاه و مفید است که در آغاز فرآیند مهندسی نرم افزار صورت
می گیرد باید به سه پرس اساسی پاسخ داده شود.
▪ آیا سیستم می تواند اهداف کلی سازمان را برآورده کند؟
▪ آیا سیستم با استفاده از تکنالوژی فعلی می تواند در زمان بندی و بودجه ی تعیین شده پیاده سازی شود؟
▪ آیا سیستم می تواند با سیستم های دیگر موجود ترکیب شود؟
▪ اگر پاسخ تمام پرسش های فوق منفی باشد ،احتماال نباید پروژه را انجام داد.
16