# IPO model

The input–process–output (IPO) model, or input-process-output pattern, is a widely used approach in systems analysis and software engineering for describing the structure of an information processing program or other process. Many introductory programming and systems analysis texts introduce this as the most basic structure for describing a process.

## Overview

A computer program is useful for another sort of process using the input-process-output model receives inputs from a user or other source, does some computations on the inputs, and returns the results of the computations. In essence the system separates itself from the environment, thus defining both inputs and outputs as one united mechanism. The system would divide the work into three categories:
* A requirement from the environment (input)
* A computation based on the requirement (process)
* A provision for the environment (output)
In other words, such inputs may be materials, human resources, money or information, transformed into outputs, such as consumables, services, new information or money.
As a consequence, an input-process-output system becomes very vulnerable to misinterpretation. This is because, theoretically, it contains all the data, in regards to the environment outside the system. Yet, in practice, the environment contains a significant variety of objects that a system is unable to comprehend, as it exists outside the system's control. As a result, it is very important to understand where the boundary lies between the system and the environment, which is beyond the system's understanding. Various analysts often set their own boundaries, favoring their point of view, thus creating much confusion.

## Systems at work

The views differ, in regards to systems thinking. One of such definitions would outline the Input-process-output system, as a structure, would be:
"Systems thinking is the art and science of making reliable inferences about behaviour by developing an increasingly deep understanding of the understanding of the underlying structure"
Alternatively, it was also suggested that systems are not 'holistic' in the sense of bonding with remote objects (for example: trying to connect a crab, ozone layer and capital life cycle together).

## Types of systems

There are five major categories that are the most cited in information systems literature:

### Natural systems

A system which has not been created as a result of human interference. Examples of such would be the solar system as well as the human body, evolving into its current form

### Designed physical systems

A system which has been created as a result of human interference, and is physically identifiable. Examples of such would be various computing machines, created by human mind for some specific purpose.

### Designed abstract systems

A system which has been created as a result of human interference, and is not physically identifiable. Examples of such would be mathematical and philosophical systems, which have been created by human minds, for some specific purpose.
There are also some social systems, which allow humans to collectively achieve a specific

### Social systems

A system created by humans, and derived from intangible purposes. For example: a family, that is a hierarchy of human relationships, which in essence create the boundary between natural and human systems.

### Human activity systems

An organisation with hierarchy, created by humans for a specific purpose. For example: a company, which organises humans together to collaborate and achieve a specific purpose. The result of this system is physically identifiable. There are, however, some significant links between with previous types. It is clear that the idea of human activity system (HAS), would consist of a variety of smaller social system, with its unique development and organisation. Moreover, arguably HASes can include designed systems - computers and machinery. Majority of previous systems would overlap.

## System characteristics

There are several key characteristics, when it comes to the fundamental behaviour of any system.
* Systems can be classified as open or closed:'
** Those that interact with their environment, in form of money, data, energy or exchange materials, are generally understood as open. Openness of the system can vary significantly. This is because, a system would be classified as open, if it receives even a single input from the environment, yet a system that merely interacts with the environment, would be classified as open as well. The more open the system is, the more complex it normally would be, due to lower predictability of its components.
** Those that have no interactions with the environment at all are closed. In practice, however, a completely closed system is merely liveable, due to loss of practical usage of the output. As a result, most of the systems would be open or open to a certain extent.
* Systems can be classified as deterministic or stochastic:
** Well-defined and clearly structured system in terms of behavioural patterns becomes predictable, thus becoming deterministic. In other words, it would only use empirical data. For example: mathematics or physics are set around specific laws, which make the results of calculation predictable. Deterministic systems would have simplistic interactions between inner components.
** More complex, and often more open systems, would have relatively lower extent of predictability, due to absence of clearly structured behavioural patterns. Analysing such system, is therefore much harder. Such systems would be stochastic, or probabilistic, this is because of the stochastic nature of human beings whilst performing various activities. Having said that, designed systems would still be considered as deterministic, due to a rigid structure of rules incorporated into the design.
* Systems can be classified as static or dynamic
** Most systems would be known as dynamic, because of the constant evolution in computing power, yet some systems could find it hard to balance between being created and ceasing to exist. An example of such could be a printed map, which is not evolving, in contrast to a dynamic map, provided from constantly updating developers.
* Systems can be classified as self-regulating or non-self-regulating
** The greater the extent of self-control of systems activity is, the greater is the liveability of the final system is. It is vital for any system to be able to control its activities in order to remain stable.

## Real life applications
### Corporate business

* A manufacturing processes that take raw materials as inputs, applies a manufacturing process, and produces manufactured goods as output. The usage of such systems could help to create stronger human organisations, in terms of company operations in each and every department of the firm, no matter the size, which . IPOs can also restructure existing static and non-self-regulating systems, which in real world would be used in form of outsourcing the product fulfilment, due to inefficiency of current fulfilment.

### Programming

* The majority of existing programs for coding, such as Java, Python, C++, would be based upon a deterministic IPO model, with clear inputs coming from the coder, converting into outputs, such as applications.
* A batch transaction processing system, which accepts large volumes of homogeneous transactions, processes it (possibly updating a database), and produces output such as reports or computations.
* An interactive computer program, which accepts simple requests from a user and responds to them after some processing and/or database accesses.

### Scientific

* A calculator, which uses inputs, provided by the operator, and processes them into outputs to be used by the operator.
* A thermostat, which senses the temperature (input), decides on an action (heat on/off), and executes the action (output).