Transcript Chapter 3

Chapter 3:
Computer Software
Stored Program Concept
 The
concept of preparing a precise list
of exactly what the computer is to do
(this list is called a program), loading or
storing this program in the memory of
the computer, and then letting the
control unit carry out the program at
electronic speed. The program must be
in a form that the control unit of the
computer has been built to understand.
Software
 The
set of programs that control the
operations of the computer system
 These programs consists of a series of
instructions; each instruction is an
individual step or operation in a
program
Evolution of Computer Software
 First
Generation - machine language language that particular computer has
been built to understand
 Second Generation - assembly language
- substitute mnemonic operation codes
and symbolic addresses - translate to
machine language by assembler
Evolution of Computer Software
(continued)
 Third
Generation - procedural language
- FORTRAN, COBOL, C - translate to
machine language by compiler or
interpreter
 Fourth Generation - nonprocedural
language - tell what to do, not how to
do it - order not important - translate to
machine language by compiler or
interpreter
Two Kinds of Software
 Applications
software -- programs
written to accomplish particular tasks
for computer users
 Support software -- programs that
support applications software in
producing the needed output; support
software does not directly produce
output needed by users
Personal Productivity Software
 Word
processing
 Spreadsheets
 Database management systems
 Presentation graphics
Personal Productivity Software
(continued)
 Desktop
publishing
 Statistics
 Application
suites -- somewhat
integrated suites of applications -Microsoft, Lotus, Corel
 World Wide Web browsers
Support Software
 Operating
systems
 Communications interface software
 Utility programs
 Language translators
 Database management systems
(DBMSs)
 CASE tools (computer-assisted systems
engineering)
Operating System
A
very complex program (software)
that controls the operation of the
computer hardware and coordinates all
the other software
 Examples: DOS, OS/2, System/7, Unix,
VMS, VM, MVS, Windows 95,
Windows 98, Windows NT
Job Control Language (JCL)
 The
specialized computer language by
which computer users communicate
with the operating system
 DOS examples: dir, cd, md, rd, copy
 With GUI operating systems, JCL
becomes a series of mouse clicks or
drags
Multiprogramming
A
procedure by which the operating
system switches back and forth among
a number of programs, all located in
memory at the same time, to keep the
CPU (processor) busy while
input/output operations are taking
place
 Called multitasking on smaller
machines
Virtual Memory
A
procedure by which the operating
system switches portions of programs
(called pages) between main memory
and DASD (disk) so that portions of
enough programs are stored in main
memory to enable efficient
multiprogramming
 Appears to user as though main
memory is unlimited
Object-Oriented Programming
(OOP)
A
type of computer programming
based on the creation and use of a set of
objects, each of which combines data
and methods (or chunks of programs)
 Most popular OOP languages are C++
and Smalltalk
Database Management System
(DBMS)
 Support
software that is used to create,
manage, and protect organizational
data
 A DBMS is the software that manages a
database; it works with the operating
system to store and modify data and to
make data accessible in authorized
ways
Types of DBMSs
 Hierarchical
-- data are arranged in a
top-down, organization chart fashion
 Network -- data are arranged like the
cities on a highway systems, often with
multiple paths between pieces of data
 Relational -- data are arranged into
simple tables, and records are related
by storing common data in each of the
associated tables
Advantages of Relational DBMS
 New
data elements can easily be added
as new needs arise
 New relationships can be created as
new query/reporting needs change
 Fewer data consistency problems due to
less redundant data storage
 More “user friendly” tools
Relational DBMS Features to be
Evaluated for Useability
 Building
tables and relationships
 Creating forms for data entry
 Building and changing queries
 Report customization
 Importing and exporting data
 Constructing custom controls
 Wizards or other application assistants
Computer-Aided Software
Engineering (CASE)
A
collection of software support tools
(designed to be used by computer
professionals) to help automate
software development
 May include upper-CASE
(requirements definition and design),
lower-CASE (code generation), and ICASE or integrated-CASE
Changing Nature of Software (I)
 More
hardwiring of software and more
microcode
 More complexity of hardware/software
arrangements
 Less concern with machine efficiency
 More purchased applications, and more
portability of these applications from
one computer platform to another
Changing Nature of Software (II)
 More
programming using objectoriented and visual languages, in large
part because of the emphasis on GUIs
 More emphasis on applications that run
on intranets and the Internet
 More user development
 More use of personal productivity
software on microcomputers, especially
packages with a GUI