CHAPTER 3 Computer Software 3.1 © Prentice Hall 2002 THE STORED PROGRAM CONCEPT • COMPUTER IS A BINARY SYSTEM • PROGRAM: A set of instructions telling the computer what to do • INSTRUCTION: Individual step or operation in a program • MACHINE LANGUAGE: Translated instruction understood by particular model of computer 3.2 © Prentice Hall 2002 * EVOLUTION OF COMPUTER SOFTWARE • FIRST GENERATION: Machine language binary language designed for particular computer • SECOND GENERATION: Assembly language - substituted mnemonic operation codes and addresses, translated to machine language by assembler * 3.3 © Prentice Hall 2002 EVOLUTION OF COMPUTER SOFTWARE • THIRD GENERATION: Procedural language - FORTRAN, COBOL, C translated to machine language by compiler or interpreter. Example: COBOL • FOURTH GENERATION: Nonprocedural language. Tell what to do, not how to do it, order not important. Translate to machine language by compiler or interpreter. Example: FOCUS * 3.4 © Prentice Hall 2002 KEY TYPES OF SOFTWARE • APPLICATION SOFTWARE: Programs written to accomplish particular tasks for computer users • SUPPORT SOFTWARE: Programs that support application software in producing needed output. Does not directly produce output needed by users * 3.5 © Prentice Hall 2002 APPLICATION SOFTWARE • WORD PROCESSING • SPREADSHEETS • DATABASE MANAGEMENT SYSTEMS • PRESENTATION GRAPHICS * 3.6 © Prentice Hall 2002 APPLICATION SOFTWARE • WORLD WIDE WEB BROWSERS • ELECTRONIC MAIL, GROUPWARE • DESKTOP PUBLISHING • APPLICATION SUITES * 3.7 © Prentice Hall 2002 SUPPORT SOFTWARE • OPERATING SYSTEMS: Helps maximize work done, eases workload of users • JOB CONTROL LANGUAGE: Allows users to communicate with operating systems • MULTIPROGRAMMING: Large computers can run multiple programs simultaneously. Time-driven approach is time-sharing * 3.8 © Prentice Hall 2002 SUPPORT SOFTWARE • MULTITASKING: Allows small computers to work on several programs interactively • VIRTUAL MEMORY: Allows computer to run portions of a large program as required, saving use of main memory • MULTIPROCESSING: Multiple CPUs divide workload, increases efficiency * 3.9 © Prentice Hall 2002 SOURCES OF OPERATING SYSTEMS • PROPRIETARY: Written for particular computer class or system. Examples: Windows 98, Windows 2000 • OPEN SYSTEM: Not tied to specific platform. Examples: UNIX, Linux • NETWORK OPERATING SYSTEM (NOS): Manages network resources, local area networks * 3.10 © Prentice Hall 2002 GRAPHICAL USER INTERFACE (GUI) • MOUSE: A standard pointing device • ICON: Graphic or label on screen associated with task or operation • 32-BIT OPERATING SYSTEM: Operating system handles 32 bits at a time • CLICKING MOUSE ON ICON INITIATES TASK * 3.11 © Prentice Hall 2002 OBJECT-ORIENTED PROGRAMMING (OOP) • COMPUTER PROGRAMMING BASED ON CREATING, USING SET OF OBJECTS: Object combines data and methods (or chunks of programs) • EXAMPLES: C++, Smalltalk, Java * 3.12 © Prentice Hall 2002 OTHER LANGUAGES • NATURAL LANGUAGES: User types in or speaks English, computer evolves program • HYPERTEXT MARKUP LANGUAGE (HTML): Code used to develop World Wide Web (WWW) pages and sites • eXtensible Markup Language (XML): Used for data exchange on WWW * 3.13 © Prentice Hall 2002 DATABASE MANAGEMENT SYSTEM (DBMS) • SUPPORT SOFTWARE USED TO CREATE, MANAGE, AND PROTECT ORGANIZATIONAL DATA • DBMS: Software that manages a database, works with operating system to store and modify data and to make data accessible in authorized ways * 3.14 © Prentice Hall 2002 TYPES OF DBMSs • HIERARCHICAL: Data arranged in a topdown, organization chart fashion • NETWORK: Data arranged like cities on a highway systems, often with multiple paths between pieces of data • RELATIONAL: Data arranged into simple tables, and records are related by storing common data in each of the associated tables * 3.15 © Prentice Hall 2002 FILING METHODS • INDEXED SEQUENTIAL ACCESS METHOD (ISAM) : – EACH RECORD IDENTIFIED BY KEY – GROUPED IN BLOCKS AND CYLINDERS – KEYS IN INDEX • VIRTUAL STORAGE ACCESS METHOD (VSAM) : – MEMORY DIVIDED INTO AREAS & INTERVALS – DYNAMIC FILE SPACE VSAM WIDELY USED FOR RELATIONAL DATABASES • DIRECT FILE ACCESS METHOD * 3.16 © Prentice Hall 2002 COMPONENTS OF DBMS: • DATA DEFINITION LANGUAGE: Defines data elements in database • DATA MANIPULATION LANGUAGE: Manipulates data for applications • DATA DICTIONARY/DIRECTORY: Formal definitions of all variables in database, controls variety of database contents 3.17 * © Prentice Hall 2002 STRUCTURED QUERY LANGUAGE (SQL) EMERGING STANDARD DATA MANIPULATION LANGUAGE FOR RELATIONAL DATABASES * 3.18 © Prentice Hall 2002 ADVANTAGES OF RELATIONAL DBMS • NEW DATA ELEMENTS CAN EASILY BE ADDED AS NEW NEEDS ARISE • NEW RELATIONSHIPS CAN BE CREATED AS NEW QUERY/REPORTING NEEDS CHANGE • FEWER DATA CONSISTENCY PROBLEMS DUE TO LESS REDUNDANT DATA STORAGE • MORE “USER FRIENDLY” TOOLS 3.19 * © Prentice Hall 2002 COMPUTER-AIDED SOFTWARE ENGINEERING (CASE) • HELPS AUTOMATE SOFTWARE DEVELOPMENT: Used by computer professionals to help automate software development • MAY INCLUDE: – upper-CASE (requirements definition and design) – lower-CASE (code generation) – I-CASE or integrated-CASE 3.20 * © Prentice Hall 2002 CHANGING NATURE OF SOFTWARE • MORE HARDWIRING OF SOFTWARE AND MORE MICROCODE • MORE COMPLEXITY OF HARDWARE/SOFTWARE ARRANGEMENTS • LESS CONCERN WITH MACHINE EFFICIENCY * 3.21 © Prentice Hall 2002 CHANGING NATURE OF SOFTWARE • MORE PURCHASED APPLICATIONS AND MORE PORTABILITY OF THESE APPLICATIONS FROM ONE COMPUTER PLATFORM TO ANOTHER • MORE PROGRAMMING USING OBJECTORIENTED AND VISUAL LANGUAGES, IN LARGE PART BECAUSE OF EMPHASIS ON GUIs * 3.22 © Prentice Hall 2002 CHANGING NATURE OF SOFTWARE • MORE EMPHASIS ON APPLICATIONS THAT RUN ON INTRANETS AND THE INTERNET • MORE USER DEVELOPMENT • MORE USE OF PERSONAL PRODUCTIVITY SOFTWARE ON MICROCOMPUTERS, ESPECIALLY PACKAGES WITH A GUI * 3.23 © Prentice Hall 2002 CHAPTER 3 Computer Software 3.24 © Prentice Hall 2002