استقرار نرم‌افزار

از ویکی‌پدیا، دانشنامهٔ آزاد
(تغییرمسیر از گسترش نرم‌افزار)
پرش به ناوبری پرش به جستجو
توسعه نرم‌افزار
فعالیت‌های اصلی
Paradigms and models
متدولوژی‌ها و frameworks
رشته‌های مورد حمایت
Practices
ابزار توسعه نرم‌افزار
Standards and BOKs

استقرار نرم‌افزار به انگلیسی (Software deployment) به تمامی فعالیت‌هایی که یک نرم‌افزار را برای استفاده آماده می‌کند اطلاق می‌شود.

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

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

هنگامی که کامپیوترها بسیار بزرگ، گران‌قیمت و حجیم (پردازنده‌های مرکزی و رایانه‌های کوچک) بودند، نرم‌افزارها توسط تولیدکنندگان همراه با سخت‌افزارها ارائه می‌شدند. اگر نیاز بود یک نرم‌افزار تجاری روی کامپیوتری نصب شود، ممکن بود بسیار هزینه بر و وقت گیرباشد، با توجه به بکارگیری یک مشاور یا معمار سیستم. برای مثال: نصب و راه اندازی نرم‌افزار سازمانی در محل کار در دوران فعلی.

با این وجود، با گسترش فروشگاه‌های اینترنتی در عصر جدید برای رایانه‌های کوچک در دهه ۱۹۸۰ شکل‌های جدیدی از توزیع نرم افزارها عرضه شد، در ابتدا توسط رام کارتریجها، سپسنوار کاستها، سپس فلاپی‌دیسکها و بعد از آن (در دهه ۱۹۹۰ و بعد از آن)لوح‌های نوری، اینترنت و فلش. و این بدین معنی بود که نصب و راه اندازی نرم افزار می‌توانست توسط خود مشتری انجام شود. به هر حال این امر در طول زمان به طور فزاینده ای شناخته شده بود که قابلیت تنظیم نرم افزار توسط کاربر بسیار مهم است. و این باید به صورت ایده آل با یک کاربری مناسب انجام می‌شد.(برای مثال نیاز به تغییر ریجیستری ویندوز توسط کاربر).

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

فعالیت‌های استقرار[ویرایش]

انتشار[ویرایش]

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

نصب و فعال سازی[ویرایش]

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

غیر فعال سازی[ویرایش]

غیر فعال سازی عملکردی برعکس فعال سازی دارد و اشاره به خاموش کردن هر جزء در حال اجرای سیستم را دارد.

حذف نصب[ویرایش]

حذف نصب عملکردی خلاف نصب دارد و اشاره به حذف سیستم یا نرم افزاری دارد که دیگر لازم نیست.

به روز رسانی[ویرایش]

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

به روز رسانی خودکار[ویرایش]

مکانیسم‌هایی برای نصب به روز رسانی در برخی سیستم ها(یا در برخی سیستم عامل‌ها مانند لینوکس، اندروید و iOS)ساخته شده‌است. مکانیسم‌هایی از این قرآیندهای به روز رسانی کاملا خودکار به کاربران ارائه شده‌است.Norton Internet Security نمونه ای از یک سیستم نیمه اتوماتیک برای بازیابی و نصب بروز رسانی‌ها می‌باشد.

ردیابی نسخه[ویرایش]

سازگاری[ویرایش]

قوانین استقرار[ویرایش]

پیچیدگی و تنوع محصولات نرم افزاری باعث افزایش نقش تخصصی قوانین برای هماهنگی و مهندسی فرآیند استقرار می شود. در نرم افزارهای دستکتاپ کاربران نهایی نیز هنگامی که یک بسته نرم افزاری را روی دستگاه خود نصب می کنند، به یک توسعه دهنده نرم افزار تبدیل می شوند. قوانین مورد بحث در گسترش نرم افزار برای برنامه های سازمانی شامل موارد زیر هستند:

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