Software_deployment

Software deployment is the process of making software available for the end user. This is the process that comes after you have already finished coding the project and now what you are left with is just... packaging it for different running environments.
A running environment is any system (software or hardware) that the code runs on top of. For example; the running environment for the BIOS firmware is the bare metal motherboard. The running environment for the kernel is the bare metal motherboard. The running environment for Skyrim is a Play Station console. The Running environment for your hello world program is the target_system you have compiled for.

Software_deployment generally involves the following steps:

  1. Providing and Setting up the run environment. eg installing a Windows 10 operating system.
  2. Installing the software and its dependencies ontop of the run environment. eg installing Skyrim and the dependent DirectX graphics libraries.
  3. Configuring the installed softwware and dependencies to suit the run environment (optional) - reducing the graphics quality of the game because your PC is whack.
  4. Testing if the software runs fine on the run_environment with the set configurations.
  5. Rolling out the plug n play button : this may involve actions such as Distributing a link to the runing app, updating an interaction button in a website. In our Skyrim case, it may involve creating a shortcut icon for opening the game

Let us imagine that we are building an army of nanorobots that can terraform a planet using swarm technology.
This bots are just cold carbon, pure metal.
The software that we are trying to run is an AGI program that has specialized in physical engineering.

Setting up the environment will be about installing the kernel on the lifeless bodies of those bots.
We would then install all the driver dependencies that the AGI software needs.

With the environment set up, we would install the AGI on top of the kernel.
We would then configure the kernel to prioritize orders from the AGI only.

We would then run a couple of tests to see whether the kernel, AGI and bot_metal have synched.
Rolling out in this case would be initiating a remote control system here on earth that can be used to remotely ontrol those terraforming bots. The end users would be humans who are overseeing the terraforming process.