640 likes | 1.15k Views
اسلایدهای آموزشی درس مهندسی نرم افزار (1) ( برگرفته از کتاب پرسمن ) مدرس : مهندس سيد مهدي حسيني. فصل دوم فرآیند. 2. فرآیند.
E N D
اسلایدهای آموزشی درس مهندسی نرم افزار (1) ( برگرفته از کتاب پرسمن ) مدرس : مهندس سيد مهدي حسيني
فرآیند فرایند چیست؟هنگامیکه شما تولید یک محصول یا سیستم را مدنظر دارید،نکته مهم این است که وارد یک سری مراحل قابل پیش بینی شوید.نقشه ای که به شما کمک می کند؛به نتیجه ای سریع و درخشان دست یابید.نقشه ای که شما پیگیری می کنید، یک فرآیند نرم افزاری نامیده می شود . محصول کار چیست؟از نقطه نظر مهندسی نرم افزار ،محصولات کاری،برنامه ها،اسناد و داده هایی است که در نتیجه فعالیتهای مهندسی نرم افزاری که در طول فرآیند صورت گرفته اند،تولید شده اند. چگونه مطمئن شوم که کاری که انجام داده ام درست است؟ یک سری فرآیندها و مکانیزمهای ارزیابی نرم افزار وجود دارد که سازمانها را قادر می سازد«تکامل فرآیند نرم افزاری»خود را تعیین کنند.
آیا مفهوم فرآیند با مهندسی نرم افزار یکسان است؟ پاسخ هم «بله» و هم «خیر» است فرآیند نرم افزار روشی را تعریف می کند که در هنگام طراحی نرم افزار بکار گرفته می شود.اما مهندسی نرم افزار نیز در بر گیرنده فناوریهای است که در فرآیند وجود دارند یعنی روشهای فنی و ابزار خودکار. مهندسی نرم افزار عبارتست از:ایجاد و استفاده از اصول ساده مهندسی به منظور رسیدن به یک نرم افزار مقرون به صرفه که قابل اطمینان بوده و روی دستگاههای واقعی کارآمد باشد. به عبارت ديگرمهندسی نرم افزار: بکارگیری یک روش سیستماتیک ،منظم کمیت پذیر برای ارائه ،عملیات و حفظ و نگهداری نرم افزار است یعنی بکارگیری مهندسی و شیوه های آن در نرم افزار . مهندسی نرم افزار 4
فرآیند،شیوه ها و ابزارها مهندسي نرم افزار يك تكنولوژي لايه اي است اساس مهندسي نرم افزار یک لایه به نام فرآیند است.فرآیند مهندسی نرم افزار مانند چسبی است که لایه های فناوری را با هم نگاه داشته،توسعه به موقع و منطقی نرم افزارکامپیوتری را ممکن می سازد فرآیند چارچوبی برای مجموعه ای از حوزه های کلیدی و اصلی خود مهیا می سازد که باید برای تحویل موثر فناوری مهندسی نرم افزار بوجود آید. حوزه های اصلی پردازش [PAU93] (KPAS) مبنای کنترل مدیریت پروژه های نرم افزاری را تشکیل داده و بستری فراهم می کنند که در آن روشهای فنی بکار گرفته میشود،محصولات تولید میشوند،(مدلها،اسناد،داده ها،گزارشات،فرمها و غیره)،محکهایی بوجود می آیند،کیفیت سنجیده می شود و تغییرات احتمالی ترتیب داده می شوند. روشهای مهندسی نرم افزار چگونگی انجام کار را از نظر فنی برای ساخت نرم افزار مهیا می کنند.روشهای مهندسی نرم افزار به مجموعه ای ازاصول اولیه تکیه دارند که بر هر حوزه فناوری حاکم بوده و شامل فعالیتهای مدل سازی و دیگر فنون توصیفی است. 5
ابزار هايي در مهندسي نرم افزار جهت حمايت هاي خودكار يا نيمه خودكار فرايند ها و روش ها وجود دارند. • هنگامي كه اين ابزار ها مجتمع مي شوند به گونه اي كه اطلاعات ايجاد شده توسط يك ابزار بتواند توسط ديگري استفاده شود سيستمي ايجاد شده به نام مهندسي نرم افزار به كمك كامپيوتر (CASE) • CASE از تركيب نرم افزار،سخت افزار و بانك اطلاعات مهندسي نرم افزار تشكيل شده است.
یک دید کلی از مهندسی نرم افزار مهندسی عبارتست از: تحلیل طراحی ساخت تایید مدیریت امور فنی (یااجتماعی) بدون توجه به ماهیت چیزی که مورد کارهای مهندسی قرار می گیرد. کارهای مربوط به مهندسی نرم افزار را میتوان به سه گروه کلی تقسیم کرد، بدون توجه حوزه کاربرد،اندازه پروزه یا پیچیدگی آن . مرحله تعریف مرحله توسعه مرحله پشتیبانی
مرحله تعریف روی آنچه که این کارها هستند(what)،متمرکز می شود. یعنی در طول تعریف مهندسی نرم افزار سعی می کند نوع اطلاعاتی را که باید پردازش شوند،عملکرد مطلوب، نوع وضعیت سیستم مورد انتظار، نوع رابطهایی که باید ایجاد شوند. محدودیتهای موجود در طرح و معیارهای صحت را که برای تعریف یک سیستم موفق لازمند، شناسایی کند. گرچه روشهای بکار گرفته شده در طول مرحله تعریف، بسته به معیار مهندسی نرم افزار که بکار رفته بسیار متفاوتند اما سه کار اصلی در بعضی موارد به وقوع می پیوندد 1مهندسی سیستم یا اطلاعات،2طراحی پروژه نرم افزاری و3تحلیل مربوط به موارد مورد نیاز.
مرحله توسعه مرحله توسعه وارائه روی چگونگی (how)متمرکز است.یعنی در طول این مرحله مهندس سعی دارد چگونگی ساخته شدن داده ها، اجرای کار در ساختار نرم افزاری، چگونگی توصیف رابط ها، چگونگی تبدیل طرح به زبان برنامه نویسی یا زبان غیر رویه ای)و چگونگی انجام آزمون را توصیف کند. روشهای بکار گرفته شده در طول مرحله توسعه متفاوتند اما سه کار فنی خاص همیشه رخ می دهند: 1طراحی نرم افزار، 2تولید کد و 3آزمون نرم افزار.
مرحله پشتیبانی روی تغییر متمرکز(chang)متمرکز است که با اصلاح خطا، ایجاد تطابقات لازم در حد لازم در رابطه با محیط نرم افزاری و تغییراتی ناشی از بهبود کار بخاطر تغییر نیاز مشتری، رابطه دارد در طول این مرحله چهار نوع تغییر را شاهد هستیم. • تصحيح:(رفع خطاهايي كه مشتري كشف نموده است) • انطباق :( تغيير برنامه بر اساس تغيير محيط جرايي(سخت افزار و نرم افزارو.....)) • ارتقاء: (رفع نياز هاي جديد مشتري) • پیشگیرانه :(پيشگيري از كاهش كيفيت نرم افزار به دليل تغييرات، مهندسي مجدد )
راهبردهای مهندسی مجدد نرم افزار های موروثی این فازها مراحل توصیف شده در دیدگاه کلی ما نسبت به مهندسی نرم افزار بوسیله یک سری فعالیتهای پوششی تکمیل می شوند. فعالیت های نمونه در این گروه شامل موارد زیر است : کنترل پیگیری پروژه نرم افزاری تضمین کیفی نرم افزار مدیریت طرح نرم افزری آماده سازی اسناد و تولید مدیریت قابلیت استفاده مجدد بازنگری های فنی رسمی ارزیابی مدیریت خطر
فرآیند نرم افزار بعضی از کارها که هر کدام مجموعه ای از کارهای مهندسی نرم افزاری،معیارهای پروژه محصول کار و نقاط تضمین کیفیت هستند،باعث می شود که این مجموعه های معین فعالیتی در مشخصه های پروژه نرم افزاری بکار گرفته شده و در مجموعه تقاضاهای تیم پروژه نیز باشند. موسسه مهندسی نرم افزار (SEI)مدل جامعی ارائه داده که روی مجموعه ای از توانائیهای مهندسی نرم افزار که باید برای دسترسی سازمانها به سطوح مختلف بلوغ فرآیند وجود داشته باشد،پیش بینی می شود. این طرح درجه بندی میزان تطابق با توانایی مدل کامل (CMM) را مشخص می کند که فعالیتهای اصلی لازم در سطوح مختلف فرآیند تکامل را تعریف می کند.
سطح 1:اولیه. فرآیند نرم افزاری بصورت موقتی و حتی بعضی اوقات بسیار درهم و برهم توصیف شده است.چند فرآیند تعریف می شود و موفقیت به تلاش های فردی بستگی دارد. سطح 2:قابل تکرار. فرآیندهای اولیه مدیریت پروژه برای مشخص کردن هزینه،زمان بندی وقابلیت کارایی آن صورت می گیرند.اصل ضروروی فرآیند در جایی است که موفقیتهای پیش تر پروژه هایی کاربردهای مشابه را تکرار می کند. سطح 3:تعریف شده. فرآیند نرم افزاری برای مدیریت و فعالیت های مهندسی در طول یک فرآیند پردازش نرم افزاری در سازمان ثبت شده،استاندارد و منسجم است. سطح 4:مدیریت شده. اقدامات دقیق صورت گرفته برای ساخت نرم افزار و کیفیت محصول همگی کنترل می شوند. سطح 5:بهینه سازی. بهبود مکرر فرآیند با توجه به بازخورد کمی فرآیند و از روی آزمون ایده های نو آورانه و فناوریهای تازه ،مقدور است. سطوح مختلف فرآیند تکامل 13
مدلهای فرآیند نرم افزار یک تیم از مهندسین نرم افزار در تولید یک راهبرد کمک کنند که در بر گیرنده لایه های فرآیند روشها و ابزاری است. اغلب این راهبرد را مدل فرآیند مهندسی نرم افزار می نامند .یک مدل فرآیند برای مهندسی نرم افزار بر اساس ماهیت پروژه و کاربرد آن روشها و ابزار مورد استفاده و کنترل ها و موارد قابل ارائه که لازمند انتخاب می شود . تمام کارهای توسعه وارائه یک نرم افزار را می توان بعنوان یک حلقه حل مشکل توصیف کرد (شکل)که در آن چهار مرحله مشخص دیده می شوند . تعریف مسله بیان وضعیت توسعه تكنيكي جامعیتراهحل
1) وضعيت : نشان دهنده وضعيت جاري پروژه است • 2) تعريف مسئله : مسئله خاصي كه بايد حل شود را مشخص مي كند • 3) توسعه تكنيكي : مسئله را از طريق بكارگيري تكنولوژي خاصي حل مي كند. • 4) مجتمع سازي : نتيجه مسئله را به رده هاي بالاتر ارائه مي كند.
مدل ترتیب خطی این مدل را که گاهی"چرخه حیات کلاسیک" یا "مدل آبشاری" می نامند ،بیانگر یک نگرش نظام مند و زنجیری نسبت به تولی نرم افزار است که در سطح سیستم شروع شده و با تحلیل ،طراحی ، کد نویسی ،آزمون و پشتیبانی نرم افزاری پیشروی می کند . مهندسی سیستم/اطلاعات تحلیل طراحی برنامه نویسی آزمون
مهندسي اطلاعات : چون نرم افزار اغلب بخشي از يك سيستم بزرگتر مي باشد در ابتدا كار با يك امكان سنجي شروع مي شود.مهندسي اطلاعات خود شامل دو قسمت تحليل و طراحي مي باشد • تحليل نيازها :به منظور فهم ماهيت برنامه ها مهندس نرم افزار بايد محدوده اطلاعات نرم افزار را همراه توابع ، رفتار و كارايي تشخيص دهد.اين نياز ها مستند شده و همراه با مشتري مرور مي شود. • طراحي : طراحي معمولا فرايند چند مرحله اي است كه بر روي چها رصفت ساختمان داده،معماري،نمايش رابط ها و جزئيات الگوريتم ها و رويه ها تمركز دارد.
مشکلات ترتیب خطی پروژه های واقعی به ندرت از جریان زنجیری و متوالی که مدل ارائه میدهد، پیروی می کند .گرچه مدل خطی می تواند با تکرار تطابق یابد ،اما آن را به طور غیر مستقیم انجام می دهد . در نتیجه ،با انجام کار توسط اعضای پروژه ممکن است موارد گیج کننده ای رخ دهد . اغلب برای مشتری مشکل است که تمام نیاز های خود را به طور مشخص بیان کند . مدل زنجیری خطی به این امر نیاز داشته و در تطابق عدم قطعیت طبیعی که در آغاز بسیاری از پروژه ها وجود دارد ،دارای مشکل است . مشتری باید صبور باشد .نسخه کاری برنامه تا اواخر مدت زمان کاری پروژه در دسترس نخواهد بود .اگر مشکلی وجود داشته و تا اواخر کار برنامه نویسی که برنامه مورد بازبینی قرار می گیرد مشخص نشود ،می تواند فاجعه آمیز باشد .
مدل نمونه سازی اغلب موارد مشتري اهداف كلي را بيان مي كند اما جزئيات ورودي و خروجي را نمي داند روش نمونه سازی بهترین روش برای حل مشکلاتی از قبیل : نامطمئن بودن مشتری از کارایی الگوریتم، قابلیت تطابق آن با یک سیستم عامل یا شکل ارتباط متقابل دستگاه و انسان . نمونه نخست توسط مشتری (كاربر) ارزیابی شده و از آن برای رفع نیازهای نرم افزاری که قرار است تولید شود استفاده می شود وقتی نمونه اولیه طوری تنظیم شد که نیازهای مشتری را براورده سازد، عمل تکرار رخ می دهد، در حالیکه در همان زمان تولید کننده نرم افزار را قادر میسازد نیاز های مشتری را بهتر درک کند .
مشكلات مدل نمونه سازي • مشتري شكل اجرايي نرم افزار را كه ارائه خواهد شد را مي بيند اما اطلاع ندارد كه اين يك نمونه براي رسيدن به يك اجراي صحيح است • طراح اغلب نكاتي را در طراحي ناديده مي گيرد تا يك نمونه اجرايي را به سرعت تهيه كند • نكته :براي شروع طراح و مشتري بايد بدانند كه اين فقط يك نمونه است و نرم افزار واقعي با كيفيت و پشتيباني در آينده نزديك توليد مي شود
مدل ساخت سریع برنامه ها(RAD) Rapid Application Development يا توسعه سریع کاربرد (RAD) یک مدل فرایند افزایشی تولید نرم افزار است که تنها بر یک سیکل تولید بسیار کوتاه تاکید می کند مدل. (RAD) یک نسخه تطابق یافته سرعت بالا از مدل زنجیری خطی است که در آن توسعه سریع با استفاده از ساختمانی مبتنی بر اجزاء تشکیل دهنده حاصل می شود اگر موارد مورد نیاز به خوبی شناسایی شده و دامنه پروژه محدود شود، فرایند RAD این امکان را به تیم می دهد که سیستم كامل را ظرف مدت بسیار کوتاهی ارائه دهند. 22
فاز هاي RAD : 1-مدلسازی تجاری جریان اطلاعات را در میان کارهای تجاری مدلسازی می کند. 2-مدلسازی داده ای جریان اطلاعاتی که به عنوان بخشی از مرحله مدلسازی تجاری تعریف شده در مجموعه ای از اهداف داده ای که برای پشتیبانی تجاری لازمند، پالایش می شود. مشخصه های هر هدف شناسایی شده و ارتباط بین این اهداف تعریف می شود . 3-مدلسازی فرآیند اهداف داده ای که در مرحله مدلسازی داده ها تعریف شده اند تغییر می یابند تا به جریان اطلاعاتی لازم برای اجرای یک کار تجاری ،دست پیدا کنند .توضیحات عمل پردازش برای افزودن، شناسایی، حذف یا بازیابی یک شیء داده ای ارائه می شوند .
4-ايجاد كاربرد(تولید برنامه کاربردی) RAD از تكنيك هاي نسل چهارم استفاده مي كند. به جای تولید نرم افزار با استفاده از زبانهای متعارف برنامه نویسی نسل سوم فرآیندRAD تلاش می کند تا از جزء های برنامه موجود مجددا استفاده کرده یا جزء های قابل استفاده مجددی را تولید کند.
5-آزمايش و خاتمه از آنجا که فرایند RAD براستفاده مجدد تأکید می کند بسیاری از اجزای برنامه مورد آزمون قرار گرفته اند.این کار در زمان کلی آزمون صرفه جویی می کند. مدل فرآیند RAD در شکل زیر تشریح شده است.محدودیتهای زمانی اعمال شده بر پروژه RAD نیازمند یک دامنه قابل اندازه گیریاست. 25
تیمشماره3تیمشماره 2تیمشماره1 مدل سازی تجاری مدل سازی داده ای مدل سازی فرایند تولید برنامه کاربردی مدل سازی تجاری مدل سازی تجاری مدل سازی داده ای مدل سازی داده ای مدل سازی فرایند مدل سازی فرایند تولید برنامه کاربردی تولید برنامه کاربردی آزمون و چرخش آزمون و چرخش آزمون و چرخش
نقایص مدل های پردازش RAD در مورد پروژه های بزرگ اما قابل اندازه گیری، RAD نیازمند منابع انسانی کافی است تا تعداد تیمهای درست RAD را تشکیل دهد. RAD نیازمند تولید کننده و مشتری هایی است که بتوانند فعالیت های سریع لازم را برای رسیدن به یک سیستم کامل در یک چارچوب زمانی کوتاه انجام دهند. همه نوع برنامه کاربردی برای RAD مناسب نیست. اگر سیستم به درستی پیکره بندی نشود، ساختن اجزای لازم برای RAD مشکل ساز خواهد بود. اگر عملکرد عالی موضوع اصلی است و قرار است از طریق تنظیم رابط ها با اجزای سیستم تأمین شود روش RAD ممکن است کارگر نباشد. RAD وقتی که خطرات فنی بسیار زیاد است مناسب نخواهد بود. 27
مدل های تکاملی فرآیند نرم افزار 1 -مدل فزاینده (افزایشی) مدل فزاینده عناصر مدل زنجیری خطی را با دیدگاه تکرار مدل نخست،ترکیب می کند. وقتی از یک مدل فزاینده استفاده می شود،اولین بخش رشد اغلب، هسته محصول اصلی است. یعنی نیازهای اولیه مورد توجه قرار می گیرند اما بسیاری از مشخصه های تکمیلی ارائه نمی گردند. هسته محصول بوسیله مشتری مورد استفاده قرار می گیرد. این طرح اصلاح هسته محصول را مورد توجه قرار می دهد تا بهتر نیازهای مشتری را برآورده نموده و ارائه مشخصه ها و قابلیت های کاری اضافی مورد نظر مشتری را نیز بهتر سازد. این فرآیند بدنبال تحویل هر بخش تکرار می شود تا وقتی که محصول کامل تولید شود.
افزایش1 تحویل نخستین افزایش تحویل دومین افزایش افزایش 2 تحویل سومین افزایش افزایش 3 افزایش 4 تحویل چهارمین افزایش مدل افزایشی مهندسی سیستم اطلاعات تحلیل طراحی برنامه آزمون تحلیل طراحی برنامه آزمون تحلیل طراحی برنامه آزمون تحلیل طراحی برنامه آزمون 29
مدل فرایند فزاینده(ادامه) بر خلاف مدل نمونه سازي، مدل تكاملي بر روي تحويل محصول در هر افزايش تاكيد دارد.افزايش هاي اوليه بخشي از نياز محصول نهايي را فراهم مي كنند. مدل افزايشي زماني مفيد است كه مهلت پياده سازي كامل كم باشد.لذا مي توان افزايش هاي اوليه را با افراد كمتر و در زمان كمتر ايجاد كرده و سپس در آينده افزايش ها را توسعه داد. اين مدل براي برنامه ريزي و كنترل ريسك هاي تكنيكي نيز مناسب است.
2-مدل مارپیچی(حلزونی) مدل حلزونی که در اصل توسط بوهم(Boehm) پیشنهاد شد یک مدل فرآیند نرم افزار تکاملی است که ماهیت تکراری نمونه اولیه را با جنبه های نظام مند و کنترل شده مدل زنجیری خطی ارتباط می دهد. با استفاده از مدل حلزونی نرم افزار در یک سری نسخه های فزاینده تولید می شود.در طول تکرارهای اولیه ممکن است نسخه اولیه یک مدل روی کاغذ یا تنها الگوی اولیه باشد.در طول تکرارهای بعدی نسخه های نسبتا کاملتری از سیستم مهندسی شده و تولید می شود. مدل حلزونی از نظر فعالیتی به چند قسمت تقسیم می شود که به آنها مناطق کاری نیز می گویند.معمولا بین 3و6 منطقه وجود دارد.
مدل حلزونی طرح ریزی تحلیل ریسک ارتباط با مشتری نقطه محوری شروع پروژه مهندسی ارزیابی مشتری ساخت و نصب و تحویل پروژه های توسعه مفهوم پروژه های توسعه محصول جدید پروژه های بهینه ساازی محصولات پروژه های نگهداری محصولات
شش منطقه کاری ارتباطات مشتری- کارهای لازم برای ایجاد ارتباط مؤثر بین تولید کننده و مشتری. برنامه ریزی- کارهای لازم برای تعریف منابع، محدوده های زمانی و دیگر اطلاعات مربوط به پروژه. تحلیل ریسک-کارهای لازم برای ارزیابی فنی و خطرات مدیریتی. مهندسی و طراحی-کارهای لازم برای ساخت یک یا چند نمونه از برنامه کاربردی. ساخت و ارائه-کارهای لازم برای ساخت،آزمون،نصب و تهیه پشتیبانی برای کاربر(مثل مستند سازی و آموزش) ارزیابی مشتری-کارهای لازم برای بدست آوردن واکنش مشتری بر اساس ارزیابی نمونه های نرم افزاری تولید شده در طول مرحله مهندسی و اجرا شده در طول مرحله نصب و راه اندازی.
شش منطقه کاری(ادامه) با شروع فرایند تکمیلی،تیم مهندسی نرم افزار در جهت حرکت عقربه های ساعت، حرکت در مارپیچ را آغاز می کند و این کاراز مرکز شروع می شود.اولین مدار حول مارپیچ ممکن است منجر به تولید مشخصه محصول شود. با عبور از هر مرحله منطقه برنامه ریزی،کارهای تطابقی با طرح پروژه صورت می گیرد.هزینه و زمانبندی بر اساس بازخورد ارزیابی مشتری،تنظیم می گردند.علاوه بر آن مدیر پروژه تعداد تکرارهای تنظیم شده لازم برای تکمیل نرم افزار را تعیین می کند.مدل حلزونی می تواند کارهای انطباقی را صورت دهد تا در تمام طول حیات نرم افزار کامپیوتری به کار گرفته شود. در مدل حلزونی هر مکعبی که در طول محور قرار داده شده است را می توان به عنوان نماینده نقطه شروع برای انواع پرژه های مختلف در نظر گرفت. مدل مارپيچي يك روش انعطاف پذير است.چون نرم افزار به تدريج در طول فرايند تكميل مي شود،توسعه دهنده و مشتري در هر سطح بيشتر با ريسك هاي پروژه آشنا مي شوند.
3-مدل مارپيچيWINWIN مدل حلزونی بیانگر چارچوب فعالیتی است که ارتباطات مشتری را مورد توجه قرار می دهد.هدف از این فعالیت عبارتست از بیرون کشیدن اطلاعات در مورد نیازهای پروژه از مشتری در یک بستر مناسب است. مشتری و تولید کننده وارد فرایند مذاکره می شوند که در آن ممکن است از مشتری قابلیت کارایی،عملکرد و سایر مشخصه های سیستم یا محصول در برابر هزینه و بازار در همان موقع سؤال شود. به ندرت اتفاق مي افتد كه مشتري جزئيات كافي را در اختيار قرار دهد. بهترين مذاكره نتيجه WinWin دارد يعني مشتري با دريافت يك سيستم خوب و طراح با دستيابي به هزينه و زمانبندي مناسب هر دو برنده مي شوند. 35
مدل مارپيچي WINWIN(ادامه) در مدل حلزونی بجای یک مرحله ارتباط با مشتری ،کلیه فعالیت های زیر تعریف می شوند: 1- مشخص نمودن افراد كليدي مسئول مربوط به سيستم يا زيرسيستم 2- مشخص كردن افرادي كه شرايط قابل قبول محصول را براي مشتري مشخص نمايند 3-مذاکره با مشتري يا نمايندگان آن براي تعريف شرايط WinWin براي تمامي بخش ها 36
مدل حلزونی WINWIN 2- مشخص نمودن افراد شرايط Winwin 3-الف-پنهان سازي شرايط WinWin 3-ب ايجاد اهداف سطح بعدي محدويت ها و راه هاي ديگر 1- مشخص نمودن افراد سطح بعدي 4- ارزيابي فرايند و راه هاي جايگزين محصول و بررسي كيفيت ها 7- مرور و توضيحات 6- اعتبار سنجی محصول و تعریفات فرایند 5- تعریف سطح بعد محصول و فرایند مشتمل بر بخشها وقطعات 37
مدل حلزونیWINWIN (ادامه) علاوه بر تأکید روی مذاکرات اولیه،مدل حلزونی winwin سه معیار فرایند پردازش نیز معرفی می کند که نكات اطمينان نامیده می شوند و به تکمیل یک چرخه حول مارپیچ کمک نموده و معیارهای تصمیم گیری را قبل از انجام پروژه نرم افزاری مهیا می کنند. نكات اطمينان نمایانگر سه دیدگاه مختلف از پیشرفت در زمانی هستند که پروژه مارپیچ را طی می کند. اولین نكته اطمينان که به آن اهداف چرخه حیات می گویندlife cycle objective( LCO)مجموعه ای از اهداف را برای هر فعالیت عمده مهندسی نرم افزار بیان می کند مثلاً بعنوان بخشی از LCO،مجموعه اهداف مرتبط با تعریف نیازهای سطوح ارشد سیستم يا محصول است. دومین نكته اطمينان گاه به نام معماری چرخه حیات life cycle architecture (LCA) اهدافی را ارائه می دهد که باید با تعریف شدن معماري سیستم و نرم افزار بدست آيند ،مثلاً بعنوان بخشی از LCA تیم پروژه نرم افزاری باید توضیح دهد که قابلیت کارایی اجزای نرم افزاری قابل استفاده مجدد و موجود در بازار را برآورده کرده و اثر آنها را روی تصمیمات ساختاری در نظر گرفته است.قابلیت عملیلتی اولیهInitial operational capability(IOC)سومین نكته اطمينان است و نمایانگرمجموعه اهداف مربوط به آماده سازی نرم افزار برای نصب/توزیع، آماده سازی سایت قبل از کارهای نصب و راه اندازی و کمک مورد نیاز از طرف همه طرفهایی است که از نرم افزار استفاده یا آن را پشتیبانی می کنند. 38
مدل شیوه های رسمی مدلی که بر پایه شیوه های رسمی بدست می آید دربرگیرنده یک سری فعالیت هایی است که منجر به تعیین رسمی مشخصه های نرم افزار کامپیوتر با روابط ریاضی می شود.روش های رسمی مهندسی نرم افزار را قادرمی سازند که یک سیستم مبتنی بر کامپیوتر را با بکارگیری عبارات ریاضی بسیار دقیق مشخص توسعه داده و تغییر با اینکه مدل روش های رسمی بصورت یک روش حتمی و رایج در نیامده اما یک نرم افزار بدون مشکل را تضمین می کند.با این وجود مسئله توانایی آن در محیط تجاری مورد بحث قرار دارد: 1-توسعه روش های رسمی در حال حاضر کاملاً وقت گیر و گران است. 2-از آنجا که تولید کنندگان کمی در مورد نرم افزار دارای پیش زمینه کافی برای استفاده از روش های رسمی هستند یک دوره آموزش پر هزینه لازم است. 3-استفاده از مدل ها بعنوان یک مکانیزم ارتباطی برای مشتریان غیر کارکشته از نظر فنی مشکل است. 39
فنون نسل چهارم اصطلاح فنون نسل چهارم (4GT)در بر گیرنده طیف گسترده ای از ابزارهای نرم افزاری است که دارای یک چیز مشترک هستند:هر کدام به مهندس نرم افزار این قدرت را می دهند که یک مشخصه نرم افزاری را در سطح بالایی مشخص سازد.سپس ابزار به طور خودکار منبع را بر اساس مشخصه های تولید کننده تولید می نماید. یک محیط تولید نرم افزار که معیار 4GT را مورد پشتبانی قرار می دهد شامل چند یا کل ابزار زیر است: زبانهای غیر رویه ای برای تحقیقات در پایگاه داده ای،ارائه گزارش،دستکاری و تغییر داده ها،تعریف و ارتباط متقابل صفحه ای،ارائه کد،توانایی گرافیکی سطح بالا،توانایی صفحه گسترده و تولید خودکار HTML و زبانهای مشابه استفاده شده برای ایجاد سایت وب با استفاده از ابزارهای پیشرفته نرم افزاری. 40
فنون نسل چهارم(ادامه) می توان وضعیت کنونی روش های 4GT را به صورت زیر خلاصه کرد: 1-استفاده از روش4GT روش بسیار ارزشمندی برای بسیاری از حوزه های مختلف در برنامه های کاربردی است.4GT همراه با ابزارهای مهندسی نرم افزار با کمک کامپیوتر(CASE)و مولدهای کد،یک راه حل خوب برای بسیاری از مشکلات نرم افزاری ارائه می دهد. 2-اطلاعات جمع آوری شده از شرکتهایی که از4GT استفاده می کنند نشانگر این است که زمان لازم برای تولید نرم افزار برای بر نامه های کاربردی کوچک و متوسط تقریباً کاهش یافته و میزان طرح و تحلیل برای برنامه های کوچک نیز کم شده است. 3-استفاده از4GT برای کارهای تولید نرم افزار در مقیاس بزرگ نیازمند تحلیل،طراحی و آزمون بیشتری برای صرفه جویی در زمان ، به دلیل حذف کد نویسی است. 41
فناوری فرآیند مدل های فرآیند مورد بحث در بخشهای قبلی باید تحت انطباقی قرار بگیرند تا در یک پروژه نرم افزاری استفاده شوند.برای این کار ابزارهای فناوری فرآیند تولید شده اند تا به سازمانهای نرم افزاری کمک کنند فرآیند پردازش کنونی خود را تحلیل کرده،کارهای مختلف را سازماندهی کنند،میزان پیشرفت را کنترل و مشاهده نمایند و کیفیت فنی را سازمان دهند. 42