Software: is the general term for various kinds of programs Software types: (1. Application software, 2. System software) Application software: Performs information processing tasks for end users System software: Manages and supports operations of computer systems and networks Application software types: General purpose software: performs common information processing jobs for end users E.g., word processing, spreadsheet, Web browsers, electronic mail, etc. Application-specific software : supports specific applications of end users E.g., electronic commerce, customer relationship management, etc. Custom software: that is developed within an organization for use by that organization Commercial Off-the-shelf (COTS) software : that is developed with the intention of selling the software in multiple copies . General purpose software: Software suites: combines several programs into one package E.g. Microsoft Office Advantages: o Cost less than buying individual packages o All have a similar GUI which gives them the same look and makes them easier to learn and use. o All share common tools such as spell checkers and help wizards to increase their efficiency o Work together well and import each other’s files easily. Disadvantages o Features not used by all users o Take a lot of disk space Integrated packages: combines the functions of several programs into one application E.g. Microsoft Works Advantages: Enough functions and features for lower price and smaller disk space Disadvantage Limited functionality (leave out many features and functions that are in software suites) Word processing: Creates, edits, revises and prints documents E.g., Microsoft Word Desktop Publishing: Produces printed materials that look professionally published E.g., Adobe PageMaker Electronic Spreadsheets: Worksheet of rows and columns Used for calculations and charts E.g. Microsoft Excel, Presentation Graphics : Prepare multimedia presentations E.g. Microsoft PowerPoint Personal Information Manager (PIM): Store information about clients, schedules, manage appointments, manage tasks E.g. Microsoft Outlook Groupware: helps workgroups collaborate to accomplish group assignments. Includes E-mail, discussion groups, databases, videoconferencing E.g. Microsoft Exchange Software alternatives Application Service Providers(ASPs): Companies that own, operate and maintain application software and computer system resources (servers, system software, networks) Advantages: 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: to protect the vendor’s property rights All software (COTS, ASP) are licensed Open-Source license: grants the right (1) to run the program, (2) own a copy of the program’s source code, (3) modify the program’s source code, and (4) distribute copies of the programs you build using the open-source code. The only thing you usually can’t do: is fold an open-source program into a program you’re licensing. e.g. Linux System software types: (1. System management, 2. Systems development) System management programs: manage hardware, software, network, and data resources E.g., operating systems, network management programs, database management systems (DBMS), systems utilities Systems development programs: help users develop and prepare different programs E.g., programming language translators and programming tools Operating System basic functions: (1.User Interface 2.Resource management 3.File management 4. Task Management) User Interface: Part of the operating system that allows you to communicate with it Three main types: Command-driven Menu-driven Graphical user interfaces (GUI) Resource management: Part of operating system that manages the hardware and networking resources File management: Part of the operating system that controls the creation, deletion, and access of files and involves keeping track of the physical location of files on magnetic disks and other secondary storage devices. Task Management: Part of the operating system that control which task gets access to the CPU and for how much time. Multitasking or time-sharing: Task management approach Assigns only one task to CPU but switches between tasks so quickly looks like executing all programs at once Popular Operating Systems: (1.windows 2. Unix 3.Linux 4. MAC OS X) Unix can run on mainframes, midrange and PCs a popular choice for Web and other network servers. E.g. Solaris Linux Low-cost, powerful reliable Unix-like operating system E.g Red Hat, Caldera MAC OS X Apple operating system Programming Languages Four levels of Programming Languages (1. Machine Languages 2. Assembler Languages 3. High-level Languages 4. Fourth generation Languages) Machine Languages: program instructions had to be written using binary codes unique to each computer Assembler Languages: program instructions had to be written using abbreviations and symbols represent operation codes, storage locations, and data elements. Advantage: to reduce the difficulties in writing machine language programs High-Level Languages: program instructions had to be written using statements where each statement generates several machine instructions Advantages: o Easier to learn than assembler languages. High-Level Languages code concepts The syntax: (vocabulary, punctuation, and grammatical rules) the semantics: (meanings) of statements High-Level Languages types: (1. Imperative 2. Object-Oriented ) imperative language: is characterized by the use of variables, commands, and procedures e.g. C Object-Oriented Languages: Combine data elements and the procedures that will be performed upon them into Objects Most widely used software development languages today Advantages: Easier to use and more efficient for graphics-oriented user interfaces Reusable: can use an object from an application in another e.g. C++, Java, Visual Basic Fourth-Generation Languages: nonprocedural and conversational (Natural Language) Web Languages: (HTML, XML) HTML : Web Languages describes a Web page format XML: Web Languages describes the contents of Web pages XML is used to store data that can easily be accessed or used by other applications, like PHP, JavaScript Translator Programs Translator Programs: Translate instructions written in programming languages into machine language Assembler Language Translator Assembler High-level Language Translator Programs Compiler and Interpreter Compiler : translates all of the instructions in a program as a single batch into machine language useful for larger programs Interpreter : translates each statement in a program one at a time into machine language to be executed immediately useful to debug programs or for small programs Programming Tools : (1. Graphical Programming Interfaces 2. Editors 3. Debuggers 4. Linkers ) Graphical Programming Interfaces Editors: Programming Tools allows you to create source files Debuggers: a programing Tools to identify and minimize programming errors or bugs Linkers: a programing Tools combines your program's object file created by the translator with other object files and link libraries, and produces a single executable program