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,
   23   24   25   26   27   28   29   30   31   32   33