Download Presentation Slides

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Programming language wikipedia , lookup

Reactive programming wikipedia , lookup

Structured programming wikipedia , lookup

Design Patterns wikipedia , lookup

Falcon (programming language) wikipedia , lookup

Compiler wikipedia , lookup

C Sharp (programming language) wikipedia , lookup

Abstraction (computer science) wikipedia , lookup

Application Interface Specification wikipedia , lookup

Software bug wikipedia , lookup

Software quality wikipedia , lookup

One-pass compiler wikipedia , lookup

Object-relational impedance mismatch wikipedia , lookup

Object-oriented programming wikipedia , lookup

Transcript
Topics Covered
Types of software.
Changing nature of programming.
Object Oriented Programming.
Four generations of programming
languages.
Operating systems.
Source: Alter 1999
Types of Software
Application Software
End-User Software
System Development Software
System Software
Source: Alter 1999
Application Software
Purpose
Tells the computer how to perform tasks that
structure or automate specific steps in
business process that apply only in specific
settings.
Examples
 Billing System, Inventory System
Source: Alter 1999
Application Software
Effect on end user
Automates or structures steps in business
processes.
Generality
Used for a specific type of business process
in a specific business or group of similar
business.
Source: Alter 1999
End-User Software
Purpose
Tells the computer how to perform tasks that
support general business processes that apply
in many settings, such as writing memos or
performing calculations.
Examples
 Word processor, spread-sheet software,
drawing package, etc.
Source: Alter 1999
End-User Software
Effect on end user
Hands-on tools for the end user; may be
used to develop small systems.
Generality
Concerned with a general business processes
that could apply in many firms.
Source: Alter 1999
System Development
Software
Purpose
Helps analysts and programmers build
information systems.
Examples
 Compiler, DBMS, CASE system.
Source: Alter 1999
System Development
Software
Effect on end user
No direct effect on end user; helps technical
staff produce better information systems.
Generality
Used to build a general class of systems,
such as business applications.
Source: Alter 1999
System Software
Purpose
Controls or supports the operation of the
computer system so it can execute
application software or end-user software.
Examples
 Operating system, utility program, etc.
Source: Alter 1999
System Software
Effect on end user
Controls computer system operations so that
the end user can use it.
Generality
Concerned with how a computer operates,
regardless of what business problem it is
solving.
Source: Alter 1999
The Changing Nature of
Programming
User Requirements
???
Automatic
???
Human
Object Oriented
Programming(???)
Human
Fourth Generation
Language
Human
Higher Level
Language
Human
Assembly Language
Human
Machine Language
Human
Executable Machine Code
Automatic
Automatic
Automatic
Automatic
Automatic
Source: Alter 1999
Trends in Software
Development
Greater Nonprocedurality
the focus is more on what should be
accomplished and not how it should be
accomplished by the computer.
programming is more directly linked to
analysis, which uses logical models.
greater focus on the business problem,
instead of computer-related details.
Source: Alter 1999
Trends in Software
Development
Greater Modularity and Reusability
programs are designed as a set of selfcontained modules that work together.
modularity makes designing and testing
easier.
example is separating user interfaces and
application logic.
reusability is achieved through the use of
pre-existing modules.
Source: Alter 1999
Trends in Software
Development
Greater Machine and Data Independence
Java for Internet applications.
client-server applications.
Tighter Links between Analysis and
Programming
automatic translation from requirement
models to programs using CASE systems.
Source: Alter 1999
Object Oriented System
An OO system is a collection of interacting
objects that communicate through message
passing in order to accomplish a goal/task.
An object consists of data (attributes) and
operations (methods) that act on the data.
A message from Object A to Object B
corresponds to invocation of a
method/member function in Object B.
Source: Ramamoorthy and
Chillakanti 1991
Object Oriented System
Objects are categorized into “classes”. A
class defines a template from which
objects are created.
The template contains a general
description that is shared by one or more
objects.
The description includes the data and the
operations associated with objects of that
Source: Ramamoorthy and
class.
Chillakanti 1991
Object Oriented Programming
Starts with identification of objects and
classes.
Each class of objects has actions
associated with it.
These actions have methods for
performing the action.
All members of a class inherit methods
of classes preceding it in the hierarchy.
Source: Alter 1999
Classes and Objects
CLASS
SUBCLASS
OBJECT
Document
Spreadsheet
model
Spreadsheet model
for calculating discount
Source: Alter 1999
Memo
Memo to
John Doe, 5/7/98
Memo to
Jane Doe, 8/11/98
Inheritance and Methods
CLASS
Document
Methods for
* opening
* closing
* saving
* printing
SUBCLASS
OBJECT
Spreadsheet
model
Spreadsheet model
for calculating discount
Source: Alter 1999
Memo
Memo to
John Doe, 5/7/98
Memo to
Jane Doe, 8/11/98
Message Passing
A User
print
Source: Alter 1999
Memo to
Jane Doe, 8/11/99
Polymorphism
print
Memo to
Jane Doe, 8/11/99
print
Spreadsheet model
for calculating
discounts
A User
Source: Alter 1999
Object Oriented
Development
identification of classes
determining the attributes and methods
associated with each class
determining the various kinds of
relationships among classes
inheritance - class-subclass
composition - class-component
business - class-class
Four Generations of
Programming Languages
Machine Languages
Assembly Languages
Higher Level Languages
Fourth Generation Languages
Source: Alter 1999
Higher-Level Languages
Known as 3GLs.
A program called compiler translates 3GL
programs (source code) to machine
language programs (object code).
An interpreter of a 3GL translates and
executes each successive line of a
program.
Source: Alter 1999
Fourth Generation
Languages
4GLs are a loosely defined group of
programming languages that make
programming less procedural than 3GLs.
The term 4GLs is closely associated with
query languages and report generators.
Source: Alter 1999
Other Major Developments
in Programming
Special-Purpose Languages
Spreadsheets
Computer Aided Software Engineering
(CASE) Systems
Source: Alter 1999
Special Purpose Languages
Languages that are related to the area of
business or the type of problem in
question.
Examples:
modeling languages.
simulation languages.
Source: Alter 1999
CASE Systems
CASE is the use of computerized tools to
improve the efficiency, accuracy, and
completeness of the process of analyzing,
designing, developing and maintaining an
information system.
Classification:
Upper CASE - logical modeling.
Lower CASE - code generation.
Source: Alter 1999
Operating Systems
Complex programs that control the
operation of computers and networks by
controlling
execution of other programs running on the
computer,
communication with peripheral devices
including terminals, and
use of disk space and other computer system
resources.
Source: Alter 1999
OS functions affecting a
PC user
Controlling the user interface.
Controlling tasks in progress.
support for multitasking.
Controlling access to data.
password access to restricted data.
Allocating resources.
allocation of memory and disk space.
Source: Alter 1999
OS for Multi-User
Computer Systems
Run many jobs simultaneously for
different users, taking priority into
account.
Make sure that the users, their data, and
their various jobs do not interfere with
each other.
Maintain computer system security.
Source: Alter 1999
OS for Multi-User
Computer Systems
Network operating system establishes the
links between nodes, monitors network
operation, and controls recovery
processes when needed.
Must work in conjunction with OS for the
individual workstations on the network.
Source: Alter 1999
Examples of Multi-User OS
IBM’s MVS and Digital’s VMS
UNIX
IBM’s AIX, HP/UX, Sun’s Solaris, Digital’s
UNIX, SCO’s UNIX etc.
Microsoft’s Windows NT
Source: Alter 1999