Transcript Software
Chapter 4:
Software: Systems and Application Software
Agenda
What is Software
Overview of Software
Operating Systems
Popular Operating Systems
Utility Programs
Types of Application Software
Proprietary Application Software
Off-the-shelf Application Software
Standard Off-the-shelf Application Software
Software Issues and Trends
Programming Languages
Object Oriented Programming Languages
Programming Language Selection
Language Translators
What is Software
Software consists of the computer programs that
coordinate the workings of the computer hardware
(statements to the computer) and the program
documentation for explaining the operations of the
programs to the user.
Overview of Software
There are two basic types of software:
Systems Software is a set of programs to support the
computer system by coordinating the activities of the
hardware and the applications. Systems software is written
for a specific set of hardware, most particularly the CPU.
Application Software is a set of programs that solve
specific user-oriented problems.
Operating Systems
An Operating
System is a set of computer programs that
control the computer hardware and act as an interface with
application programs.
Operating System Activities:
– Perform common computer hardware functions like storing data on
disk
– Provide the user interface like the Windows XP Graphical User
Interface or command-based user interface
– Provide hardware independence by serving as the interface between
the application program and the hardware
– Manage system memory to control how memory is accessed and
used
– Manage processing tasks like enabling the user to run more than
one application (multitasking or time-sharing)
– Provide network capability to link users
– Control access to system resources by providing functions like
password protection
– Manage files tracking where each file is stored and where is located
Popular Operating Systems
Consumer Appliance Operating Systems
– Windows CE.Net/Windows XP/Handheld PC/Pocket PC
– Palm OS
PC Operating Systems
– MS Windows 95/98/2000/XP
– Mac OS X
– Linux
Network (workgroup) Operating Systems
–
–
–
–
–
Windows 2000 Server
Unix
Netware
Red Hat Linux
Mac OS X Server
Enterprise Operating Systems
– OS/390
– Linux
Utility Programs
Utility programs are used to perform important functions
like merging and sorting sets of data, keeping track of
computer jobs and compressing files before they are
stored.
Examples of Utility programs:
– DriveSpace compresses the hard drive increasing its storage
capacity (Windows 95/98).
– Disk Defragmenter speeds up disk access by rearranging the files
and free space on the computer (Windows 95/98)
– DFSORT sorts and merges data files (MVS)
– TestDrive allows trying the software before purchasing it and
deleting the software from the hard drive after the trial period.
– Screen Saver
– Virus Detection
Types of Application Software
Application Software
Proprietary Software
In-house developed
Off-the-shellf Software
Contract
Customized Package
In-house developed
Standard Package
Contract
Proprietary Application Software
Application Software gives organizations the ability to
solve problems and perform specific activities and tasks.
Proprietary application software solves a unique or specific
problem.
Proprietary application software can be In-house
developed or developed by external vendors in which case
is called contract software.
Advantages of proprietary application software:
– Software usually meets the user requirements
– Provides flexibility in making modifications
– Offers more control over the results
Disadvantages of proprietary application software:
– Can take a long time and significant resources to develop (costly)
– Has more risk concerning the features and performance
Off-the-shelf Application Software
Off-the-shelf application software may be purchased,
leased, or rented from a software company. Off-the-shelf
application software can be customized to better fit
company specific needs.
Advantages of Off-the-shelf application software:
– Lower initial cost
– Lower risk that the software will fail
– Higher quality usually without bugs and well tested
Disadvantages Off-the-shelf application software:
– May pay for features never used
– May lack important features
– May not match current work processes
Standard Off-the-shelf Application Software
Personal Application Software
–
–
–
–
–
–
Word processing
Spreadsheet analysis
Database applications
Graphics programs
On-line information services
Software suites
Workgroup Application Software
– Lotus Notes
– Group scheduling
Enterprise Application Software
Enterprise Resource Planning (ERP)
ERP software: a set of integrated programs that manage a
company’s critical business operations
ERP software can support global operations – so it must
support many languages, legal entities, and currencies
Examples
– SAP
– PeopleSoft
Benefits
–
–
–
–
Eliminate inefficient systems
Improved data access for decision making
Facilitate the adoption of improved work processes
Supply chain management
Costs
– Costly
– Changed business processes
– Employee resistance
Software Issues and Trends
Software bugs and the costs associated with them
Open Source Software can save you money but be aware of hidden
costs
Software Licensing
–
–
–
–
Usage-based License
Capacity-based License
Software-as-a-network service
Subscription Licensing
Lack of tracking software licenses can cost the organization:
– Software Publishers Association (SPA) can fine the organization $100,000
or more if it is caught with illegal software
Software upgrades should be carefully evaluated
Software support should be carefully evaluated
Shareware and Freeware can save you money:
– Shareware is the software where a user is expected to pay the author a
modest amount
– Freeware is free software
Programming Languages
All software programs, both systems software and application
software are written using programming languages
The first generation: Machine language (low level language)
– Written in binary code (0 and 1)
– Machine language is the language of the CPU
The second generation: Assembly language
– Replaces binary code with symbols understood by humans
The third generation: High-level languages (i.e. BASIC and
COBOL)
– Translate each statement to many machine language instructions
– English-like, appropriate for certain types of applications
– Hardware independent
The fourth generation: 4GLs
– 4GLs have query and database abilities
– 4GLs have code-generation and graphics abilities
Fifth generation
– Visual or graphical development interface to create source language
Object Oriented Programming Languages
Object-Oriented programming languages put data and
action in an object and use message to allow the interaction
between objects.
Smalltalk (popular object-oriented language)
C++ (enhancement of C to use the object-oriented
approach)
Java (allows programmers to develop applications that
work across the Internet). Java code is embedded into the
home page.
Programming Language Selection
Selecting the best programming language to use for a
particular program involves balancing the functional
characteristics of the language with cost, control and
complexity issues.
Language Translators
Machine language is the only language capable of directly
instructing the CPU. Every non machine language program
instruction must be translated into machine language prior
to execution. Language Translators convert high-level code
into machine language.
Interpreters translate one program statement at a time, as
the program is running.
Compilers translate a complete program into machine
language, then the machine language is executed as
needed. Because compiled programs run faster than
programs that are translated line by line by an interpreter,
programmers usually choose compilers to translate
frequently run business programs.
Points to Remember
What is Software
Overview of Software
Operating Systems
Popular Operating Systems
Utility Programs
Types of Application Software
Proprietary Application Software
Off-the-shelf Application Software
Standard Off-the-shelf Application Software
Software Issues and Trends
Programming Languages
Object Oriented Programming Languages
Programming Language Selection
Language Translators