You are on page 1of 48

‫فرآیند‬

‫‪1‬‬
‫نگاه اجمالي‬
‫فرايند چيست؟‬ ‫‪‬‬

‫چه كسي اين كار را انجام ميدهد؟‬ ‫‪‬‬

‫چرا مهم است؟‬ ‫‪‬‬

‫مراحل كار كدام هست؟‬ ‫‪‬‬

‫محصول كار چيست؟‬ ‫‪‬‬

‫چگونه مطمئن شوم كه كاري كه انجام داده ام درست است؟‬ ‫‪‬‬

‫‪2‬‬
‫آی‪,‬ا مفهوم فرآین‪,‬د ب‪,‬ا مهندس‪,‬ی نرم افزار یکس‪,‬ان اس‪,‬ت؟ پاس‪,‬خ ه‪,‬م «بل‪,‬ه» و ه‪,‬م «خیر» است‬
‫فرآین‪,‬د نرم افزار روش‪,‬ی را تعری‪,‬ف م‪,‬ی کن‪,‬د ک‪,‬ه در هنگام طراح‪,‬ی نرم افزار بکار گرفته‬
‫م‪,‬ی شود‪.‬ام‪,‬ا مهندس‪,‬ی نرم افزار نیز در بر گیرنده فناوریهای اس‪,‬ت ک‪,‬ه در فرآیند وجود‬
‫دارند یعنی روشهای فنی و ابزار خودکار‪.‬‬

‫مهندسي نرم افزار‪:‬يك فناوري اليه اي‬


‫مهندس‪,‬ی نرم افزار عبارتس‪,‬ت از‪:‬ایجاد و اس‪,‬تفاده از اص‪,‬ول س‪,‬اده مهندس‪,‬ی به منظور‬ ‫‪‬‬

‫رس‪,‬یدن ب‪,‬ه ی‪,‬ک نرم افزار مقرون ب‪,‬ه ص‪,‬رفه ک‪,‬ه قاب‪,‬ل اطمینان بوده و روی دستگاههای‬
‫واقعی کارآمد باشد‪.‬‬

‫‪3‬‬
‫تعريف ‪ IEEE‬ازمهندسی نرم افز‪,‬ار‪:‬‬

‫‪ -1‬بکارگیری ی‪,‬ک ر‪,‬وش س‪,‬یستماتیک ‪،‬منظ‪,‬م کمیت پذیر برای‬


‫ارائ‪,‬ه ‪،‬عملیات و حف‪,‬ظ و نگهداری نرم افزار اس‪,‬ت یعنی‬
‫بکار‪,‬گیری مهندسی و شیوه های آن در‪ ,‬نرم افزار‬

‫‪4‬‬
‫فرآیند‪،‬شیوه ها و ابزارها‬
‫اس‪,‬اس نرم افزار ی‪,‬ک الی‪,‬ه ب‪,‬ه نام فرآین‪,‬د اس‪,‬ت‪ .‬فرآین‪,‬د مهندس‪,‬ی نرم افزار مانن‪,‬د چس‪,‬بی است‬ ‫‪‬‬

‫ک‪,‬ه الی‪,‬ه های فناوری را ب‪,‬ا ه‪,‬م نگاه داشت‪,‬ه‪،‬توس‪,‬عه ب‪,‬ه موق‪,‬ع و منطقی نرم افزارکامپیوتری را‬
‫ممک‪,‬ن م‪,‬ی س‪,‬ازد فرآین‪,‬د چارچوب‪,‬ی برای مجموع‪,‬ه ای از حوزه های کلیدی و اص‪,‬لی فرآیند‬
‫خود مهیا می سازد که باید برای تحویل موثر فناوری مهندسی نرم افزار بوجود آید‪.‬‬

‫حوزه های اصلی پردازش [‪ )KPAs( ]PAU93‬مبنای کنترل مدیری‪,‬ت پروژه های نرم‬ ‫‪‬‬

‫افزاری را تشکیل داده و بس‪,‬تری فراه‪,‬م م‪,‬ی کنن‪,‬د ک‪,‬ه در آ‪,‬ن روشهای فن‪,‬ی بکار گرفته‬
‫میشود‪،‬محص‪,‬والت تولید میشون‪,‬د‪(،‬مدله‪,‬ا‪،‬اس‪,‬ناد‪،‬داده ه‪,‬ا‪،‬گزارشات‪،‬فرمه‪,‬ا و غیره)‪،‬محکهایی‬
‫بوجود می آیند‪،‬کیفیت سنجیده می شود و تغییرات احتمالی ترتیب داده می شوند‪.‬‬

‫روشهای مهندس‪,‬ی نرم افزار چگونگ‪,‬ی انجام کار را از نظ‪,‬ر فن‪,‬ی برای ساخت نرم افزار‬ ‫‪‬‬

‫مهیا م‪,‬ی کنند‪.‬روشهای مهندس‪,‬ی نرم افزار ب‪,‬ه مجموع‪,‬ه ای ازاص‪,‬ول اولیه تکیه دارن‪,‬د که بر‬
‫هر حوزه فناوری حاکم بوده و شامل فعالیتهای مدل سازی و دیگر فنون توصیفی است‪.‬‬ ‫‪5‬‬
‫ابزارها‬
‫شيوه ها‬
‫فرايند‬
‫مالحظات كيفي‬

‫‪6‬‬
‫یک دید کلی از مهندسی نرم افزار‬
‫مهندسی عبارتست از‪:‬‬
‫تحلیل‬ ‫‪‬‬

‫طراحی‬ ‫‪‬‬

‫ساخت‬ ‫‪‬‬

‫تایید‬ ‫‪‬‬

‫مدیریت امور فنی (یااجتماعی)‬ ‫‪‬‬

‫بدون توج‪,‬ه ب‪,‬ه ماهیت چیزی ک‪,‬ه مورد کارهای مهندس‪,‬ی قرار م‪,‬ی گیرد‪ .‬کارهای مربوط ب‪,‬ه مهندسی نرم افزار را‬
‫میتوان به سه گروه کلی تقسیم کرد‪ ،‬بدون توجه حوزه کاربرد‪،‬اندازه پروژه یا پیچیدگی آن ‪.‬‬
‫مرحله تعریف‬ ‫‪‬‬

‫مرحله توسعه‬ ‫‪‬‬

‫مرحله پشتیبانی‬ ‫‪‬‬

‫‪7‬‬
‫مرحله تعریف‬
‫روی آنچ‪,‬ه ک‪,‬ه ای‪,‬ن کاره‪,‬ا هس‪,‬تند(‪،)what‬متمرک‪,‬ز م‪,‬ی شود‪ .‬یعن‪,‬ی در طول تعری‪,‬ف مهندسی‬ ‫‪‬‬

‫نرم افزار س‪,‬عی م‪,‬ی کن‪,‬د نوع اطالعات‪,‬ی را ک‪,‬ه بای‪,‬د پردازش شوند‪،‬عملکرد مطلوب‪ ،‬نوع‬
‫وضعیت س‪,‬یستم مورد انتظار‪ ،‬نوع رابطهای‪,‬ی ک‪,‬ه باید ایجاد شوند‪ .‬محدودیتهای موجود در‬
‫طرح و معیارهای ص‪,‬حت را ک‪,‬ه برای تعری‪,‬ف ی‪,‬ک س‪,‬یستم موف‪,‬ق الزمن‪,‬د‪ ،‬شناسایی کند‪.‬‬
‫گرچه روشهای بکار گرفته شده در طول مرحله تعریف‪ ،‬بسته به معیار مهندسی نرم افزار‬
‫ک‪,‬ه بکار رفت‪,‬ه بس‪,‬یار متفاوتن‪,‬د ام‪,‬ا س‪,‬ه کار اص‪,‬لی در بعض‪,‬ی موارد ب‪,‬ه وقوع می پیوندد‬
‫مهندسی سیستم ی‪,‬ا اطالعات‪ ،‬طراحی پروژه نرم افزاری و تحلیل مربوط به موارد مورد‬
‫نیاز‪.‬‬

‫‪8‬‬
‫مرحله توسعه‬
‫مرحل‪,‬ه توس‪,‬عه وارائ‪,‬ه روی چگونگ‪,‬ی (‪)how‬متمرک‪,‬ز اس‪,‬ت‪.‬یعنی در طول ای‪,‬ن مرحله‬ ‫‪‬‬

‫س‪,‬عی دارد چگونگ‪,‬ی س‪,‬اخته شدن داده ه‪,‬ا‪ ،‬اجرای کار در ساختار نرم افزاری‪،‬‬
‫مهندس س‪,‬عی‬
‫چگونگ‪,‬ی توص‪,‬یف راب‪,‬ط ه‪,‬ا‪ ،‬چگونگ‪,‬ی تبدی‪,‬ل طرح ب‪,‬ه زبان برنام‪,‬ه نویس‪,‬ی ی‪,‬ا زبان غیر‬
‫روی‪,‬ه ای)و چگونگ‪,‬ی انجام آزمون را توص‪,‬یف کند‪ .‬روشهای بکار گرفته شده در طول‬
‫مرحل‪,‬ه توس‪,‬عه متفاوتن‪,‬د ام‪,‬ا س‪,‬ه کار فن‪,‬ی خاص همیش‪,‬ه رخ م‪,‬ی دهن‪,‬د‪ :‬طراحی نرم افزار‪،‬‬
‫تولید کد و آزمون نرم افزار‪.‬‬

‫‪9‬‬
‫مرحله پشتیبانی‬
‫روی تغییر متمرک‪,‬ز(‪)chang‬متمرک‪,‬ز اس‪,‬ت ک‪,‬ه ب‪,‬ا اص‪,‬الح خطا‪ ،‬ایجاد تطابقات‬
‫الزم در ح‪,‬د الزم در رابط‪,‬ه ب‪,‬ا محیط نرم افزاری و تغییرات‪,‬ی ناشی از بهبود کار‬
‫بخاطر تغییر نیاز مشتری‪ ،‬رابطه دارد‬
‫در طول این مرحله چهار نوع تغییر را شاهد هستیم‪.‬‬
‫اصالح‬ ‫‪‬‬

‫تطا بق‬ ‫‪‬‬

‫بهبود وضعیت‬ ‫‪‬‬

‫پیشگیری‬ ‫‪‬‬

‫‪10‬‬
‫ای‪,‬ن فازه‪,‬ا ومراح‪,‬ل توص‪,‬یف شده در دیدگاه کل‪,‬ی م‪,‬ا نس‪,‬بت ب‪,‬ه مهندسی نرم‬
‫افزار بوس‪,‬یله ی‪,‬ک س‪,‬ری فعالیتهای پوشش‪,‬ی تکمیل م‪,‬ی شوند‪ .‬فعالیت‬
‫های نمونه در این گروه شامل موارد زیر است ‪:‬‬
‫‪ ‬کنترل پیگیری پروژه نرم افزاری‬
‫‪ ‬تضمین کیفی نرم افزار‬
‫‪ ‬مدیریت طرح نرم افزری‬
‫‪ ‬آماده سازی اسناد و تولید‬
‫‪ ‬مدیریت قابلیت استفاده مجدد‬
‫‪ ‬بازنگری های فنی رسمی‬
‫‪ ‬ارزیابی‬
‫‪ ‬مدیریت خطر‬
‫‪11‬‬
‫فرآیند نرم افزار‬
‫‪,‬ه ای از کارهای مهندسی نرم افزاری‪،‬معیارهای‬‫بعض‪,‬ی از کاره‪,‬ا ک‪,‬ه ه‪,‬ر کدام مجموع‬
‫مجموع‪,‬ه‬ ‫‪‬‬

‫پروژ‪,‬ه محص‪,‬ول کار و نقاط تضمین کیفیت هس‪,‬تند‪،‬باع‪,‬ث م‪,‬ی شود ک‪,‬ه ای‪,‬ن مجموعه های‬
‫معین فعالیت‪,‬ی در مشخص‪,‬ه های پروژ‪,‬ه نرم افزاری بکار گرفت‪,‬ه شده و در مجموعه‬
‫تقاضاهای تیم پروژه نیز باشند‪.‬‬

‫موس‪,‬سه مهندس‪,‬ی نرم افزار (‪)SEI‬مدل جامع‪,‬ی ارائ‪,‬ه داده ک‪,‬ه روی مجموعه ای از‬ ‫‪‬‬

‫توانائیهای مهندس‪,‬ی نرم افزار ک‪,‬ه بای‪,‬د برای دس‪,‬ترسی س‪,‬ازمانها ب‪,‬ه س‪,‬طوح مختلف بلوغ‬
‫فرآیند وجود داشته باشد‪،‬پیش بینی می شود‪.‬‬

‫این طرح درجه بندی میزان تطابق با توانایی مدل کامل (‪]PAU93[ )CMM‬‬ ‫‪‬‬

‫را مشخ‪,‬ص م‪,‬ی کن‪,‬د ک‪,‬ه فعالیتهای اص‪,‬لی الزم در س‪,‬طوح مختل‪,‬ف فرآین‪,‬د تکام‪,‬ل را تعریف‬
‫می کند‪.‬‬

‫‪12‬‬
‫فرآیند نرم افزار(ادامه)‬
‫سطح ‪:1‬اولیه‪.‬‬ ‫‪‬‬

‫فرآین‪,‬د نرم افزاری بص‪,‬ورت موقت‪,‬ی و حت‪,‬ی بعض‪,‬ی اوقا‪,‬ت بس‪,‬یار دره‪,‬م و بره‪,‬م توصیف شده‬
‫است‪.‬چند فرآیند تعریف می شود و موفقیت به تالش های فردی بستگی دارد‪.‬‬
‫سطح ‪:2‬قابل تکرار‪.‬‬ ‫‪‬‬

‫فرآیندها‪,‬ی اولیه مدیری‪,‬ت پروژ‪,‬ه برای مشخ‪,‬ص کردن هزین‪,‬ه‪،‬زمان بندی وقابلیت کارای‪,‬ی آن‬
‫ص‪,‬ورت م‪,‬ی گیرند‪.‬اص‪,‬ل ضروروی فرآین‪,‬د در جای‪,‬ی اس‪,‬ت ک‪,‬ه موفقیتهای پیش ت‪,‬ر پروژ‪,‬ه ها‪,‬یی‬
‫کاربردهای مشابه را تکرار می کند‪.‬‬
‫سطح ‪:3‬تعریف شده‪.‬‬ ‫‪‬‬

‫فرآین‪,‬د نرم افزاری برای مدیری‪,‬ت و فعالیت های مهندس‪,‬ی در طول ی‪,‬ک فرآیند پردازش نرم‬
‫افزاری در سا‪,‬زمان ثبت شده‪،‬استاندارد و منسجم است‪.‬‬
‫سطح ‪:4‬مدیریت شده‪.‬‬ ‫‪‬‬

‫اقدامات دقیق صورت گرفته پردازش نرم افزار و کیفیت محصول همگی کنترل می شوند‪.‬‬
‫سطح ‪:5‬بهینه سازی‪.‬‬ ‫‪‬‬

‫بهبود مکرر فرآین‪,‬د ب‪,‬ا‪ ,‬توج‪,‬ه ب‪,‬ه بازخورد کم‪,‬ی فرآین‪,‬د و از روی آزمون ایده های ن‪,‬و آورانه و‬
‫فناوریهای تازه ‪،‬مقدور است‪.‬‬ ‫‪13‬‬
‫نکات‬

‫‪ ‬نکته‪:‬حائز اهمیت اس‪,‬ت که هر س‪,‬طح باالی س‪,‬طح ‪ 2‬زیر مجموعه ای از سطح‬


‫قبلی است‪.‬‬
‫‪ ‬نکته‪:‬سطح ‪ 4‬دربرگیرنده مفهوم اندازه گیری و استفاده از متریک است‪.‬‬
‫‪ ‬متری‪,‬ک ی‪,‬ک کمیت معنادار اس‪,‬ت ک‪,‬ه م‪,‬ی توان آ‪,‬ن را از روی بعض‪,‬ی از اسناد‬
‫یا کدی در داخل پروژه نرم افزاری استخراج نمود‪.‬‬
‫‪ ‬در ی‪,‬ک بخ‪,‬ش از ک‪,‬د برنام‪,‬ه‪ ،‬ای‪,‬ن متری‪,‬ک در ص‪,‬وتی معن‪,‬ی دارد ک‪,‬ه نشانه ای‬
‫از کارهای الزم را آزمون ک‪,‬د مهیا کند‪ .‬ای‪,‬ن متری‪,‬ک مس‪,‬تقیما با تعداد‬
‫مسیرهای آزمونی داخل کد مربوط است‪.‬‬
‫‪ ‬نکته‪:‬سطح ‪ 5‬باالترین سطح قابل دسترسی اس‪,‬ت‪ .‬این س‪,‬طح نمایانگ‪,‬ر پیوستگی‬
‫مکانیزمهای کنترل کیف‪,‬ی نرم افزار اس‪,‬ت ک‪,‬ه در مکانیزمهای دیگ‪,‬ر و صنایع‬
‫کامل تر وجود دارند‪.‬‬ ‫‪14‬‬
‫نکات (ادام‪,,,‬ه)‬
‫‪SEI‬دارای حوزه های اص‪,‬لی در فرآین‪,‬د اس‪,‬ت(‪ )KPA‬ک‪,‬ه ه‪,‬ر کدام ی‪,‬ک س‪,‬طح رشد‬
‫و تکام‪,‬ل دارند‪ KPA.‬ه‪,‬ا آ‪,‬ن گروه از فعالیت های مهندس‪,‬ی را توص‪,‬یف م‪,‬ی کنن‪,‬د که‬
‫باید برای صورت گرفتن کار درست در سطح بخصوصی موجود داشته باشند‪.‬‬
‫هر ‪KPA‬با شناسایی مشخصه های زیر توصیف می شود‪:‬‬
‫اهداف – اهداف کلی که ‪ KPA‬باید به آن دست یابد ‪.‬‬ ‫‪‬‬

‫تعهدات – نیازمندیهای (ک‪,‬ه از طرف س‪,‬ازمان اعمال شده) ک‪,‬ه بای‪,‬د مرتف‪,‬ع شود ت‪,‬ا به‬ ‫‪‬‬

‫اهداف دست یابد و دالیلی باید ارائه شود که با اهداف مطابقت داشته باشد‪.‬‬
‫توانائیه‪,‬ا – ای‪,‬ن چیزه‪,‬ا بای‪,‬د در جای خود باشن‪,‬د (چ‪,‬ه از نظ‪,‬ر س‪,‬ازمانی و چ‪,‬ه ه‪,‬ز نظر‬ ‫‪‬‬

‫فنی)که سازمان بتواند به تعهداتش عمل کند‪.‬‬


‫فعالیتها ‪ -‬کارهای خاصی که الزمند تا به عملکرد ‪ KPA‬دست یابند‪.‬‬ ‫‪‬‬

‫‪15‬‬
‫نکات )ادامه(‬
‫روشهای کنترل پیاده س‪,‬ازی‪ :‬شیوه ای ک‪,‬ه ب‪,‬ا آ‪,‬ن فعالیته‪,‬ا در جای خود قرار می‬ ‫‪‬‬
‫گیرند کنترل می شوند‪.‬‬
‫روش های‪,‬ی برای ارزیاب‪,‬ی درس‪,‬تی پیاده س‪,‬ازی‪ :‬شیوه ای ک‪,‬ه ب‪,‬ا آ‪,‬ن عم‪,‬ل درست‬ ‫‪‬‬
‫برای ‪ KPA‬مشخص می شوند ‪.‬‬
‫هجده ‪( KPA‬هر کدام با اس‪,‬تفاده از این خصوصیات توصیف شده اند) در طول‬ ‫‪‬‬
‫فرآین‪,‬د تکمیل کار تعری‪,‬ف شده و در س‪,‬طح مختل‪,‬ف فرآین‪,‬د تکامل‪,‬ی بصورت طرح‬
‫درآمده اند ‪ KPA.‬زیر را در هر سطح تکمیلی فرآیند به دست می آوریم سطح ‪2‬‬
‫فرآیند تکمیلی‬
‫مدیریت پیکربند ی نرم افزار ‪.‬‬ ‫‪‬‬

‫تضمین کیفیت نرم افزار ‪.‬‬ ‫‪‬‬

‫مدیریت پیمانکاریهای نرم افزار‪.‬‬ ‫‪‬‬

‫پی گیری و نظارت پروژه نرم افزاری ‪.‬‬ ‫‪‬‬

‫مدیریت نیازمندیها‪.‬‬ ‫‪‬‬


‫‪16‬‬
‫سطح ‪ 3‬فرآیند تکمیلی‬
‫‪ ‬بازبینی های یکسان ‪.‬‬
‫‪ ‬همکاری درونی گروهی ‪.‬‬
‫‪ ‬مهندسی محصولی نرم افزاری ‪.‬‬
‫‪ ‬مدیریت یکپارچه نرم افزاری ‪.‬‬
‫‪ ‬برنامه آموزشی ‪.‬‬
‫‪ ‬تعریف فرآیند سازمانی ‪.‬‬
‫‪ ‬نقطه تمرکز فرآیند سازمانی‬
‫سطح ‪ 4‬فرآیند تکمیلی‬
‫مدیریت کیفیت نرم افزار‪.‬‬ ‫‪‬‬
‫مدیریت فرآیند کمی‪.‬‬ ‫‪‬‬
‫سطح ‪ 5‬فرایند تکمیلی‬
‫مدیریت تغییر فرآیند ‪.‬‬ ‫‪‬‬
‫پیشگیری از نقیصه و اشکال‬ ‫‪‬‬
‫‪17‬‬
‫مدلهای فرآیند نرم افزار‬
‫ی‪,‬ک تیم از مهندس‪,‬ین نرم افزار در تولید ی‪,‬ک راه‪,‬برد کم‪,‬ک کنن‪,‬د که در بر گیرنده‬
‫الیه های فرآیند روشها و ابزاری است‪.‬‬
‫اغل‪,‬ب ای‪,‬ن راه‪,‬برد را مدل فرآین‪,‬د مهندس‪,‬ی نرم افزار م‪,‬ی نامن‪,‬د ‪.‬یک مدل فرآیند برای‬
‫مهندس‪,‬ی نرم افزار بر اس‪,‬اس ماهیت پروژ‪,‬ه و کاربرد آ‪,‬ن روشها و ابزار مورد‬
‫استفاده و کنترل ها و موارد قابل ارائه که الزمند انتخاب می شود ‪.‬‬
‫تمام کارهای توس‪,‬عه وارائ‪,‬ه ی‪,‬ک نرم افزار را م‪,‬ی توان بعنوان ی‪,‬ک حلق‪,‬ه حل‬
‫مشکل توصیف کرد (شکل)که در آن چهار مرحله مشخص دیده می شوند ‪.‬‬
‫تعریف مسله‬

‫بیان‬ ‫تو‪,‬سعه فنی‬


‫وضعیت‬

‫جامعیت راه‬
‫حل‬
‫‪18‬‬
‫مدل ترتیب خطی‬

‫ای‪,‬ن مدل را ک‪,‬ه گاه‪,‬ی"چرخ‪,‬ه حیات کالس‪,‬یک" ی‪,‬ا "مدل آبشاری" م‪,‬ی نامن‪,‬د ‪،‬بیانگ‪,‬ر یک‬
‫نگرش نظام من‪,‬د و زنجیری نس‪,‬بت ب‪,‬ه تول‪,‬ی نرم افزار اس‪,‬ت ک‪,‬ه در س‪,‬طح سیستم شروع‬
‫شده و ب‪,‬ا تحلیل ‪،‬طراح‪,‬ی ‪ ،‬ک‪,‬د نویس‪,‬ی ‪،‬آزمون و پشتیبان‪,‬ی نرم افزاری پیشروی می‬
‫کند ‪.‬‬

‫مهندسی سیستم‪/‬اطالعات‬

‫تحلیل‬ ‫طراحی‬ ‫برنامه‬ ‫آزمون‬


‫نویسی‬

‫‪19‬‬
‫مشکالت ترتیب خطی‬

‫پروژ‪,‬ه های واقع‪,‬ی ب‪,‬ه ندرت از جریان زنجیری و متوال‪,‬ی ک‪,‬ه مدل ارائ‪,‬ه میدهد‪ ،‬پیروی‬ ‫‪‬‬
‫م‪,‬ی کند‪ .‬گرچ‪,‬ه مدل خطی می توان‪,‬د ب‪,‬ا تکرار تطابق یاب‪,‬د ‪،‬ام‪,‬ا آن را به طور غیر مستقیم‬
‫انجام م‪,‬ی ده‪,‬د ‪ .‬در نتیج‪,‬ه ‪،‬ب‪,‬ا انجام کار توس‪,‬ط اعضای پروژ‪,‬ه ممک‪,‬ن اس‪,‬ت موارد گیج‬
‫کننده ای رخ دهد ‪.‬‬

‫اغل‪,‬ب برای مشتری مشک‪,‬ل اس‪,‬ت ک‪,‬ه تمام نیاز های خود را ب‪,‬ه طور مشخ‪,‬ص بیان کند ‪.‬‬ ‫‪‬‬
‫مدل زنجیری خط‪,‬ی ب‪,‬ه ای‪,‬ن ام‪,‬ر نیاز داشت‪,‬ه و در تطاب‪,‬ق عدم قطعیت طبیع‪,‬ی که در آغاز‬
‫بسیاری از پروژه ها وجود دارد ‪،‬دارای مشکل است ‪.‬‬

‫مشتری بای‪,‬د ص‪,‬بور باش‪,‬د ‪.‬نسخه کاری برنام‪,‬ه ت‪,‬ا اواخ‪,‬ر مدت زمان کاری پروژه در‬ ‫‪‬‬
‫دس‪,‬ترس نخواه‪,‬د بود ‪.‬اگر مشکل‪,‬ی وجود داشت‪,‬ه و ت‪,‬ا اواخ‪,‬ر کار برنام‪,‬ه نویس‪,‬ی ک‪,‬ه برنامه‬
‫مورد بازبینی قرار می گیرد مشخص نشود ‪،‬می تواند فاجعه آمیز باشد ‪.‬‬

‫‪20‬‬
‫مدل نمونه سازی‬

‫الگوی نمونه سازی بهترین روش برای حل مشکالتی از قبیل ‪:‬‬ ‫‪‬‬

‫نامطمئ‪,‬ن بودن مشتری از کارای‪,‬ی الگوریت‪,‬م‪ ،‬قابلیت تطاب‪,‬ق آ‪,‬ن ب‪,‬ا ی‪,‬ک س‪,‬یستم عام‪,‬ل یا‬
‫شکل ارتباط متقابل دستگاه و انسان ‪.‬‬
‫‪ ‬نمون‪,‬ه نخس‪,‬ت توس‪,‬ط مشتری ‪/‬کاربر ارزیاب‪,‬ی شده و از آ‪,‬ن برای رفع نیازهای نرم‬
‫افزاری ک‪,‬ه قرار اس‪,‬ت تولید شود اس‪,‬تفاده م‪,‬ی شود وقت‪,‬ی نمون‪,‬ه اولیه طوری تنظیم شد‬
‫ک‪,‬ه نیازهای مشتری را براورده س‪,‬ازد‪ ،‬عم‪,‬ل تکرار رخ م‪,‬ی ده‪,‬د‪ ،‬در حالیکه در همان‬
‫زمان تولید کننده نرم افزار را قادر میسازد نیاز های مشتری را بهتر درک کند ‪.‬‬

‫‪21‬‬
‫پارادیم ساخت نمونه‬

‫‪ήψϧΪϳΪΠΗΎϳΖΧΎγ‬‬
‫‪̵ ήΘθϣΎΑϩέϭΎΤϣ‬‬ ‫‪έΩ‬‬
‫‪ϪϧϮϤϧϝΪϣ‬‬

‫ارزیابی مشتری‬
‫از‬
‫مدل نمونه‬

‫‪22‬‬
‫مدل ساخت سریع برنامه ها(‪)RAD‬‬
‫ب‪,,,,‬ا ت‪,,,‬وس‪,‬عه‪ ,‬س‪,,‬ریع‪ ,‬ک‪,,,‬اربرد‬ ‫‪Rapid Application Development‬‬ ‫‪‬‬
‫(‪)RAD‬‬
‫یک مدل فرایند افزایشی تولید نرم افزار است که تنها بر یک سیکل تولید بسیار‬
‫کوتاه تاکید می کند مدل (‪ )RAD‬یک نسخه تطابق یافته سرعت باال از مدل‬
‫زنجیری خطی است که در آن توسعه سریع با استفاده از ساختمانی مبتنی‬
‫بر اجراء تشکیل دهنده حاصل می شود اگر موارد مورد نیاز به خوبی شناسایی‬
‫شده و دامنه پروژه محدود شود‪ ،‬فرایند ‪ RAD‬این امکان را به تیم می دهد‬
‫که سیستم تمام کاربردی را ظرف مدت بسیار کوتاهی ارائه دهند‬
‫(مثال ‪ 60‬تا ‪ 90‬روز )[‪ ]MAR91‬روش ‪ RAD‬که اساسا برای کارهای‬
‫س‪,‬یستمهای اطالعات‪,‬ی اس‪,‬تفاده م‪,‬ی شود در بر گیرنده مراح‪,‬ل زی‪,‬ر اس‪,‬ت ‪.‬‬
‫[‪]KER94‬‬
‫‪23‬‬
‫مدلسازی تجاری‬
‫جریان اطالعات را در میان کارهای تجاری مدلسازی می کند‪.‬‬
‫مدلسازی داده ای‬
‫جریان اطالعات‪,‬ی ک‪,‬ه ب‪,‬ه عنوان بخش‪,‬ی از مرحل‪,‬ه مدلس‪,‬ازی تجاری تعریف شده در‬
‫مجموع‪,‬ه ای از اهداف داده ای ک‪,‬ه برای پشتیبان‪,‬ی تجاری الزمن‪,‬د‪ ،‬پاالی‪,‬ش می شود‪.‬‬
‫مشخصه های هر هدف شناسایی شده و ارتباط بین این اهداف تعریف می شود ‪.‬‬
‫مدلسازی فرآیند‬
‫اهداف داده ای که در مرحله مدلس‪,‬ازی داده ها تعریف شده اند تغییر می یابند ت‪,‬ا به‬
‫جریان اطالعات‪,‬ی الزم برای اجرای ی‪,‬ک کار تجاری ‪،‬دس‪,‬ت پیدا کنند ‪.‬توضیحات‬
‫عم‪,‬ل پردازش برای افزودن‪ ،‬شناس‪,‬ایی‪ ،‬حذف ی‪,‬ا بازیاب‪,‬ی ی‪,‬ک شی‪,‬ء داده ای ارائه‬
‫می شوند ‪.‬‬

‫‪24‬‬
‫تولید برنامه کاربردی‬
‫ب‪,‬ه جای تولید نرم افزار ب‪,‬ا اس‪,‬تفاده از زبانهای متعارف برنام‪,‬ه نویس‪,‬ی متعارف نسل‬
‫س‪,‬وم فرآیند‪ RAD‬تالش م‪,‬ی کن‪,‬د ت‪,‬ا از اجزاء برنام‪,‬ه موجود مجددا اس‪,‬تفاده کرده یا‬
‫جزء های قابل استفاده مجددی را تولید کند‪.‬‬

‫‪25‬‬
‫آزمون و گردش‬

‫از آنج‪,‬ا ک‪,‬ه فراین‪,‬د ‪ RAD‬براس‪,‬تفاده مجدد تأکید م‪,‬ی کن‪,‬د بس‪,‬یاری از اجزای برنامه‬ ‫‪‬‬
‫مورد آزمون قرار گرفته اند‪.‬این کار در زمان کلی آزمون صرفه جویی می کند‪.‬‬
‫مدل فرآین‪,‬د ‪ RAD‬در شک‪,‬ل زی‪,‬ر تشری‪,‬ح شده اس‪,‬ت‪.‬محدودیتهای زمانی اعمال شده‬ ‫‪‬‬
‫بر پروژه ‪ RAD‬نیازمند یک دامنه قابل اندازه گیری است‪.‬‬

‫‪26‬‬
‫تیم شماره‪1‬‬ ‫تیم شماره ‪2‬‬ ‫تیم شماره‪3‬‬
‫‪‬‬
‫مدل سازی‬ ‫مدل سازی‬
‫تجاری‬
‫مدل سازی‬
‫تجاری‬ ‫تجاری‬
‫مدل سازی‬
‫مدل سازی‬ ‫داده ای‬
‫داده ای‬ ‫مدل سازی‬
‫داده ای‬
‫مدل سازی‬
‫فرایند‬
‫مدل سازی‬
‫فرایند‬ ‫مدل سازی‬
‫فرایند‬ ‫تولید برنامه‬
‫کاربردی‬

‫تولید برنامه‬ ‫تولید برنامه‬


‫کاربردی‬ ‫آزمون و‬
‫کاربردی‬ ‫چرخش‬

‫تولید برنامه‬
‫کاربردی‬
‫آزمون و‬

‫چرخش‬ ‫آزمون و‬
‫چرخش‬

‫‪27‬‬
‫نقایص مدل های پردازش ‪RAD‬‬
‫در مورد پروژ‪,‬ه های بزرگ ام‪,‬ا قاب‪,‬ل اندازه گیری‪ RAD ،‬نیازمن‪,‬د مناب‪,‬ع انس‪,‬انی کافی‬ ‫‪‬‬
‫است تا تعداد تیمهای درست ‪ RAD‬را تشکیل دهد‪.‬‬
‫‪ RAD‬ن‪,,‬یازمن‪,‬د ت‪,,,‬ولید ک‪,,,‬ننده‪ ,‬و مشتریهای‪,‬یا‪,‬س‪,‬تک‪,,,‬ه‪ ,‬ب‪,,,‬توا‪,‬نن‪,‬د ف‪,,,‬ع‪,‬ا‪,,‬لیتهایس‪,,‬ریع‪ ,‬ال‪,‬زم‪,‬‬ ‫‪‬‬
‫را ب‪,,,‬را‪,‬یرسیدنب‪,,,‬ه‪ ,‬ی‪,,‬کس‪,,‬یستم‪ ,‬ک‪,,,‬املدر ی‪,,‬کچ‪,‬ارچوبزمانیک‪,,,‬وتاه‪ ,‬ا‪,‬نجام‪ ,‬دهند‪.‬‬
‫هم‪,‬ه نوع برنام‪,‬ه کاربردی برای ‪ RAD‬مناس‪,‬ب نیس‪,‬ت‪ .‬اگ‪,‬ر س‪,‬یستم ب‪,‬ه درستی پیکربندی‬ ‫‪‬‬
‫نشود‪ ،‬س‪,‬اختن اجزای الزم برای ‪ RAD‬مشک‪,‬ل س‪,‬از خواه‪,‬د بود‪ .‬اگ‪,‬ر عملکرد عالی‬
‫موضوع اص‪,‬لی اس‪,‬ت و قرار اس‪,‬ت از طری‪,‬ق تنظیم راب‪,‬ط ه‪,‬ا ب‪,‬ا اجزای س‪,‬یستم تأمین شود‬
‫روش ‪ RAD‬ممکن است کارا نباشد‪.‬‬
‫‪ RAD‬وقتیک‪,,,‬ه‪ ,‬خطرا‪,‬تف‪,,,‬نیب‪,,,‬سیار زیاد ا‪,‬ستمناسبن‪,,‬خوا‪,‬هد ب‪,,,‬ود‪.‬‬ ‫‪‬‬

‫‪28‬‬
‫مدل های تکاملی فرآیند نرم افزار‬

‫‪- 1‬مدل فزاینده (افزایشی)‬


‫مدل فزاینده عناص‪,‬ر مدل زنجیری خط‪,‬ی را با دیدگاه تکرار مدل‬
‫نخست‪،‬ترکیب می کند‪.‬‬
‫وقت‪,‬ی از ی‪,‬ک مدل فزاینده اس‪,‬تفاده م‪,‬ی شود‪،‬اولین بخ‪,‬ش رش‪,‬د اغل‪,‬ب‪ ،‬هسته‬
‫محصول اصلی است‪ .‬یعن‪,‬ی نیازهای اولیه مورد توجه قرار م‪,‬ی گیرن‪,‬د اما‬
‫بس‪,‬یاری از مشخص‪,‬ه های تکمیل‪,‬ی ارائ‪,‬ه نم‪,‬ی گردند‪ .‬هس‪,‬ته محصول‬
‫بوسیله مشتری مورد استفاده قرار می گیرد‪.‬‬
‫ای‪,‬ن طرح اص‪,‬الح هس‪,‬ته محص‪,‬ول را مورد توج‪,‬ه قرار م‪,‬ی ده‪,‬د ت‪,‬ا بهتر‬
‫نیازهای مشتری را برآورده نموده و ارائ‪,‬ه مشخص‪,‬ه ه‪,‬ا و قابلیت های‬
‫کاری اضاف‪,‬ی مورد نظ‪,‬ر مشتری را نیز بهت‪,‬ر س‪,‬ازد‪ .‬ای‪,‬ن فرآیند بدنبال‬
‫تحویل هر بخش تکرار می شود تا وقتی که محصول کامل تولید شود‪.‬‬
‫‪29‬‬
‫تحویل نخستین افزایش‬ ‫‪‬‬

‫مهندسی سیستم اطالعات‬ ‫‪‬‬


‫افزایش‪1‬‬

‫افزایش‬ ‫تحلیل‬ ‫طراحی‬ ‫برنامه‬ ‫آزمون‬ ‫تحویل دومین افزایش‬ ‫‪‬‬


‫‪2‬‬

‫افزایش‬ ‫تحویل سومین افزایش‬ ‫‪‬‬


‫تحلیل‬ ‫طراحی‬ ‫برنامه‬ ‫آزمون‬ ‫‪3‬‬

‫تحویل چهارمین افزایش‬ ‫‪‬‬


‫‪‬‬
‫تحلیل‬ ‫طراحی‬ ‫برنامه‬ ‫آزمون‬ ‫‪‬‬
‫افزایش‬ ‫‪‬‬
‫‪4‬‬

‫تحلیل‬ ‫طراحی‬ ‫برنامه‬ ‫آزمون‬

‫مدل افزایشی‬ ‫‪‬‬

‫‪30‬‬
‫مدل فرایند فزاینده(ادامه)‬

‫مدل فرآین‪,‬د فزاینده مث‪,‬ل س‪,‬اخت نمون‪,‬ه اولیه و دیگ‪,‬ر روش های ارزیاب‪,‬ی و تکمیل‬
‫ماهیت تکرار شونده دارد ام‪,‬ا بر خالف نمون‪,‬ه اولیه‪ ،‬مدل فزاینده روی تحویل‬
‫ی‪,,,‬ک محص‪,,,‬ول عملیات‪,,,‬ی ب‪,,,‬ا ه‪,,,‬ر بخ‪,,,‬ش رش‪,,,‬د یافت‪,,,‬ه و تأکید‬
‫م‪,‬ی کند‪ .‬افزایشهای اولیه نس‪,‬خه های محدود شده محص‪,‬ول نهای‪,‬ی هس‪,‬تند ام‪,‬ا آنها‬
‫ای‪,‬ن توانای‪,‬ی را دارن‪,‬د ک‪,‬ه در خدم‪,‬ت کاربر بوده و همچنین محل‪,‬ی برای ارزیابی‬
‫توسط کاربر فراهم می کنند‪.‬‬

‫‪31‬‬
‫‪-2‬مدل پیچشی(حلزونی)‬

‫مدل حلزونی ک‪,‬ه در اصل توس‪,‬ط بوهم پیشنهاد شد یک مدل فرآیند نرم افزار تکاملی است‬ ‫‪‬‬
‫ک‪,‬ه ماهیت تکراری نمون‪,‬ه اولیه را ب‪,‬ا جنب‪,‬ه های نظام مند و کنترل شده مدل زنجیری‬
‫خطی ارتباط می دهد‪.‬‬
‫ب‪,‬ا اس‪,‬تفاده از مدل حلزون‪,‬ی نرم افزار در ی‪,‬ک س‪,‬ری نس‪,‬خه های فزاینده تولید می شود‪.‬در‬ ‫‪‬‬
‫طول تکرارهای اولیه ممک‪,‬ن اس‪,‬ت نس‪,‬خه اولیه ی‪,‬ک مدل روی کاغ‪,‬ذ ی‪,‬ا تنه‪,‬ا الگوی اولیه‬
‫باشد‪.‬در طول تکرارهای بعدی نس‪,‬خه های نس‪,‬بتا کاملتری از س‪,‬یستم مهندس‪,‬ی شده و تولید‬
‫می شود‪.‬‬
‫مدل حلزون‪,‬ی از نظ‪,‬ر فعالیت‪,‬ی ب‪,‬ه چن‪,‬د قس‪,‬مت تقس‪,‬یم م‪,‬ی شود ک‪,‬ه ب‪,‬ه آنه‪,‬ا مناط‪,‬ق کاری نیز‬ ‫‪‬‬
‫می گویند‪.‬معموال بین ‪3‬و‪ 6‬منطقه وجود دارد‪.‬‬

‫‪32‬‬
‫مدل حلزونی‬ ‫‪‬‬

‫طرح ریزی‬
‫ارتباط با مشتری‬ ‫تحلیل ریسک‬

‫نقطه محوری‬
‫شروع پروژه‬

‫مهندسی‬

‫ارزیابی مشتری‬ ‫ساخت و نصب و‬


‫تحویل‬

‫پروژه های نگهداری محصوالت‬


‫پروژه های بهینه ساازی محصوالت‬
‫پروژه های ساخت محصول جدید‬
‫پروژه های توسعه مفهوم‬
‫‪33‬‬
‫شش منطقه کاری‬
‫ارتباطات مشتری‪ -‬کارهای الزم برای ایجاد ارتباط مؤثر بین تولید کننده و مشتری‪.‬‬ ‫‪‬‬
‫برنامه ریزی‪ -‬کارهای الزم برای تعری‪,‬ف مناب‪,‬ع‪ ،‬محدوده های زمان‪,‬ی و دیگر اطالعات‬ ‫‪‬‬
‫مربوط به پروژه‪.‬‬
‫تحلیل خطر‪ -‬کارهای الزم برای ارزیابی فنی و خطرارات مدیریتی‪.‬‬ ‫‪‬‬

‫مهندسی و طراحی‪ -‬کارهای الزم برای ساخت یک یا چند نمونه از برنامه کاربردی‪.‬‬ ‫‪‬‬

‫ساخت و ارائه‪ -‬کارهای الزم برای ساخت‪،‬آزمون‪،‬نصب و تهیه پشتیبان‪,‬ی برای کاربر(مثل‬ ‫‪‬‬
‫مستند سازی و آموزش)‬
‫ارزیابی مشتری‪ -‬کارهای الزم برای بدس‪,‬ت آوردن واکن‪,‬ش مشتری بر اس‪,‬اس ارزیابی‬ ‫‪‬‬
‫نمون‪,‬ه های نرم افزاری تولید شده در طول مرحل‪,‬ه مهندس‪,‬ی و اجرا شده در طول مرحله‬
‫نصب و راه اندازی‪.‬‬

‫‪34‬‬
‫شش منطقه کاری(ادامه)‬
‫ب‪,‬ا شروع فراین‪,‬د تکمیل‪,‬ی‪،‬تیم مهندس‪,‬ی نرم افزار در جه‪,‬ت حرک‪,‬ت عقربه های‬
‫س‪,‬اعت‪،‬حرک‪,‬ت در مارپیچ را آغاز م‪,‬ی کن‪,‬د و ای‪,‬ن کاراز مرک‪,‬ز شروع م‪,‬ی شود‪.‬اولین‬
‫مدار حول مارپیچ ممکن است منجر به تولید مشخصه محصول شود‪.‬‬
‫ب‪,‬ا عبور از ه‪,‬ر مرحل‪,‬ه منطق‪,‬ه برنام‪,‬ه ریزی‪،‬کارهای تطابق‪,‬ی ب‪,‬ا طرح پروژ‪,‬ه صورت‬
‫م‪,,‬ی گیرد‪ .‬هزین‪,,‬ه و زمانبندی بر اس‪,,‬اس بازخورد ارزیاب‪,,‬ی مشتری‪،‬تنظیم می‬
‫گردند‪.‬عالوه بر آ‪,‬ن مدی‪,‬ر پروژ‪,‬ه تعداد تکرارهای تنظیم شده الزم برای تکمیل نرم‬
‫افزار را تعیین م‪,‬ی کند‪.‬مدل حلزون‪,‬ی م‪,‬ی توان‪,‬د کارهای انطباق‪,‬ی را ص‪,‬ورت ده‪,‬د تا در‬
‫تمام طول حیات نرم افزار کامپیوتری به کار گرفته شود‪.‬‬
‫در مدل حلزون‪,‬ی ه‪,‬ر مکعب‪,‬ی ک‪,‬ه در طول محور قرار داده شده اس‪,‬ت را م‪,‬ی توان به‬
‫عنوان نماینده نقطه شروع برای انواع پرژه های مختلف در نظر گرفت‪.‬‬

‫‪35‬‬
‫‪-3‬مدل حلزونی‪WINWIN‬‬

‫مدل حلزون‪,‬ی بیانگ‪,‬ر چارچوب فعالیت‪,‬ی اس‪,‬ت که ارتباطات مشتری را مورد‬


‫توج‪,‬ه قرار م‪,‬ی دهد‪.‬هدف از ای‪,‬ن فعالیت عبارتست از بیرون کشیدن‬
‫اطالعات در مورد نیازهای پروژه از مشتری د ریک بستر مناسب است‪.‬‬
‫مشتری و تولید کننده وارد فرایند مذاکره می شوند که در آن ممکن است از‬
‫مشتری قابلیت کارای‪,‬ی‪،‬عملکرد و س‪,‬ایر مشخص‪,‬ه های س‪,‬یستم ی‪,‬ا محصول‬
‫در برابر هزینه و بازار در همان موقع سؤال شود‪.‬‬

‫‪36‬‬
‫مدل حلزوی ‪(WINWIN‬ادامه)‬

‫در مدل حلزون‪,‬ی بجای ی‪,‬ک رابط‪,‬ه ص‪,‬رف مشتری ‪،‬کلیه فعالیت های زیر‬
‫تعریف می شوند‪:‬‬
‫‪-1‬شناسایی سیستم یا دارندگان اصلی سیستم های فرعی‬
‫‪-2‬تعیین شرایط برد دارندگان سهم‪.‬‬
‫‪-3‬مذاکره در مورد شرای‪,‬ط برد س‪,‬هامدار برای تطاب‪,‬ق دادن آنه‪,‬ا درمجموعه ای‬
‫از شرایط ‪ win-win‬برای همه افراد درگیر‪.‬‬

‫‪37‬‬
‫مدل حلزونی ‪WINWIN‬‬

‫ش‪VV‬ناساییش‪VV‬را‪V‬یط‪2-‬‬ ‫‪-‬ت‪VVV‬طابقش‪VV‬را‪V‬یط ب‪VVV‬رد‪3-‬‬


‫ا‪VV‬لف‬
‫ب‪VVV‬رد گ‪VVV‬رو گ‪VVV‬ذارا‪V‬ن‬
‫‪V‬ف‪V‬صلی‪3-‬‬
‫ب‪-‬ب‪VVV‬رقراریا‪V‬هدا ا‬
‫ش‪VV‬ناساییگ‪VVV‬رو گ‪VVV‬ذارا‪V‬ن‪1-‬‬ ‫محدودیتها و قیود و جایگزین های‬
‫سطح بعد‬ ‫سطح بعد‬

‫ارزیابیف‪VVV‬را‪V‬یند و محصولهای‪4-‬‬
‫ج‪V‬ایگزینو مرتفع‪ V‬ک‪VVV‬ردنریسکها‬

‫ا‪V‬عتبار س‪VV‬نجیمحصول‪6-‬‬
‫ت‪VVV‬ع‪V‬ریفس‪VV‬طح ب‪VVV‬ع‪V‬د محصولو ‪5-‬‬
‫و تعریفات فرایند‬ ‫ف‪VVV‬را‪V‬یند‬
‫مشتمل بر بخشها و قسمتها‬

‫‪38‬‬
‫مدل حلزونی‪( WINWIN‬ادامه)‬
‫عالوه بر تأکید روی مذاکرات اولیه‪،‬مدل حلزون‪,‬ی ‪ winwin‬س‪,‬ه معیار فرایند پردازش‬
‫نیز معرفی می کند که نقاط تکیهنامیده می شوند و به تکمیل یک چرخه حول مارپیچ کمک‬
‫نموده و معیارهای تصمیم گیری را قبل از انجام پروژه نرم افزاری مهیا می کنند‪.‬‬
‫نقاط تکیه نمایانگ‪,‬ر س‪,‬ه دیدگاه مختل‪,‬ف از پیشرف‪,‬ت در زمان‪,‬ی هس‪,‬تند ک‪,‬ه پروژ‪,‬ه مارپیچ را‬
‫ط‪,,‬ی م‪,,‬ی کند‪.‬اولین تکیه گاه ک‪,,‬ه ب‪,,‬ه آ‪,,‬ن اهداف چرخ‪,,‬ه حیات م‪,,‬ی گوین‪,,‬د‬
‫( ‪)LCO‬مجموع‪,‬ه ای از اهداف را برای ه‪,‬ر فعالیت عمده مهندس‪,‬ی نرم افزار بیان م‪,‬ی کند‬
‫مثالً بعنوان بخش‪,‬ی از ‪،LCO‬مجموع‪,‬ه اهداف مرتب‪,‬ط ب‪,‬ا تعری‪,‬ف نیازهای س‪,‬طوح ارشد‬
‫سیستم‪/‬محصول‪.‬‬
‫دومین نقطه تکیه گاه به نام معماری چرخه حیات (‪ )LCA‬اهدافی را ارائه می دهد که باید‬
‫با تعریف شدن سیستم و نرم افزار مرتفع شوند‪،‬مثالً بعنوان بخشی از ‪ LCA‬تیم پروژه نرم‬
‫افزاری بای‪,‬د توضیح ده‪,‬د ک‪,‬ه قابلیت کارای‪,‬ی اجزای نرم افزاری قاب‪,‬ل استفاده مجدد و موجود‬
‫در بازار را برآورده کرده و اث‪,‬ر آنه‪,‬ا را روی تص‪,‬میمات س‪,‬اختاری در نظ‪,‬ر گرفت‪,‬ه اس‪,‬ت‪.‬‬
‫قابلیت عملیلت‪,‬ی اولیه(‪)LOC‬سومین نقطه تکیه گاه است و نمایانگرمجموعه اهداف مربوط‬
‫ب‪,‬ه آماده س‪,‬ازی نرم افزار برای نص‪,‬ب‪/‬توزی‪,‬ع‪،‬آماده س‪,‬ازی س‪,‬ایت قب‪,‬ل از کارهای نصب و‬
‫راه اندازی و کم‪,‬ک مورد نیاز از طرف هم‪,‬ه طرفهای‪,‬ی اس‪,‬ت ک‪,‬ه از نرم افزار اس‪,‬تفاده ی‪,‬ا آن‬
‫را پشتیبانی می کنند‪.‬‬
‫‪39‬‬
‫‪-4‬مدل توسعه همروند‬

‫مدل تولید همزمان ک‪,‬ه گاه‪,‬ی ب‪,‬ه آ‪,‬ن مهندس‪,‬ی همرون‪,‬د م‪,‬ی گوین‪,‬د ک‪,‬ه توسط‬
‫دیوس و سیترام توصیف شده است‪:‬‬
‫مدیران پروژ‪,‬ه ای ک‪,‬ه وضعیت پروژ‪,‬ه را از فق‪,‬ط ب‪,‬ا دنبال کردن مراحل‬
‫اص‪,‬لی تعقیب م‪,‬ی کنن‪,‬د هیچ نظری در مورد وضعیت پروژه های خود‬
‫ندارند‪.‬اینهانمون‪,‬ه های‪,‬ی از تالش برای پیگیری مجموع‪,‬ه فعالیت های بسیار‬
‫مشکل با استفاده از مدل های بسیار ساده است‪.‬‬
‫مدل های فرآین‪,‬د مهندس‪,‬ی نرم افزار ک‪,‬ه توس‪,‬ط هامفری و کلت‪,‬ر ارائه شده‬
‫اند‪،‬نشانگر همروندی فعالیت های رخ داده در طول هر مرحله می باشند‪.‬‬

‫‪40‬‬
‫یک عنصر از مدل فرآیند همروند‬
‫شروع‬

‫توسعه نخست‬

‫منتظر تغییرات‬
‫تحت بازبینی‬

‫تحت تجدید نظر‬

‫قرار گرفتن بر‬


‫خط مبنا‬

‫انجام شده‬

‫‪41‬‬
‫مدل توسعه همروند(ادامه)‬
‫مدل فرآین‪,,,,‬د همزمان ی‪,,,,‬ک س‪,,,,‬ری رویدادهای‪,,,,‬ی را مشخ‪,,,,‬ص‬
‫م‪,‬ی س‪,‬ازد ک‪,‬ه انتقال از حالت‪,‬ی ب‪,‬ه حال‪,‬ت دیگ‪,‬ر را برای ه‪,‬ر کار مهندس‪,‬ی نرم افزار آغاز می‬
‫کنند‪.‬‬
‫مدل فرآین‪,‬د همزمان اغل‪,‬ب بعنوان معیاری برای توس‪,‬عه و تولید برنامه های کاربردی‬
‫خادم‪/‬مخدوم اس‪,‬تفاده م‪,‬ی شود‪.‬ی‪,‬ک س‪,‬یستم خادم‪/‬مخدوم متشک‪,‬ل از مجموعه ای اجزای‬
‫کاربردی اس‪,‬ت‪.‬وقتی مدل فرآین‪,‬د همزمان در خادم‪/‬مخدوم اس‪,‬تفاده م‪,‬ی شود‪،‬فعالیت هایی را‬
‫در دو بع‪,‬د تعری‪,‬ف م‪,‬ی کن‪,‬د‪ ،‬بع‪,‬د س‪,‬یستم و بع‪,‬د مؤلفه‪.‬موضوعات مربوط ب‪,‬ه س‪,‬یستم ب‪,‬ا استفاده‬
‫از س‪,‬ه فعالیت مورد توج‪,‬ه قرار م‪,‬ی گیرن‪,‬د‪،‬طراح‪,‬ی‪،‬مونتاژ و کاربرد‪.‬بع‪,‬د جزء از نظر دو‬
‫فعالیت مورد بررسی است‪:‬طراحی و شناسایی و همزمانی به دو شکل حاصل می شود‪:‬‬
‫‪-1‬فعالیت های س‪,‬یستم و جزء ک‪,‬ه بطور همزمان رخ م‪,‬ی دهن‪,‬د و م‪,‬ی توان آنه‪,‬ا را ب‪,‬ا استفاده‬
‫از رهیافت وضعیت گرا مدلسازی کرد‪.‬‬
‫‪-2‬ی‪,‬ک برنامه کاربردی معمول خادم‪/‬مخدوم بوس‪,‬یله اجزا بسیاری ب‪,‬ه اجرا در می آی‪,‬د که هر‬
‫کدام از آنه‪,‬ا را م‪,‬ی توان بطور همزمان طراح‪,‬ی و شناس‪,‬ایی نمود‪.‬مدل فرایند همزمان در‬
‫مورد همه نوع تولید نرم افزار قاب‪,‬ل اجراس‪,‬ت و تص‪,‬ویر دقیقی از وضعیت کنون‪,‬ی پروژه را‬
‫ارائه می دهند‪.‬‬
‫‪42‬‬
‫توسعه مبتنی بر اجزاء‬

‫مدل تولید بر پایه جزء(‪)CBD‬بسیاری از مشخصه های مدل حلزونی را در بر دارد‪.‬‬


‫ماهیت آ‪,‬ن تکامل‪,‬ی اس‪,‬ت‪،‬ب‪,‬ه ی‪,‬ک روش تکراری نیاز دارد ت‪,‬ا نرم افزار را تولید کند‪.‬این‬
‫مدل از برنام‪,‬ه های کاربردی تشکیل شده اس‪,‬ت ک‪,‬ه از اجزای نرم افزاری از پیش بسته‬
‫بندی شده اند که به آنها کالس یا رده می گویند‪.‬‬
‫مدل تولید بر پایه جزء منجر به استفاده مجدد نرم افزار شده است‪.‬‬
‫فرآین‪,‬د تولید یکپارچ‪,‬ه نرم افزار نماینده تعدادی از مدلهای تولید بر پای‪,‬ه اجزاء اس‪,‬ت که‬
‫در ص‪,‬نعت پیشنهاد شده اس‪,‬ت‪.‬با اس‪,‬تفاده از زبان مدلس‪,‬ازی یکپارچ‪,‬ه ی‪,‬ا ‪،UML‬فرآیند‬
‫تعری‪,,,,,,,,,,,,,,,‬ف‬ ‫را‬ ‫جزءهای‪,,,,,,,,,,,,,,,‬ی‬ ‫یکپارچ‪,,,,,,,,,,,,,,,‬ه‬
‫م‪,‬ی کن‪,‬د ک‪,‬ه برای س‪,‬اختن س‪,‬یستم اس‪,‬تفاده شده و رابط‪,‬ه های‪,‬ی ک‪,‬ه ای‪,‬ن جزءه‪,‬ا را ب‪,‬ه هم‬
‫وصل می کنند‪.‬‬

‫‪43‬‬
‫توسعه مبتنی بر اجزا‬

‫تحلیل مخاطرات‬
‫طرح ریزی‬

‫ارتباط با مشتری‬

‫ارزیابی مشتری‬
‫مهندسی ساخت و اجرا‬

‫‪44‬‬
‫مدل شیوه های رسمی‬
‫مدل‪,‬ی ک‪,‬ه بر پای‪,‬ه شیوه های رس‪,‬می بدس‪,‬ت م‪,‬ی آی‪,‬د دربرگیرنده ی‪,‬ک س‪,‬ری فعالیت هایی‬
‫است که منج‪,‬ر به تعیین رسمی مشخصه های نرم افزار کامپیوتر با روابط ریاضی می‬
‫شود‪ .‬روش های رس‪,‬می مهندس‪,‬ی نرم افزار را قادرم‪,‬ی س‪,‬ازند ک‪,‬ه ی‪,‬ک س‪,‬یستم مبتنی بر‬
‫کامپیوت‪,‬ر را ب‪,‬ا بکارگیری عبارات ریاض‪,‬ی بس‪,‬یار دقیق مشخ‪,‬ص توس‪,‬عه داده و تغییر‬
‫دهد‪.‬یک نوع از این روش به نام مهندسی نرم افزار اتاق پاک است‪.‬‬
‫ب‪,‬ا اینک‪,‬ه مدل روش های رس‪,‬می بص‪,‬ورت ی‪,‬ک روش حتم‪,‬ی و رای‪,‬ج در نیامده ام‪,‬ا یک‬
‫نرم افزار بدون مشک‪,‬ل را تضمین م‪,‬ی کند‪.‬ب‪,‬ا ای‪,‬ن وجود مس‪,‬ئله توانای‪,‬ی آ‪,‬ن در محیط‬
‫تجاری مورد بحث قرار دارد‪:‬‬
‫‪-1‬توسعه روش های رسمی در حال حاضر کامالً وقت گیر و گران است‪.‬‬
‫‪-2‬از آنج‪,‬ا ک‪,‬ه تولید کنندگان کم‪,‬ی در مورد نرم افزار دارای پیش زمین‪,‬ه کافی برای‬
‫استفاده از روش های رسمی هستند یک دوره آموزش پر هزینه الزم است‪.‬‬
‫‪-3‬اس‪,‬تفاده از مدل ه‪,‬ا بعنوان ی‪,‬ک مکانیزم ارتباط‪,‬ی برای مشتریان غیر کارکشته از‬
‫‪ 45‬نظر فنی مشکل است‪.‬‬
‫فنون نسل چهارم‬

‫اص‪,‬طالح فنون نس‪,‬ل چهارم (‪)4GT‬در بر گیرنده طیف گسترده ای از ابزارهای‬


‫نرم افزاری اس‪,,,,‬ت ک‪,,,,‬ه دارای ی‪,,,,‬ک چیز مشترک هس‪,,,,‬تند‪:‬‬
‫ه‪,‬ر کدام ب‪,‬ه مهندس نرم افزار ای‪,‬ن قدرت را م‪,‬ی دهن‪,‬د ک‪,‬ه ی‪,‬ک مشخصه نرم افزاری‬
‫را در س‪,‬طح باالی‪,‬ی مشخ‪,‬ص س‪,‬ازد‪.‬سپس ابزار ب‪,‬ه طور خودکار منب‪,‬ع را بر اساس‬
‫مشخصه های تولید کننده تولید می نماید‪.‬‬
‫ی‪,,‬ک محیط تولید نرم افزار ک‪,,‬ه معیار ‪ 4GT‬را مورد پشتبان‪,,‬ی قرار‬
‫می دهد شامل چند یا کل ابزار زیر است‪:‬‬
‫زبانهای غیر روی‪,‬ه ای برای تحقیقات در پایگاه داده ای‪،‬ارائ‪,‬ه گزارش‪،‬دستکاری و‬
‫تغییر داده ه‪,‬ا‪،‬تعری‪,‬ف و ارتباط متقاب‪,‬ل ص‪,‬فحه ای‪،‬ارائ‪,‬ه ک‪,‬د‪،‬توانای‪,‬ی گرافیک‪,‬ی سطح‬
‫باال‪،‬توانای‪,‬ی ص‪,‬فحه گس‪,‬ترده و تولید خودکار ‪ HTML‬و زبانهای مشاب‪,‬ه استفاده شده‬
‫برای ایجاد سایت وب با استفاده از ابزارهای پیشرفته نرم افزاری‪.‬‬

‫‪46‬‬
‫فنون نسل چهارم(ادامه)‬
‫می توان وضعیت کنونی روش های ‪ 4GT‬را به صورت زیر خالصه کرد‪:‬‬

‫‪-1‬اس‪,‬تفاده از روش‪ 4GT‬روش بس‪,‬یار ارزشمندی برای بس‪,‬یاری از حوزه های مختلف‬
‫در برنام‪,‬ه های کاربردی اس‪,‬ت‪ 4GT.‬همراه ب‪,‬ا ابزارهای مهندس‪,‬ی نرم افزار ب‪,‬ا کمک‬
‫کامپیوت‪,‬ر(‪)CASE‬و مولدهای ک‪,‬د‪،‬ی‪,‬ک راه ح‪,‬ل خوب برای بسیاری از مشکالت نرم‬
‫افزاری ارائه می دهد‪.‬‬

‫‪-2‬اطالعات جم‪,‬ع آوری شده از شرکتهای‪,‬ی ک‪,‬ه از‪ 4GT‬اس‪,‬تفاده م‪,‬ی کنن‪,‬د نشانگ‪,‬ر این‬
‫اس‪,‬ت ک‪,‬ه زمان الزم برای تولید نرم افزار برای بر نام‪,‬ه های کاربردی کوچک و‬
‫متوسط تقریبا ً کاه‪,‬ش یافته و میزان طرح و تحلیل برای برنامه های کوچ‪,‬ک نیز کم شده‬
‫است‪.‬‬

‫‪-3‬اس‪,,‬تفاده از‪ 4GT‬برای کارهای تولید نرم افزار در مقیاس بزرگ نیازمند‬
‫تحلیل‪،‬طراح‪,‬ی و آزمون بیشتری در وق‪,‬ت ص‪,‬ورت گیرد ک‪,‬ه ای‪,‬ن کار از طریق حذف‬
‫کدها بوجود می آید‪.‬‬

‫‪47‬‬
‫فناوری فرآیند‬

‫تح‪,‬ت انطباقی قرار‬


‫مدل های فرآین‪,‬د مورد بح‪,‬ث در بخشهای قبل‪,‬ی بای‪,‬د تح‪,‬ت‬
‫بگیرن‪,‬د ت‪,‬ا در ی‪,‬ک پروژ‪,‬ه نرم افزاری اس‪,‬تفاده شوند‪,.‬برای این کار‬
‫ابزارهای فناوری فرآین‪,‬د تولید شده ان‪,‬د ت‪,‬ا ب‪,‬ه سازمانهای نرم افزاری‬
‫کم‪,‬ک کنن‪,‬د فرآین‪,‬د پردازش کنون‪,‬ی خود را تحلیل کرده‪،‬کارهای مختلف‬
‫را س‪,‬ازماندهی کنن‪,‬د‪،‬میزان پیشرف‪,‬ت را کنترل و مشاهده نماین‪,‬د و کیفیت‬
‫فنی را سازمان دهند‪.‬‬

‫‪48‬‬

You might also like