Computer Software Application Software Systems Software Operating Systems Chapter 4 What Is Software? Software is the general term for various kinds of programs used to operate and manipulate computers and their peripheral devices. One common way of describing hardware and software is to say that software can be thought of as the variable part of a computer and hardware the invariable part. 4-2 Types of software 3-3 Software types Application Performs System software information processing tasks for end users software Manages and supports operations of computer systems and networks 3-4 Application software General purpose Programs that perform common information processing jobs for end users E.g., word processing, spreadsheet, Web browsers, electronic mail, etc. Also called productivity packages Application-specific Programs that support specific applications of end users E.g., electronic commerce, customer relationship management, etc. 3-5 Another Software classification An additional common way of classifying software is based on how the software was developed: Custom software Software applications that are developed within an organization for use by that organization COTS software Commercial Off-the-shelf (COTS) Software developed with the intention of selling the software in multiple copies .yo the vendor of the product retains the intellectual property rights of the software. 3-6 Software Suites Software o suites integrate software packages Advantages: Cost less than buying individual packages All have a similar GUI of icons, tool and status bars, menus, and so on: which gives them the same look and feel, and makes them easier to learn and use. And also share common tools such as spell checkers and help wizards to increase their efficiency Work together well and import each other’s files easily. o 3-7 Disadvantages Features not used by all users Take a lot of disk space Software Suites 3-8 Integrated Packages Integrated packages Combine the functions of several programs into one package E.g., Microsoft Works, AppleWorks, Lotus eSuite and workplace o Advantages: Enough functions and features for lower price and smaller disk space o Disadvantage 3-9 Limited functionality (leave out many features and functions that are in software suites) Web Browser Software applications that support navigation through the point-and-click resources of the Web ( surfing the web) Becoming a universal software platform for Internetbased applications ( launch information searches, e-mail, multimedia file transfer, discussion groups ) Microsoft Explorer, Netscape Navigator, Firefox, Opera or Mozilla 3-10 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 Weblog A electronic messages instantly or blog personal website in dated log format Updated with new information about a subject or range of subjects 3-11 Word processing and Desktop publishing Word processing Create, edit, revise and print documents E.g., Microsoft Word, Lotus WordPro and Corel WordPerfect Desktop 3-12 Publishing Produce printed materials that look professionally published (design and print their own newsletters, brochures, manuals, and books with several type styles, graphics, photos, and colors on each page.) E.g., Adobe PageMaker, Microsoft Publisher and QuarkXPress Electronic Spreadsheets and Presentation Graphics 3-13 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 E.g., Microsoft PowerPoint, Lotus Freelance, Corel Presentations 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 to accomplish group assignments E-mail, discussion groups, databases, videoconferencing E.g., Lotus Notes, Novell GroupWise, Microsoft Exchange 3-14 Software alternatives many large companies are Outsourcing development and maintenance of software by Application service providers (ASPs) instead of developing or purchasing the application software they need to run their businesses (ASPs): Companies that own, operate and maintain application software and computer system resources (servers, system software, networks) Advantages: 3-15 the low cost of initial investment the short time needed to get the Web-based application set up and running. ASP eliminates or drastically reduces the need for much of the IT infrastructure (servers, system software, networks) Software Licensing All software (COTS, ASP) is licensed You don’t buy software: you buy a license to use the software under the terms of the licensing agreement Licensed 3-16 to protect the vendor’s property rights Open-source license The open-source license generally grants the right to run the program, own a copy of the program’s source code, modify the program’s source code, and distribute copies of the programs you build using the open-source code. The only thing you usually can’t do is fold an opensource program into a program you’re licensing under a proprietary license.) 4-17 Open-Source Software Open-source software Also referred to as free software Software can be modified Typically acquired with a license License grant you the right to run the software, own the source code, modify the source code and distribute copies of the software Free but have to pay for training, support, documentation Examples: Linux, Apache Web server, Sendmail, Perl scripting language 3-18 Case Study Questions 1. What are the business benefits of adopting opensource software? 2. What are the risks associated with open-source software? How can these risks be addressed? 3. Do you see open-source software eventually replacing the current proprietary software model? Explain your answer. 3-19 Real World Internet Activity 1. A wide variety of organizations have been formed to advance the open-source initiative. Using the Internet, See if you can find information on these open-source advocate organizations. 3-20 A good place to start is www.opensource.org Real World Group Activity 2. Supporters as well as detractors of open-source operating systems such as Linux are quite passionate about their feelings. In small groups, Discuss the advantages and disadvantages of open-source applications. If any of your classmates have experience with systems such as Linux, ask them to explain their feelings and experiences. 3-21 Section II: System software System Software consists of programs that manages and supports operations of computer systems and networks: System management programs Programs that manage hardware, software, network, and data resources E.g., operating systems, network management programs, database management systems, systems utilities Systems development programs Programs that help users develop information system programs and prepare user programs for computer processing. E.g., programming language translators and editors, CASE (computer-aided software engineering) and other programming tools. 3-22 Operating System Integrated system of programs that: Manages the operations of the CPU Controls the input/output and storage resources and activities of the computer system Provides support services as computer executes applications programs 3-23 Operating System basic functions 3-24 User Interface Part of the operating system that allows you to communicate with it, so you can load programs, access files, and accomplish other tasks. Three main types: Command-driven Menu-driven Graphical user interfaces (GUI) that uses icons, bars, buttons, boxes, and other images. 3-25 Command-driven 4-26 Menu-driven 4-27 Graphical user interfaces (GUI) 4-28 The Kernel Kernel is the most common term for the core of the operating system. the kernel manages hardware devices, memory allocation, system processes, and other programs. Resource management Part of operating system that manages the hardware and networking resources of a computer system Includes CPU, memory, secondary storage device, telecommunications, and input/output peripherals E.g. Virtual memory Swapping parts of programs and data between main memory and magnetic disks 3-30 File management Part of the operating system that controls the creation, deletion, and access of files of data and programs. File management also involves keeping track of the physical location of files on magnetic disks and other secondary storage devices. So operating systems maintain directories of information about the location and characteristics of files stored on a computer system’s secondary storage devices. 3-31 Basic File management System Valid? Name Block 0 (directory) 1 “file1.txt” Addr len 1 2 “program.com” 3 3 0 1 Blocks 1 and 2 Blocks 3, 4 and 5 4-32 file1.txt program.com Task Management Part of the operating system that manages the accomplishment of computing tasks of the end users The Task Management programs control which task gets access to the CPU and for how much time. The task management functions can allocate a specific slice of CPU time to a particular task and interrupt the CPU at any time to substitute a higher priority task. 3-33 Task Management (2) Multitasking (multiprogramming or time-sharing) Task management approach that allows for several tasks to be performed in a seemingly simultaneous fashion: Assigns only one task to CPU but switches between tasks so quickly looks like executing all programs at once Multiprocessing: more than one CPU is being accessed, but in multitasking, only one CPU is in operation. 4-34 Popular Operating Systems Windows Microsoft’s operating system: Different versions manage servers : 3-35 (DOS/Windows, Windows 95 , Windows 98, Windows Me (Millennium Edition)(2000) ), Windows XP (Windows NT (New Technology) (1995), Windows 2000), Windows XP , Windows Server 2003) Unix can run on mainframes, midrange and PCs a popular choice for Web and other network servers. Solaris for Sun Microsystems, AIX for IBM Popular Operating Systems Linux Low-cost, powerful reliable Unix-like operating system Linux was developed as free or low-cost shareware or open-source software over the Internet in the 1990s MAC OS X 4-36 Red Hat, Caldera, and SUSE Linux Apple operating system for the iMac and other Macintosh microcomputers Other types of system software 3-37 Other system software: Utilities Serve as tools for doing system maintenance and repairs not handled by operating system Utilities make it easier for users to: Copy files between storage devices Repair damaged data files Translate files so different programs can read them Guard against viruses and other harmful programs Compress files so they take up less space Example, Norton utilities includes data backup, virus protection, data compression, data recovery, and file defragmentation, etc. 38 Other system software Performance monitors Programs that monitor and adjust computer system to keep them running efficiently Security monitors Programs that monitor and control use of computer systems to prevent unauthorized use of resources 3-39 Programming Languages 3-40 Machine Languages First-generation In languages the early stages of computer development, all program instructions had to be written using binary codes unique to each computer Programmers had to know the internal operations of the specific type of CPU 3-41 Assembler Languages Second-generation languages Symbols are used to represent operation codes and storage locations to reduce the difficulties in writing machine language programs. Need language translator programs (assemblers) to convert the instructions into machine instructions Convenient alphabetic abbreviations (mnemonics) and symbols represent operation codes, storage locations, and data elements. Used 3-42 by systems programmers (who program system software) High-Level Languages Third-generation languages Instructions that use brief statements or arithmetic expressions These statements translated by compilers or interpreters Individual high level language statements are actually Macroinstructions: each statement generates several machine instructions Advantages: Easier to learn than assembler languages. Disadvantage: 3-43 Less efficient than assembler and require a greater amount of computer time for translation into machine instructions. Because it is machine independent High-Level Languages (2) The syntax(vocabulary, punctuation, and grammatical rules) and the semantics (meanings) of statements which do not reflect the internal code of any particular computer 4-44 Fourth-Generation Languages Variety of programming languages that are nonprocedural and conversational (Natural Language) Nonprocedural – users specify results they want while computer determines the sequence of instructions that will accomplish those results Natural Language – very close to English or other human language 3-45 Object-Oriented Languages Combine data elements and the procedures that will be performed upon them into Objects E.g., an object could be data about a bank account and the procedures performed on it such as interest calculations 3-46 Object-Oriented Languages Most widely used software development languages today Advantages: Easier to use and more efficient for graphicsoriented user interfaces Reusable: can use an object from one application in another application E.g., Visual Basic, C++, Java 3-47 Procedural vs object-oriented Procedural or imperative Early high-level languages Contain functions (or sub-routines) written and used inside the main program Cannot use external functions easily Object-oriented (OO) Later high-level languages Contain methods (or functions) and variables that can be written in main or external programs Can call external functions or variables easily Web Languages 3-49 HTML (HyperText Markup Language) a Web page format description language that creates hypertext documents for the Web XML (eXtensible Markup Language) describes the contents of Web pages by applying identifying tags or contextual labels to the data in Web documents In XML you can create the name of the tags and attributes as you want. Basically, XML is used to store data that can easily be accessed or used by other applications, like PHP, JavaScript, Web Languages (2) Java Object-oriented programming language that is simple, secure and platform independent Java is also specifically designed for real-time, interactive, Web-based network applications. Java applications consisting of special-purpose small application programs called Java applets can be executed on any computer 4-50 Web Languages (3) Microsoft’s .NET is a collection of programming support (Web services), the ability to use the Web rather than your own computer for various services .NET provide individual and business users with Web-enabled interface for applications and computing devices and make computing activities increasingly Web browser–oriented. Assembly Language Translator Programs Translate instructions written in programming languages into machine language Assembler translates language 3-52 assembler language statements into machine High-level Language Translator Programs Compiler translates all of the instructions in a program as a single batch into machine language This is especially useful for larger programs that have to be executed several times without having to be modified. Interpreter translates each statement in a program one at a time into machine language to be executed immediately This is interesting to debug programs or for small programs using little mass memory. Source code takes much less space than object code. 4-53 Java uses interpreter Programming Tools 3-54 most software development programs now include Graphical Programming Interfaces Programming Editors Debuggers Linkers Editor Allows you to create source files Some editors provide syntax highlighting features and can be customized as a programming environment Allows Debugger you to trace the execution of a program to identify and minimize programming errors or bugs Allows you to view code, memory, registers, etc. Linker and Link Libraries You files It need a linker program to produce executable combines your program's object file created by the translator with other object files and link libraries, and produces a single executable program Translate and Link Process Source File Source File Source File Translator Object File Translator Object File Linker Translator Object File Link Libraries Executable File A project may consist of multiple source files Translator translates each source file separately into an object file Linker links all object files together with link libraries Software Development Major activities Editing (writing the program) Compiling (creates .obj file) Linking with compiled files (creates .exe file) Object files Source Program Library modules Compile Loading and executing Edit Testing the program Link Library routines Other object files Think Load Execute