CH004

60
Computer Software Chapter 4 Copyright © 2010 by the McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill/Irwin

Transcript of CH004

Page 1: CH004

Computer Software

Chapter 4

Copyright © 2010 by the McGraw-Hill Companies, Inc. All rights reserved.McGraw-Hill/Irwin

Page 2: CH004

4-2

Learning Objectives

Describe several important trends occurringin computer software

Give examples of several major types of application and system software

Explain the purpose of several popular software packages for end user productivity and collaborative computing

Page 3: CH004

4-3

Learning Objectives

Define and describe the functions of an operating system

Describe the main uses of computer programming software, tools, and languages

Describe the issues associated with open source software

Page 4: CH004

4-4

Types of Application & System Software

Page 5: CH004

4-5

General Purpose

– Programs that perform common information processing jobs for end users

– E.g., word processing, spreadsheet– Also call productivity packages

Application-specific

– Programs that support specific applications of end users

– E.g., electronic commerce, customer relationship management, etc.

Application Software (Functionality-based)

Page 6: CH004

4-6

Commercial Off-the-Shelf (COTS)

– Many copies sold

– Minimal changes beyond scheduled upgrades

– Purchasers have no control over specifications, schedule, or evolution, and no access to source code or internal documentation

– Product vendor retains the intellectual property rights of the software

Custom

– Software applications developed within an organization for use by that organization

Application Software (Development-based)

Page 7: CH004

4-7

Application Software (Development-based)

Open-source Software

– Developers collaborate on the development of an application using programming standards which allow anyone to contribute to the software

– As each developer completes a project, the application code becomes available and free to anyone who wants it

Page 8: CH004

4-8

Business Application Software

Thousands of these packages support specific end-user applications

Customer Relationship Management

Enterprise Resource Planning

Supply Chain Management

Function-Specific Application Software

Web-enabled electronic commerce

Page 9: CH004

4-9

Software Suites

Most widely used productivity packages are bundled as software suites

Advantages

1. Cost less than buying individual packages

2. All have similar GUI

3. Programs work well together

Disadvantages

1. All features not used

2. Takes a lot of disk space (bloatware)

Page 10: CH004

4-10

Components of Top Software Suites

Page 11: CH004

4-11

Integrated Packages

Integrated packages combine the functionsof several programs into one package

E.g., Microsoft Works, AppleWork

Advantages

1. Many functions for lower price

2. Uses less disk space

3. Frequently pre-installed on PCs

Disadvantages

1. Limited functionality

Page 12: CH004

4-12

Web Browsers (the universal client)

Software that supports navigation through point-and-click, hyper-linked Web resources

Becoming the universal platformfrom which end users launch…

Information searches

E-mail

Multimedia file transfer

Discussion groups

Other Internet-based applications

Page 13: CH004

4-13

Search Engines

Google, Ask Jeeves, Look Smart, Lycos, Overture, Yahoo!

Browsers are used to gain accessto Internet search engines

Using search engines to find information has become an indispensable part of Internet,

intranet, and extranet applications

Page 14: CH004

4-14

E-mail, Instant Messaging, Weblogs

E-mail– Sending and receiving messages and

attachments via the Internet, intranet, or extranet e.g. Microsoft Hotmail

Instant messaging (IM)– Receive electronic messages instantly

Weblog or blog– A personal website in dated log format– Updated with new information about a subject

or range of subjects

Page 15: CH004

4-15

e.g. of a blog

Page 16: CH004

4-16

Word Processing/Desktop Publishing

Word Processing

– Create, edit, revise, and print attractive documents– Convert documents to HTML– E.g., Microsoft Word, Lotus WordPro, Corel

WordPerfect

Desktop Publishing

– Produce printed materials that look professionally published

– Brochures, manuals and books– E.g., Adobe PageMaker, Microsoft Publisher,

QuarkXPress

Page 17: CH004

4-17

Electronic Spreadsheets

Used by virtually every business foranalysis, planning, modeling

Worksheet of rows and columns

Can be stored on local computers or a network

Requires designing format and developingthe relationships (formulas)

Most help you develop charts and graphdisplays of spreadsheet results

Supports what-if questions

Page 18: CH004

4-18

Presentation Graphics

Microsoft PowerPoint, Lotus Freelance, Corel

Presentations

Top packages can tailor files for

transfer in HTML format to websites

Convert numeric data into graphics

Commonpresentation

graphicspackages…

Are used to create multimedia

presentations of graphics, photos, animation, video

Helps emphasis things

Page 19: CH004

4-19

Personal Information Managers

Manages schedules, appointments, tasks

Most have ability to access the Web and e-mail

Stores information about clients

Some support team collaboration by sharing information with other PIM users

e.g., Lotus Organizer, Microsoft Outlook

Software for end user productivity and collaboration

Page 20: CH004

4-20

Personal Information Managers

Page 21: CH004

4-21

Groupware

Software that helps workgroups collaborate on group assignments– E-mail, discussion groups, databases, audio, and

video conferencing– E.g., Lotus Notes, Novell GroupWise, Microsoft

Exchange– Rely on the internet, intranet and extranet to make

collaboration possible.– Collaborative capabilities are being added to other

software e.g. Excel – Windows SharePoint Services and WebSphere both

allow teams to create websites for information sharing and document collaboration

Page 22: CH004

4-22

Software Alternatives

Outsource software development and maintenance

Application service providers (ASPs)– Companies that own, operate, and maintain

application software and computer system resources

– Use the application for a fee over the Internet– Advantage1: Pay-as-you-go, low cost of initial

investment, less time.– Advantage2: Reduce IT infrastructure e.g. IT

personnel – Use expected to accelerate

Page 23: CH004

4-23

ASP Example

Page 24: CH004

4-24

Cloud Computing

Software and virtualized hardware resources are provided as a service over the Internet– No technology knowledge, expertise, or control

needed– Often confused with grid computing– Pay-for-use avoids capital expenditures– Sharing “perishable and intangible” computer

power improves utilization rates– Capacity can be scaled upward almost instantly– Immediate access to broad range of applications– Contracts can generally be terminated at any time

Page 25: CH004

4-25

Cloud Computing

Page 26: CH004

4-26

Cloud Computing

Page 27: CH004

4-27

Cloud Computing e.g. “SkyDrive”

Page 28: CH004

4-28

Cloud Computing

Page 29: CH004

4-29

Categories of System Software

SystemManagement

Programs

System Development

Programs

Manages hardware, software, network, and data resources of computer systems

Operating systems, network management programs, database

management systems, system utilities

Helps users develop IS programs and procedures, and then prepare them

for processing

Includes language translators and editors, CASE, and programming tools

Page 30: CH004

4-30

Interface Between End Users & Computer

Page 31: CH004

4-31

Operating Systems

Integrated system of programs that…

Provides support

services as the computer executes

application programs

Manages the operations of

the CPU

Controls the input/out, storage

resources, and activities of the

computer system

The operating system must be loaded and activatedbefore other tasks can be accomplished

Page 32: CH004

4-32

Operating Systems

The primary purpose of an Operating System:

1- Maximize the productivity of a computer system

2- Minimizes the human intervention during processing

Page 33: CH004

4-33

Operating System Basic Functions

•Command-driven•Menu-driven•Graphical User Interfaces (GUI)

Page 34: CH004

4-34

Operating System Basic Functions User Interface: Allow communicating with the computer

Resource Management

Part of the operating system that manages the hardware and networking resources of a computer system

– Includes CPU, memory, secondary storage devices, telecommunications, and input/output peripherals

Common functions

– Keeping track of where data and programs are stored– Subdividing memory; providing virtual memory capability

File Management

Part of the operating system that controls the creation, deletion, and access of files and programs– Keeps track of physical location of files on storage devices– Maintains directories of information about the location and

characteristics of stored files

Page 35: CH004

4-35

Operating System Basic FunctionsTask Management

Part of the operating system that manages the accomplishment of end user computing tasks– Controls which task gets access to the CPU,

and for how long– Can interrupt the CPU at any time to substitute

a higher priority task– Supports preemptive and cooperative multi-tasking and

multi-processing1- Multitasking:

(multiprogramming or time-sharing): using only one CPU 2 Types:

A) Preemptive B) Cooperative

2- Multiprocessing: • using more than one CPU

Page 36: CH004

4-36

Popular Operating Systems

Windows– GUI, multitasking, networking, multimedia– Microsoft’s operating system– NT, XP, 2003– Different versions manage servers

Standard, enterprise, data center, Web

Unix– Multitasking, multi-user, network-managing– Portable - can run on mainframes, midrange,

and PCs

Page 37: CH004

4-37

Popular Operating Systems

Linux– Low-cost, powerful, reliable, Unix-like

operating system

– Open-source

Page 38: CH004

4-38

Open Source Software

The basic idea– When programmers can read, redistribute, and

modify source code, the software evolves

– This can happen at astonishing speed

– Produces better software than the traditional commercial (closed) model

– The proprietary (commercial) approach to software development has hidden costs that often outweigh its benefits

Page 39: CH004

4-39

Open Source Software

Open source software is not…– Shareware– Public domain software– Freeware– A viewer or reader made freely available

without source code

OSS…– Is copyrighted & distributed with license terms– Sometimes carries a fee for packaging,

distribution, or support

Page 40: CH004

4-40

Examples of Open Source Software

Open Office– Can be used for any purpose: domestic, commercial,

educational, or public administration

Mac OS X– Based on a form of UNIX

– Advanced GUI

– Supports multi-tasking and multimedia

– Integrated Web browser, e-mail, instant messaging, search engine, digital media player, and more

– Includes software development tools

Page 41: CH004

4-41

Application Virtualization

A term for software technologies that improve portability, manageability, and compatibility of applications

– Works by insulating applications from the underlying operating system

Benefits

– No need for multiple platforms for multiple applications

– Energy savings from not having servers running at low capacity

Page 42: CH004

4-42

Application Virtualization e.g. (VMware)

Page 43: CH004

4-43

Other System Management Software

Utilities– Miscellaneous housekeeping functions– Example: Norton utilities includes data backup,

virus protection, data compression, etc.

Performance Monitors– Programs that monitor and adjust computer

system to keep them running efficiently

Security Monitors– Monitor and control use of computer systems

to prevent unauthorized use of resources

Page 44: CH004

4-44

Application Servers

Provide an interface between an operating system and the application programs of users

Middleware– Helps diverse software applications exchange data

and work together more efficiently

– E.g. web servers

Page 45: CH004

4-45

Programming Languages

Page 46: CH004

4-46

Machine Languages

First Generation Languages

The most basic of programming languages

Strings of binary codes unique to each computer

Requires specific knowledge of theinternal operations of the CPU being used

Must specify the storage location for everyinstruction and item of data used

Difficult to work with, and error prone

Page 47: CH004

4-47

Assembler Languages

Second Generation Languages

Developed to reduce difficultiesin writing machine language programs

Uses assemblers to convert the programsinto machine instructions

Symbols used to represent operation codesand storage locations

Alphabetic abbreviations, called mnemonics, and other symbols represent operation codes,

storage locations, and data elements

Page 48: CH004

4-48

High-Level Languages

Third Generation Languages

Uses brief statements or arithmetic expressions

Statements translated into machine languageby compilers or interpreters

Easier to learn and program, Less efficient than assembler language and requires greater translation time

Machine independent

Examples: BASIC, COBOL, FORTRAN

Page 49: CH004

4-49

Fourth-Generation Languages

Fourth-Generation Languages

Variety of programming languages that arenonprocedural and conversational

Programmers specify the result wanted;the computer determines the sequence of

instructions that accomplish the result

Simplifies the programming process

Natural language; very close to English

Sometimes called fifth-generation (5GLs)

Page 50: CH004

4-50

SQL (4GL)

Page 51: CH004

4-51

Object-Oriented Languages

Page 52: CH004

4-52

Object-Oriented Languages

Combines data elements and the procedures that will be performed uponthem into objects– E.g., data about a bank account and the

procedures performed on it, such as interest calculations

Page 53: CH004

4-53

Object-Oriented Languages

Easier to use and more efficient for graphics-oriented user interfaces

Easier to use and more efficient for graphics-oriented user interfaces

Most widely used software development languages

Most widely used software development languages

Reusable: can use an object from one application in another application

Reusable: can use an object from one application in another application

Examples: Visual Basic, C++, JavaExamples: Visual Basic, C++, Java

Most object-oriented languages provide a GUI that supports visual programming

Most object-oriented languages provide a GUI that supports visual programming

Page 54: CH004

4-54

Web Languages

HTML A page description language that creates hypertext documents for the Web

XML Describes Web page content by applying identifying tags or contextual

labels to the data

Java Object-oriented programming language that is simple, secure, and platform independent

Java applets can be executedon any computer

Page 55: CH004

4-55

HTML e.g.

Page 56: CH004

4-56

XML e.g.

Page 57: CH004

4-57

Java Applet

Page 58: CH004

4-58

How Web Services Work

Web services are software components that are:– Based on framework of Web and object-

oriented standards and technology

– Used to link the applications of different users and computing platforms via the Web

Page 59: CH004

4-59

Language Translator Programs

Translate instructions written in programming languages into machine language

AssemblerAssembler

Translates assembler language statement

CompilerCompiler

Translates high-level language

statements

InterpreterInterpreter

Translates and executes each statement ina program,

one at a time

Page 60: CH004

4-60

Programming Tools

Help programmers identify and minimize errors while they are programming– Graphical programming interfaces– Programming editors– Debuggers

CASE Tools– A combination of many programming tools into

a single application with a common interface– Used in different stages of the systems

development process