چرخه توليد نرم‌افزار

 

بعضي اوقات فيلم‌هاي مستندي در مورد نحوه توليد بسياري از محصولات از رسانه‌ها پخش مي‌شود. اين نوع مستند‌ها معمولا علاقه‌مندان خاص خود را دارد. ديدن مراحل ساخت محصولاتي كه ما هر روز از آنها استفاده مي‌كنيم جالب توجه است. نرم‌افزارها هم مانند ساير محصولات چرخه توليد خاص خود را دارند و براي توليد آنها از روش‌هاي مختلفي استفاده مي‌شود. انتخاب يك روش خوب براي توليد نرم‌افزار به مواردي مانند نوع، حجم و پيچيدگي آن بستگي دارد. در اين بخش قصد داريم چند روش توليد نرم‌افزار را معرفي كنيم.ساختن يك نرم‌افزار مانند ساختن يك خانه به نقشه نياز دارد و بايد از قبل همه چيز را پيش‌بيني كرد. براي ساختن خانه‌اي يك طبقه و كوچك شايد محاسبات پيچيده و نقشه‌هاي حرفه‌اي ضروري نباشد، در نرم‌افزار‌هاي كوچك نيز همين طور است؛ مثلا براي ساختن يك نرم‌افزار ماشين حساب فقط لازم است عملياتي را كه مي‌خواهيم ماشين حساب انجام دهد، در ذهن داشته باشيم و با يكي از زبان‌هاي برنامه‌نويسي آشنا باشيم تا بتوانيم يك نرم‌افزار ساده بسازيم. طراحي و پياده‌سازي نرم‌افزار‌هاي متوسط و بزرگ مانند ساختن مجتمع‌ مسكوني و برج‌ است. براي ساختن آنها محاسبات و پيش‌بيني‌هاي بيشتري نياز است؛ مثلا براي توليد يك سيستم‌عامل يا يك سيستم يكپارچه مديريتي لازم است همه چيز دقيق محاسبه و اهداف نرم‌افزار تعيين شود.در اينجا توليد نرم‌افزار را با ساختن ساختمان مقايسه كرديم، ولي يك فرق اساسي بين اين دو وجود دارد و آن، اين‌كه در توليد نرم‌افزار به دليل قابل مشاهده‌نبودن روند رشد پروژه به صورت فيزيكي به ابزارهاي خاصي براي اندازه‌گيري روند پيشرفت پروژه نياز داريم. در ادامه به معرفي چند روش توليد نرم‌افزار مي‌پردازيم.

روش آبشاري

روش آبشاري، روشي سنتي است. در اين روش مراحل به صورت ترتيبي انجام مي‌شود، ابتدا نيازها برآورد ‌شده، سپس طراحي نرم‌افزار انجام مي‌شود. در مرحله بعد پياده‌سازي به وسيله زبان‌هاي برنامه‌سازي صورت مي‌گيرد و نرم‌افزار تست مي‌شود و در نهايت به‌دست مشتري مي‌رسد، تجربه نشان داده است كه اين روش مي‌تواند براي نرم‌افزار‌هاي كوچك جوابگو باشد. با پيشرفت روش‌هاي توليد، اين روش منتقدان زيادي پيدا كرد و امروزه در كمتر پروژه‌اي با ديد مهندسي از آن استفاده مي‌شود.

روش افزايشي

در اين روش يك نمونه با استفاده از روش آبشاري تهيه و در ادامه سعي مي‌شود با توجه به نظرات مشتري، نرم‌افزار تكميل شود. در واقع تا كامل شدن محصول چند روش آبشاري كوچك اجرا مي‌شود.

روش سريع

همان‌طور كه از نام اين روش پيداست توليد يك‌نمونه از محصول نرم‌افزاري در كمترين زمان، هدف روش سريع است. در اين روش كمتر به مباحث قبل از توليد پرداخته مي‌شود و اين موضوع اجازه مي‌دهد تا نرم‌افزار با سرعت بالايي توليد شود؛ ولي ممكن است همين موضوع باعث وجود نقص‌هاي فراوان در محصول شود؛ بنابراين آشنايي قبلي از نيازهاي كاربر يك امر مهم در اين روش است.

روش نمونه‌اي

در اين روش سعي مي‌شود در ابتدا يك نسخه از نرم‌افزار تهيه شود و با توجه به نيازمندي‌ها نسخه اوليه اصلاح شود و نسخه‌هاي كامل‌تر تهيه شود. اين روش به تنهايي قابل استفاده نيست؛ ابتدا بايد كار را با يكي از روش‌هاي ديگر شروع كرد سپس وارد روش نمونه‌اي شد. از ويژگي‌هاي روش نمونه‌اي علاوه بر اين‌كه از نظرات كاربر استفاده مي‌كند، اين است كه سعي دارد با تقسيم پروژه به قسمت‌هاي كوچك‌تر ـ كه راحت تر قابل تغيير است ـ ريسك پروژه را كمتر كند.روش‌هايي كه در بالا ذكر شد بيشتر براي نرم‌افزار‌هاي كوچك مورد استفاده قرار مي‌گيرد و كمتر از مستند‌سازي در آنها استفاده مي‌شود. امروزه مستند‌سازي يك از بخش‌هاي مهم مهندسي نرم‌افزار به حساب مي‌آيد. مستند‌سازي مي‌تواند در مواردي همچون شناخت صحيح نيازمندي‌ها، پيش‌بيني ريسك‌ها، چگونگي كيفيت مورد نظر، استفاده مجدد از تجربيات يك پروژه و... مفيد واقع شود.در ادامه به معرفي دو نوع متدولوژي كه امروزه بيشتر براي توليد نرم‌افزار استفاده مي‌شود، مي‌پردازيم.

متدولوژي‌هاي سنگين

شناخته‌شده‌‌ترين متدولوژي سنگينRational Unified Process است. RUP توسط شركت رشنال براي مديريت پروژه‌هاي نرم‌افزاري ارائه شد و هم اكنون پركاربردترين فرآيند توليد و توسعه سيستم‌هاي نرم‌افزاري است، اين متدولوژي براي انواع پروژه با اندازه‌هاي كوچك تا بسيار بزرگ قابل استفاده است، ولي به دليل وجود مستندسازي‌هاي فراوان بيشتر در پروژه‌هاي بزرگ استفاده مي‌شود. از محاسن اين روش مي‌توان به تحليل دقيق ريسك‌هاي پيش روي پروژه، بررسي دقيق نيازمندي‌ها و فازبندي دقيق پروژه اشاره كرد.مستند‌سازي در RUP به حدي دقيق است كه در صورت انجام صحيح كمتر به ايجاد تغيير نياز خواهد بود، برخي اين مستند‌سازي زياد را مفيد نمي‌دانند ولي در پروژهايي با اندازه‌هاي خيلي بزرگ نبود مستندات مشكل‌ساز خواهد بود.

متدولوژي‌هاي سبك (Agile)

متدولوژي سبك، گروهي از متدهاي توسعه نرم‌افزار است كه در واقع در مقابل متدولوژي‌هاي سنگين به وجود آمد و بر اساس تكرار و افزايش بنا نهاده شده‌ است. ويژگي اين متدها انعطاف‌پذيري آنها در برابر تغييرات، قابليت بالاي كار گروهي و همچنين مستند‌سازي كمتر نسبت به RUP است. دو نمونه از اين متدولوژي‌ها عبارتند از:

(XP (eXtended Programming: در XP تاكيد بر رضايت مشتري و كار تيمي است، برنامه‌نويسان، مشتري و مدير پروژه جزئي از تيم هستند. مشتري با ارائه بازخورد خود از محصول، در تكميل آن كمك مي‌كند.

Scrum: اين روش امروزه بسيار مورد استقبال بوده و خيلي از شركت‌هاي بزرگ به سمت آن رفته‌اند؛ زيرا براي پروژه‌هاي بزرگ و كوچك قابل اجراست و مانند XP توانسته رضايت مشتري را جلب كند.

ابزارها

با استفاده از روش‌ها و متدولوژي‌ها مسير كلي پروژه معلوم و تحليل‌ها انجام مي‌شود. در اين ميان ابزارهايي وجود دارد كه مي‌تواند با ارائه دياگرام‌هاي ديداري و مفهومي مسيرها و تحليل‌ها را به صورتي قابل فهم مدل كند.UML يك زبان مدلسازي است كه با استفاده از آن مي‌توان همه سناريو‌هاي موجود در نرم‌افزار را مدل كرد و طرحي دقيق از نحوه پياده‌سازي سيستم ارائه داد.

انتخاب زبان برنامه‌نويسي

انتخاب زبان برنامه‌نويسي و در صورت نياز سيستم مديريت پايگاه داده مناسب براي توليد نرم‌افزار يكي از تصميم‌هاي مهم به شمار مي‌رود. هر زبان ويژگي‌هاي خاص خود را دارد؛ مثلا اگر قرار است برنامه‌اي بنويسيد كه محاسبات رياضي انجام دهد، بهتر است برويد سراغ Prolog يا ++C زيرا ابزارهاي خوبي در اين زمينه دارد. اگر قصد توليد نرم‌افزار اداري داريد Visual Studio مايكروسافت ابزارهاي مناسبي در اختيارتان قرار مي‌دهد. انتخاب زبان مناسب به متغير‌هاي زيادي وابسته بوده و براي هر پروژه متفاوت است. يك انتخاب غلط مي‌تواند به شكست پروژه منتهي شود.





تاريخ : سه شنبه 16 آبان 1391برچسب:, | | نویسنده : مقدم |