ct,
ral
lly
the
to
ome
nts
the
is
ine
ing
to
ser
the
fic
ter
ils
During this same period of time, Parnas had been advocating the concept of
"information hiding" to improve the quality and maintainability of software
and to improve programmer productivity (e.g., Clements, et al., 1983). The
principle involved is to isolate each type of software module from all other
types. In particular, the application programmer often does not have to know
anything about the user interface, nor the operating system or specific
hardware on which his application program will be run. This principle is
inherent in the design of EASI/IMP.
Figure 2 illustrates this third major stage in the evolution of software
architecture. The concept of a user interface system is that it is not a
layer on the operating system, but rather a separate, complementary and
conceptually independent entity between the user and the application
programs.
STAGE III
USER INTERFACE HARDWARE
(user INTERFACE SYSTEM ^
APPLICATION
SOFTWARE
( UTILITIES (IMP)
md wu
C OPERATING SYSTEM
COMPUTER HARDWARE
and RESOURCE
Figure 2: The Emergence of User Interface Systems
(Source: Morland, 1985)
EASI/IMP
Long before Morland and Parnas advocated this splitting up of user interface
from machine from application programs, PCI had recognized the need to do so.
The company set itself the goal of establishing a software system that was
useable, useful, and transportable; a base on which application packages
could be built to ensure maximum portability and minimum difficulty for both
users and programmers. The result was EASI/IMP, a user interface and
application manager.
IMP -- The Interface Management Package
IMP is a software engineering tool. It consists of two parts: a library of
FORTRAN subroutines used to interface application programs to the outside
world, and a collection of system utilities and accounts designed to automate
the compiling, linking and management of tasks. To the programmer, it offers
the advantages of reduced coding effort, reduced program maintenance costs
and reduced design requirements. These reductions in effort result from the
elimination of the need to be concerned about the user interface which
results in reduced applications code required.
595