تولید نرم افزار

فرایند تولید نرم‌افزار که با عنوان «چرخه حیات تولید نرم‌افزار» نیز شناخته می‌شود، ساختاری است که روی توسعه و تولید محصولات نرم‌افزاری اعمال می‌شود. عبارت‌های مشابهی چون «چرخه حیات نرم‌افزار» و «فرایند نرم‌افزار» در این رابطه استفاده می‌شود.

از مهمترین کارها در تولید نرم‌افزار استخراج نیازمندی‌ها یا تحلیل نیازمندی‌های آن سامانه است. مشتریان عمومی معمولاً تصور مفهومی، انتزاعی و مبهمی از نتیجه نهایی خواسته‌هایشان دارند و نمی‌دانند به درستی نرم‌افزار مورد نظرشان چه کاری باید انجام دهد. در این مرحله نیازمندی‌های ناتمام، پیچیده و مبهم، و حتی متضاد توسط مهندسان نرم‌افزار ماهر شناسایی می‌شوند.

فرایند های تولید نرم افزار به چند دسته تقسیم می شوند که عبارتند از :

مدل آبشاری (Waterfall Model)

مدل ٓابشاری یک مدل ترتیبی توسعه و تولید نرم‌افزار است و درآن مراحل تولید به شکل یک جریان مداوم متمایل به سمت پایین است که شامل فازهای تحلیل خواسته‌ها، طراحی، پیاده‌سازی، ازمودن و تست کردن، یکپارچه سازی و دادن محصول به بازار می‌شود.

مدل تکراری و افزایشی (Incremental Model)

توسعه تکرار شونده و افزایشی روشی است که ترکیبی از طراحی تکرار شوند یا روش تکراری و مدل ساخت افزایشی است. این مدل اجازه می‌دهد تا پروژه در ابتدا از بخشهای کوچک شروع شود و به مرور زمان سامانه آن رشد کند تا قبل از اینکه فرضیات اشتباه باعث خراب شدن سامانه گردد مشکلات مهم پیدا شوند. این الگو اجازه می‌دهد تا نیازهای کاربرانی که در زمان طراحی دقیقاً نمی‌دانند چگونه نیازمندی‌هایشان را از سامانه معرفی کنند بصورت بالقوه برآورده شود.

مدل حلزونی (Spiral Model)

این روش شیوه ای از توسعه پردازش نرم افزار تکاملی است که ترکیبی از مدل آبشاری به همراه امکان نمونه سازی (Prototyping) سریع می باشد. این روش توسعه سریع، برای نسخه های افزایشی نرم افزار را فراهم می کند. در خلال دوره های اوّلیه، نسخه ها به صورت یک مدل کاغذی یا پیش نمونه است. در دوره های بعدی، نسخه های کامل تری از سیستم مهندسی تولید می شود.

مدل چابک (Agile Model)

توسعه چابک نرم‌افزار یا توسعه نرم‌افزاری چابک گروهی از متدهای توسعهٔ نرم‌افزار مبتنی بر تکرار و به شکل تدریجی است که در آنها، راه‌حل‌ها از طریق خود سازمان ‌دهی و همکاری بین تیم‌های مختلف کاری، انجام می‌شوند. در واقع چابک‌سازی یک چارچوب مفهومی است که پیش‌بینی تعاملات در سراسر چرخهٔ توسعه را بهبود می‌بخشد.