استقرار نرم‌افزار
استقرار نرم‌افزار یا به‌کاراندازی نرم‌افزار به تمامی فعالیت‌هایی که یک نرم‌افزار را برای استفاده آماده می‌کند اطلاق می‌شود تا درنهایت نرم‌افزار راه‌اندازی گردد. فرایند استقرار عمومی شامل چندین فعالیت مرتبط به یکدیگر و تغییرات احتمالی بین آن‌ها می‌باشد. این فعالیت‌ها می‌توانند از طرف توسعه‌دهنده نرم‌افزار، از طرف کاربر یا از طرف هر دوی آن‌ها صورت پذیرند. از آنجا که هر سیستم نرم‌افزاری منحصر به فرد است، فرایندهای دقیق یا الگوریتم‌های درونی هر فعالیت به سختی می‌توانند تعریف شوند؛ بنابراین «استقرار» باید به عنوان یک فرایند کلی تفسیر شود که باید مطابق با الزامات خاص یا مشخصات آن سفارشی شود. هنگامی که کامپیوترها بسیار بزرگ، گران‌قیمت و حجیم (پردازنده‌های مرکزی و رایانه‌های کوچک) بودند، نرم‌افزارها توسط تولیدکنندگان همراه با سخت‌افزارها ارائه می‌شدند. اگر نیاز بود یک نرم‌افزار تجاری روی کامپیوتری نصب شود، ممکن بود بسیار هزینه بر و وقت گیرباشد، با توجه به بکارگیری یک مشاور یا معمار سیستم. برای مثال: نصب و راه اندازی نرم‌افزار سازمانی در محل کار در دوران فعلی.
با این وجود، با گسترش فروشگاه‌های اینترنتی در عصر جدید برای رایانه‌های کوچک در دهه ۱۹۸۰ شکل‌های جدیدی از توزیع نرم‌افزارها عرضه شد، در ابتدا توسط رام کارتریجها، سپس نوار کاستها، سپس فلاپی‌دیسکها و بعد از آن (در دهه ۱۹۹۰ و بعد از آن) لوح‌های نوری، اینترنت و فلش. و این بدین معنی بود که نصب و راه اندازی نرم‌افزار می‌توانست توسط خود مشتری انجام شود. به هر حال این امر در طول زمان به‌طور فزاینده ای شناخته شده بود که قابلیت تنظیم نرم‌افزار توسط کاربر بسیار مهم است؛ و این باید به صورت ایده‌آل با یک کاربری مناسب انجام می‌شد. (برای مثال نیاز به تغییر ریجیستری ویندوز توسط کاربر).
در استقرارهای نرم‌افزاری قبل از اینترنت، استقرارها (و عملیات مربوط نزدیک به آن) از امور ضروری پر هزینه، نادر و حجیم بودند. بنابر این قابل بحث است که با گسترش اینترنت، پایان دادن به توسعه سریع نرم‌افزار امکان‌پذیر می‌شود. در واقع ظهور محاسبات ابری و نرم‌افزاری به عنوان یک سرویس به این معنی است که نرم‌افزارها می‌توانند در بستر اینترنت به تعداد زیادی از کاربران در عرض چند دقیقه عرضه شوند. این همچنین به این معناست که به‌طور معمول، برنامه‌ریزی‌های استقرار در حال حاضر توسط تأمین‌کننده نرم‌افزار تعیین می‌شود و نه توسط کاربران. چنین انعطاف‌پذیری منجر به افزایش تحویل پیوسته به عنوان یک گزینه در دسترس به‌طور ویژه برای برنامه‌های کاربری تحت وب با خطر ریسک کم می‌باشد.
انتشار بر پایه فرایند توسعه نرم‌افزار تکمیل شده‌است وگاهی اوقات به عنوان بخشی از فرایند توسعه به جای فرایند استقرار طبقه‌بندی می‌شود؛ و شامل عملیات آماده‌سازی برای مونتاژ و انتقال به سیسنم‌های کامپیوتری می‌باشد.
در سیستم‌های ساده، نصب شامل ایجاد نوع فرمان (رایانش)، میانبر، اسکریپت یا سرویس برای اجرای نرم‌افزار (به صورت دستی یا خودکار) می‌باشد. در سیستم‌های پیچیده‌تر ممکن است نصب شامل پیکربندی سیستم (احتمالاً با سؤال نهایی از کاربران دربارهٔ استفاده مورد نظر آن‌ها یا به‌طور مستقیم دربارهٔ پیکربندی سیستم از آن‌ها سؤال شود) و ساخت زیر سیستم‌های مورد نیاز برای استفاده باشد.
غیرفعال سازی عملکردی برعکس فعال سازی دارد و اشاره به خاموش کردن هر جزء در حال اجرای سیستم را دارد.
حذف نصب عملکردی خلاف نصب دارد و اشاره به حذف سیستم یا نرم‌افزاری دارد که دیگر لازم نیست.
فرایند به روزرسانی، تمام یا قسمتی از آخرین نسخه منتشر شده یک نرم‌افزار سیستم را جایگزین آن می‌کند. این فرایند معمولاً شامل غیرفعال سازی و نصب مجدد می‌باشد. در سیستم‌هایی مانند لینوکس، با استفاده مدیریت بسته سیستم نسخه‌های قدیمی نرم‌افزار به‌طور خودکار به عنوان بخشی از این فرایند حذف می‌شوند.
مکانیسم‌هایی برای نصب به روز رسانی در برخی سیستم‌ها (یا در برخی سیستم عامل‌ها مانند لینوکس، اندروید و iOS)ساخته شده‌است. مکانیسم‌هایی از این قرآیندهای به روز رسانی کاملاً خودکار به کاربران ارائه شده‌است.Norton Internet Security نمونه ای از یک سیستم نیمه اتوماتیک برای بازیابی و نصب بروز رسانی‌ها می‌باشد.
پیچیدگی و تنوع محصولات نرم‌افزاری باعث افزایش نقش تخصصی قوانین برای هماهنگی و مهندسی فرایند استقرار می‌شود. در نرم‌افزارهای دستکتاپ کاربران نهایی نیز هنگامی که یک بسته نرم‌افزاری را روی دستگاه خود نصب می‌کنند، به یک توسعه دهنده نرم‌افزار تبدیل می‌شوند. قوانین مورد بحث در گسترش نرم‌افزار برای برنامه‌های سازمانی شامل موارد زیر هستند: