4 Computer Software Chap ter

advertisement
Computer Software
Application Software
Systems Software
Operating Systems
Chapter
4
What Is Software?
 Software
is the general term for various kinds of
programs used to operate and manipulate computers
and their peripheral devices.
 One
common way of describing hardware and
software is to say that software can be thought of as
the variable part of a computer and hardware the
invariable part.
4-2
Types of software
3-3
Software types
 Application
 Performs
 System
software
information processing tasks for end users
software
 Manages
and supports operations of computer systems
and networks
3-4
Application software
 General
purpose
 Programs
that perform common information
processing jobs for end users
 E.g., word processing, spreadsheet, Web browsers,
electronic mail, etc.
 Also called productivity packages
 Application-specific
 Programs
that support specific applications of end
users
 E.g., electronic commerce, customer relationship
management, etc.
3-5
Another Software classification
 An
additional common way of classifying software is
based on how the software was developed:
 Custom software
 Software
applications that are developed within an
organization for use by that organization
 COTS
software
 Commercial
Off-the-shelf (COTS)
 Software developed with the intention of selling the
software in multiple copies .yo
 the vendor of the product retains the intellectual
property rights of the software.
3-6
Software Suites
 Software
o
suites integrate software packages
Advantages:
Cost less than buying individual packages
 All have a similar GUI of icons, tool and status bars, menus,
and so on:
 which gives them the same look and feel, and makes them
easier to learn and use.
 And also share common tools such as spell checkers and help
wizards to increase their efficiency
 Work together well and import each other’s files easily.

o
3-7
Disadvantages

Features not used by all users

Take a lot of disk space
Software Suites
3-8
Integrated Packages
 Integrated packages

Combine the functions of several programs into one package

E.g., Microsoft Works, AppleWorks, Lotus eSuite and
workplace
o
Advantages:

Enough functions and features for lower price and smaller
disk space
o
Disadvantage

3-9
Limited functionality (leave out many features and functions
that are in software suites)
Web Browser
 Software
applications that support navigation
through the point-and-click resources of the Web (
surfing the web)
 Becoming a universal software platform for Internetbased applications ( launch information searches, e-mail,
multimedia file transfer, discussion groups )
 Microsoft
Explorer, Netscape Navigator, Firefox,
Opera or Mozilla
3-10
E-mail, Instant Messaging and
Weblogs
 E-mail
 Software
to communicate by sending and receiving
messages and attachments via the Internet, intranet or
extranet
 Instant
messaging (IM)
 Receive
 Weblog
A
electronic messages instantly
or blog
personal website in dated log format
 Updated with new information about a subject or range
of subjects
3-11
Word processing and Desktop
publishing
 Word
processing

Create, edit, revise and print documents

E.g., Microsoft Word, Lotus WordPro and Corel WordPerfect
 Desktop
3-12
Publishing

Produce printed materials that look professionally published
(design and print their own newsletters, brochures, manuals,
and books with several type styles, graphics, photos, and
colors on each page.)

E.g., Adobe PageMaker, Microsoft Publisher and
QuarkXPress
Electronic Spreadsheets and
Presentation Graphics


3-13
Electronic Spreadsheets

Worksheet of rows and columns

Used for calculations and charts

E.g., Lotus 1-2-3, Microsoft Excel,
Corel QuattroPro
Presentation Graphics

Convert numeric data into graphics
displays

Prepare multimedia presentations
including graphics, photos,
animation, and video clips

E.g., Microsoft PowerPoint, Lotus
Freelance, Corel Presentations
Personal Information Manager and Groupware
Personal Information Manager (PIM)
 Software for end user productivity
and collaboration
 Store information about clients,
schedules, manage appointments,
manage tasks
 E.g., Lotus Organizer, Microsoft
Outlook
 Groupware
 Software that helps workgroups
collaborate to accomplish group
assignments
 E-mail, discussion groups, databases,
videoconferencing
 E.g., Lotus Notes, Novell GroupWise,
Microsoft Exchange

3-14
Software alternatives

many large companies are Outsourcing development and
maintenance of software by Application service providers
(ASPs) instead of developing or purchasing the application
software they need to run their businesses

(ASPs): Companies that own, operate and maintain
application software and computer system resources
(servers, system software, networks)
 Advantages:



3-15
the low cost of initial investment
the short time needed to get the Web-based application set
up and running.
ASP eliminates or drastically reduces the need for much of
the IT infrastructure (servers, system software, networks)
Software Licensing
 All
software (COTS, ASP) is licensed
 You
don’t buy software: you buy a license to use the
software under the terms of the licensing agreement
 Licensed
3-16
to protect the vendor’s property rights
Open-source license
 The
open-source license generally grants the right to
run the program, own a copy of the program’s source
code, modify the program’s source code, and
distribute copies of the programs you build using the
open-source code.
 The only thing you usually can’t do is fold an opensource program into a program you’re licensing
under a proprietary license.)
4-17
Open-Source Software
 Open-source
software
 Also
referred to as free software
 Software can be modified
 Typically acquired with a license
 License grant you the right to run the software, own the
source code, modify the source code and distribute
copies of the software
 Free but have to pay for training, support,
documentation
 Examples:
Linux, Apache Web server, Sendmail, Perl
scripting language
3-18
Case Study Questions
1.
What are the business benefits of adopting opensource software?
2.
What are the risks associated with open-source
software? How can these risks be addressed?
3.
Do you see open-source software eventually
replacing the current proprietary software model?
Explain your answer.
3-19
Real World Internet Activity
1.
A wide variety of organizations have been formed
to advance the open-source initiative. Using the
Internet,

See if you can find information on these open-source
advocate organizations.

3-20
A good place to start is www.opensource.org
Real World Group Activity
2.
Supporters as well as detractors of open-source
operating systems such as Linux are quite
passionate about their feelings. In small groups,

Discuss the advantages and disadvantages of open-source
applications.

If any of your classmates have experience with systems
such as Linux, ask them to explain their feelings and
experiences.
3-21
Section II: System software
 System
Software consists of programs that manages and
supports operations of computer systems and networks:
 System management programs


Programs that manage hardware, software, network, and data
resources
E.g., operating systems, network management programs,
database management systems, systems utilities
 Systems

development programs
Programs that help users develop information system programs
and prepare user programs for computer processing.
 E.g.,
programming language translators and editors, CASE
(computer-aided software engineering) and other
programming tools.
3-22
Operating System
 Integrated
system of
programs that:
 Manages
the operations of
the CPU
 Controls the input/output
and storage resources and
activities of the computer
system
 Provides support services as
computer executes
applications programs
3-23
Operating System basic functions
3-24
User Interface
 Part
of the operating system that allows you to
communicate with it, so you can load programs,
access files, and accomplish other tasks.
 Three
main types:
 Command-driven
 Menu-driven
 Graphical
user interfaces (GUI) that uses icons, bars,
buttons, boxes, and other images.
3-25
Command-driven
4-26
Menu-driven
4-27
Graphical user interfaces (GUI)
4-28
The Kernel
Kernel is the most
common term for the
core of the operating
system.
 the kernel manages
hardware devices,
memory allocation,
system processes, and
other programs.

Resource management
 Part
of operating system that manages the hardware
and networking resources of a computer system
 Includes
CPU, memory, secondary storage device,
telecommunications, and input/output peripherals
 E.g.
Virtual memory
 Swapping
parts of programs and data between main
memory and magnetic disks
3-30
File management
 Part
of the operating system that controls the
creation, deletion, and access of files of data and
programs.
 File management also involves keeping track of the
physical location of files on magnetic disks and other
secondary storage devices.
 So
operating systems maintain directories of
information about the location and characteristics of
files stored on a computer system’s secondary storage
devices.
3-31
Basic File management System
Valid? Name
Block 0
(directory) 1
“file1.txt”
Addr len
1
2
“program.com” 3
3
0
1
Blocks 1
and 2
Blocks 3, 4
and 5
4-32
file1.txt
program.com
Task Management
 Part
of the operating system that manages the
accomplishment of computing tasks of the end users
 The Task Management programs control which task
gets access to the CPU and for how much time.
 The task management functions can allocate a specific
slice of CPU time to a particular task and interrupt the
CPU at any time to substitute a higher priority task.
3-33
Task Management (2)
 Multitasking
(multiprogramming or time-sharing)
 Task
management approach that allows for several
tasks to be performed in a seemingly simultaneous
fashion:

Assigns only one task to CPU but switches between tasks
so quickly looks like executing all programs at once
 Multiprocessing:
more than one CPU is being
accessed, but in multitasking, only one CPU is in
operation.
4-34
Popular Operating Systems

Windows
 Microsoft’s operating system:


Different versions manage servers :


3-35
(DOS/Windows, Windows 95 , Windows 98, Windows Me
(Millennium Edition)(2000) ), Windows XP
(Windows NT (New Technology) (1995), Windows 2000),
Windows XP , Windows Server 2003)
Unix
 can run on mainframes, midrange and PCs
 a popular choice for Web and other network servers.
 Solaris for Sun Microsystems, AIX for IBM
Popular Operating Systems

Linux
 Low-cost, powerful reliable Unix-like operating system
 Linux
was developed as free or low-cost shareware or
open-source software over the Internet in the 1990s


MAC OS X

4-36
Red Hat, Caldera, and SUSE Linux
Apple operating system for the iMac and other Macintosh
microcomputers
Other types of system software
3-37
Other system software: Utilities
 Serve
as tools for doing system maintenance and repairs
not handled by operating system
 Utilities make it easier for users to:

Copy files between storage devices

Repair damaged data files

Translate files so different programs can read them

Guard against viruses and other harmful programs

Compress files so they take up less space
 Example,
Norton utilities includes data backup, virus
protection, data compression, data recovery, and file
defragmentation, etc.
38
Other system software
 Performance
monitors
 Programs
that monitor and adjust computer system to
keep them running efficiently
 Security
monitors
 Programs
that monitor and control use of computer
systems to prevent unauthorized use of resources
3-39
Programming Languages
3-40
Machine Languages
 First-generation
 In
languages
the early stages of computer development, all
program instructions had to be written using binary
codes unique to each computer
 Programmers
had to know the internal operations of
the specific type of CPU
3-41
Assembler Languages
 Second-generation
languages
 Symbols are used to represent operation codes and
storage locations to reduce the difficulties in writing
machine language programs.
 Need language translator programs (assemblers) to
convert the instructions into machine instructions
 Convenient
alphabetic abbreviations (mnemonics) and
symbols represent operation codes, storage locations,
and data elements.
 Used
3-42
by systems programmers (who program system
software)
High-Level Languages
 Third-generation
languages
 Instructions that use brief statements or arithmetic
expressions
 These statements translated by compilers or interpreters
 Individual high level language statements are actually
Macroinstructions: each statement generates several
machine instructions
 Advantages:

Easier to learn than assembler languages.
 Disadvantage:

3-43
Less efficient than assembler and require a greater amount
of computer time for translation into machine
instructions. Because it is machine independent
High-Level Languages (2)
 The
syntax(vocabulary, punctuation, and
grammatical rules)
 and the semantics (meanings) of statements which do
not reflect the internal code of any particular
computer
4-44
Fourth-Generation Languages
 Variety
of programming languages that are
nonprocedural and conversational (Natural
Language)
 Nonprocedural
– users specify results they want
while computer determines the sequence of
instructions that will accomplish those results
 Natural
Language – very close to English or other
human language
3-45
Object-Oriented Languages

Combine data elements and
the procedures that will be
performed upon them into
Objects

E.g., an object could be data
about a bank account and the
procedures performed on it
such as interest calculations
3-46
Object-Oriented Languages
 Most
widely used software development languages
today
 Advantages:
 Easier to use and more efficient for graphicsoriented user interfaces
 Reusable: can use an object from one application
in another application
 E.g., Visual Basic, C++, Java
3-47
Procedural vs object-oriented
Procedural or imperative

Early high-level
languages

Contain functions
(or sub-routines)
written and used
inside the main
program

Cannot use external
functions easily
Object-oriented (OO)
 Later high-level
languages
 Contain methods
(or functions) and
variables that can be
written in main or
external programs
 Can call external
functions or variables
easily
Web Languages


3-49
HTML
 (HyperText Markup Language) a Web page format
description language that creates hypertext documents for
the Web
XML
 (eXtensible Markup Language) describes the contents of
Web pages by applying identifying tags or contextual labels
to the data in Web documents
 In XML you can create the name of the tags and attributes as
you want.
 Basically, XML is used to store data that can easily be
accessed or used by other applications, like PHP, JavaScript,
Web Languages (2)
 Java
 Object-oriented
programming language that is
simple, secure and platform independent
 Java is also specifically designed for real-time,
interactive, Web-based network applications.
 Java applications consisting of special-purpose
small application programs called Java applets can
be executed on any computer
4-50
Web Languages (3)
 Microsoft’s
.NET
 is a collection of programming support (Web
services), the ability to use the Web rather than
your own computer for various services
 .NET provide individual and business users with
Web-enabled interface for applications and
computing devices and make computing activities
increasingly Web browser–oriented.
Assembly Language Translator
Programs
 Translate
instructions written in programming
languages into machine language
 Assembler
 translates
language
3-52
assembler language statements into machine
High-level Language Translator
Programs
 Compiler

translates all of the instructions in a program as a single
batch into machine language

This is especially useful for larger programs that have to be
executed several times without having to be modified.
 Interpreter

translates each statement in a program one at a time into
machine language to be executed immediately

This is interesting to debug programs or for small programs
using little mass memory.
Source code takes much less space than object code.

4-53
Java uses interpreter
Programming Tools

3-54
most software development
programs now include
 Graphical Programming
Interfaces
 Programming Editors
 Debuggers
 Linkers
Editor
 Allows
you to create source files
 Some editors provide syntax highlighting features
and can be customized as a programming
environment
 Allows
Debugger
you to trace the execution of a program to
identify and minimize programming errors or bugs
 Allows
you to view code, memory, registers, etc.
Linker and Link Libraries
 You
files
 It
need a linker program to produce executable
combines your program's object file created by the
translator with other object files and link libraries,
and produces a single executable program
Translate and Link Process
Source
File
Source
File
Source
File
Translator
Object
File
Translator
Object
File
Linker
Translator
Object
File
Link
Libraries
Executable
File
A project may consist of multiple source files
Translator translates each source file separately into an object file
Linker links all object files together with link libraries
Software Development

Major activities
 Editing (writing the program)
 Compiling (creates .obj file)
 Linking with compiled files (creates .exe file)
 Object files
Source Program
 Library modules
Compile
 Loading and executing
Edit
 Testing the program
Link
Library routines
Other object files
Think
Load
Execute
Download