Chapter 4 Computer Software Learning Objectives 1. 2. 3. 4. 5. Describe several important trends occurring in computer software. Give examples of major types of application and system software. Explain the purpose of several popular software packages for end user productivity and collaborative computing. Define and describe the functions of an operating system. Describe the main uses of computer programming software, tools, and languages Software A single program or a collection of programs which performs many task and/or system related functions Two types of software: – Application – System Application Software • • • • Personal Information Manager Groupware Organizational Inter-organizational 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 on group assignments – E-mail, discussion groups, databases, videoconferencing Organizational & Interorganizational Organizational They assist typical organizational tasks – Payroll, TPS – ERP,CRM – Web-based management systems Inter-organizational They provide links or cooperation between organizations – B2B system – EDI, SCM Overview of Computer Software Computer Software Application Software General Purpose Application Programs ApplicationSpecific Programs System Software System Management Programs System Development Programs Software development • Custom software – Software applications that are developed within an organization for use by that organization • COTS software – Commercial Off-the-shelf (COTS) • Classify based on how it was developed – Software developed with the intention of selling the software in multiple copies • Outsourced software Software Development Selection • Why would you choose ? – Custom (in source) – COTS (off-the-shelf) – outsourced? General-Purpose Application Programs Software Suites and Integrated Packages Oracle E-Business Suite Word Processor Word WordPro Corel WordPerfect Office WordPerfect Spreadsheet Excel 1-2-3 Quattro Pro StarCalc Presentation Graphics PowerPoint Freelance Presentations StarImpress Database Manager Access Approach Paradox StarBase Personal Info. Manager Outlook Organizer Corel Central StarSchedule Programs Microsoft Office Lotus SmartSuite Sun Star Office StarWriter Electronic Spreadsheets and Presentation Graphics • 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 General-Purpose Application Programs • Web Browsers • Electronic Mail and Instant Messaging (IM) • Word Processing and Desktop Publishing • Electronic Spreadsheets • Database Management • Presentation Graphics • Personal Information Managers • Groupware – Collaboration Software General-Purpose Application Programs Application Service Providers (ASPs) System Software: Computer System Management Software Interface Between End Users and Computers End Users Application Software System Software Computer Hardware System Software • Operating Systems • Utility software • Network Software Operating Systems The User Interface • Command-Driven • Menu-Driven • Graphical User Interface OS contain two parts Supervisory – Stays in main memory Transient – Can be swapped back and forth from secondary memory Operating Systems User Interface End User Systems and Network Communications Resource Management Task Management File Management Utilities and Other Functions Managing the Use of Hardware Resources Managing the Accomplishment Of Tasks – Managing Data and Program Files Providing a Variety of Support Services Operating Systems Resource Management –Virtual Memory File Management Task Management –Multitasking, –Multiprocessing –Multi-user programming Popular Operating Systems • • Windows – – – GUI, multitasking, networking, multimedia Microsoft’s operating system Different versions manage servers – – – – – Vista Windows XP Windows NT Windows Server 2003 Windows 2000 Unix – – Multitasking, multiuser, network-managing Portable – can run on mainframes, midrange and PCs – Solaris by Sun – AIX by IBM Popular Operating Systems • Linux – – – Low-cost, powerful reliable Unix-like operating system Open-source Free – – – – Freeware Novell SUSE Linux Red Hat VA Linux • MAC OS X – – Apple operating system for the iMac GUI, multitasking, multimedia Programming Languages Machine Languages Use Binary Coded Instructions 1010 1011 1100 11001 11010 11011 Assembler Languages Use Symbolic Coded Instructions LOD Y ADD Z STR X Programming Languages High-Level Languages Use Brief Statements or Arithmetic BASIC: X = Y + Z COBOL: COMPUTE X = Y + Z Fourth-Generation Languages Use Natural and Nonprocedural Statements SUM THE FOLLOWING NUMBERS Objects What are objects? Programming Languages Object-Oriented Languages Withdraw (amount) Current Account Balance Deposit (amount) Savings Account Object Object-oriented Programming Languages Web Languages and Services HTML XML JAVA – Platform Independence – Program Applets JAVA2 Enterprise Edition Microsoft .NET Software Language Translator Programs Translate instructions written in programming languages into machine language • Assembler – translates assembler language statements • Compiler – translates high-level language statements • Interpreter – compiler that translates and executes each statement in a program one at a time Errors (Bugs) • Logical • Syntax • Execution 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 electronic messages instantly • Weblog or blog – A personal website in dated log format – Updated with new information about a subject or range of subjects • Myspace Programming Languages J2EE and .NET Compared Program Development Process • Determine Program specs – Work with users – I/O layout – Processing requirements • Use Program Planning Tools – Analyze the problem using • • • • Flow Charts Pseudo code Structured charts CASE tools Programming Development Process • Code and enter Program – Code program’s logic into programming language • Compile the program – Test for errors (syntax, run execution) • Test the program for correctness (GIGO) – Processing – Robustness • Documentation FLOW CHARTS • Symbolic representation of program’s logic • Pre defined symbols are used to analyze program’s logic Programming Logic • Sequence • Selection • Looping (Iteration) • Case 2/p128