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

چرخه تولید و عرضه نرم‌افزار

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

مراحل تولید و عرضه نرم‌افزار 

پیش‌آلفا (Pre- Alpha)

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

 به‌عنوان یک توسعه‌دهنده نرم‌افزار تا چه اندازه با چرخه ساخت برنامه‌های کاربردی آشنا هستید؟

آلفا (Alpha)

نسخه آلفا، نخستین مرحله در چرخه عمر نرم‌افزار پیش از مرحله تست نرم‌افزار آغاز است. در این مرحله، طراحان نرم‌افزار را با تکنیک‌هایی همچون جعبه سفید (White Box) مورد آزمایش قرار می‌دهند. همچنین اعتبارسنجی نرم‌افزارها در ادامه با استفاده از جعبه سیاه (Black Box) (که برای بررسی ورودی‌های واردشده به یک برنامه مورداستفاده قرار می‌گیرد) و جعبه خاکستری (Grey Box) انجام می‌شود. فرایندهای جعبه سفید و خاکستری معمولا توسط گروه دیگری از تیم‌های آزمایش‌کننده انجام می‌شود. انتقال و گذر از مرحله آزمایش جعبه سیاه درون یک سازمان به نام آلفا نامیده می‌شود. نسخه آلفا می‌تواند بی‌ثبات باشد، باگ‌های مختلفی داشته باشد یا ممکن است داده‌هایی را که مورداستفاده قرار می‌دهد، از دست بدهد. دسترسی به نسخه آلفا از یک نرم‌افزار به‌صورت خارجی معمولا برای نرم‌افزارهای اختصاصی یک فرایند غیرمعمول است. بااین‌حال، در ارتباط با نرم‌افزارهای متن‌باز، در بیشتر موارد به نسخه‌های آلفا دسترسی خواهید داشت. این دسترسی ممکن است کدهای اصلی یک برنامه را شامل شود. مرحله آلفا، به‌طورمعمول با فریز کردن قابلیت‌ها همراه است که نشان می‌دهد دیگر قابلیت‌های جدیدی به نرم‌افزار اضافه نخواهد شد، اما همه شرکت‌ها در این زمینه یکسان عمل نمی‌کنند. 

بتا (Beta)

نسخه بتا، مرحله‌ای است که بعد از فاز آلفا به مرحله اجرا درمی‌آید. مرحله بتا زمانی آغاز می‌شود که قابلیت‌های نرم‌افزار کامل شده باشند. در فاز بتا به‌طورمعمول ممکن است خطاهای مختلفی را مشاهده کنید، به دلیل این‌که نرم‌افزار هنوز کامل نشده است. عملکرد ناپایدار، کاهش سرعت نرم‌افزار یا از دست رفتن اطلاعات از جمله مشکلاتی هستند که در این مرحله شناسایی‌شده و برطرف می‌شوند. در حالت کلی تمرکز فاز بتا روی دو اصل کم کردن ناهماهنگی و دوم آزمایش قابلیت استفاده از نرم‌افزار متمرکز است. فرایند انتشار نسخه بتا یک نرم‌افزار به نام release beta نامیده می‌شود. این نخستین نسخه‌ای است که یک شرکت نرم‌افزاری آن را به شکل عمومی (برای گروه خاصی از افراد شناخته‌شده) منتشر می‌کند و حتما روی آن عبارت release beta را درج می‌کند. کاربرانی که این نسخه را دریافت کرده و آن را مورد بررسی قرار می‌دهند، آزمایش‌کنندگان بتا (Beta Testers) نامیده می‌شوند. این افراد به‌طورمعمول مشتریانی هستند که در توسعه نرم‌افزار مشارکت دارند و اغلب بدون دریافت دستمزدی نرم‌افزار را مورد آزمایش قرار می‌دهند و در مقابل نسخه نهایی محصول را در زمان آماده شدن به‌صورت رایگان یا با پرداخت مبلغ ناچیزی دریافت می‌کنند. نسخه بتا نرم‌افزار به‌عنوان یک پیش‌نمایش از محصولی که قرار است به بازار عرضه شود، از سوی مشتریان بزرگ مورد بررسی قرار می‌گیرد. نسخه بتا همه ویژگی‌های نسخه اصلی را دارد، اما ممکن است یکسری باگ‌ها در آن وجود داشته یا عملکرد آن در حد نسخه نهایی نباشد. همچنین برخی از طراحان به این نسخه، نسخه پیش‌نمایش، نمونه اولیه، نسخه فنی و پیش‌نمایش فنی نیز می‌گویند. در برخی موارد تولیدکنندگان نرم‌افزار در نسخه بتا قابلیت‌ها و ویژگی‌های جدیدی به محصول خود اضافه می‌کنند، پیش از آن‌ها نسخه نهایی انتشار پیدا کند. به‌طورکلی، تولیدکنندگان نرم‌افزار یکی از دو نسخه  close beta یا open beta را ارائه می‌کنند؛ نسخه‌های close beta برای یک گروه محدود از آزمایش‌کنندگان شناخته‌شده ارائه می‌شود، درحالی‌که نسخه open beta برای گروه بزرگ‌تری از افراد و کاربران علاقه‌مند ارائه می‌شود. آزمایش‌کنندگان هر باگی را که پیدا می‌کنند، گزارش کرده و در اغلب موارد قابلیت‌های اضافی را که به نظر آن‌ها در بهبود محصول نهایی کمک می‌کند، پیشنهاد می‌دهند. رویکرد مایکروسافت در ارائه نسخه‌های مختلفی از ویندوز 10 که در اختیار کاربران اینسایدر قرار می‌دهد، گویای این موضوع است. مایکروسافت پیش از انتشار به‌روزرسانی‌های مختلف در قالب بیلدهای مختلفی نسخه‌های پیش‌‌نمایشی از ویندوز 10 را در اختیار کاربران قرار می‌دهد. کاربران اینسایدر ویندوز را آزمایش کرده، مشکلات و نواقص احتمالی را تشخیص داده و به مایکروسافت گزارش می‌دهند. در مرحله بعد مایکروسافت مشکلات را برطرف می‌کند تا زمانی‌که نسخه نهایی به‌روزرسانی به شکل رسمی منتشر شود. 
بااین‌حال رویکرد شرکت‌ها در قبال نسخه بتا همیشه یکسان نیست. سایت ZDNet در مقاله‌ای این موضوع را مورد بررسی قرار داده و نوشته برخی از شرکت‌ها ممکن است محصولی را به شکل بتا به بازار عرضه کنند و برای سال‌های متمادی این نسخه را در اختیار کاربران قرار دهند. سرویس‌های جی‌میل و گوگل نیوز نمونه قابل‌تأملی در این زمینه هستند که با وجود استفاده گسترده  کاربران از آن‌ها برای سال‌های متمادی در وضعیت بتا قرار داشتند. 
در طی آن سال‌ها گوگل هیچ‌گونه تصمیمی در قبال تغییر وضعیت آن‌ها اعمال نکرد. البته این روش برای توسعه‌دهندگان و طراحان نرم‌افزار منفعتی به همراه دارد. به این معنا که در زمان ارائه نسخه بتا از یک محصول در بازار شرکت تولیدکننده متعهد نیست تا پشتیبانی کامل ارائه کرده یا ویژگی‌های خاصی را به محصول خود اضافه کند. همچنین نسخه بتا گاهی برای مشخص کردن نسخه کاندید یا همان release candidate که یک دموی دارای محدوده زمانی برای بازاریابی است، مورد استفاده قرار می‌گیرد. 

نسخه کاندید (Release candidate) 

عبارت RC (سرنام Release Candidate) که اغلب روی جلد بعضی از دیسک‌ها مشاهده می‌کنید، نسخه بتایی است که ظرفیت تبدیل‌شدن به نسخه نهایی را دارد. در این نسخه  دیگر جایی برای اشتباه‌های بزرگ وجود نداشته و  همه ویژگی‌های کاربردی محصول در آن اعمال‌شده است. در این نسخه تولیدکنندگان نرم‌افزار از مشتریان خود برای تست نرم‌افزار کمک می‌گیرند، اما نرم‌افزار همچنان آماده ارائه عمومی و رسمی نیست. در این مرحله به افرادی که برای تست نرم‌افزار انتخاب می‌شوند، مبلغی پرداخت می‌‌شود. این نسخه از نرم‌افزار که به نام Code Complete نامیده می‌شود، نشان می‌دهد که تیم طراحی‌کننده به این اجماع رسیده‌اند که کد منبع جدیدی به نسخه نهایی محصول دیگر اضافه نشود. البته احتمال برطرف کردن ایرادها یا تغییر برخی از قابلیت‌ها در کد اصلی هنوز وجود دارد. به‌‌عنوان مثال، ممکن است مستندات نرم‌افزار، بانک‌های اطلاعاتی نرم‌افزار یا کدها بازهم مورد بازبینی قرار بگیرند و تغییراتی در آن‌ها به وجود آید. 

نسخه نهایی (Release to manufacturing)

اصطلاح RTM (سرنام Release to Manufacturing) که در برخی موارد با عبارت goind gold نیز نشان داده می‌شود به معنای آن است که محصول نرم‌افزاری آماده تحویل به مشتریان عام است. این مشتریان می‌توانند کاربران عادی یا تولیدکنندگان تجهیزات سخت‌افزاری باشند که از محصول استفاده خواهند کرد. این نسخه دارای یک امضای دیجیتال بوده و به کاربران  اطمینان می‌دهد که نرم‌افزار بدون مشکل قابل‌استفاده خواهد بود. به عبارت دقیق‌تر، شرکت سازنده پایداری آن را تضمین می‌کند. 

پایان عمر (End-of-life)

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

ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را می‌توانید از کتابخانه‌های عمومی سراسر کشور و نیز از دکه‌های روزنامه‌فروشی تهیه نمائید.

ثبت اشتراک نسخه کاغذی ماهنامه شبکه     
ثبت اشتراک نسخه آنلاین

 

کتاب الکترونیک +Network راهنمای شبکه‌ها

  • برای دانلود تنها کتاب کامل ترجمه فارسی +Network  اینجا  کلیک کنید.

کتاب الکترونیک دوره مقدماتی آموزش پایتون

  • اگر قصد یادگیری برنامه‌نویسی را دارید ولی هیچ پیش‌زمینه‌ای ندارید اینجا کلیک کنید.

ایسوس

نظر شما چیست؟