Title: Software
1Software
- If builders built buildings the way programmers
wrote programs, then the first woodpecker that
came along would destroy civilization. - Weinberg's Second Law
2Two Categories of Software
- Systems s/w - to make the hardware easier and
more efficient to use - Application s/w - developed to solve a particular
user need - Difference in orientation
- Application - users
- Systems - computer
3Components of Systems Software
- Operating System
- Utilities
- Communications
- Database management systems
- Language translators
4Operating System
- Puts resources of the computer at the disposal of
programs in an efficient, orderly manner - Manage flow of information between devices
- Example - pressing a key on a PC
application
system
computer
5Microsoft vs. Justice Dept.
- Difference between systems and application
software - Video news segment from NewsHour
- Where does a browser belong?
- Settlement reached, but not everyone happy (state
suits) - Europe weighing in
6Utilities
- Perform support functions
- Sort files
- Re-organize DASD
- Security
- Monitor performance
- May be provided by third party
7Communications
- Handles communcations with remote facilities
- Monitors the network for traffic patterns
- Diagnosis of problems
- On microcomputer, can emulate a terminal, handle
connection to Internet
8Database Management Systems
- Enables orderly access to data
- Will discuss in more detail later
9Language Translators
- What is a computer language?
- An agreement/understanding of how we will express
what we want the computer to do. - But computer does not understand things as we do.
- A statement in the BASIC language
- 10 IF A gt 100 THEN BAA
10Language Translators (cont.)
- To translate a program (source code) into
something the computer can understand - Compilation Interpretation
Source code
Instructions
Executable
Computer
11Some Languages
- COBOL - Common Business Oriented Language
- For business applications
- Lots of I/O handling facilities (defining files,
reading and writing data) - Wordy (for maintainability)
- Good iteration constructs
- Batch-oriented
- Weak on heavy-duty math
- Majority of legacy code
12Cobol (cont.)
3500-PROCESS-PAYROLL-CALCULATION.
CALLED FROM 1200
IF HOURS-WORKED
GREATER THAN 40 PERFORM 3512-CALCULATE-OVERTIME
THRU 3512-EXIT. MULTIPLY EMPLOYEE-HOURS BY
EMPLOYEE-RATE GIVING GROSS-PAY. ADD OVERTIME-PAY
TO GROSS PAY. 3500-EXIT EXIT.
13Fortran (Formula Translation)
- For scientific and technical applications
- Fewer I/O capabilities - relatively small data
sets - Emphasis on processing complex equations
10 BLN(A)SIN(C)(QX)ARCTAN(T)
14BASIC - Beginners All-purpose Symbolic
Instruction Code
- Easy to learn and use
- Standard Equipment with MS-DOS
- Similar to FORTRAN
- Not very standardized
- Visual Basic
- Turbo Basic
- Limited power
15BASIC (cont.)
10 A1 15 BSQRT(A) 20 PRINT A, B 25 AA1 30
IF A gt 100 THEN GOTO 40 35 GOTO 15 40 STOP
16C and C
- Language of choice for micro software development
- Very cryptic
- Forces structure onto the programmer (no GOTO
statement) - Powerful
17C and C (cont.)
include ltstdio.hgt define KILOS_PER_POUND
.45359 main() int pounds
printf(" US lbs UK st. lbs INT
Kg\n") for(pounds10 pounds lt 250
pounds10) int stones pounds /
14 int uklbs pounds 14
float kilos pounds
KILOS_PER_POUND printf(" d
d d f\n",
pounds, stones, uklbs, kilos)
18Java
- Developed by Sun Microsystems
- Used in web pages
- Promises
- Ultimate in portability
- Enliven WWW pages
- Problems - security, performance, Microsoft
19Java (cont.)
public class Quizzer extends Applet
JetPanel xframe public void init()
Db.localAPI(false) xframe new
JetPanel() xframe.x.set(0)
xframe.y.set(0) xframe.width.set(600)
xframe.height.set(400)
((Panel)xframe.getAwtComponent()).setLayout( null
) QuizzerControlPanel panel new
QuizzerControlPanel( 10, 300, 650, 200 )
panel.xframe xframe xframe.add( panel
) JetLabel qnumlabel new
JetLabel()
20Examples of Systems Software
- MVS (IBM mainframes)
- Unix and variants (Linux, Solaris)
- MS-DOS (Original PC)
- Macintosh OS X
21Windows
- Benefits
- Multitasking
- Standard GUI for software
- Device independence
22Applications Software
- Two major categories (my divisions)
- Office automation productivity tools
- Word processing
- Spreadsheets
- Presentation graphics
- Project management
- Desktop publishing
- Others?
- Information Systems (remainder of course)