Uploaded by tskiarashsaleh

Chapter 2-SoftwarePrcocess

advertisement
‫بنیاد تخصصی آموزش علوم کامپیوتر ‪TEACH UNIT‬‬
‫جلسه دوم‬
‫مدل های فرایند نرم افزار‬
‫‪1‬‬
‫فهرست مطالب‬
‫جلسه ‪2‬‬
‫‪ o‬مقدمه‬
‫•‬
‫•‬
‫•‬
‫جریان فرایند‬
‫فعالیت‪ ،‬اقدام‪ ،‬وظیفه‬
‫سنجش و بهبود‬
‫‪ o‬مدل های تجویزی فرایند‬
‫•‬
‫•‬
‫•‬
‫•‬
‫مدل فرایند آبشاری‬
‫مدل فرایند نمونه سازی‬
‫مدل فرایند تکاملی‬
‫مدل فرایند یکپارچه‬
‫‪ o‬مقایسه مدل های تجویزی‬
‫‪ o‬انتخاب فرایند برای ‪SafeHome‬‬
‫‪ o‬خالصه مطالب‬
‫‪ o‬تمرین و تحقیق‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪2‬‬
‫مقدمه‬
‫جلسه ‪2‬‬
‫❑هنگام ساخت یک محصول‪ ،‬دنباله ای از گام های قابل پیش بینی‬
‫(نقشه راه) را در پیش می گیریم که به تحویل به موقع و باکیفیت‬
‫محصول کمک می کند و ”فرایند نرم افزار" نام دارد‪.‬‬
‫❑فرایند نرم افزار با اینکه ایستایی‪ ،‬کنترل و سازماندهی را فراهم‬
‫می سازد‪ ،‬نیازمند چابکی نیز هست یعنی به ازای هر پروژه‪ ،‬صرفا‬
‫فعالیتهای مناسب آن صورت می گیرد‪.‬‬
‫❑فرایند مناسب برای ساخت نرم افزار مربوط به هواپیمای‬
‫هواشناسی‪ ،‬برای برنامه تلفن همراه (‪ )mobile app‬یا بازی کامپیوتری‬
‫خوب نیست‪.‬‬
‫❑تعریف محصول کاری (‪ :)work product‬برنامه ها‪ ،‬مستندات و داده هایی‬
‫که از طریق وظایف و فعالیت های مهندسی مندرج در فرایند‪ ،‬حاصل می‬
‫شوند‪.‬‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪3‬‬
‫چارچوب فرایند نرم افزار‬
‫جلسه ‪2‬‬
‫تمام فعالیتها‪ ،‬اقدامات و وظایف در یک چارچوب یا مدل قرار می گیرند‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪4‬‬
‫جریان فرایند (‪)process flow‬‬
‫جلسه ‪2‬‬
‫نحوه وقوع فعالیتها‪ ،‬اقدامات و وظایف برحسب ترتیب و زمان‬
‫خطی (‪ :)linear‬اجرای فعالیت ها بصورت یک دنباله پشت سرهم‬‫ تکرارگونه (‪ :)iterative‬تکرار یک یا چند فعالیت پیش از رسیدن به بعدی‬‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪5‬‬
‫جریان فرایند (‪)process flow‬‬
‫جلسه ‪2‬‬
‫نحوه وقوع فعالیتها‪ ،‬اقدامات و وظایف برحسب ترتیب و زمان‬
‫تکاملی (‪:)evolutionary‬‬‫هر دور منجر به نرم افزار‬
‫کامل تری می شود‬
‫موازی (‪ :)parallel‬اجرای یک یا چند فعالیت بطور‬‫موازی با دیگر فعالیتها‬
‫مانند‪ :‬مدلسازی یک جنبه از نرم افزار بطور موازی با‬
‫ساخت جنبه دیگری از نرم افزار‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪6‬‬
‫مثال از فعالیت‪ ،‬اقدام و وظیفه‬
‫جلسه ‪2‬‬
‫‪ o‬فعالیت (‪ :)activity‬ارتباطات‬
‫• اقدام (‪ :)action‬مکالمه تلفنی (‪)phone conversation‬‬
‫✓مجموعه وظیفه ها (‪:)tasks‬‬
‫تماس با ذینفع از طریق تلفن‬‫بحث درباره نیازمندی ها (‪ )requirement‬و یادداشت برداری‬‫یادداشت ها را بصورت عبارات بیانگر نیازمندی ها سازماندهی کنید‬‫‪-‬این موارد را به ذینفعان برای بازبینی و تایید‪ ،‬ایمیل بزنید‬
‫ اگر تعداد ذینفعان زیاد باشد که هرکدام مجموعه نیازمندی های متفاوت (و‬‫گاهی متضادی) دارند‪ ،‬فعالیت ارتباطات شامل شش اقدام زیر است‪:‬‬
‫‪ -4‬مذاکره (‪)negotiation‬‬
‫‪ -1‬ادراک (‪)inception‬‬
‫‪ -5‬مشخصات (‪)specification‬‬
‫‪ -2‬انتخاب (‪)elicitation‬‬
‫‪ -6‬اعتبارسنجی (‪)validation‬‬
‫‪ -3‬تشریح (‪)elaboration‬‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪7‬‬
‫مجموعه وظایف (‪)task set‬‬
‫جلسه ‪2‬‬
‫مجموعه وظایف برای اقدام انتخاب (‪)elicitation=requirements gathering‬‬
‫برای پروژه کوچک و ساده‪:‬‬
‫‪ -1‬تهیه لیستی از ذینفعان پروژه‬
‫‪ -2‬دعوت تمام ذینفعان به یک مالقات غیررسمی‬
‫‪ -3‬درخواست لیست ویژگی ها و عملکردهای‬
‫(‪ )features and functions‬مورد نیاز از هریک از‬
‫ذینفعان‬
‫‪ -4‬بحث درباره نیازمندی ها و تشکیل لیست نهایی‬
‫‪ -5‬اولویت بندی نیازمندی ها‬
‫‪ -6‬توجه به موارد غیرقطعی‬
‫برای پروژه بزرگ و پیچیده‪:‬‬
‫‪ -1‬تهیه لیستی از ذینفعان پروژه‬
‫‪ -2‬مصاحبه جداگانه با هر ذینفع برای تعیین خواستها‬
‫و نیازهای کلی‬
‫‪ -3‬ایجاد لیست اولیه از ویژگی ها و عملکردها‬
‫‪ -4‬زمانبندی مالقات ها برای تعیین مشخصات برنامه‬
‫‪ -5‬هدایت مالقات ها‬
‫‪ -6‬ساخت سناریوی غیررسمی کاربران به عنوان‬
‫بخشی از هر مالقات‬
‫‪ -7‬پاالیش سناریوی کاربران طبق بازخورد ذینفعان‬
‫‪ -8‬ساخت لیست بازبینی شده از نیازمندیهای ذینفعان‬
‫‪ -9‬استفاده از تکنیکهای بکارگیری تابع کیفیت برای‬
‫اولویت بندی نیازمندی ها‬
‫‪ -10‬بسته بندی نیازمندی ها برای تحویل بصورت‬
‫افزایشی‬
‫‪ -11‬توجه به قیود و محدودیتهای سیستم‬
‫‪ -12‬بحث درباره روشهای اعتبارسنجی سیستم‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪8‬‬
‫سنجش و بهبود فرایند‬
‫جلسه ‪2‬‬
‫وجود فرایند‪ ،‬تضمینی بر تحویل به موقع‪ ،‬برآوردن نیاز مشتری‪،‬‬‫کیفیت در درازمدت (فصل ‪ )15‬نیست‪.‬‬
‫الگوهای معماری نیز مهم هستند (بخش دوم کتاب)‪.‬‬‫اندازه گیری و تعریف مالک های تحلیلی (‪ )metric‬برای پیشرفت پروژه الزم‬‫است‪.‬‬
‫اندازه گیری کیفیت فرایند مهم است (فصل ‪.)17‬‬‫‪-‬بحث درباره روشهای بهبود و سنجش فرایندها الزم است (فصل ‪.)28‬‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪9‬‬
‫مدل های تجویزی (‪ )prescriptive‬فرایند‬
‫جلسه ‪2‬‬
‫➢مدل های تجویزی فرایند‪ ،‬مجموعه ای از پیش تعریف شده از‬
‫عناصر فرایند را به همراه یک جریان کاری قابل پیش بینی‬
‫مشخص می سازند‪.‬‬
‫➢فعالیتها و وظایف بصورت ترتیبی با راهنماهای تعیین شده برای‬
‫پیشرفت‪ ،‬رخ می دهند‪.‬‬
‫➢اما آیا مدل های تجویزی برای دنیای نرم افزاری سرشار از‬
‫تغییرات امروزی‪ ،‬مناسب است؟‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪10‬‬
‫مدل آبشاری (‪)waterfall‬‬
‫جلسه ‪2‬‬
‫وقتی نیازمندی های مساله به خوبی درک شده باشند و جریان های کاری از‬
‫ارتباطات تا بکارگیری‪ ،‬به شکل منطقا خطی باشند‪ ،‬مانند‪:‬‬
‫توسعه ها تطبیق های خوش تعریف برای یک سیستم موجود‪ .‬مانند‪ :‬ایجاد‬‫تطبیق در نرم افزار حسابداری برای همراهی با تغییرات مربوط به مقررات‬
‫اجباری دولت‬
‫ تعداد معدودی از تالش ها برای ایجاد سیستم های جدید‪ .‬مانند‪ :‬زمانی که‬‫نیازمندی ها بصورت خوش تعریف و منطقا ایستا باشند‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪11‬‬
‫مدل آبشاری‬
‫جلسه ‪2‬‬
‫معایب‪:‬‬
‫‪-1‬پروژه های واقعی به ندرت از جریان کاری ترتیبی پیروی می کنند‬
‫‪ -2‬اکثر اوقات برای مشتری سخت است که تمام نیازمندی ها را‬
‫صریحا در ابتدای پروژه بیان کند‬
‫‪ -3‬الزم است که مشتری صبور باشد زیرا یک نسخه کارکننده از‬
‫برنامه ها فقط در انتهای زمان پروژه در دسترس خواهد بود‬
‫‪ -4‬اشتباهات اساسی پیش از مرور برنامه کارکننده ( ‪working‬‬
‫‪ )program‬ممکن است تشخیص داده نشوند‪.‬‬
‫مدل آبشاری‪ ،‬قدیمی ترین پارادایم=سرمشق و الگوواره (‪ )paradigm‬مهندسی نرم افزار است‬
‫گاهی مدل ترتیبی خطی (‪ )linear sequential model‬نامیده می شود‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪12‬‬
‫مدل فرایند نمونه سازی‬
‫(‪)prototyping‬‬
‫جلسه ‪2‬‬
‫مشتری مجموعه ای از اهداف کلی را برای نرم افزار مشخص‬‫می سازد ولی نیازمندی های تفصیلی را برای ویژگی ها و‬
‫عملکردها (‪ )features and functions‬تعیین نمی کند‪.‬‬
‫سازنده برنامه ممکن است از کارآمدی الگوریتم نامطمئن باشد‪،‬‬‫از تطبیق پذیری سیستم عامل یا شیوه انجام تعامل میان انسان‬
‫و ماشین اطمینان نداشته باشد‪.‬‬
‫پارادایم نمونه سازی به شما و ذینفعان دیگر کمک می کند تا‬‫وقتی نیازمندی ها درهم و مبهم هستند‪ ،‬نرم افزار درخواست‬
‫شده را بهتر درک کنید‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪13‬‬
‫مدل فرایند نمونه سازی‬
‫(‪)prototyping‬‬
‫جلسه ‪2‬‬
‫مثال‪ :‬یک برنامه تلفن همراه برای بدنسازی‬
‫افزایش اول‪ :‬صفحات پایه واسط کاربر مورد نیاز برای همگام سازی‬
‫تلفن همراه با دستگاه بدنسازی و نمایش داده های کنونی‬
‫افزایش دوم‪ :‬قابلیت تنظیم اهداف و ذخیره داده های دستگاه‬
‫بدنسازی روی ابر‬
‫افزایش سوم‪ :‬تجمیع رسانه اجتماعی به منظور فراهم سازی امکان‬
‫تنظیم اهداف بدنسازی و به اشتراک گذاری پیشرفت به سمت آنها با‬
‫مجموعه دوستان‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪14‬‬
‫مدل فرایند نمونه سازی‬
‫(‪)prototyping‬‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫جلسه ‪2‬‬
‫‪15‬‬
‫مدل فرایند نمونه سازی‬
‫(‪)prototyping‬‬
‫جلسه ‪2‬‬
‫معایب‪:‬‬
‫‪ -1‬ذینفعان‪ ،‬چیزی را می بینند (یک افزایش) که به نظر می رسد یک نسخه‬
‫کارکننده (‪ )working version‬از نرم افزار است‪ .‬آنها ممکن است نسبت به‬
‫تحوالت رو به رشد معماری نمونه ها (ساختار برنامه) ناآگاه باشند‪ .‬یعنی‬
‫سازندگان ممکن است تمام کیفیت نرم افزار یا قابلیت نگهداری در درازمدت را‬
‫درنظر نگرفته باشند‪.‬‬
‫‪ -2‬شما در جایگاه مهندس نرم افزار‪ ،‬ممکن است وسوسه شوید پیاده سازی را‬
‫به خطر اندازید تا یک نمونه را سریعا به صورت کارکننده درآورید‪ .‬اگر دقت‬
‫نکنید‪ ،‬این انتخابهای کمتر از ایده آل‪ ،‬بخشی جدایی ناپذیر از سیستم درحال‬
‫رشد خواهند شد‪.‬‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪16‬‬
‫مدل فرایند تکاملی‬
‫(‪)evolutionary‬‬
‫جلسه ‪2‬‬
‫نرم افزارها در طول زمان رشد و نمو می یابند‪.‬‬
‫نیازمندی های محصول و کسب و کار اغلب در حال تغییرند‬
‫موعدهای زمانی زودهنگام‪ ،‬تکمیل یک نسخه جامع را غیرممکن می سازند‬
‫بنابراین‪:‬‬
‫مناسب است یک نسخه محدود از نرم افزار ارائه دهیم که به فشارکسب‬
‫و کار یا رقابت غلبه کد و یک نسخه پاالیش شده را زمانی ارائه دهیم که‬
‫تمام ویژگی های سیستم بهتر درک شده باشند‪.‬‬
‫مدل حلزونی (‪ ،)spiral‬ذات تکرارگونه مدل نمونه سازی را در کنار جنبه‬
‫های کنترل شده و سامانمند مدل آبشاری قرار داده است‪ .‬در طول حیات‬
‫نرم افزار‪ ،‬این نهضت ادامه دارد و برای سیستم های مقیاس وسیع‬
‫(‪ )large scale‬مناسب است‪.‬‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪17‬‬
‫مدل فرایند تکاملی‬
‫(‪)evolutionary‬‬
‫جلسه ‪2‬‬
‫معایب‪:‬‬
‫‪ -1‬قانع کردن مشتریان در قرارداد برای کنترل پذیر بودن رویکرد تکاملی‬
‫مشکل است‬
‫‪-2‬موفقیت در این رویکرد بستگی مستقیم به تجربه و سنجش میزان ریسک‬
‫دارد‪.‬‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪18‬‬
‫مدل فرایند یکپارچه (‪)UP‬‬
‫جلسه ‪2‬‬
‫مدل فرایند یکپارچه رشنال (‪)RUP: Rational Unified Process‬‬
‫کوششی برای استخراج بهترین خصوصیات از میان مدل های سنتی‬
‫فرایند نرم افزار است‬
‫•این فرایند از زبان مدلسازی یکپارچه ‪Unified Modeling ( UML‬‬
‫‪ )Language‬استفاده می کند که تبدیل به یک استاندارد عرفی ( ‪de‬‬
‫‪ )facto‬برای مدلسازی و توسعه سیستم های شئ گرا شده است‪.‬‬
‫•‪ RUP‬و ‪ UML‬حاصل همکاری سه تفنگدار (‪ )The three Amigos‬در‬
‫حوزه نرم افزار و تجمیع متدولوژی های ایشان است‬
‫متدولوژی (‪ :)methodology‬اصطالح قدیمی تری برای فرایند است‬‫‪Jacobson, I., G. Booch, and J. Rumbaugh, The Unified Software Development Process,‬‬
‫‪Addison-Wesley, 1999.‬‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪19‬‬
2 ‫جلسه‬
)UP( ‫مدل فرایند یکپارچه‬
UP ‫فازهای‬
Inception -1
Elaboration -2
Construction -3
Transition -4
production -5
20
Teach Unit ‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی‬
2 ‫جلسه‬
)UP( ‫مدل فرایند یکپارچه‬
Grady booch
Booch
Ivar Jacobson
methodology object-modeling James rumbaugh
technique (OMT) Object-Oriented Software
methodology
Engineering (OOSE)
methodology
21
Teach Unit ‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی‬
‫مدل فرایند یکپارچه (‪)UP‬‬
‫جلسه ‪2‬‬
‫‪-1‬ادراک (‪)inception‬‬
‫شامل فعالیتهای ارتباطات و طرح ریزی‬
‫توصیف نیازمندی های اولیه کسب و‬‫کار در قالب ‪ use case‬های اولیه‬
‫توصیف ویژگی ها و عملکردهای‬‫(‪ )features and functions‬مناسب‬
‫برای هر دسته از کاربران برای فهم‬
‫معماری نرم افزار‬
‫شناسایی منابع‪ ،‬سنجش مخاطرات‬‫اصلی‪ ،‬تعیین زمانبندی اولیه برای‬
‫افزایش های نرم افزار ( ‪software‬‬
‫‪)increment‬‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪22‬‬
‫مدل فرایند یکپارچه (‪)UP‬‬
‫جلسه ‪2‬‬
‫‪-2‬تشریح (‪)elaboration‬‬
‫شامل فعالیتهای طرح ریزی و مدلسازی‬
‫پاالیش و گسترش مورد کاربرد (‪ )use case‬های اولیه و ایجاد مبانی‬‫اولیه معماری متشکل از پنج دید مختلف (‪:)4+1 views‬‬
‫▪ مدل ‪use case‬‬
‫▪مدل ‪analysis‬‬
‫▪مدل ‪design‬‬
‫▪مدل ‪implementation‬‬
‫▪مدل ‪deployment‬‬
‫اصالحات طرح‬‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪23‬‬
‫مدل فرایند یکپارچه (‪)UP‬‬
‫جلسه ‪2‬‬
‫‪-3‬ساخت(‪)construction‬‬
‫معادل با فعالیت ساخت‬
‫پیاده سازی تمام ویژگی ها و عملکردهای ( ‪features and‬‬‫‪ )functions‬الزم برای این افزایش نرم افزار ( ‪software‬‬
‫‪ )increment‬یعنی نسخه انتشاری‪release :‬‬
‫طراحی و اجرای تست های واحد (‪ )unit test‬همزمان با پیاده سازی‬‫مؤلفه ها در کد منبع‬
‫هدایت فعالیتهای جامعیتی (‪ )integration‬مانند سرهم سازی مؤلفه‬‫ها (‪)component assembly‬و تست جامعیت (‪)integration testing‬‬
‫استفاده از ‪ use case‬ها برای مشخص کردن تست های پذیرش‬‫(‪)acceptance test‬‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪24‬‬
‫مدل فرایند یکپارچه (‪)UP‬‬
‫جلسه ‪2‬‬
‫‪-4‬انتقال(‪)transition‬‬
‫شامل مراحل انتهایی فعالیت ساخت و بخش اول فعالیت بکارگیری‬
‫(تحویل و بازخورد= ‪)delivery and feedback‬‬
‫تحویل نرم افزار ومستندات پشتیبان به کاربران نهایی (‪)end user‬‬‫برای انجام تست بتا (‪)beta testing‬‬
‫بازخورد کاربران شامل هردوی کاستی ها (‪ )defects‬و تغییرات الزم‬‫(‪ )necessary changes‬است‬
‫در پایان این فاز‪ ،‬افزایش نرم افزار‪ ،‬تبدیل به یک نسخه انتشاری‬‫(‪ )software release‬قابل استفاده می شود‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪25‬‬
‫مدل فرایند یکپارچه (‪)UP‬‬
‫جلسه ‪2‬‬
‫‪-5‬محصول(‪)production‬‬
‫شامل فعالیت بکارگیری و استقرار‬
‫پایش استفاده مداوم از نرم افزار‬‫پشتیبانی از محیط عملیاتی (زیرساخت=‪)infrastructure‬‬‫‪-‬ارسال و بررسی گزارش کاستی ها و درخواست برای تغییرات‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪26‬‬
‫مدل فرایند یکپارچه (‪)UP‬‬
‫‪RUP Life cycle‬‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫جلسه ‪2‬‬
‫‪27‬‬
‫مقایسه مدل های فرایند نرم افزار‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫جلسه ‪2‬‬
‫‪28‬‬
‫مقایسه مدل های فرایند نرم افزار‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫جلسه ‪2‬‬
‫‪29‬‬
‫انتخاب مدل فرایند‪SafeHome‬‬
‫جلسه ‪2‬‬
‫نرم افزاری برای مدیریت خانه‪ :‬خانه امن‬
‫❑بخاطر بزرگی پروژه‪ ،‬روش های موردی (‪ )ad hoc approaches‬ما برای‬
‫پروژه های قبلی‪ ،‬در اینجا کار نمی کند‪.‬‬
‫❑نیازمند یک فرایند هستیم‪.‬‬
‫❑مدل خطی جواب نمی دهد‪ ،‬برای سیستم کنترل انبار مناسب است‬
‫❑مدل نمونه سازی ممکن است ساختار کافی برای ما فراهم نسازد‪.‬‬
‫❑در مدل تکاملی‪ ،‬یک افزایش را تحویل می دهیم‪ ،‬از بازخوردهای‬
‫کاربران می آموزیم‪ ،‬مجددا طرح ریزی می کنیم و افزایش دیگری تحویل‬
‫می دهیم‪ .‬به ذات محصول منطبق است و می توانیم سریعا محصولی را به‬
‫بازار برسانیم‪.‬‬
‫❑ممکن است مدیران ارشدآنرا نپذیرند و یک طرح ثابت‪ ،‬یک زمانبندی و‬
‫التزام به آنرا طلب کنند‪ .‬باید آنها را قانع کنیم☺‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪30‬‬
‫خالصه مطالب‬
‫جلسه ‪2‬‬
‫‪ o‬مدل های تجویزی‪ ،‬حاصل سالها تالش برای ترتیب دهی و‬
‫ساختاردهی به ساخت و توسعه نرم افزار هستند‪.‬‬
‫‪ o‬گرچه هر مدل فرایند‪ ،‬جریان فرایند متفاوتی را پیشنهاد می دهد‪،‬‬
‫ولی مجموعه یکسانی از فعالیت ها را در بر دارند‪.‬‬
‫‪o‬مدل های ترتیبی فرایند‪ ،‬اکثر اوقات با واقعیت های عصر جدید مانند‬
‫تغییرات مستمر‪ ،‬سیستمهای در حال رشد و ضیق وقت سازکار نیستند‪.‬‬
‫‪o‬مدل های افزایشی فرایند‪ ،‬ذاتا تکرارگونه هستند و نسخه های کارکننده‬
‫از نرم افزار را بسیار سریع تولید می کنند‬
‫‪ o‬مدل های تکاملی فرایند‪ ،‬ذات تکرارگونه و افزایشی دارند و با تغییرات‬
‫همراهی می کنند‪.‬‬
‫‪ o‬فرایند یکپارچه بصورت مبتنی بر مورد کاربرد‪ ،‬معماری محور‪ ،‬تکرارگونه و‬
‫افزایشی است که چارچوبی برای روشها و ابزارهای ‪ UML‬فراهم می سازد‪.‬‬
‫‪ o‬فرایند ضعیف بر محصول نهایی مؤثر است ولی پایبندی وسواس گونه‬
‫به مقررات فرایند نیز خطرناک است‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪31‬‬
‫تمرین و تحقیق‬
‫جلسه ‪2‬‬
‫‪ -1‬فرایند فراهم کننده تعامل میان کاربران و طراحان‪ ،‬کاربران و‬
‫ابزارهای در حال رشد‪ ،‬طراحان و ابزارهای (فناوری) در حال رشد‬
‫است‪.‬‬
‫پنج سوال در هر مورد فراهم کنید که‪:‬‬
‫طراحان باید از کاربران بپرسند‬‫کاربران باید از طراحان بپرسند‬‫کاربران باید از خود بپرسند درباره محصول نرم افزاری تحت‬‫ساخت‬
‫طراحان باید از خود بپرسند درباره محصول نرم افزاری تحت‬‫ساخت و فرایند مورد استفاده برای آن‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪32‬‬
‫تمرین و تحقیق‬
‫جلسه ‪2‬‬
‫‪ -2‬یک مساله متداول درهنگام ارتباطات رویارویی با ذینفعانی است‬
‫که دارای تصورات متضاد از نرم افزار تحت ساخت هستند‪ .‬یعنی‬
‫نیازمندی های متقابال متضاد دارند‪ .‬یک الگوی فرایند ارائه دهید که‬
‫به این مساله بپردازد و راه حلی برای آن ارائه دهد‪.‬‬
‫‪ -3‬برای هر مورد سه مثال خاص از پروژه های نرم افزاری ارائه‬
‫دهید‪:‬‬
‫منطبق با مدل آبشاری‬‫منطبق با مدل نمونه سازی‬‫منطبق با مدل تکاملی‬‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪33‬‬
‫تمرین و تحقیق‬
‫جلسه ‪2‬‬
‫‪ -4‬آیا امکان ترکیب مدل های فرایند وجود دارد؟ اگر بله‪ ،‬یک مدل‬
‫فرایند جدید ارائه دهید‪.‬‬
‫‪ -5‬مزایا و معایب ایجاد نرم افزار باکیفیت را بنویسید‪ .‬چه اتفاقی‬
‫می افتد اگر بر سرعت ساخت‪ ،‬تاکید بیشتری داشته باشیم تا به‬
‫کیفیت محصول؟‬
‫‪ -6‬آیا می توان اثبات کرد که یک مؤلفه نرم افزاری و حتی کل یک‬
‫برنامه‪ ،‬صحیح است؟ اگر بله‪ ،‬چرا همه مهندسان از این روش‬
‫استفاده نمی کنند؟‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪34‬‬
‫جلسه ‪2‬‬
‫آموزش تخصصی علوم کامپیوتر – بنیاد تخصصی ‪Teach Unit‬‬
‫‪35‬‬
Download