340 likes | 569 Views
Software Process. فرایند تولید نرم افزار. فرآیند تولید (توسعه) نرم افزار Software Development Process مجموعه ای منسجم از فعالیتها، و گامهاست که تولید کننده نرم افزار باید دنبال نماید تا محصول حاصل گردد. هر فرایند توسعه نرم افزار مشخص می کند مراحل SDLC چگونه انجام شود
E N D
Software Process فرایند تولید نرم افزار
فرآیند تولید (توسعه) نرم افزار Software Development Process • مجموعه ای منسجم از فعالیتها، و گامهاست که تولید کننده نرم افزار باید دنبال نماید تا محصول حاصل گردد. • هر فرایند توسعه نرم افزار مشخص می کند مراحل SDLC • چگونه انجام شود • توسط چه کسی انجام شود • در چه زمانی انجام شود • چه خروجی حاصل کند
Project Control Risk Management Communication Planning Modeling Construction Deployment
بخشهای فرآیند تولید نرم افزار 1.مدل فرآیند (Process Model): یک رویه ی سطح بالا که استراتژی کلی تولید نرم افزار را از نظر ترتیب اجرای مراحل SDLC مشخص می نماید.
مدل آبشاری (Waterfall 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 Iteration #2 …Iteration #n Iteration #3 Modeling Modeling Modeling Construction Construction Construction Deployment Deployment Deployment
تفاوت مدل حلزونی و تکراری : در روش حلزونی طول تکرارها ممکن است متفاوت باشد، اما در روش تکراری طول تکرارها ثابت و معمولاٌ کوتاه (در حد چند هفته) است.
مزایای فرایند توسعه تکراری: • کمتر شدن احتمال شکست پروژه • مدیریت زود هنگام ریسک ها(ریسک نیازمندیها، ریسک تکنیک) • مشاهده زود هنگام پیش رفت نرم افزار اجرایی • مدیریت پیچیدگی تولید پروژه • دریافت بازخورد زود هنگام از کاربر
بخشهای فرآیند تولید نرم افزار • مدل فرآیند (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 • RationalSuite • Enterprise Architect
فرایند توسعه سریع نرم افزار Agile Unified Process
فرایند توسعه سریع نرمافزار((Agile Unified Process • اصول: • - نرمافزار اجرایی و نه مستندات • - افراد تیم و تعاملات بین آنها و نه فرایند و ابزار • - ارتباط مستمر با مشتری و نه مذاکرات در چهارچوب قرارداد • پذیرش تغییر و نه دنبال کردن یک برنامه ثابت
فرایند توسعه سریع نرمافزار((Agile Unified Process • تکنیکها: • توسعه در تکرارها(Iterative Development) • توسعه آزمایش محور(Test-Driven Development) • توسعه ریسک محور( Risk-Driven Development)
تولید در تکرارها • فرایند توسعه در تعدادی تکرار با طول کوتاه (مثلا سه هفته) ثابت سازماندهی می شود. • خروجی هر تکرار يک نرم افزار اجرایی و تست شده می باشد که بخشی از نیازهای کاربر را برآورده می نماید. • در هر تکرار تحلیل نیازمندیها، طراحی، پیاده سازی و تست انجام می شود. • نرم افزار تکرار به تکرار کاملتر می شود. • شکل صفحه بعد روند تولید تکراری را نشان می دهد.در این شکل فرایند توسعه در 20 تکرار پیش بینی شده است