بنیاد تخصصی آموزش علوم کامپیوتر 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