چرخه زندگی انتشار نرم‌افزار

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

کاربران رایانه باید با «فاز بتا» آشنا شوند، و محصولات نرم‌افزاری گاهی به صورت مردمی به صورت «بتا» تبلیغ می‌شوند، به این دلیل که می‌خواهند انتظارات (جدید) کاربران را برای معتبر بودن آن پس از انتشار آن، کاهش دهند.

چرخه حیات نرم‌افزار از مراحل گوناگونی تشکیل شده که پایداری نرم‌افزار و میزان بهبود مورد نیاز، قبل از ارائهٔ نسخهٔ نهایی هم جزو آن است. تمام نسخه‌های اصلی یک محصول معمولاً هنگامی که یک ویژگی جدید اضافه می‌گردد، یا در حین مرحله آلفا عرضه می‌گردد، مرحله‌ای که آن (نرم‌افزار) اشکال‌زدایی می‌گردد همان مرحله بتا(Beta) است، و در نهایت مرحله‌ای که همهٔ اشکالات مهم برطرف شده‌است مرحلهٔ stable است. یک مرحله میانی نیز ممکن است وجود داشته باشد. مراحل ممکن است صریحاً توسط ارائه‌دهندگان پروژه تعدیل شوند یا اعلام گردند، اما گاهی مراحل تولید صریحاً توضیح داده نمی‌شوند. بر طبق قرارداد، اغلب code names قبل از ارائهٔ محصول توسط تعدادی از شرکت‌ها مورد استفاده قرار می‌گیرند، هرچند محصول واقعی و ویژگی‌هایش حقیقتاً محرمانه است.

## مراحل ارائهٔ نرم‌افزار
### پیش آلفا (Pre- Alpha)
گاهی قبل از ارائه نسخه Alpha یا Beta یک محصول که بنام Pre- Alpha شناخته می‌شود، انتشار می‌یابد. به همان وضوحی که نسخه‌های آلفا یا بتا متفاوتند نسخه Pre- Alpha یک مرحله کامل نیست، که همه فعالیت‌هایی که در پیش از پروژه تا تست نرم‌افزار انجام می‌گیرد را شامل می‌شود. این فعالیت‌ها می‌تواند شامل: تحلیل نیاز، طراحی نرم‌افزار، گسترش نرم‌افزار و مرحله آزمایش باشد.

در دنیای Open Source تعداد زیادی از نسخه‌های Pre- Alphaوجود دارد. نسخه‌های Milestone شامل مجموعه‌های مشخصی از قابلیت‌هاست و هنگامی که این قابلیت‌ها تکمیل می‌گردند ارائه می‌گردند. Nightly buildها نسخه‌هایی هستند که معمولاً به‌طور اتوماتیک توسط سیستم‌های کنترل، مثلاً شبها، آزمایش می‌شوند؛ این نسخه‌ها به آزمایش‌کنندگان این اجازه را می‌دهند تا قابلیت‌های جدید پیاده‌سازی شده را سریعاً آزمایش نمایند و اشکالات جدید را بیابند.

### آلفا (Alpha)
نسخه آلفای یک نرم‌افزار، برای آزمایش کنندگان نرم‌افزار -که اشخاصی غیر از مهندسین نرم‌افزار هستند- تهیه می‌گردد. این افراد معمولاً از داخل سازمان یا مجموعه‌ای هستند که نرم‌افزار در آن تهیه می‌شود. در مرحلهٔ ارائه به بازار، کمپانی‌های بیشتر و بیشتری تلاش می‌کنند تا در مرحله تست نسخه آلفا، توجه مشتریان خارجی بیشتری را جلب کنند؛ که این اجازه آزمایش کردن، قابلیت‌های گسترده‌ای را در حین مرحله آلفا می‌دهد. گسترش‌دهندگان در اولین مرحله معمولاً نرم‌افزار را با استفاده‌از تکنیک White Box آزمایش می‌کنند. تشخیص صحت بعدی معمولاً با استفاده از تکنیک‌های Black Box یا Grey Box به وسیله تیم آزمایش اختصاصی دیگری انجام می‌شود، گاهی هم، هم‌زمان.
در واقع، آزمایش Black Box در درون سازمان به عنوان آلفا (Alpha) شناخته می‌شود.

### بتا
نسخهٔ بتا اولین نسخهٔ ارائه‌شده در خارج از سازمان مجموعهٔ تولیدکنندهٔ نرم‌افزار، به منظور ارزیابی واقعی آزمایش‌های Black / Grey-Box است. فرایند تحویل دادن نسخه بتا به استفاده‌کنندگان را، ارائهٔ نسخه بتا گویند. نرم‌افزار سطح بتا معمولاً همه ویژگی‌های نسخهٔ اصلی را داراست، اما امکان دارد اشکالات و عملکردهای شناخته شده در حد بسیار کمی باشد.
کاربرانِ نسخه بتا را، آزمایش‌کنندگان بتا گویند. آن‌ها معمولاً مشتریان فعلی یا آینده سازمان هستند که از نرم‌افزارها استفاده می‌کنند. آن‌ها نرم‌افزار را به‌طور رایگان یا با قیمت کم دریافت می‌کنند، درحالی‌که آزمایش‌کنندگانی رایگان هستند. نسخه‌های بتا پشتیبانی از محصولات را در مسیر راهیابی به بازار (درحالیکه مشتریان بتا در حال افزایشند) و فروش محصول‌ها، جریان‌ها و راه‌های دستیابی را آزمایش می‌کند.

نرم‌افزار نسخه‌های بتا، احتمالاً برای نمایش داخلی و پیش‌بینی انتخاب مشتریان مفید واقع می‌باشد، اما ناپایدارند و برای ارائه آماده نیستند. تعدادی از تولیدکنندگان به این مرحله به عنوان یک پیش‌نمایش، یک نسخه نمونه، یک پیش‌نمایش تکنیکی(TP) یا به عنوان یک دسترسی سریع نام می‌برند. دومین مرحله مهم در چرخه اولیه ارائه نرم‌افزار، که پس از مرحله آلفا قرار دارد، به نام حرف بعدی الفبای یونانی beta، که دومین حرف از الفبای یونانی است نامیده می‌شود.

اغلب این مرحله هنگامی شروع می‌شود که تهیه‌کنندگان اعلام می‌کنند که ویژگی‌های قابل تغییر دیگری در محصول وجود ندارد که تعیین‌کننده ویژگی‌های مورد نیاز این نسخه از محصولات باشد. فقط عملکرد نرم‌افزار یا اشکالات و قابلیت‌های پیاده‌سازی نشده برداشت خواهد شد.
تهیه‌کنندگان هریک از دونسخه close beta یا open beta را ارائه می‌دهند؛ نسخه‌های close beta برای انتخاب کاربرهای آزمایشی فردی ارائه می‌گردند در حالی که نسخه‌های open beta برای گروه‌های اجتماعی بزرگتر و معمولاً گروه‌های اصلی. آزمایش‌کنندگان تعدادی از اشکالاتی را که می‌یابند و گاهی ویژگی‌های فرعی دیگری را که تمایل دارند در نسخه نهایی ببینند گزارش می‌دهند.

یک نمونه از نسخه آزمایش اصلی عمومی هنگامی بود که مایکروسافت ارائه community technology previews (CTP) ویندوز ویستا را به آزمایش‌کنندگان بتا در ژانویه ۲۰۰۵ آغار نمود، که اولین آن Build 5219 بود. متعاقباً CTPها بیشتر ویژگی‌های برنامه‌ریزی شده مانند تعدادی از تغییرات واسط کاربری را در مبنای بازخوردهای آزمایش‌کنندگان بتا ایجاد می‌کنند. ویندوز ویستا در ۲۲ فوریه ۲۰۰۶ به توسط Build 5308 CTP نسخه کامل خود را ارائه داد، و بیشتر کارهای باقی‌مانده مابین Build 6219 و نسخه نهایی بر روی پایداری، کارایی، تطابق، درایوها، برنامه‌ها و مستندسازی متمرکز شد.

هنگامی‌که نسخه بتا آماده ارائه عمومی‌است اغلب به‌طور گسترده‌ای توسط خبرگان تکنولوژی، و هم‌رده‌های نسخه‌های قبلی، قبل از ارائه نسخه نهایی استفاده می‌شود. معمولاً تهیه‌کنندگان نسخه‌های رایگان نرم‌افزار یا open source بتاها را ارائه می‌دهند در حالی که مالکان نسخه‌های بتا به گروه کوچکی از آزمایش‌کنندگان مرتبط تعلق دارند. دریافت‌کنندگان نسخه‌های بتای با مالکیت بالا باید یک توافق‌نامه غیر بازرگانی را امضاء کنند.

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

Netscape communication به خاطر ارائه نسخه آلفای جستجوگر خود در سطح عمومی و بتا خواندن آن بدنام شده‌است. در فوریه ۲۰۰۵ ZDNet مقاله‌ای منتشر کرد در مورد پدیده اخیر که نسخه‌های بتا اغلب سال‌ها مورد استفاده قرار می‌گیرند و تولید می‌شوند. آن مقاله اشاره کرد که به عنوان مثال Gmail و Google News در مدت زیادی نسخه بتا بودند و تمایلی نداشتند وضعیت بتا را تغییر دهند، علی‌رغم این واقعیت که آن‌ها به‌طور گسترده‌ای مورد استفاده قرار می‌گرفتند، هرچند که Google News در ژانویه ۲۰۰۶ از نسخه بتا خارج شد. این روش همچنین به تولیدکننده امکان می‌دهد که ارائه پشتیبانی کامل یا مسئولیت انتشار عملکردهای باقی‌مانده را به تأخیر بیندازد. در بستر web ۲٫۰ مردم هنور در مورد بتاهای ماندگار صحبت می‌کنند که دلالت می‌کند بر اینکه تعدادی از نرم‌افزارها در مرحله بتا باقی می‌ماند. همچنین بتا گاهی برای مشخص کردن چیزی شبیه release candidate مانند
halo 3 public beta استفاده می‌شود.

#### سرچشمه آلفا و بتا
دوره تست بتا در مورد نرم‌افزاری که قرارداد آزمایش محصول سخت‌افزاری جدید IBM را برای ماشین‌های جدول‌بندی کارت‌های پانچ شده و مرتب‌کننده آن‌ها به‌کار می‌رود استفاده می‌شود. سخت‌افزارها در ابتدا به صورت alpha test برای کاربرهای اولیه و با قابلیت انجام کار در مقیاس کوچک ارائه شد. سپس به عنوان نسخه beta test، جهت بررسی صحت عملکردهایی که باید پشتیبانی کنند، و امکان تولید در مقیاس مورد نیاز، به بازار عرضه شدند، و پس از آن نسخه c beta جهت بررسی امنیت آن. با ظهور کامپیوترهای قابل برنامه‌ریزی و برای برنامه‌های نرم‌افزاری قابل اشتراک همین اصطلاحات را برای آزمایش نرم‌افزار نیز به کار می‌برند. نسخه‌های تست بتا به وسیلهٔ گروهی غیر از تولیدکنندگان اجرا شده، هرچند که شرکت‌های دیگری شروع به تولید نرم‌افزار برای مقاصد خود و انتشار آن برای دیگران نموده‌اند. این مجموعه اصطلاحات تعمیم یافته و اکنون بخشی از واژگان عمومی‌است.

### Seigo stage
Seigo stage مرحله‌ایست در گسترش نرم‌افزار که مجموعه برنامه‌های آماده تولیدند (خیلی نزدیک آماده شدن) اما محصول نهایی هنوز نیاز به بهینه‌سازی دارد. مرحله‌ای که بین بتا و کاندیدای ارائه نرم‌افزار قرار دارد به دلیل اینکه محصول نرم‌افزاری هنوز برای محصول با توانایی نهایی آماده نیست، هرچند که مجموعه‌های نرم‌افزار باکیفیت ارائه شدند.

### منشأ Seigo stage
اصطلاحSeigo stage بعد از یک بحث داغ بر رویLinux Action Show! Podcast در خصوص نامگذاری کاندیدای نسخه دوم KDE۴ که توانایی استاندارد بودن آنچه که یک نسخه کاندیدا باید داشته باشد را دارا نبوده‌است، اختراع شد (بوجود آمد). آن بحث بین دوتن از ارائه کنندگان (مجریان) نمایش و Aaron segio توسط اتفاق افتاد.

آن‌ها نهایتاً موافقت نمودند که نسخه کاندیدا به همان عنوان به‌کار رود، به‌دلیل اینکه کیفیت نسخه بتا را ندارد، هرچند که مجموعه‌های نرم‌افزاری کیفیت ارائه کاندیدا را دارا باشند. در این وضعیت یکی از مجریان نمایش گفت که آن‌ها باید مرحله KDE۴ را تغییر نام دهند نامی که آن‌ها انتخاب نمودند Seigo stage بود.

### نامزد انتشار (Release Candidate)
پس از آنکه برنامه‌نویس/برنامه‌نویسان به این نتیجه می‌رسند که کار تمام شده و نرم‌افزار آمادهٔ انتشار است، و پیش از انتشار رسمی نسخهٔ جدید، معمولاً اقدام به انتشار یک نسخهٔ نامزد می‌کنند تا از عملکرد صحیح نرم‌افزار در بین جمع بزرگتری از کاربران اطمینان یابند.

نسخهٔ نامزد به نسخه‌ای که توانایی محصول نهایی شدن را داراست اشاره می‌کند، نسخه‌ای که آمادهٔ ارائه شدن بدون بروز اشتباهات بزرگ است. در این مرحله همه ویژگی‌های محصول به‌طور کاربردی طراحی شده‌اند. در این فاز محصول معمولاً code complete شرکت مایکروسافت اغلب از اصطلاح Release candidateاستفاده می‌کند
در دهه ۹۰، Apple Inc برای نسخه کاندیدای خود از اصطلاح golden master، و برای نسخهٔ دردسترس عموم از اصطلاح final golden master استفاده کرد.
دیگر واژه‌ها شامل gamma (و گهگاهی delta و شاید حتی سایر حروف یونانی (برای نسخه‌هایی که اساساً کامل هستند، اما هنوز در حال آزمایش‌اند و omega برای نسخه‌های نهایی آزمایش‌شده که ادعای بدون اشکال بودن دارند و ممکن است هر زمانی تولید شوند) omega و delta و Gamma، به ترتیب سومین، چهارمین و آخرین حرف از حروف یونانی هستند). بعضی از کاربران، به‌طور اهانت‌آمیز، نسخهٔ کاندید یا حتی نسخه‌های نهایی را به‌عنوان نرم‌افزار گیم نت (Game Net) می‌شناسند.

تولیدکنندگان مشتریان خود را برای تست نرم‌افزار به کار می‌گیرند، درحالی‌که هنوز برای ارائهٔ عمومی آماده نیستند. غالباً به آزمایش‌کننده‌های بتا که اختصاصاً انتخاب شده‌اند برای استفاده از نسخهٔ کاندید (نامزد) مبلغی پرداخت می‌گردد. وقتی که تیم موافقند کد منبع جدیدی به نسخه اضافه نخواهد شد آن نسخه (ارائه) Code Complete نامیده می‌شود. ممکن است هنوز Source Code برای برطرف کردن ایراد تغییر داده شود؛ و هنوز ممکن است برای مستندسازی، و فایل‌های اطلاعاتی و کد برای حالت آزمایشی یا موارد مفید، نیاز به تغییرات باشد. ممکن است به نسخه‌های آینده کدهای جدید اضافه شود.

### انتشار پایدار (Stable Release)
انتشار پایدار که *انتشار تولید* نیز نامیده می‌شود، آخرین نامزد انتشار (RC) است که تمام مراحل تأیید و آزمایش را پشت سر گذاشته است. در این مرحله، باگ‌های باقی‌مانده قابل قبول در نظر گرفته می‌شوند. این نسخه به مرحله تولید می‌رود.

برخی از محصولات نرم‌افزاری (مانند توزیع‌های لینوکس) دارای نسخه‌های پشتیبانی بلندمدت (LTS) هستند که بر اساس نسخه‌های کاملی که قبلاً آزمایش شده‌اند و فقط به‌روزرسانی‌های امنیتی را دریافت می‌کنند، منتشر می‌شوند؛ این به توسعه‌دهندگان اجازه می‌دهد تا به‌جای به‌روزرسانی کد یا یافتن و رفع اشکالات جدید معرفی شده به دلیل فرضیات منسوخ در مورد سیستم استفاده شده، زبان یا کتابخانه‌های زیربنایی، زمان بیشتری را به توسعه محصول اختصاص دهند.

## انتهای چرخه
گاهی شرکت‌های نرم‌افزاری پشتیبانی از تولیدات نرم‌افزار جدید را متوقف می‌کنند (یا بسته‌های جدید را ارائه نمی‌دهند). در این مرحله به این محصول گفته می‌شود که در وضعیت پایانی‌است یا در انتهای چرخه. به عنوان مثال شرکت اپل در ۱۵ اوت ۲۰۰۷ اعلام کرد که Apple Works به انتهای راهش رسید.

## جستارهای وابسته
* تست نرم‌افزار

## منابع

* 

رده:انتشار نرم‌افزار
رده:فرایند تولید نرم‌افزار
رده:مهندسی نرم‌افزار