Real-world software engineering
Ian C. Pyle · Software Engineering Journal · 1991
This paper explains what is being done to cope with the real-world problems in information system development: the large size, long timescale, availability and responsiveness. The pervasive theme is that the software engineering paradigm is important but inadequate; the interaction between software and hardware is fundamental. A key concept in software engineering is information hiding. This is dangerous when the very information we want is that which is hidden; for example, the resource utilisation and failure modes of some entity in the system, which depends on its representation. The ‘black-box’ model is useful in many circumstances, but not when the size of the box might be important. System thinking (as used in software engineering) is powerful, but tricky, when the subsystem is structurally identical to the system of which it is part; with the loss of scale, there is no way of telling how close any such system is to atomic elements (or what such atomic elements might be). Real-world techniques have to integrate the logic of software with the practicalities of the physical and commercial world.