PDA

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



Ehsan M
1st April 2012, 11:45 PM
با بزرگ شدن پروژه هاي نرم افزاري و پيشرفت علم مهندسی نرم افزار ، روش هاي سازمان يافته اي براي توسعه نرم افزارها ابداع شد که هر کدام بسته به نوع پروژه و محدوديت هاي آن در جاي خاصي کاربرد دارد. برخي روش ها مانند R.A.D به دليل کمبود زمان توليد، برخي مانند spiral به دليل مشخص نبودن نيازمندي هاي اوليه نرم افزار و برخي مانند X.P براي کساني که کار طراحي نرم افزار را با کدنويسي شروع ميکنند ابداع شدند. ايجاد پروژه هاي بزرگ بدون بکارگيري يکي از روش هاي مهندسي نرم افزار ممکن نيست.

1 - روش آبشاري (waterfall) : اين روش اولين روش مهندسي نرم افزار محسوب ميشود و گاهي آنرا روش سنتي نيز مي‌نامند. هر روش مهندسي معمولا شامل 5 پروسه اصلي است که عبارتند از آناليز سيستم، طراحي سيستم، کدنويسي و اجرا، تست و تحويل و پشتيباني . اين 5 پروسه در روش آبشاري به ساده ترين شکل بيان ميشوند. بدين ترتيب که هر فاز از پروسه ي کلي، انجام ميشود و بعد فاز بعدي آغاز ميشود. اين روش در پروژه هايي کاربرد دارد که فاز اول که آناليز است توسط مهندس نرم افزاري که کار تحليل را بر عهده دارد کاملا شناخته شود و طراح کاملا نيازمندي هاي سيستم مربوطه را بداند تا در فاز بعدي بتواند طراحي معماري سيستم را آغاز کند. در عکس زير نمودار عملياتي روش آبشاري را مراجعه ميکنيد. گرچه در هر مرحله امکان برگشت به مرحله قبل گنجانده شده، اما اين برگشت هزينه ي بسياري را بر دوش تيم نرم افزاري ميگذارد. زيرا هر تغيير در مرحله قبل، ميتواند باعث شود تا پروژه در فاز بعدي نيازمند شروع از ابتدا باشد.






http://macromediax.persiangig.com/macromediax.com/soft-eng-abshari.png



2 - روش افزايشي (Incremental): اين روش براي زماني است که نيازمندي هاي نرم افزاري که بايد نوشته شود تشخيص داده شده است ، اما امکان استفاده از روش رو به جلوي آبشاري وجود ندارد.به همين دليل با ترکيب چند پروسه ي آبشاري، روش افزايشي ايجاد ميشود. بطور مثال شما ميخواهيد يک نرم افزار مانند word بنويسيد. در هر مرحله بخشي از نرم افزار را از آناليز تا پياده سازي و تست پيش مي بريد و بار بعدي امکانات جديدي را در نظر ميگيريد تا به نرم افزار اضافه کنيد. امکانات ضروري تر در اولويت بالاتر اجرا قرار مي گيرند.




http://macromediax.persiangig.com/macromediax.com/soft-eng-incremental.gif




3 - روش R.A.D : اين روش زير مجموعه روش افزايشي است و بر روي چرخه ي کوتاه مدت توليد نرم افزار (http://www.macromediax.com/learn/category.asp?cat=development) تاکيد دارد. در اين روش از برنامه نويسي با استفاده از کامپوننت هاي آماده بيشترين بهره را مي بريم تا سرعت تحويل پروژه را افزايش دهيم . معمولا پروژه هايي با اين روش اجرا ميشوند که کمتر از 90 روز وقت مي گيرند و براي افزايش سرعت از تيم هاي موازي نيز براي اجرا کمک ميگيريم تا هر تيم بخشي از نرم افزار را اجرا کند و نهايتا آن بخش ها را با هم يکپارچه ميکنيم. با توجه به اهميت سرعت در اين مدل ، افراد تيم بايد همگي زبده باشند تا بتوانند بدون هدر رفتن وقت پروژه را در موعد مقرر تحويل دهند. همانطور که در تصوير زير ميبينيد پروژه توسط چند تيم در حال پيشبرد است:


http://macromediax.persiangig.com/macromediax.com/soft-eng-rad.gif






4 - روش الگويي (prototyping) : اين روش معمولا زماني بکار گرفته ميشود که مشتري مجموعه اي از نيازها را بيان ميکند ، اما از ورودي و خروجي ها و الگوريتم هاي داخلي اش اطلاع کافي ندارد. با توجه به اينکه معمولا اولين نسخه ي هيچ نرم افزاري کامل نيست و نيازمند بازنگري است، اين روش با چرخه ي توليد و تست خود باعت ميشوند ايرادات نرم افزار استخراج و رفع شود. اما گاهي خارج شدن از اين سيکل (با توجه به بالارفتن سطح توقع مشتري) سخت ميشود.


http://macromediax.persiangig.com/macromediax.com/soft-eng-proto.gif






5 - روش حلزوني (spiral) : اين روش ترکيبي از روش سيستماتيک آبشاري و روش prototyping است. در اين روش نرم افزار طي چندين نسخه ي ارائه شده به تکامل مي رسد. در هر مرحله ريسک هاي پروژه با جزئيات بررسي ميشوند. همانطور که درنمودار زير ميبينيد، کليه ي مراحل انجام پروژه در هر گردش در سايز بزرگتري اجرا ميشوند.





http://macromediax.persiangig.com/macromediax.com/soft-eng-spiral.gif




6 - روش مهندسي همزمان (concurrent development) : اين روش شامل يکسري فاز اجرايي است. هر فاز خود شامل يکسري وضعيت (state) است. هر يک از اينstate ها بر اساس event هايي که برايشان تعريف ميکنيدم تغيير ميکنند و به وضعيت ديگري مي روند. در عکس زير بخش آناليز را در اين مدل مهندسي مشاهده ميکنيد. اگر در موقعيت development باشيم و تغييري در نيازمندي هاي تعريف شده توسط مشتري ايجاد شود، به وضعيت awaiting changes مي رويم. زيرا تغييراتي در ساختار پروژه ايجاد شده که ميتواند منجر به تغيير در فاز development شود. اين روش معمولا براي نرم افزارهايي که بصورت کلاينت سروري کار ميکنند بکار مي رود.




http://macromediax.persiangig.com/macromediax.com/soft-eng-cuncurrent.jpg




علاوه بر مدل هاي مهندسي نرم افزار فوق، روش هاي ديگري مانند XP ، Clean Room ، component-based ، Agile و غيره وجود دارند. که هر يک در جاي خود قابل استفاده هستند. اما روش هاي فوق متداول ترين مدل هايي هستند که بکار گرفته ميشوند.

استفاده از تمامی مطالب سایت تنها با ذکر منبع آن به نام سایت علمی نخبگان جوان و ذکر آدرس سایت مجاز است

استفاده از نام و برند نخبگان جوان به هر نحو توسط سایر سایت ها ممنوع بوده و پیگرد قانونی دارد