The traditional way we write programs is still used in many software designs. The primary reasons are:
A sequence of filters process data and produce a new version of the same data. For instance xslt transforms xml data into html.
Used extensively in industries where systems are modeled well as
state machines. (e.g. process control, telephony)
There is an entire industry (process control systems) devoted to
providing tools and support for such development.
A parallel application includes two or more tasks (processes) that together
comprise the software system. Parallel applications can run on a
single computer or a parallel processor.
Good reasons for writing a parallel program.
An event driven program comprises a set of functions that are called by the environment. (e.g. processLeftButton is called when the user presses the left mouse button)
Modern graphical environments (e.g. Windows, Motif, Java AWT) are event driven environments; you have little choice if your platform is one of those.
Real-time systems are also event-driven; events are external interrupts that trigger an appropriate function.
There are at least two programs. One, the client, requests information
or services from servers. Servers provide services to clients. Generally,
the two programs are on different computers but this is not required.
Client-server architecture is increasing rapidly in popularity in the 1990s
for a variety of reasons:
Software components are divided into layers. The layers are generally separated by interfaces. Dependence on interfaces makes the components within a layer interchangeable. A common three-tier layered architecture consists of a presentation layer, business layer, and data layer.