Transcript فرایند محور
Software Process فرایند تولید نرم افزار فرآیند تولید (توسعه) نرم افزار Software Development Process • مجموعه ای منسجم از فعالیتها ،و گامهاست که تولید کننده نرم افزار باید دنبال نماید تا محصول حاصل گردد. • هر فرایند توسعه نرم افزار مشخص می کند مراحل SDLC – چگونه انجام شود – توسط چه کسی انجام شود – در چه زمانی انجام شود – چه خروجی حاصل کند Communication Planning Modeling Construction Deployment Project Control Risk Management بخش های فرآیند تولید نرم افزار .1مدل فرآیند ) : (Process Modelیک رویه ی سطح باال که استراتژی کلی تولید نرم افزار را از نظر ترتیب اجرای مراحل SDLCمشخص می نماید. مدل آبشاری )(Waterfall Model مشکالت مدل آبشاری : جمع اوری نیازمندیها طی یک فاز مشکل است مشتری باید صبور باشد در واقعیت پروژه ها از یک روند خطی پیروی نمی کنند )Incremental Model( مدل افزایشی Evolutionary Process Models • Prototyping Model Evolutionary Process Models • Spiral Model Unified Process (UP) • بهره گیری از نکات مثبت مدلهای سنتی با ویژگیهایJacobson, Booch, Rumbaugh • توسط :زیر Use-case driven – Architecture-centric – iterative – UP iterations Communication Communication Communication Planning Planning Planning Modeling Iteration #2 Modeling Iteration #3 Modeling Construction Construction Construction Deployment Deployment Deployment …Iteration #n تفاوت مدل حلزونی و تکراری : در روش حلزونی طول تکرارها ممکن است متفاوت باشد، اما در روش تکراری طول تکرارها ثابت و معموال ٌ کوتاه (در حد چند هفته) است. UP فازهای developm ent cycle iteration inc. elaboration m ilestone A n iteration endpoint w hen som e significant decision or evaluation occurs. phase construction transition release increm ent A stable executable subset of the final product. T he end of each iteration is a m inor release. T he difference (delta ) betw een the releases of 2 subsequent iterations. final production release A t this point, the system is released for production use . UP فازهای S am p le U P D iscip lin es incep tion construction transition T he relative effort in disciplines shifts across the phases . B usiness M odeling R equirem ents T his exam ple is suggestive , not literal. D esign Im plem entation ... ... elaboration مزایای فرایند توسعه تکراری: • کمتر شدن احتمال شکست پروژه • مدیریت زود هنگام ریسک ها(ریسک نیازمندیها ،ریسک تکنیک) • مشاهده زود هنگام پیش رفت نرم افزار اجرایی • مدیریت پیچیدگی تولید پروژه • دریافت بازخورد زود هنگام از کاربر بخش های فرآیند تولید نرم افزار مدل فرآیند )(Process Model دیدگاه شناخت نیازمندیها ()Requirement gathering method زبان مدلسازی ()Modeling Language ابزار پشتیبانی)(CASE Tool دیدگاه شناخت نیازمندیها ()Requirement gathering method – فرایند محور ):( Process Centric • سیستم را مجموعه ای از واحدهای کاری (فرایند) متعامل می دانیم. – کاربر محور )(User Centric • سیستم را به عنوان مجموعه ای از تعامالت با کاربر می دانیم. مثال -فرایند محور مثال -فرایند محور مثال -فرایند محور مثال -کاربر محور بخش های فرآیند تولید نرم افزار مدل فرآیند )(Process Model دیدگاه شناخت نیازمندیها ()Requirement gathering method زبان مدلسازی ()Modeling Language ابزار پشتیبانی)(CASE Tool • زبان های مدل سازی • مدل:بازنمایی یا توصیف یک جنبه از سیستم: مدل داده ای مدل فرایندی • خروجی هر مرحله SDLCیک مدل است • هر مدل یک سطح تجرید یا Abstractionدارد.سطح تجرید با میزان جزییات مدل نسبت معکوس دارد. بخش های فرآیند تولید نرم افزار مدل فرآیند )(Process Model دیدگاه شناخت نیازمندیها ()Requirement gathering method زبان مدلسازی ()Modeling Language ابزار پشتیبانی)(CASE Tool ابزار پشتیبانی: • این ابزارها جهت تسهیل دنبال نمودن مراحل فرایند استفاده می شود. • در واقع ابزار کمکی برای رسم مدل ها می باشند که به دو دسته تقسیم می شوند: عمومی:مانند Wordو Visio تخصصی:ابزاری که مدل را بفهمد و بتواند خطاها را تشخیص دهد Power Designer Rational Suite Enterprise Architect فرایند توسعه سریع نرم افزار Agile Unified Process What is Agility? فرایند توسعه سریع نرمافزار( (Agile Unified Process • • • • - اصول: نرمافزار اجرایی و نه مستندات افراد تیم و تعامالت بین آنها و نه فرایند و ابزار ارتباط مستمر با مشتری و نه مذاکرات در چهارچوب قراردادپذیرش تغییر و نه دنبال کردن یک برنامه ثابت (Agile Unified Process (فرایند توسعه سریع نرمافزار :تکنیکها (Iterative Development) توسعه در تکرارها (Test-Driven Development) توسعه آزمایش محور ( Risk-Driven Development)توسعه ریسک محور • • • • توسعه آزمایش محور تولید در تکرارها • • • • • فرایند توسعه در تعدادی تکرار با طول کوتاه (مثال سه هفته) ثابت سازماندهی می شود. خروجی هر تکرار یک نرم افزار اجرایی و تست شده می باشد که بخشی از نیازهای کاربر را برآورده می نماید. در هر تکرار تحلیل نیازمندیها ،طراحی ،پیاده سازی و تست انجام می شود. نرم افزار تکرار به تکرار کاملتر می شود. شکل صفحه بعد روند تولید تکراری را نشان می دهد.در این شکل فرایند توسعه در 20تکرار پیش بینی شده است 1 2 3 4 5 ... 20 so ftw a re so ftw a re In e vo lu tio n a ry ite ra tive d e ve lo p m e n t, th e re q u ire m e n ts e vo lve o ve r a se t o f th e e a rly ite ra tio n s , th ro u g h a se rie s o f re q u ire m e n ts w o rksh o p s (fo r e xa m p le ). P e rh a p s a fte r fo u r ite ra tio n s a n d w o rksh o p s , 9 0 % o f th e re q u ire m e n ts a re d e fin e d a n d re fin e d . N e ve rth e le ss , o n ly 1 0 % o f th e so ftw a re is b u ilt. re q u ire m e n ts Im a g in e th is w ill u ltim a te ly b e a 2 0 ite ra tio n p ro je ct. re q u ire m e n ts re q u ire m e n ts w o rksh o p s 90% 90% 50% 30% 20% 20% 5% 2% Ite ra tio n 1 10% 8% Ite ra tio n 2 Ite ra tio n 3 Ite ra tio n 4 Ite ra tio n 5 a 3 -w e e k ite ra tio n w eek 1 M kicko ff m e e tin g cla rifyin g ite ra tio n g o a ls w ith th e te a m . 1 hour T te a m a g ile m o d e lin g & d e sig n , UML w h ite b o a rd ske tch in g . 5 h o u rs w eek 2 W Th sta rt co d in g & te stin g F M T d e -sco p e ite ra tio n g o a ls if to o m u ch w o rk M o st O O A /D a n d a p p lyin g U M L d u rin g th is p e rio d w eek 3 W Th F M fin a l ch e ck -in a n d co d e fre e ze fo r th e ite ra tio n b a se lin e U se -ca se m o d e lin g d u rin g th e w o rksh o p T W dem o and 2 -d a y re q u ire m e n ts w o rksh o p Th F n e xt ite ra tio n p la n n in g m e e tin g ; 2 h o u rs