چرخه ارائه نرم‌افزار

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو
Software release stages

ارائهٔ نرم‌افزار چه اختصاصی چه عمومی، یک توزیع از نسخه اولیه یا بروزرسانی شده از یک محصول نرم‌افزار رایانه است. زمانیکه یک سیستم یا برنامه نرم‌افزاری تغییر می‌یابد مهندسین و شرکت‌های نرم‌افزاری در مورد چگونگی گسترش برنامه یا سامانه یا تغییرات آن‌ها تصمیم می‌گیرد. بسته‌های نرم‌افزاری یکی از روش‌های تغییرات است، بصورت دانلود یا سی‌دی.

چرخه ارایه نرم‌افزار از مراحل گوناگونی تشکیل یافته‌است که پایداری بخشی از نرم‌افزار و میزان بهبود مورد نیاز، قبل از ارایه نسخه نهایی را توضیح می‌دهد. تمام نسخه‌های اصلی یک محصول معمولاً هنگامیکه یک ویژگی جدید اضافه می‌گردد، یا در حین مرحله آلفا عرضه می‌گردد، مرحله‌ای که‌آن (نرم‌افزار) اشکال‌زدایی می‌گردد همان مرحله بتا(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) شناخته می‌شود.

بتا (Beta)[ویرایش]

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

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

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

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

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

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

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

نامزد انتشار[ویرایش]

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

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

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

انتهای چرخه[ویرایش]

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

جُستارهای وابسته[ویرایش]

منابع[ویرایش]

  1. «WordPress 3.3 Release Candidate 1». وردپرس، ۱ دسامبر ۲۰۱۱. بازبینی‌شده در ۱ دسامبر ۲۰۱۱. 
  • مشارکت‌کنندگان ویکی‌پدیا، «Software release life cycle»، ویکی‌پدیای انگلیسی، دانشنامهٔ آزاد.