Title: Computer Software
1CHAPTER 3
2THE STORED PROGRAM CONCEPT
- COMPUTER IS A BINARY SYSTEM
- PROGRAM A set of instructions telling the
computer what to do - INSTRUCTION Individual step or operation in a
program - MACHINE LANGUAGE Translated instruction
understood by particular model of computer
3EVOLUTION OF COMPUTER SOFTWARE
- FIRST GENERATION Machine language - binary
language designed for particular computer - SECOND GENERATION Assembly language -
substituted mnemonic operation codes and
addresses, translated to machine language by
assembler
4EVOLUTION OF COMPUTER SOFTWARE
- THIRD GENERATION Procedural language - FORTRAN,
COBOL, C - translated to machine language by
compiler or interpreter. Example COBOL - FOURTH GENERATION Nonprocedural language. Tell
what to do, not how to do it, order not
important. Translate to machine language by
compiler or interpreter. Example FOCUS
5KEY TYPES OF SOFTWARE
- APPLICATION SOFTWARE Programs written to
accomplish particular tasks for computer users - SUPPORT SOFTWARE Programs that support
application software in producing needed output.
Does not directly produce output needed by users
6APPLICATION SOFTWARE
- WORD PROCESSING
- SPREADSHEETS
- DATABASE MANAGEMENT SYSTEMS
- PRESENTATION GRAPHICS
7APPLICATION SOFTWARE
- WORLD WIDE WEB BROWSERS
- ELECTRONIC MAIL, GROUPWARE
- DESKTOP PUBLISHING
- APPLICATION SUITES
8SUPPORT SOFTWARE
- OPERATING SYSTEMS Helps maximize work done,
eases workload of users - JOB CONTROL LANGUAGE Allows users to communicate
with operating systems - MULTIPROGRAMMING Large computers can run
multiple programs simultaneously. Time-driven
approach is time-sharing
9SUPPORT SOFTWARE
- MULTITASKING Allows small computers to work on
several programs interactively - VIRTUAL MEMORY Allows computer to run portions
of a large program as required, saving use of
main memory - MULTIPROCESSING Multiple CPUs divide workload,
increases efficiency
10SOURCES OF OPERATING SYSTEMS
- PROPRIETARY Written for particular computer
class or system. Examples Windows 98, Windows
2000 - OPEN SYSTEM Not tied to specific platform.
Examples UNIX, Linux - NETWORK OPERATING SYSTEM (NOS) Manages network
resources, local area networks
11GRAPHICAL USER INTERFACE (GUI)
- MOUSE A standard pointing device
- ICON Graphic or label on screen associated with
task or operation - 32-BIT OPERATING SYSTEM Operating system handles
32 bits at a time - CLICKING MOUSE ON ICON INITIATES TASK
-
12OBJECT-ORIENTED PROGRAMMING (OOP)
- COMPUTER PROGRAMMING BASED ON CREATING, USING SET
OF OBJECTS Object combines data and methods (or
chunks of programs) - EXAMPLES C, Smalltalk, Java
13OTHER LANGUAGES
- NATURAL LANGUAGES User types in or speaks
English, computer evolves program - HYPERTEXT MARKUP LANGUAGE (HTML) Code used to
develop World Wide Web (WWW) pages and sites - eXtensible Markup Language (XML) Used for data
exchange on WWW -
14DATABASE MANAGEMENT SYSTEM (DBMS)
- SUPPORT SOFTWARE USED TO CREATE, MANAGE, AND
PROTECT ORGANIZATIONAL DATA - DBMS Software that manages a database, works
with operating system to store and modify data
and to make data accessible in authorized ways
15TYPES OF DBMSs
- HIERARCHICAL Data arranged in a top-down,
organization chart fashion - NETWORK Data arranged like cities on a highway
systems, often with multiple paths between pieces
of data - RELATIONAL Data arranged into simple tables, and
records are related by storing common data in
each of the associated tables
16FILING METHODS
- INDEXED SEQUENTIAL ACCESS METHOD (ISAM)
- EACH RECORD IDENTIFIED BY KEY
- GROUPED IN BLOCKS AND CYLINDERS
- KEYS IN INDEX
- VIRTUAL STORAGE ACCESS METHOD (VSAM)
- MEMORY DIVIDED INTO AREAS INTERVALS
- DYNAMIC FILE SPACE
- VSAM WIDELY USED FOR RELATIONAL DATABASES
- DIRECT FILE ACCESS METHOD
17COMPONENTS OF DBMS
- DATA DEFINITION LANGUAGE Defines data elements
in database - DATA MANIPULATION LANGUAGE Manipulates data for
applications - DATA DICTIONARY/DIRECTORY Formal definitions of
all variables in database, controls variety of
database contents
18STRUCTURED QUERY LANGUAGE (SQL)
- EMERGING STANDARD
- DATA MANIPULATION LANGUAGE
- FOR RELATIONAL DATABASES
19ADVANTAGES 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
20COMPUTER-AIDED SOFTWARE ENGINEERING (CASE)
- HELPS AUTOMATE SOFTWARE DEVELOPMENT Used by
computer professionals to help automate software
development - MAY INCLUDE
- upper-CASE (requirements definition and design)
- lower-CASE (code generation)
- I-CASE or integrated-CASE
21CHANGING NATURE OF SOFTWARE
- MORE HARDWIRING OF SOFTWARE AND MORE MICROCODE
- MORE COMPLEXITY OF HARDWARE/SOFTWARE ARRANGEMENTS
- LESS CONCERN WITH MACHINE EFFICIENCY
22CHANGING NATURE OF SOFTWARE
- MORE PURCHASED APPLICATIONS AND MORE PORTABILITY
OF THESE APPLICATIONS FROM ONE COMPUTER PLATFORM
TO ANOTHER - MORE PROGRAMMING USING OBJECT-ORIENTED AND VISUAL
LANGUAGES, IN LARGE PART BECAUSE OF EMPHASIS ON
GUIs
23CHANGING NATURE OF SOFTWARE
- 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
24Some Detailed Software Concepts
25Binary Digits
- Computers represent data using binary digits,
called bits. - A bit is either a zero or a one.
- Bits are used for computer data because they are
easy to represent physically. - A switch can either be closed or open.
26Binary Digits (Continued)
- A computer can be designed so an open switch
represents zero and a closed switch represents a
one. - Or, the orientation of a magnetic field can
represent a bit - Magnetism in one direction represents a zero
- Magnetism in the opposite direction represents a
one - Or, for optical media, small pits are burned onto
the surface of the disk so that they will reflect
light - In a given spot, a reflection means a one
- No reflection means a zero
27Bits Are Easy to Represent Physically
28Computer Instructions
- Computers use bits for two purposes instructions
and data. - A given instruction, say to add two numbers
together, is represented by a string of digits
(0111100010001110). - When the CPU reads such an instruction from main
memory, it adds the numbers or takes whatever
action the instruction specifies. - The collection of instructions that a computer
can process is called the computers instruction
set.
29Computer Instructions (Continued)
- All of the personal computers that run Microsoft
Windows are based on an instruction set developed
by Intel Corporation that is called Intel
instruction set. - Until 2006, all Macintosh computers used a
different instruction set, the PowerPC
instruction set, designed for Powerful PC
processors. - In 2006, Apple began offering Macintosh
computers with a choice of either Intel or
PowerPC processors.
30Computer Instructions (Continued)
- Currently, you cannot run a program designed for
one instruction set on a computer having a
different instruction set. - In the future, you may be able to run Windows on
a Macintosh that uses the Intel instruction set,
although the particulars of that are uncertain. - When you pick a family of computers, such as
Windows or the Macintosh, you pick not only the
hardware, but also the sets of programs that can
run on one family of computers.
31Computer Data
- All computer data are represented by bits.
- The data can be numbers, characters, currency
amounts, photos, recordings, or whatever. - Bits are grouped into 8-bit chunks called bytes.
- For character data, such as letters in a persons
name, one character will fit into one byte. - Thus, when you read a specification that a
computing device has 100 million bytes of memory,
you know that the device can hold 100 million
characters.
32Important Storage-Capacity Terminology
33Ambiguity of Binary Data
- It is not possible to determine the type of
computer data just by looking at the data. - The bit string 01000001 can be interpreted as the
decimal number 65, as the character A, or as part
of a picture or a sound file. - Further, it could be part of a computer
instruction. - The CPU determines how to interpret a bit string
from the context in which it encounters it. - If the string occurs in the context of reading
instructions, it will be interpreted as a
computer instruction.
34Ambiguity of Binary Data (Continued)
- If it occurs in the context of reading
instructions, it will be interpreted as the
character A. - If it occurs during arithmetic operations, it
will be interpreted as the number 65. - This ambiguity is more than curiosity virus
authors and other cyber-criminal use it to their
advantage.
35Bits Are Easy to Represent Physically
36Computer Instructions
- Computers use bits for two purposes instructions
and data. - A given instruction, say to add two numbers
together, is represented by a string of digits
(0111100010001110). - When the CPU reads such an instruction from main
memory, it adds the numbers or takes whatever
action the instruction specifies. - The collection of instructions that a computer
can process is called the computers instruction
set.
37Computer Instructions (Continued)
- All of the personal computers that run Microsoft
Windows are based on an instruction set developed
by Intel Corporation that is called Intel
instruction set. - Until 2006, all Macintosh computers used a
different instruction set, the PowerPC
instruction set, designed for Powerful PC
processors. - In 2006, Apple began offering Macintosh
computers with a choice of either Intel or
PowerPC processors.
38Computer Instructions (Continued)
- Currently, you cannot run a program designed for
one instruction set on a computer having a
different instruction set. - In the future, you may be able to run Windows on
a Macintosh that uses the Intel instruction set,
although the particulars of that are uncertain. - When you pick a family of computers, such as
Windows or the Macintosh, you pick not only the
hardware, but also the sets of programs that can
run on one family of computers.
39Computer Data
- All computer data are represented by bits.
- The data can be numbers, characters, currency
amounts, photos, recordings, or whatever. - Bits are grouped into 8-bit chunks called bytes.
- For character data, such as letters in a persons
name, one character will fit into one byte. - Thus, when you read a specification that a
computing device has 100 million bytes of memory,
you know that the device can hold 100 million
characters.
40Important Storage-Capacity Terminology
41Ambiguity of Binary Data
- It is not possible to determine the type of
computer data just by looking at the data. - The bit string 01000001 can be interpreted as the
decimal number 65, as the character A, or as part
of a picture or a sound file. - Further, it could be part of a computer
instruction. - The CPU determines how to interpret a bit string
from the context in which it encounters it. - If the string occurs in the context of reading
instructions, it will be interpreted as a
computer instruction.
42Ambiguity of Binary Data (Continued)
- If it occurs in the context of reading
instructions, it will be interpreted as the
character A. - If it occurs during arithmetic operations, it
will be interpreted as the number 65. - This ambiguity is more than curiosity virus
authors and other cyber-criminal use it to their
advantage.
43Knowledge for the Informed Professional
- Suppose that your IS department states that you
can buy three different computer configurations
for three different prices. - The computers are described by expressions like
the following - Intel Pentium 4 Processor at 2.8 GHz with 533MHz
Data Bus and 512K cache, 256MB RAM - Intel Pentium 4 Processor at 2.8 GHz with 533MHz
Data Bus and 512K cache, 512 MB RAM - Intel Pentium 4 Processor at 3.6 GHz with 533MHz
Data Bus and 1MB cache, 256 MB RAM
44Knowledge for the Informed Professional
(Continued)
- Now, you, have two choices
- You can tell the people in the IS department to
specify what they think is best - Or, with a little bit of knowledge on your part,
you can work with the IS department to ask
intelligent questions about the relationship of
these computers to the kind of work your
department does
45Computer with Applications Loaded
46Contemporary Operating Systems
47Mac OS
- Apple Computer, Inc. developed its own operating
system for the Macintosh, Mac OS. - Macintosh computers are used primarily by graphic
artists and workers in the arts community. - As of 2006, Macintosh computers will be available
for both PowerPC and Intel CPUs. - A Macintosh with an Intel processor is able to
run both Windows and the MAC OS.
48Unix OS
- Unix is an operating system that was developed at
Bell Labs in the 1970s. - It has been the workhorse of the scientific and
engineering communities since then. - Unix is generally regarded as being more
difficult to use than either Windows or the
Macintosh. - Many Unix users know and employ an arcane
language for manipulating files and data. - In general, Unix is not for the business user.
49Linux OS
- Linux is a version of Unix that was developed by
the open-source community. - This community is a loosely coupled group of
programmers who mostly volunteer their time to
contribute code to develop and maintain Linux. - The open source community owns Linux, and there
is no fee to use it. - Linux is a popular operating system for Web
servers.
50Application Software
- Application software consists of programs that
perform a business function. - Some application programs are general purpose,
such as Excel or Word. - Other application programs are specific
- QuickBooks, for example, is an application
program that provides general ledger, and other
accounting functions.
51Application Software (Continued)
- Sources
- You can buy computer software several ways
- Off-the-shelf
- Off-the-shelf with alterations
- Tailor made
- Horizontal-Market Applications Software
- Horizontal-market application software provides
capabilities common across all organizations and
industries. - Word processor, graphics programs, spreadsheets,
and all presentation programs are all
horizontal-market application software.
52Application Software (Continued)
- Custom-Developed Software
- Sometimes organizations develop custom
application software. - They develop such programs themselves or hire a
development vendor. - Custom development is difficult and risky.
- Every application program needs to be adapted to
changing needs and changing technologies .
53Software Sources and Types