دوست عزیز، به سایت علمی نخبگان جوان خوش آمدید

مشاهده این پیام به این معنی است که شما در سایت عضو نیستید، لطفا در صورت تمایل جهت عضویت در سایت علمی نخبگان جوان اینجا کلیک کنید.

توجه داشته باشید، در صورتی که عضو سایت نباشید نمی توانید از تمامی امکانات و خدمات سایت استفاده کنید.
نمایش نتایج: از شماره 1 تا 1 , از مجموع 1

موضوع: روش های مهندسی توسعه نرم افزار

  1. #1
    دوست آشنا
    نوشته ها
    634
    ارسال تشکر
    4,089
    دریافت تشکر: 3,118
    قدرت امتیاز دهی
    253
    Array
    Ehsan M's: جدید92

    Thumbs up روش های مهندسی توسعه نرم افزار



    با بزرگ شدن پروژه هاي نرم افزاري و پيشرفت علم مهندسی نرم افزار ، روش هاي سازمان يافته اي براي توسعه نرم افزارها ابداع شد که هر کدام بسته به نوع پروژه و محدوديت هاي آن در جاي خاصي کاربرد دارد. برخي روش ها مانند R.A.D به دليل کمبود زمان توليد، برخي مانند spiral به دليل مشخص نبودن نيازمندي هاي اوليه نرم افزار و برخي مانند X.P براي کساني که کار طراحي نرم افزار را با کدنويسي شروع ميکنند ابداع شدند. ايجاد پروژه هاي بزرگ بدون بکارگيري يکي از روش هاي مهندسي نرم افزار ممکن نيست.

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



    2 - روش افزايشي (Incremental): اين روش براي زماني است که نيازمندي هاي نرم افزاري که بايد نوشته شود تشخيص داده شده است ، اما امکان استفاده از روش رو به جلوي آبشاري وجود ندارد.به همين دليل با ترکيب چند پروسه ي آبشاري، روش افزايشي ايجاد ميشود. بطور مثال شما ميخواهيد يک نرم افزار مانند word بنويسيد. در هر مرحله بخشي از نرم افزار را از آناليز تا پياده سازي و تست پيش مي بريد و بار بعدي امکانات جديدي را در نظر ميگيريد تا به نرم افزار اضافه کنيد. امکانات ضروري تر در اولويت بالاتر اجرا قرار مي گيرند.
    3 - روش R.A.D : اين روش زير مجموعه روش افزايشي است و بر روي چرخه ي کوتاه مدت توليد نرم افزار تاکيد دارد. در اين روش از برنامه نويسي با استفاده از کامپوننت هاي آماده بيشترين بهره را مي بريم تا سرعت تحويل پروژه را افزايش دهيم . معمولا پروژه هايي با اين روش اجرا ميشوند که کمتر از 90 روز وقت مي گيرند و براي افزايش سرعت از تيم هاي موازي نيز براي اجرا کمک ميگيريم تا هر تيم بخشي از نرم افزار را اجرا کند و نهايتا آن بخش ها را با هم يکپارچه ميکنيم. با توجه به اهميت سرعت در اين مدل ، افراد تيم بايد همگي زبده باشند تا بتوانند بدون هدر رفتن وقت پروژه را در موعد مقرر تحويل دهند. همانطور که در تصوير زير ميبينيد پروژه توسط چند تيم در حال پيشبرد است:
    4 - روش الگويي (prototyping) : اين روش معمولا زماني بکار گرفته ميشود که مشتري مجموعه اي از نيازها را بيان ميکند ، اما از ورودي و خروجي ها و الگوريتم هاي داخلي اش اطلاع کافي ندارد. با توجه به اينکه معمولا اولين نسخه ي هيچ نرم افزاري کامل نيست و نيازمند بازنگري است، اين روش با چرخه ي توليد و تست خود باعت ميشوند ايرادات نرم افزار استخراج و رفع شود. اما گاهي خارج شدن از اين سيکل (با توجه به بالارفتن سطح توقع مشتري) سخت ميشود.
    5 - روش حلزوني (spiral) : اين روش ترکيبي از روش سيستماتيک آبشاري و روش prototyping است. در اين روش نرم افزار طي چندين نسخه ي ارائه شده به تکامل مي رسد. در هر مرحله ريسک هاي پروژه با جزئيات بررسي ميشوند. همانطور که درنمودار زير ميبينيد، کليه ي مراحل انجام پروژه در هر گردش در سايز بزرگتري اجرا ميشوند.
    6 - روش مهندسي همزمان (concurrent development) : اين روش شامل يکسري فاز اجرايي است. هر فاز خود شامل يکسري وضعيت (state) است. هر يک از اينstate ها بر اساس event هايي که برايشان تعريف ميکنيدم تغيير ميکنند و به وضعيت ديگري مي روند. در عکس زير بخش آناليز را در اين مدل مهندسي مشاهده ميکنيد. اگر در موقعيت development باشيم و تغييري در نيازمندي هاي تعريف شده توسط مشتري ايجاد شود، به وضعيت awaiting changes مي رويم. زيرا تغييراتي در ساختار پروژه ايجاد شده که ميتواند منجر به تغيير در فاز development شود. اين روش معمولا براي نرم افزارهايي که بصورت کلاينت سروري کار ميکنند بکار مي رود.


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


  2. کاربرانی که از پست مفید Ehsan M سپاس کرده اند.


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. توسعه حسابرسی عملکرد و بهبود مدیریت در بخش دولتی
    توسط h.jabbari در انجمن حسابرسی و مديريت مالی
    پاسخ ها: 0
    آخرين نوشته: 13th January 2012, 11:15 AM
  2. در کنفرانس گوگل برای هر توسعه دهنده یک گلکسی تب 10.1 اینچی
    توسط PointedHeads در انجمن اخبار تلفن همراه
    پاسخ ها: 0
    آخرين نوشته: 23rd May 2011, 01:27 AM
  3. پاسخ ها: 0
    آخرين نوشته: 28th November 2008, 12:47 PM
  4. خبر: طرح توسعه خط و زبان فارسی در محیط رایانه‌ای تصویب شد
    توسط diamonds55 در انجمن اخبار وب و اینترنت
    پاسخ ها: 0
    آخرين نوشته: 9th November 2008, 11:51 PM
  5. پاسخ ها: 0
    آخرين نوشته: 3rd November 2008, 12:23 AM

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •