Download Software

Document related concepts

Compiler wikipedia , lookup

Software quality wikipedia , lookup

C Sharp (programming language) wikipedia , lookup

Software bug wikipedia , lookup

Cross compiler wikipedia , lookup

Transcript
Software
Business Computer Applications
Software Applications
1. What is software?
2. System Software
3. Application Software
4. New Software Tools and
Approaches
Two Major Types of Software
• System software
– a set of generalized programs
– manages the resources of the
computer (e.g., CPU,
input/output/storage devices)
– mediates between application
software and computer hardware
• Application software
– programs to perform specific
functions specified by end users (e.g.
Excel, Word, Access, PowerPoint, IE)
– Application software must work
through the system software to
operate the computer
Relationship between Software & Hardware
Users
Application software
System
Systemssoftware
software
Hardware
Relationships between User, Software and Hardware
Hardware
System
Software
Application
Software
User
2. Types of System Software
• Operating System (OS)
• Language Translators
(compiler or interpreter)
• Utility Programs
• Device drivers
Three Major Functions of Operating System
• allocates and assigns system
resources
– memory and input/output
management
• schedules the use of computer
resources and computer jobs
– prioritization of jobs
• monitors computer system
activities
– tracking status of jobs
Capabilities of Operating System
• Multiprogramming
– A method of executing multiple
programs concurrently using the same
computer
– Two or more programs are active at the
same time, but they do not use the same
computer resources simultaneously
•Ex: CPU executing one program while
input/output needs of other
programs are serviced
– switching among programs occurs
rapidly giving the impression that all
programs are executing simultaneously
Multiprogramming
PROGRAM 1
UNUSED MEMORY
MULTIPROGRAMMING
ENVIRONMENT
OPERATING SYSTEM
OPERATING SYSTEM
TRADITIONAL SINGLEPROGRAM SYSTEM
PROGRAM 1
PROGRAM 2
PROGRAM 3
UNUSED MEMORY
Capabilities of Operating System (cont’d)
• Multitasking
– multiprogramming on single-user
machine (e.g. PC)
– writing a letter with Word while using
Excel
• Multiprocessing
– Two or more parallel processors in
system
– Program can be divided to be processed
by multiple CPUs
– Can process large programs more
rapidly (e.g., supercomputing)
Capabilities of Operating System (cont’d)
• Virtual storage
– primary memory appears to be larger
than it really is to the user
– technique for handling programs
efficiently
– dividing programs into small fixedportions (pages) or variable-length
portions (segments) with only a small
portion stored in primary memory at
one time
– CPU is utilized more fully
– large size & number of programs can be
executed
Capabilities of Operating System (cont’d)
• Time sharing
– sharing of computer resources
by many users simultaneously by
spending a fixed amount of CPU
time (e.g. time slice of 2
milliseconds) on each user before
moving to the next user
– as CPU operates in nanoseconds,
much work can be accomplished
within 2 milliseconds
Time Sharing
Types of Operating Systems
• Mainframe OSs (OS/390, OS/360)
– for room-sized computers
• Server OSs (Windows/Mac OS/Linux Server)
– For computers that serve multiple users at
once over a network and allow the users
to share hardware and software resources
• Multiprocessor OSs (Windows Vista,
Windows Server 2008)
– connect multiple CPUs into a single
system
– often these are variations on the server
operating systems, with special features
for communication and connectivity.
Types of Operating Systems (cont’d)
• Personal Computer OSs (Windows 3.1, 95, 98,
2000, Me, XP, Vista, 7, Mac OS X, Linux)
– provide a good interface to a single user
– widely used for word processing,
spreadsheets, and Internet access.
• Real-Time OSs (VxWorks, QNX)
– Used in industrial process control
systems, where they collect data about the
production process and use it to control
machines in the factory (e.g. if a car is
moving down an assembly line, certain
actions must take place at certain instants
of time, if a welding robot welds too early
or too late, the car will be ruined.).
Types of Operating Systems (cont’d)
• Embedded OSs (PalmOS, Windows Mobile)
– for handheld PCs, wireless devices.
– run on PDAs (personal digital assistants) small computer that fits in a shirt pocket
and performs a small number of functions
such as an electronic address book and
memo pad.
– run also on the computers that control
devices that are not generally thought of
as computers, such as TV sets, microwave
ovens, and mobile telephones.
– have size, memory, and power
restrictions.
Types of Operating Systems (cont’d)
• Smart Card OSs
– smallest OSs running on smart cards,
which are credit card-sized devices
containing a CPU chip.
– have very severe processing power and
memory constraints.
– some of them can handle only a single
function, such as electronic payments, but
others can handle multiple functions on
the same smart card.
– Java applets (small programs) may be
downloaded to the card and interpreted
by the JVM (Java Virtual Machine). This
may lead to multiprogramming and the
need to schedule them.
PC Operating Systems
• DOS (PC-DOS, MS-DOS)
– for old PCs, no multitasking, command
driven
• Windows series for PCs (95, 98, Me)
– streamlined GUI, multitasking,
networking
• Windows NT (Windows 2000, XP, Vista, 7)
– for PCs, workstations, servers,
multitasking/processing, intensive
networking
Windows
Vista
Windows Vista Desktop and Gadgets
Microsoft Windows Vista Start Menu
Windows 7
Windows 7
Control Panel
My Computer, similarly
to Windows Vista, shows
capacity and free space
of disk drives…
Windows
Media Player
Windows 7 Gadgets
Windows 7 Start Menu
Windows Live - Photo Gallery
Windows Live – Movie Maker
Pictures Library
Improved
apps –
Calculator
& WordPad
Improved apps –
Paint & PowerShell
It’s more easy now to switch
on/off system icons …
Windows Solution
Center is now
lacking firewall…
Theme selection /
Display settings
Internet Explorer 8
with tabbed browsing,
Live e-mail, blogging,
and translation
services…
PC Operating Systems (cont’d)
• IBM’s OS/2
– for PCs, multitasking, networking
• Unix
– for powerful PCs, workstations,
minicomputers
– multitasking, multi-user processing,
networking
• Linux (Mandriva, SUSE, Fedora, Ubuntu…)
– free, reliable alternative to Unix and
Windows NT
– provides source code that can be modified
by developers (open source software)
• Macintosh OS X
– for Macintosh, multitasking, networking,
powerful multimedia capabilities
Windows Server 2008
Utility Programs
• Prewritten programs that can
be shared by all users of a
computer system and can be
used rapidly in many different
applications when requested
• Used for routine, repetitive
tasks
– Copying, setting up new files,
deleting old files, formatting
diskettes
3. Application Software
• Primarily concerned with
accomplishing the tasks of
end users
• Many different languages (e.g.
FORTRAN, COBOL, C, C++)
can be used to develop
application software.
Microsoft
Office 2007
Microsoft Word
2007
Microsoft
PowerPoint 2007
Microsoft Excel 2007
Microsoft Access 2007
One-to-many
relations between
tables in relational
DBMS (Microsoft
Access)…
Select Query
involving two tables
(Microsoft Access)…
Microsoft
Publisher 2007
Microsoft Visio
2007
Microsoft Office Accounting Pro 2008
Ready-to-use
accounting software
for small and
medium-size
enterprises (SMEs)…
Includes quick
navigation pane,
Chart of Accounts,
typical documents,
reports, and more!
Microsoft OneNote 2007
Microsoft Office Mac 2008
Alternative Office Suits
IBM Lotus
Symphony
Open
Office.org 3
OpenOffice.org 3 is
a free, open-source
alternative to
commercial office
suits; is available
as a part of Linux
distributions or
separately for other
OS…
OpenOffice.org
Base Java-powered
DBMS…
OpenOffice.org
Calc spreadsheet is
a free alternative to
Microsoft Excel…
Writer word processor can be used instead of Microsoft Word…
…and OpenOffice.org Impress instead of Microsoft PowerPoint
Other
OpenOffice.org
apps: Draw & Math
Language Translators
• Called a compiler or interpreter
– Translates programs in human
readable (high-level) languages (e.g.
COBOL, C) into machine language that
the computer can execute
– In other words, Source code  Object
code
• Source code: the program in the
high-level language before
translation into machine language
(object code)
Language Translators (Cont’d)
• Different compiler is required for
different type of source code
• A Fortran compiler cannot
compile a program written in
COBOL source code
Generations of Programming Languages
• First generation languages
(from 40s)
– machine language
– programming in binary digits (O
and 1)
• Second generation languages
(from early 50s)
– assembly language
– using language-like acronyms and
words instead of binary digits
Assembly Language
• Use acronyms such as add, sub,
and load
• Example: to add two numbers
stored in memory 1 and memory 2
– load M1,reg1
– add M2, reg1
• Compiler will then convert the
statements into machine language
Generations of Programming Languages (cont’d)
• Third generation languages (mid
50s – mid 70s): high-level languages
– instructions that closely resemble
human language or standard notation
of mathematics
– easier to learn but less efficient
requiring a greater amount of
translation time
– Programs became easier to create and
more widely used for scientific and
business problems.
– e.g. FORTRAN, COBOL, BASIC,
PASCAL, C
Generations of Programming Languages (cont’d)
• Fourth generation languages (4GL,
mid 70s ~)
– can be employed directly by end users or
less-skilled programmers
– can enhance the productivity of
programmers
– nonprocedural or less procedural than
previous languages (procedural
languages requiring specification of the
sequence of steps, procedures)
– specify what has to be accomplished
rather than how to accomplish a task
Examples of 4GL
• Query languages
– retrieve specific information from
databases or files
– e.g. SQL
• PC tools
– General-purpose, productivitypromoting application packages
developed for PCs
– word processing, spreadsheet, data
management, presentation graphics, email, web browser, groupware
– E.g. MS Word, Excel, Access, Netscape,
Lotus Notes
Groupware
• provides functions and services
that support the collaborative
activities of work groups
• enhances collaboration by
allowing the exchange of ideas
electronically
• includes software for
information-sharing, electronic
meetings, scheduling and e-mail
distribution
New Programming Approaches
• Object-Oriented Programming
(OOP)
– software development approach that
combines data and procedures into a single
unit called an object
– promotes reusable code through concepts
such as encapsulation and inheritance
– reduces Time And Cost Of Writing Software
• Visual Programming
– construction of programs by selecting and
arranging programming objects (drag-anddrop) rather than by writing program code
– e.g. Visual Basic
Java
• An object-oriented programming language
used to create miniature programs called
‘applets’ designed to reside on network
servers
• A user can download only the software
functions and data (applets) necessary to
perform a specific task, e.g. analyzing the
revenue
– Companies might not need to purchase
thousands of copies of commercial
software on individual computers.
• Can run on any computer and operating
system, even on a smart cellular phone
– No need to worry about IT
environments (platform independent)
HTML and XML
• HTML
– Page description language for
creating Web pages
– Describes only the display
format of a document
• XML
– General-purpose language
describing the structure of a
document, supporting links to
multiple documents, and
allowing data to be
manipulated
– Designed to improve delivery
of Web documents
– Can be used for both Web and
non-Web application
4. New software tools and approaches
• Open source is an approach to
design, development, and
distribution offering practical
accessibility to a product's
source code.
• Open source software (OSS)
projects are built and
maintained by a network of
volunteer programmers.
4. New software tools and approaches
• Examples of open source
products are:
– Linux operating system, a free,
open-source Unix-like OS.
– OpenOffice.org office suite,
which includes word processor,
spreadsheet, DBMS, and
presentation graphics software.
– Mozilla Firefox Internet browser.
– Apache HTTP Server.