Computer-based System EngineeringBy Youssef Edward
December 15, 2018
Software on its own is completely useless. Until software (merely a string of symbols) is combined with some processor and other hardware to form a system, it cannot do anything at all. Software engineers must understand that there are more general problems of system engineering. Those concern the interactions between software and hardware system components and the human users of the system.
System engineers must take a broad view of systems. They must think about the services the system provides, the constraints under which the system must be built and operated, the interactions of the system with its environment and SO on.
There are many possible definitions of a system from the very abstract to the concrete but I believe a useful working definition is:
A system is a collection of interrelated components that work together to achieve some objective.
This very general definition embraces a vast range of systems. For example, a very simple system such as a pen may be composed of three or four hardware components. By contrast, an air traffic control system is made up of thousands of hardware and software components plus human users which carry out a large number of different tasks. In this book, I am only interested in computer-based systems which include hardware and software and which offer an interface to human users. These systems usually incorporate a great deal of software so software engineering is an essential part of computer-based system engineering (CBSE).
A characteristic of systems is that the properties arid the behavior of the system components is inextricably intermingled. The successful functioning of each system component depends on the functioning of some other components. Thus, software can only operate if the processor is operational. The processor can only carry out computations it the software system defining these computations has been successfully installed.
Some system components can operate as independent systems. However, when they are incorporated into a system, their behavior depends on interactions with other system components. For example, consider a security camera that is part of some computer-controlled security system. The camera may be able to operate in an autonomous way. When it is embedded in the system, the timing of its pictures and the angle of the camera is controlled by other system components.
The complex relationships between the components in a system mean that the system is more than simply the sum of its parts. It has properties that are properties of the whole. They cannot be attributed to any specific part. These are sometimes called emergent properties (Checkland, 1981). This means that they only emerge when the system as a whole is considered. Sonic of these properties can be derived directly from comparable component properties. Other emergent properties, however, cannot be derived from the properties of individual components.