Professional Documents
Culture Documents
03 Software
03 Software
Introduction to
Computer Software
Software in General
Software Categories
OBrien 88
C o m p u te r
S o ftw a re
S y s te m
s o ftw a re
S y s te m
M anagem ent
P ro g ra m s
S y s te m
S u p p o rt
P ro g ra m s
A p p lic a tio n
S o ftw a re
S y s te m
D e v e lo p m e n t
P ro g ra m
P ro g ra m s
G e n e ra l
P u rp o s e
A p p lic a tio n
- Programming
Language
translators
- Programming
environments
- CASE packages
- Word Processing
- Spreadsheets
- Database
Managers
- Telecommunications
- Graphics
- Integrated
Packages
- Accounting
- Marketing , Sales
analysis
- Manufacturing
- Production
Control
- Finance
Capital
Budgeting ,...
Software Trends
First
Generation
Second
Generation
OBrien 89
Third
Fourth
Fifth
Generation Generation Generation?
Software
Trends
User-Written
programs
Packaged
programs
Operating
systems
Database
Management
Systems
Machine
language
Symbolic
languages
High-level
languages 4GL
Microcomputer
Packages
Natural
Languages
Multipurpose
GUI
Expert
suites
MS-office: word , excel, powerpoint, access, outlook, explorer
Web-browsers
netscape
explorer
Electronic mail
CASE
Encyclopedia
Databases
Groupware
Lotus notes
Interfaces HW - user
System software
operating system: OS, DBMS, comm
support: system utilities
development: compilers, CASE, 4GL
Application software
packages
own development
End user
Application SW
System SW
Computerhardware
OBrien 98
Operating Systems
User interface
file management
Task management
UNIX, VM or MVS, VSM, MS-DOS
Database Management systems
Telecommunication monitors
Programming Tools
Communication between
system and user
Utility
management
Task
management
File
management
Management of
peripheral devices
Task follow-up
Management of
data and
programs
Multitasking
Virtual memory
Supporting
programs and
other functions
Supporting
functions
Operating System
Examples : UNIX, DOS, OS/2, MVS
Shell
Kernel
provides elementary
computer functions
System
interface
Programs
UNIX
File - and
Directory systems
TextProgramming
processors
languages
Program
interpreter
Operating systems
Operating system = management system
File management
performance monitors
security monitor
ABL
central memory
chess
FMGR
comm.int
ABL
cmnd interpreter
________________________
________________________
________________________
________________________
________________________
________________________
________________________
control
unit
Program X
________________________
________________________
________________________
________________________
________________________
________________________
________________________
________________________
________________________
________________________
________________________
________________________
________________________
return to cmnd.int
Program X
________________________
________________________
________________________
________________________
________________________
________________________
________________________
________________________
________________________
________________________
________________________
________________________
________________________
return to cmnd.int
Task scheduling
Task scheduler , job scheduler , queue manager
manages the waiting queue of all commands which have not yet
been executed
If there is space available in memory , the task scheduler selects a
task from the input queue and orders the loader to load the
corresponding program into the memory
Selection criteria
. round robin algorithm: FIFO + limited time slice
CM
finished
tasks
Task scheduler 2
Handle batch queue only if the interactive queue is empty
interactive tasks
interactive queue
finished
tasks
Batch queue
CM
Process scheduling
The process scheduler is the part of the operating system
that decides which program in memory , the CPU will
work on .
Process status's
active
task terminated
transition
active-waiting
load
swap-out
wait
for CPU
i/o terminated
(interrupt)
start
i/o
blocked
Process priorities
Algorithm for according priorities must be :
- simple ( overhead )
- give I/O jobs higher priority for optimal usage of I/O
active
select
process with P max
P:=P-1
wait
for CPU
blocked
P:=P+1
Spooling
In case of shared usage of peripheral equipment in a multiprogramming environment
Spooling monitor:
Part of the operating system that writes all of the available input and
output per program on a disk , and makes it available as soon as
the required peripheral equipment is free .
Program A
Program B
spooler
Program C
disk
End-User Applications
Application-specific programs
Graphics packages
Integrated Packages
Programming
and
programming languages
Programming
The same hardware can be used for various
applications thanks to the programmability
Specific aspects of tasks are not build-in in the hardware
but in the software . They are loaded in the program memory
( except for some I/O functions ).
Programming is an important aspect in every automation project.
The programmer has to know the problem very well ;
this has to be achieved during analysis or specification gathering .
Specifications are focused on the user.
Specifications are reflected in programs and translated into
an executable program.
Programming Languages
A Programming language is a set of conventions that allows to
express a program in a format that is also more or less readable for
humans.
Machine languages
Use binary coded instructions
Assembly languages
use symbolic coded instructions
Higher Programming languages
use statements that are close to English together with arithmetic notations
Fourth generation languages
use natural and non-procedural statements
Object oriented languages
Data and procedures are combined in objects
Elementary Languages
There is a direct relationship between the
vocabulary of the language ( syntax ) and the
instructions for the computer
The most elementary language is the machine
language
- operation codes and operands have the format of
binary numbers
- completely machine-dependent
- almost unreadable for programmers
- source of errors
- time consuming
- 11011011 represents ADD in a certain language
Assembly Languages
e.g.: opening door
STO
D1
P2
STO
D2
P3
EQ?
KFL
P3
P4
MUL
D2
10
D2
P5
ADD
D2
KDA
D2
P6
ADD
D1
D1
P7
NE?
D1
P3
P8
NE?
D2
207
P1
P9
STO
DDA
P1
Procedures and data are described in terms that are closer to the
application domain in which they are used
Language Example
Calculate the average of two numbers
Memory addresses:
oral
final
Pascal:
written 30
31
40
Assembler:
a,written
machine language:
66 30
(CALM)
load
add
a,oral
divide a,#2
store a,final
54 31
43 02
67 40
Assessment
Imperative languages
With imperative languages the programmer writes all
tasks to be performed in the appropriate sequence
e.g.: linear equation AX+B=0
- read coefficients A and B ;
- calculate quotient of B divided by A ;
- change sign of the result ;
- assign the value of the quotient to X ;
- write the value of X .
Non-imperative languages
In non-imperative languages only the
relationships between the data are given.
The actions to be performed by thee computer
are derived from this relationships.
The solution of the linear equation can be formulated
as follows:
- The coefficients A and B can be read
- the variable X is defined by X= - B/A
to execute the program it is enough to write:
write X
e.g.: LISP , PROLOG
De
ow sign
ne
r
e
lat
lcu
ca tatus
s
Actual
status
transmit
thly
Mon iew
rv
ove
Ca
lc
int ulate
ere
st
register
C++
Eifel
Smalltalk
JAVA
Visual Basic
Interpreter
Object code
Hardware
Interpreter:
The source code is translated by the interpreter instruction by
instruction into machine language and immediately executed.
At every execution the translation is redone.
This is interesting to debug programs or for small programs
using little mass memory.
Source code takes much less space than object code.
Compilation vs Interpretation
Compilation
Interpretation
fast
execution
Slow
slow
modifications
fast
cryptic
error messages
clear
large
memory space
small
unavoidable
mass memory
optional