The following software areas indicate the breadth of potential applications:
System software is a collection of programs written to serviceother programs. Some system software (e.g., compilers, editors, and file managementutilities) process complex, but determinate, information structures.
Software that monitors/analyzes/controls real-world eventsas they occur is called real time. Elements of real-time software include a data gatheringcomponent that collects and formats information from an external environment.
Business information processing is the largest single softwareapplication area. Discrete “systems” (e.g., payroll, accounts receivable/payable, inventory)have evolved into management information system (MIS) software that accessesone or more large databases containing business information.
Embedded software resides in read-only memoryand is used to control products and systems for the consumer and industrial markets.Embedded software can perform very limited and esoteric functions (e.g., keypadcontrol for a microwave oven) or provide significant function and control capability.
The Web pages retrieved by a browser are software thatincorporates executable instructions (e.g., CGI, HTML, Perl, or Java), and data (e.g.,hypertext and a variety of visual and audio formats). In essence, the network becomesa massive computer providing an almost unlimited software resource that can beaccessed by anyone with a modem.
Artificial intelligence software.
Artificial intelligence (AI) software makes useof nonnumerical algorithms to solve complex problems that are not amenable tocomputation or straightforward analysis. Expert systems, also called knowledgebasedsystems, pattern recognition (image and voice), artificial neural networks,theorem proving, and game playing are representative of applications within thiscategory.