Chapter 4 Computer Software McGraw-Hill/Irwin Copyright © 2013 by The McGraw-Hill Companies, Inc. All rights reserved. Learning Objectives Describe several important trends occurring in 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-2 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-3 Section 1 Application Software: End-user Applications 4-4 I. Introduction to Software What is Software? – software is programs – instructions that tell the computer and associated peripherals what to do Types of Software System Software – programs that run the computer Application Software – programs perform a function/job for you 4-5 I. Introduction to Software Application Software for End Users General Purpose Application Programs – perform common information processing jobs for end users Productivity Package – increases productivity of user Application-Specific Software – does a specific function 4-6 I. Introduction to Software Custom Software – designed and created specifically to do a particular job for one company Commercial Off-the-Shelf Software (COTS) – developed to sell many copies (usually for profit); source code may not be modified by user Open Source Software – anyone may modify the software, the documentation and source code are available to anyone 4-7 I. Introduction to Software 4-8 II. Business Application Software Available to support any part of business Reengineer/Automate Business Processes Customer Relationship management (CRM) Enterprise Resource Planning (ERP) Supply Chain Management (SCM) 4-9 II. Business Application Software Internal Organizational Activities Human Resource management (HRM) Accounting Finance Decision Support tools Data Mining Enterprise Information Portals Knowledge Management Systems 4-10 SAP Business Suite 7: Introducing Modular Scenarios Cutting Across Organizational Functions What is Business Suite 7? What does Business Suite 7 provide? How does this help the organization? What is the Need that this product fills? 4-11 III. Software Suites and Integrated Packages Software Suites – bundle together a variety of general-purpose software applications Advantages: Lower cost than buying each package individually All the programs use a common graphical user interface (GUI) The programs are designed to work together Disadvantages: Many features are never used Suites take up a lot of disk space 4-12 III. Software Suites and Integrated Packages Integrated Packages – combine some but not all of the functions of several programs; offer advantages in a smaller package Less powerful than software suites – leave out some functions Take up less disk space than software suites Cost less than software suites 4-13 IV & V. Web Browsers & E-Mail Web Browsers – the most widely used software (even more than email) Electronic Mail, Instant Messaging, and Blogs Email – has changed the way people communicate Instant Messaging (IM) – email/computer-conferencing hybrid Blog – short for Weblog or Web Log – a personal or commercial website on a particular topic or range of topics, frequently updated 4-14 VI. Word Processing and Desktop Publishing Word Processing – creation, revision, editing, and printing of documents; spell checkers and grammar checkers, thesaurus Desktop Publishing – produce printed documents that look professionally published 4-15 VII & VIII. Spreadsheets and Presentation Graphics Spreadsheets – used for analysis, planning, and modeling; calculations, graphics, what-if scenarios Presentation Graphics – convert numeric data into graphics displays for easy and intuitive comprehension 4-16 IX & X. Personal Information Managers (PIM) and Groupware Personal Information Managers (PIM) – help end-users store, organize, and retrieve basic personal and business information Groupware – helps workgroups and teams collaborate 4-17 XI. Software Alternatives Application Service Providers – provide necessary applications for a fee (rather than a firm developing or purchasing the s/w) Cloud Computing – a recent advance in computing and software delivery; software and virtualized hardware are provided as a service over the Internet; “cloud” is a metaphor for the Internet Software Licensing – a complex topic involving copyrights, trademarks, and intellectual property rights; in most cases software is not purchased but “licensed” for use under very specific circumstances 4-18 McAfee Inc.: Security under a Softwareas-a-Service Model What SaaS does McAfee offer? What are the advantages of this service? How is different from other products on the market? 4-19 Australian Maritime Safety Authority: Cloud Computing? Nothing New What need did AMSA have? How did a cloud service provide for this need? What were the cost differentials between in-house development and the SaaS version? What were the risks of using the SaaS version? 4-20 Section 2 System Software: Computer System Management 4-21 I. System Software Overview System Management Programs – programs that manage the hardware, software, network, and data resources System Development Programs – programs that help users develop IS programs and procedures; CASE tools 4-22 I. System Software Overview 4-23 II. Operating Systems – programs that run the computer operations Operating Systems Functions – User Interface – how the user communicates with the computer Graphical User Interface (GUI) Command-driven Menu Driven Resource Management – manages the hardware and network resources File Management – controls the creation, deletion, and access of files of the data and programs 4-24 II. Operating Systems – programs that run the computer operations Operating Systems Functions – Task Management – manages which tasks are performed and when Multitasking (Multiprogramming or Timesharing) – programs take turns using the processor Preemptive – each program gets a slice of time Cooperative – programs use the processor when it is not being used by another program Virtual Machines- applications run independently at the same time 4-25 II. Operating Systems – programs that run the computer operations Unix – a multitasking, multiuser, portable (runs on different hardware platforms) operating system Linux – low-cost, reliable, powerful, open-source UNIX-like operating system Open-Source Software – source code is available to users, can be modified by users 4-26 II. Operating Systems – programs that run the computer operations OpenOffice.org 3 – an open-source office suite, may be used entirely free without any license fees Mac OS X – the latest OS from Apple for Macintosh computers Application Virtualization – software technologies that allow applications to run on various platforms 4-27 Toronto’s Hospital for Sick Children: Challenges in Making Virtualization Work What is the biggest problem with virtualization at “Sick Kids”? What is another problem? What does this tell you about many vendors? Why would they do this? What’s the problem with data migration? Why is this a continuing problem? 4-28 III. Other System Management Programs Utilities – system management programs marketed separately from an operating system Middleware – helps diverse software work together more efficiently 4-29 IV. Programming Languages Machine Languages – first generation language – instructions written in binary (0’s and 1’s); runs directly on the computer Assembler Languages – second generation language – uses symbols/mnemonics to represent operational codes; converted into binary by an Assembler High-Level Languages – third generation language – BASIC, COBOL, FORTRAN; converted into binary by Compliers and Interpreters; users tell the computer What results they want and How to get there 4-30 IV. Programming Languages Fourth-Generation Languages (4GL) – nonprocedural languages; users tell the computer What results they want, but the computer decides How to get there Fifth Generation Languages (5GL) – natural languages, very close to English, conversational Object-Oriented Languages (5GL) – combine the data elements and the programs that act on them into Objects; Reusability 4-31 Modern (and Automatic?) Code Generation Why is automatic code generation important? Why would this be important for nonprogrammers? 4-32 V. Web and Internet Languages and Services HTML (Hypertext Markup Language) – a page description language (markup languages are NOT programming languages) XML (eXtensible Markup Language) – describes the Content of Web pages by applying contextual labels to the data 4-33 Aptara Inc.: Revolutionizing the Publishing Industry through XML Why are traditional publishing houses experiencing lower sales? Why is a shift to digital publishing a challenge? What opportunities are to be found? Why is this good for the user/customer? What does .xml have to do with this? 4-34 V. Web and Internet Languages and Services Java and .NET Java – a platform independent, object-oriented programming language; very powerful Applets – small Java programs that can be executed by any computer running any OS anywhere on the network .NET – Microsoft’s collection of programming support for Web services Web Services – software that electronically links applications of different users and different platforms 4-35 V. Web and Internet Languages and Services 4-36 Airbus: Flying on SAP and Web Services Why does Airbus like an open architecture? Why did Airbus want a Web-services based travel management system? What benefits does this system provide? 4-37 VI. Programming Software Language Translator Programs – instructions must be translated into binary to be executed by the computer Assembler – translates symbolic instructions written in assembly language Compiler – translates high level language statements; translates the entire program (Source code) into binary (Object code) then executes the entire binary program 4-38 VI. Programming Software Interpreter – translates and executes one line of the program at a time Programming Tools – help programmers identify and minimize errors as they write the code CASE Tools (Computer-Aided Software Engineering) – automated software support tools for developing systems 4-39