chapter 3: computer software. stored program concept v the concept of preparing a precise list of...
TRANSCRIPT
Stored Program ConceptStored Program Concept
The concept of preparing a precise list The concept of preparing a precise list of exactly what the computer is to do of exactly what the computer is to do (this list is called a program), loading or (this list is called a program), loading or storing this program in the memory of storing this program in the memory of the computer, and then letting the the computer, and then letting the control unit carry out the program at control unit carry out the program at electronic speed. The program must electronic speed. The program must be in a form that the control unit of the be in a form that the control unit of the computer has been built to understand.computer has been built to understand.
SoftwareSoftware
The set of programs that control The set of programs that control the operations of the computer the operations of the computer systemsystem
These programs consists of a These programs consists of a series of instructions; each series of instructions; each instruction is an individual step or instruction is an individual step or operation in a programoperation in a program
Evolution of Computer Evolution of Computer Software Software First Generation - machine language First Generation - machine language
- language that particular computer - language that particular computer has been built to understandhas been built to understand
Second Generation - assembly Second Generation - assembly language - substitute mnemonic language - substitute mnemonic operation codes and symbolic operation codes and symbolic addresses - translate to machine addresses - translate to machine language by assemblerlanguage by assembler
Evolution of Computer Evolution of Computer Software (continued)Software (continued) Third Generation - procedural Third Generation - procedural
language - FORTRAN, COBOL, C - language - FORTRAN, COBOL, C - translate to machine language by translate to machine language by compiler or interpretercompiler or interpreter
Fourth Generation - nonprocedural Fourth Generation - nonprocedural language - tell what to do, not how to language - tell what to do, not how to do it - order not important - translate do it - order not important - translate to machine language by compiler or to machine language by compiler or interpreterinterpreter
Two Kinds of SoftwareTwo Kinds of Software
Applications software -- programs Applications software -- programs written to accomplish particular written to accomplish particular tasks for computer userstasks for computer users
Support software -- programs that Support software -- programs that support applications software in support applications software in producing the needed output; producing the needed output; support software does not directly support software does not directly produce output needed by usersproduce output needed by users
Personal Productivity Personal Productivity SoftwareSoftware Word processingWord processing SpreadsheetsSpreadsheets Database management systemsDatabase management systems Presentation graphicsPresentation graphics
Personal Productivity Personal Productivity SoftwareSoftware(continued)(continued) Desktop publishingDesktop publishing StatisticsStatistics Application suites -- somewhat Application suites -- somewhat
integrated suites of applications -- integrated suites of applications -- Microsoft, Lotus, CorelMicrosoft, Lotus, Corel
World Wide Web browsersWorld Wide Web browsers
Support SoftwareSupport Software
Operating systemsOperating systems Communications interface softwareCommunications interface software Utility programsUtility programs Language translatorsLanguage translators Database management systems Database management systems
(DBMSs)(DBMSs) CASE tools (computer-assisted CASE tools (computer-assisted
systems engineering)systems engineering)
Operating SystemOperating System
A very complex program A very complex program (software) that controls the (software) that controls the operation of the computer operation of the computer hardware and coordinates all the hardware and coordinates all the other softwareother software
Examples: DOS, OS/2, System/7, Examples: DOS, OS/2, System/7, Unix, VMS, VM, MVS, Windows 95, Unix, VMS, VM, MVS, Windows 95, Windows 98, Windows NTWindows 98, Windows NT
Job Control Language (JCL)Job Control Language (JCL)
The specialized computer language The specialized computer language by which computer users by which computer users communicate with the operating communicate with the operating systemsystem
DOS examples: dir, cd, md, rd, copyDOS examples: dir, cd, md, rd, copy With GUI operating systems, JCL With GUI operating systems, JCL
becomes a series of mouse clicks or becomes a series of mouse clicks or dragsdrags
MultiprogrammingMultiprogramming
A procedure by which the operating A procedure by which the operating system switches back and forth among system switches back and forth among a number of programs, all located in a number of programs, all located in memory at the same time, to keep the memory at the same time, to keep the CPU (processor) busy while CPU (processor) busy while input/output operations are taking input/output operations are taking placeplace
Called multitasking on smaller Called multitasking on smaller machinesmachines
Virtual MemoryVirtual Memory
A procedure by which the operating A procedure by which the operating system switches portions of programs system switches portions of programs (called pages) between main memory (called pages) between main memory and DASD (disk) so that portions of and DASD (disk) so that portions of enough programs are stored in main enough programs are stored in main memory to enable efficient memory to enable efficient multiprogrammingmultiprogramming
Appears to user as though main Appears to user as though main memory is unlimitedmemory is unlimited
Object-Oriented Object-Oriented Programming (OOP)Programming (OOP) A type of computer programming A type of computer programming
based on the creation and use of a based on the creation and use of a set of objects, each of which set of objects, each of which combines data and methods (or combines data and methods (or chunks of programs)chunks of programs)
Most popular OOP languages are Most popular OOP languages are C++ and SmalltalkC++ and Smalltalk
Database Management Database Management System (DBMS)System (DBMS) Support software that is used to Support software that is used to
create, manage, and protect create, manage, and protect organizational dataorganizational data
A DBMS is the software that A DBMS is the software that manages a database; it works with manages a database; it works with the operating system to store and the operating system to store and modify data and to make data modify data and to make data accessible in authorized waysaccessible in authorized ways
Types of DBMSsTypes of DBMSs
Hierarchical -- data are arranged in a Hierarchical -- data are arranged in a top-down, organization chart fashiontop-down, organization chart fashion
Network -- data are arranged like the Network -- data are arranged like the cities on a highway systems, often with cities on a highway systems, often with multiple paths between pieces of datamultiple paths between pieces of data
Relational -- data are arranged into Relational -- data are arranged into simple tables, and records are related simple tables, and records are related by storing common data in each of the by storing common data in each of the associated tablesassociated tables
Advantages of Relational Advantages of Relational DBMSDBMS New data elements can easily be New data elements can easily be
added as new needs ariseadded as new needs arise New relationships can be created as New relationships can be created as
new query/reporting needs changenew query/reporting needs change Fewer data consistency problems Fewer data consistency problems
due to less redundant data storagedue to less redundant data storage More “user friendly” toolsMore “user friendly” tools
Relational DBMS Features Relational DBMS Features to be Evaluated for to be Evaluated for UseabilityUseability Building tables and relationshipsBuilding tables and relationships Creating forms for data entryCreating forms for data entry Building and changing queriesBuilding and changing queries Report customizationReport customization Importing and exporting dataImporting and exporting data Constructing custom controlsConstructing custom controls Wizards or other application Wizards or other application
assistantsassistants
Computer-Aided Software Computer-Aided Software Engineering (CASE)Engineering (CASE) A collection of software support tools A collection of software support tools
(designed to be used by computer (designed to be used by computer professionals) to help automate professionals) to help automate software developmentsoftware development
May include upper-CASE May include upper-CASE (requirements definition and design), (requirements definition and design), lower-CASE (code generation), and I-lower-CASE (code generation), and I-CASE or integrated-CASECASE or integrated-CASE
Changing Nature of Changing Nature of Software (I)Software (I) More hardwiring of software and more More hardwiring of software and more
microcodemicrocode More complexity of hardware/software More complexity of hardware/software
arrangementsarrangements Less concern with machine efficiencyLess concern with machine efficiency More purchased applications, and more More purchased applications, and more
portability of these applications from portability of these applications from one computer platform to anotherone computer platform to another
Changing Nature of Changing Nature of Software (II)Software (II) More programming using object-oriented More programming using object-oriented
and visual languages, in large part and visual languages, in large part because of the emphasis on GUIsbecause of the emphasis on GUIs
More emphasis on applications that run More emphasis on applications that run on intranets and the Interneton intranets and the Internet
More user developmentMore user development More use of personal productivity More use of personal productivity
software on microcomputers, especially software on microcomputers, especially packages with a GUIpackages with a GUI