CHAPTER 4 Software: Systems and Application Software Software Computer programs Sequences of instructions for the computer Documentation Describes the program functions Helps users operate the computer system continued... Software System software The set of programs designed to coordinate the activities and functions of the hardware and various programs throughout the computer system Computer system platform The combination of a particular hardware configuration and systems software Application software Programs that help users solve particular computing problems Classifying Software by Type and Sphere of Influence [Table 4.1] Utility Programs Merge and sort sets of data Keep track of computer jobs being run Compress files of data before they are stored or transmitted over a network Perform other important repetitive tasks Examples of Utility Programs [Table 4.2] Operating Systems Operating System: A set of computer programs that control the computer hardware to support users’ computing needs. Operating System Tasks: Common hardware functions User interfaces Hardware independence Networking capability Memory management Processing tasks Access to system resources File management Role of the Operating System The operating system, as well as other systems software, functions as a buffer between application software and hardware. [Figure 4.2] User Interface Allows users to access and command the computer system Command-based user interface Requires that text commands be given to the computer to perform basic activities User Interface Graphic user interface (GUI) Uses pictures (icons) and menus displayed on screen to send commands to the computer system Advantages of Using a GUI Intuitive environment Consistent applications Flexible applications Cut and paste between applications Easy to use applications Undo capability Confirmation of important operations Memory Management Virtual memory Allocates space on disk to supplement the immediate, functional memory capacity of RAM Paging Stores currently needed pages of a number of programs in RAM while the rest of these programs wait on the disk How the Operating System Controls Physical Access Virtual Memory [Figure 4.5] Processing Tasks Multitasking Allows a user to run more than one application at a time Multithreading Multitasking within a single application Time-sharing Allows more than one person to use a computer system at the same time Popular Operating Systems PC-DOS and MS-DOS DOS with Windows OS/2 Windows 95 Microsoft Windows CE Apple computer OS System 7.6 Future Mac OS developments Widows NT and NT Workstation Unix Multiple Virtual Storage/Enterprise Systems Architecture How Application Software Supports Business Objectives Applies to specific organizational activities and functions Provides significant internal efficiencies and supports corporate goals Types of Application Software Proprietary software One-of-a-kind program for a specific application Off-the-shelf software Existing software program Customized Off-the-shelf program modified or customized (in-house or externally) Proprietary Application Software In-house development Software developed by an enterprise for its own use Contract software Proprietary software developed for a particular company Sources of Software: Proprietary and Off-the-Shelf [Figure 4.6] Personal Application Software Personal productivity tool PC software for specialized tasks Word processing Spreadsheet analysis Database applications Graphic programs On-line information services Software suites Object Linking and Embedding (OLE) Process where text can be copied or graphics can be embedded from one document or program into another Server application Supplies objects that can be placed into other applications Client application Accepts objects from other applications Object Linking and Embedding (OLE) Copying Does not change data between applications Linking A relational database process Can occur when two tables share at least one common element Embedding A process of putting one object into another document Workgroup Software Allows two or more people in a group to work effectively together to use word processing, databases, spreadsheets, and related software packages Also called groupware Enterprise Software Software that benefits the entire organization [Figure 4.16] Software Issues and Trends Software licensing Software upgrades Shareware Author expects a modest payment for the privilege of using the software Freeware Software that is free Open systems A vision of computing products that work together Protection of Software Copyrights Poster p171 Programming Languages Coding schemes that provide instruction to the computer system so that it can perform a processing activity Syntax The set of rules that a language has Program Language Standards A set of rules that describe how programming statements should be written Developed by the American National Standards Institute (ANSI) Characteristics of Programming Languages [Figure 4.17] Evolution of Programming Languages [Table 4.11] Machine Language (1GLs) First generation programming language Instructions written in binary code (using only 0s and 1s) Considered a low-level language [Figure 4.18] Assembly Language (2GLs) Second generation programming language Replaces binary digits with symbols that can be more easily understood All languages beyond first generation are called symbolic languages. High-Level Languages (3GLs) Third-generation languages Use English-like statements and commands Query and Database Languages (4GLs) Fourth-generation languages Less procedural and more English-like than highlevel languages Features Query and database abilities Code-generation abilities Graphics abilities Natural and Intelligent Languages (5GLs) Fifth generation programming languages Used to create programs employing artificial intelligence and expert system technology Natural languages Allow end users to access stored data and interact with the computer using ordinary words Object-Oriented Programming Languages Allow interaction of programming objects Encapsulation Process of grouping items into an object Polymorphism Allows development of one routine that will work with multiple objects Inheritance Allows objects in a group of objects to take on characteristics of other objects in the same group or class of objects Reusable code Instruction code that can be reused in different programs for a variety of applications Object-Oriented Programming Languages Smalltalk C++ Java Language Translators Systems software that converts source code into its equivalent in machine language Source code High-level program code that is converted by the language translator Object code Machine language code that is converted from the source code Interpreter A language translator that translates one program statement at a time as the program is running [Figure 4.20] How a Compiler Works A compiler is a language translator that converts a complete program into machine language to produce a program that the computer can process in its entirety. [Figure 4.21] Information Systems Principles In choosing an organization's operating system, make a selection based on the needs and cost constraints of the organization. Information Systems Principles Effective implementation of application software can improve efficiency and support corporate goals. Careful analysis of goals and needs should precede any decision as to the best approach for acquiring application software. Information Systems Principles Choose the programming language appropriate to the task at hand and one that is consistent with the organization’s strategic technical direction.