first generation of programming languages

Download Report

Transcript first generation of programming languages

Lecture Preview
 In this lecture, we will study:
Systems Software
Application Software
How software applications are developed
How software has evolved and where it’s
headed
Software for the enterprise
1
The Software Crisis
Computer System
 New software
applications cannot be
developed fast enough to:
Hardware
Software
 Keep up with dynamic
business environment
 Keep pace with rapid
hardware advances
 Lag in software
development limits IS
capabilities
2
The Software Crisis (continued)
 In addition to new application development,
existing software must also be maintained (80%
IT personnel effort towards maintenance).
 Increasing complexity leads to the increased
potential for “bugs.”
 Testing and “debugging” software is expensive
and time-consuming.
3
Software Fundamentals
 Some basic terms…
Computer programs - sequences of instructions for
the computer
Stored program concept – instructions written in
programs are stored and executed by CPU when
needed
Programming - process of writing (or coding)
programs
Programmers - individuals who perform
programming
4
Software Fundamentals (continued)
Computer Software
Systems
Software
Application
Software
Makes the
computer
function
Does
something
interesting
 Systems Software
 Instructions that
manage the hardware
resources
 Application Software
 Instructions that
perform specific user
tasks
5
System Software
 System software is software that:
Controls and supports the computer system’s
activities
Supports application software by directing the
computer’s basic functions
Facilitates program development, testing, and
debugging
Is independent of any specific type of
application
6
Systems Software (continued)
Systems Software
 System Control
Programs
System
Control
Programs
Systems
Support
Programs
 Control use of all
system resources
(hardware, software,
data); operating
system
 System Support
Programs
 Specialized support
capabilities
7
System Control Programs
 Operating System - main system control
program
supervises the overall operation of the
computer
allocates CPU time and main memory to
programs running on the computer
provides an interface between the user and
the hardware
8
Operating System Services
 Process management – manage program(s) running
on processor
 Multitasking or Multiprogramming - managing two or
more tasks, or programs, running on the computer system at the
same time
 Multithreading – type of multitasking; run two or more tasks
from the same application simultaneously
 Timesharing - many users share same CPU, each using a
different input/output terminal
 Multiprocessing – simultaneous processing with multiple CPUs
9
Operating System Services (continued)
 Virtual memory - simulates more main memory than
actually exists in the computer system
 File management and security - managing the
arrangement of, and access to, files held in secondary
storage
 Fault tolerance - system can produce correct results and
continue to operate even in the presence of faults or errors
 User interface - allows users to have direct control of
visible objects (icons) and actions that replace complex
command syntax
10
Types of Operating Systems
 Major Desktop Operating Systems
Microsoft Products:
MS-DOS
Windows 95 Windows 98
Windows ME
Windows NT Windows 2000 Windows XP
Other Products:
UNIX
Linux
Java Operating System (JavaOS)
IBM O/S 2
Macintosh Operating System
11
Types of Operating Systems (continued)
 Departmental Server Operating Systems
Support hundreds of concurrent users
UNIX, Linux, Windows 2000, Windows XP,
Novell NetWare
 Enterprise Operating Systems
Support thousands of concurrent users; millions
of transactions per day
IBM’s OS/390, IBM’s VM (Virtual Machine),
IBM’s VSE (Virtual Storage Extended), and
IBM’s OS/400
12
System Support Programs
 Support the operations, management, and
users of a computer system
 Examples:
System Utilities
• Perform common tasks: sorting records, checking
disk integrity, creating directories and
subdirectories, restoring accidentally erased files,
locating stored files, managing memory usage, and
redirecting output.
13
System Support Programs (continued)
 Examples (continued)
Performance monitors
• monitor job processing
• produce statistical reports on system resource usage
Security monitors
• monitor the use of a computer system to protect it
and its resources from unauthorized use, fraud, or
destruction
14
Application Software
 Programs performing specific information
processing activities and user functionality
 Types of Application Software
 Proprietary application software
• Addresses a specific or unique business need for a company
 Off-the-shelf application software
• Vendor developed programs sold to many organizations
• May be standard package or may be customizable
15
Application Software (continued)
Personal Application Software - off-the-shelf
application programs supporting general types of processing
 Spreadsheets
 Data management
 Word processing
 Desktop publishing
 Graphics
 Presentation; Analysis;
CAD
 Multimedia
 Communication
 Speech-recognition
 Groupware
16
Software Issues
 Software Evaluation and Selection
Selection factors
• Size and location of the user base
• System administration tools
• Initial and subsequent costs
• Current and future system capabilities
• Existing computing environment
• In-house technical skills
17
Software Issues (continued)
 Software Licensing
 Copyright - exclusive legal right to reproduce, publish,
and sell the software
 Licenses - permission granted under the law to engage
in an activity otherwise unlawful
 Software Upgrades
 May or may not offer valuable enhancements
 Risk that revised software may contain bugs
 Upgrading in a large organization is a major
undertaking, so must assess the merits of the new
release
18
Software Issues (continued)
 Open Systems
A model of computing products that work
together
Empower designers to choose the best
computer hardware, operating system, and
application software without compatibility
concerns
 Open Source Software
Software code offered freely to developers
19
Programming Languages
 Various programming languages enable
people to tell computers what to do
 Foundation for developing applications
20
How are Programs Understood by the
Computer?
(The Language Translation Process)
Program written in
programming
language (source
code)
Translator program

Assembler

Compiler

Interpreter
Program written in
machine language
(object code)
Processed
By CPU
21
Programming Languages
 Machine Language (first generation of programming
languages)
 The computer’s ‘native language’
 Composed of binary digits (0s, 1s)
 The only language that computers understand
 Assembly Language (second generation of programming
languages)
 One-to-one correspondence to machine language
 Somewhat more user-friendly than machine language
(mnemonic rather than binary digits)
 Assembler – program that translates an assembly
language program into machine language
22
Programming Languages (continued …)
 Procedural Languages (third generation languages)
 One instruction translates into many machine
language instructions
 Programs describe the computer’s processing step-bystep
 Closer to natural language; uses common words rather
than abbreviated mnemonics
 Examples: Cobol, C, Fortran, QuickBasic
 Compiler - translates the entire program at once
 Interpreter - translates and executes one source
program statement at a time
23
Programming Languages (continued)
 Nonprocedural Language (fourth generation
languages)
 Allows the user to specify the desired result without
having to specify the detailed procedures needed for
achieving the result
 Example – data base query language - SQL
 Can be used by non technical users
 Natural Language Programming Languages (fifth
generation (intelligent) languages)
 Translates natural languages into a structured,
machine-readable form
 Are extremely complex and experimental
24
Current Programming Languages
 Visual Programming Languages
Used within a graphical environment
Example : Visual Basic and Visual C++
Popular to non technical users
 Hypertext Markup Language (HTML)
standard language used in World Wide Web
contains text, images, and other types of
information such as data files, audio, video,
and executable computer programs
25
Current Programming Languages
 Extensible Markup Language (XML)
Improved on web document functionality
 Componentware
Software components that may be assembled
by developer as needed
“Plug and Play” software development
26
Current Programming Languages
(continued)
 Virtual Reality Modeling Language (VRML)
 a file format for describing three-dimensional
interactive worlds and objects
 can be used with the World Wide Web
 Object-Oriented Programming Languages (OOP)
 based on objects – packaging data and the instructions
about what to do with that data together
 Examples: Java, C++
 Unified Modeling Language (UML)- modeling tool for
object-oriented systems
27
Enterprise Software
 Problem faced in many organizations…
 Competitive pressures require change in organizational
procedures, however
 all the different types of software and hardware in use cause so
much complexity that change is difficult
 Solution options
 Software packages with integrated functional modules (i.e.,
human resource, operations, marketing, finance, accounting, etc.)
 Use of middleware to link disparate applications
 Enterprise software that manages all organizational operations
28
Lecture Summary
 Software can be broadly categorized as Systems software




and Applications software
Systems software provides an interface between the
hardware and the application software
Application software performs specific business functions
Programming languages provide the means for humans to
give computers instructions
Organizations seek enterprise wide software solutions to
provide integrated organizational systems
29