Page 28 -
P. 28
1.1 Professional software development 11
be connected to a network. Examples of such applications are office applica-
tions on a PC, CAD programs, photo manipulation software, etc.
2. Interactive transaction-based applications These are applications that execute
on a remote computer and that are accessed by users from their own PCs or
terminals. Obviously, these include web applications such as e-commerce appli-
cations where you can interact with a remote system to buy goods and services.
This class of application also includes business systems, where a business
provides access to its systems through a web browser or special-purpose client
program and cloud-based services, such as mail and photo sharing. Interactive
applications often incorporate a large data store that is accessed and updated in
each transaction.
3. Embedded control systems These are software control systems that control and
manage hardware devices. Numerically, there are probably more embedded sys-
tems than any other type of system. Examples of embedded systems include the
software in a mobile (cell) phone, software that controls anti-lock braking in a
car, and software in a microwave oven to control the cooking process.
4. Batch processing systems These are business systems that are designed to
process data in large batches. They process large numbers of individual inputs to
create corresponding outputs. Examples of batch systems include periodic
billing systems, such as phone billing systems, and salary payment systems.
5. Entertainment systems These are systems that are primarily for personal use and
which are intended to entertain the user. Most of these systems are games of one
kind or another. The quality of the user interaction offered is the most important
distinguishing characteristic of entertainment systems.
6. Systems for modeling and simulation These are systems that are developed by
scientists and engineers to model physical processes or situations, which
include many, separate, interacting objects. These are often computationally
intensive and require high-performance parallel systems for execution.
7. Data collection systems These are systems that collect data from their environ-
ment using a set of sensors and send that data to other systems for processing.
The software has to interact with sensors and often is installed in a hostile envi-
ronment such as inside an engine or in a remote location.
8. Systems of systems These are systems that are composed of a number of other
software systems. Some of these may be generic software products, such as a
spreadsheet program. Other systems in the assembly may be specially written
for that environment.
Of course, the boundaries between these system types are blurred. If you develop
a game for a mobile (cell) phone, you have to take into account the same constraints
(power, hardware interaction) as the developers of the phone software. Batch pro-
cessing systems are often used in conjunction with web-based systems. For example,