The set of processes and decision mechanisms required to bring software through the multiple stages from initial concept to use.
Infrastructure software layered on a network and operating system that provides value-added services to applications.
The ability of a user to make transparent use of an application while moving geographically. Nomadicity is transparent use of an application from any of a variety of fixed geographic locations.
In an architecture, the basic unit of functionality, including an interface and an internal implementation. The interface specifies the actions (specific atomic and parameterized requests for something to be done) offered to other modules, and the implementation realizes those actions, including (if necessary) invoking actions of other modules. Interfaces also specify protocols, which are sequences of actions to accomplish higher-level nonatomic tasks. It is desirable for interfaces to be abstract (hiding unnecessary detail) and for the implementation to be encapsulated (making internal implementation details invisible and untouchable). Different modules should display weak coupling (their functions should be weakly related so they can be implemented largely independently) and strong cohesion (a module's distinct internal functions should be interrelated and dependent), although the latter is less important because its absence is an opportunity for hierarchical decomposition.
The observation and expectation that several material technologies (processing, storage, and communication) will improve exponentially over time in performance per unit cost, often parameterized by the time required for a doubling of performance per unit cost.