PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : �?رآيند توسعه نرم ا�?زار



Y@SiN
11-19-2009, 07:19 PM
به بهانه تدريس اين بخش از درس مهندسي نرم ا�?زار يک در دانشگاه بد نديدم، خلاصه اي از درس را تحت عنوان مروري بر �?رآيند توسعه نرم ا�?زار و روشهاي مختل�? آن را در اينجا نيز ذکر کنم باشد که مورد است�?اده علاقه مندان قرار گيرد.چرا؟ چون �?کر می کنم چنانچه هم مشتری و هم تولید کننده با �?رآیند توسعه نرم ا�?زار آشنا باشند ارتباط بهتری با هم برقرار می کنند و هر یک وظی�?ه و حقوق خودش را بهتر می داند و بهتر می تواند بر جریان تولید نظارت داشته باشد.

در ساخت يک سيستم نرم ا�?زاري سه �?رآيند مهم تاثير گذار مي باشند:
- �?رآيند توسعه (Development Process): سازماندهی �?عالیت ها است برای ساخت یک سیستم
- �?رآيند مديريت (Management Process): انتخاب ا�?راد، تجهیزات و �?رآیند هاست برای توسعه یک سیستم و کنترل و نظارت بر روند اجرای پروژه (مدیریت پروژه)
- �?رآيند پشتيباني (Maintenance Process): کنترل و پشتیبانی نرم ا�?زار پس از تولید آن

در این بین در �?رآیند توسعه هد�? آن است که یک سیستم با مشخصات خواسته شده تولید شود و بنابراین برای تولید هر نوع سیستم مت�?اوت است.�?رآیند توسعه از مرحله طرح یک راه حل م�?هومی برای مساله خواسته شده (امکان سنجی) آغاز شده، پس از دریا�?ت خواسته ها و تحلیل سیستم طراحی صورت گر�?ته و در نهایت این طراحی با کمک ابزارهای پیاده سازی تبدیل به یک سیستم واقعی می شود. هد�? این �?رآیند آن است که از یک سو برآورده ساختن نیازهای کاربران و از سوی دیگر کی�?یت مناسب عملکرد سیستم تضمین گردد و بنابراین بایستی حاوی مکانیسم هایی برای اعتبار سنجی: خروجی مطابق با خواسته ها (Validation) و وارسی پذیری: صحت عملکرد خروجی (Verification) باشد. �?رآیند توسعه ضمن دادن آزادی به تحلیل گر باید تضمین کند که زمانبندی رعایت شود.

روشهای مختل�?ی برای �?رآیند توسعه سیستم وجود دارد که در این میان می توان گ�?ت 12 روش مطرح تر وجود دارد که بدون اشاره به مزایا و معایب آنها عبارتند از:
1- ساده ترین روش: تبدیل �?رآیند توسعه سیستم در قالب دنباله ای از وظای�? مشخص و ترسیم CPM: Critical Path Model ، یک نمودار از تمام �?عالیت ها
2- �?رایند توسعه خطی Liner: به ترتیب مراحل انتخاب پروژه، تعری�? م�?هومی (تعری�? مساله، امکان سنجی) ، تعری�? مشخصات (خواسته ها ، تعری�? مساله) ، طراحی (طراحی معماری، ت�?صیلی) ، توسعه (ساخت سیستم، تست) ، ارزیابی و درنهایت تعری�? پروژه جدید
3- مدل آبشاری (Water Fall) : تقسیم وظائ�? توسعه سیستم در قالب یک مدل آبشاری از تعری�? مساله، امکان سنجی، تحلیل (سیستم، خواسته ها)، طراحی ، پیاده سازی و تست ، یکپارچه سازی و تست، نصب و تست ، نگهداری و مرور , با امکان برگشت از یک مرحله به مرحله قبل
4- توسعه مرحله ای، ا�?زایشی و یا نموی Incremental Methods : تقسیم یک مساله به مسائل کوچکتر و انجام هر زیر سیستم (مساله کوچکتر) و انجام هر یک به صورت جداگانه و در صورت امکان اجرا به صورت همزمان
5- الگو سازی (Prototyping) :ایجاد یک الگو برای کاربران برای اینکه درک بهتری از سیستم داشته باشند و درنهایت پیاده سازی سیستم بر اساس این نمونه
6- توسعه سریع سیستم RAD: Rapid Application Development : ادغام برخی مراحل با یکدیگر و است�?اده از زبانهای نسل چهارم برای توسعه سیستم (مراحل: برنامه ریزی، طراحی و تست)
7- طراحی تکاملی به صورت حلزونی و یا مارپیچی (Spiral) : توسعه سیستم به صورت ا�?زایشی به صورت بازگشتی Recursive
8- با اضا�?ه کردن م�?اهیم برنامه سازی شی گرایی (OOP) به روش حلزونی و تبدیل به صورت موازی بازگشتی (Parallel Recursive Method )
9- توسعه سیستم مبتنی بر مول�?ه ها (CBSD: Component Based Software Development )
10- توسعه همزمان (Concurrent Development) : توسعه به صورت یک �?رآیند سیستماتیک و مرحله بندی و لیبل گذاری هر بخش در هر مرحله. تقسیم سیستم به بخش های مختل�? و تقسیم نیروها در بین پروژه های مختل�? برای اجرای این بخش ها به صورت همزمان
11- روشهای �?رمال : بکارگیری مدل ها و م�?اهیم ریاضی در توسعه سیستم
12- روشهای نسل چهارم: بگارگیری از ابزارهای گرا�?یکی و ابزارهای مهندسی نرم ا�?زار (CASE Tools)
با توجه به تعدد روشها و مدل های �?رآیند توسعه باید در یک پروژه انتخاب صورت بگیرد. این انتخاب بر اساس موارد زیر می تواند باشد:
- درجه ساختاری سیستم
- آشنایی با �?نآوری
- اندازه پروژه
برای مثال چرخه های خطی برای پروژه های آسان و ساختیا�?ته و یا زمانی که با �?نآوری کاملا آشنا هستیم مناسب می باشند و برای پروژه های بزرگ و ناشناخته روشهای ا�?زایشی بهتر می باشند.اما نمی توان انتظار داشت یک گروه تولید کننده نرم ا�?زار در هر پروژه یک معیار را انتخاب کند. چون این کار بسیار هزینه بر است و به لحاظ مختل�? ناصواب. دلایل انتخاب یک روش استاندارد برای یک تیم و است�?اده در همه پروژه ها آنست که:
- طراحان برای یادگیری تکنیک های جدید وقت زیاد تل�? نمی کنند.
- مستند سازی بهتر صورت می گیرد
- کاهش هزینه آموزش کاربران سیستم ها

همانطور که قبلا نوشته ام در رادمان روش نهم از روشهای بالا انتخاب شده است.چون از یکسو برای همه پروژه ها می توان است�?اده نمود و هم مول�?ه های خوبی در هر پروژه تولید و یا بهبود می یابند که می توان از آنها در پروژه های بعدی نیز است�?اده کرد. بگذریم ....
همین!