CH004
Transcript of CH004
Computer Software
Chapter 4
Copyright © 2010 by the McGraw-Hill Companies, Inc. All rights reserved.McGraw-Hill/Irwin
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
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
4-4
Types of Application & System Software
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)
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)
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
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
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)
4-10
Components of Top Software Suites
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
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
Multimedia file transfer
Discussion groups
Other Internet-based applications
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
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
4-15
e.g. of a blog
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
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
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
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
4-20
Personal Information Managers
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
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
4-23
ASP Example
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
4-25
Cloud Computing
4-26
Cloud Computing
4-27
Cloud Computing e.g. “SkyDrive”
4-28
Cloud Computing
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
4-30
Interface Between End Users & Computer
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
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
4-33
Operating System Basic Functions
•Command-driven•Menu-driven•Graphical User Interfaces (GUI)
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
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
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
4-37
Popular Operating Systems
Linux– Low-cost, powerful, reliable, Unix-like
operating system
– Open-source
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
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
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
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
4-42
Application Virtualization e.g. (VMware)
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
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
4-45
Programming Languages
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
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
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
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)
4-50
SQL (4GL)
4-51
Object-Oriented Languages
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
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
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
4-55
HTML e.g.
4-56
XML e.g.
4-57
Java Applet
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
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
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