2.4 - Nature & Capabilities of Software • • • • • • • • • • What is software? Types of software Generic software Drivers, protocols and standards for interfacing with peripherals and storage devices Object linking and embedding Functionality of internet software Compatibility and portability Features of software & evaluation/comparison Upgrading - technical and human implications Reliability - how do we make software reliable? What is software? • Hardware is the physical components that make up a computer system. • Software is the programs and data that make the hardware do something useful. • Software is NOT the CD or floppy disc that the program comes on - usually you are just buying the licence to use the software, and not the software itself. Firmware • You may also come across the term Firmware - this is software that is stored in hardware (i.e. on a chip) and is usually found in embedded systems. • Not all computers are multi-purpose desktop or laptop PCs, mainframe or mini-computers, so are designed for a specific purpose and are built into machinery - these are called embedded systems. • Embedded systems are mostly used for control, e.g. in washing machines. Types of Software There are three main categories of software: • Operating systems • Utility programs • Applications Applications come in different types : • • • • Specific purpose - e.g. Encarta, POS, etc. Generic - e.g. spreadsheets, databases, etc. Off the shelf - i.e. a product such as Sage Accounts Bespoke - i.e. custom-made for the user Operating Systems • Control and manage the computer’s resources – – – – – memory management resource allocation storage communication interrupt handling • Examples include Windows (NT, 2000 and XP only, not versions up to 98), Unix, Linux, CPM, Mac-OS. • Heathcote says that they are installed on the hard disc, but this is not always the case, e.g. RISC-OS, PDAs, embedded systems and early home computers such as Spectrums and VIC-20s! Operating Systems • The kernel is hardware specific and controls primary and secondary storage, input and output. Kernel Shell • The shell provides the user interface - this could be a command line or a Graphical User Interface. • It is possible that an operating system, e.g. Windows NT or Linux, could run on several platforms (e.g. Intel, Power PC, DEC Alpha) by having the same shell with different kernels Memory Management • System resources and hardware often require memory which must be allocated by the OS • Most modern operating systems are capable of multitasking (running several programs at once) - each program will require its own area of memory to store data. • Some types of OS can use multiple processors, so they must also decide where a process takes places, as well as which memory it will use! Memory Management Primary storage (e.g. RAM): • Volatile - i.e. contents are lost without power • Fast - access time of around 7ns for PC RAM • Relatively expensive - 1Gb DDR RAM costs £140 Secondary storage (e.g. hard disc): • Non-volatile, usually magnetic media - stored without power • Slower - access time of around 8ms • Cheaper, e.g. 40Gb for £35 Virtual Memory • Sometimes the operating system can use secondary storage to supplement primary storage in a way that is transparent to the application - this is called virtual memory • RAM overflows onto the disc - e.g. in the Windows paging/ swap-file Disc Storage Sector Constant angular velocity Constant linear velocity • CLV discs (e.g. Compact Discs) slow down as sectors nearer the edge are read - the sectors are the same physical length so that capacity is increased File Allocation and Fragmentation A • File A is written A A • File B is written B A B B B B A B • File A is edited • Disc is fragmented • The disc is now defragmented - the sectors are contiguous and so quicker to read • Location of file is stored in the File Allocation Table (FAT) User Interface • Manages multi-tasking – e.g. each application in a separate window • Allocates events to the appropriate application: – – – – Mouse movement Mouse click/double-click Key presses Timers Keystrokes Shell Mouse movements or clicks User Interface • Provides the ability to transfer information between applications – e.g. the clipboard in Windows Application A Copy Clipboard • Provides a consistent appearance to applications, e.g. menus, help, printing and error messages Paste Application B Peripherals • Peripherals can be connected to a computer either internally - e.g. video or sound cards - or externally, through USB, serial or parallel ports. • Internal devices are serviced through interrupts the OS polls each device in turn to see whether it requires any processing time. • The operating system communicates with the device through a driver. • A driver is a piece of software that translates the user’s instructions - e.g. that they want a particular piece of text to be bold - into the device-specific control codes that the particular hardware uses. Utility Programs • A utility is a small program, usually with a technical function - they often come with an operating system. • Examples of utilities are: – Virus checkers – Windows Explorer/File Manager/Xtree – Printer Manager – Scandisk & Defrag – Winzip (or other compression software) – Norton Utilities/PC Tools – Compilers and interpreters – Performance monitoring – Backup and restore Applications • Written for a specific purpose - inflexible • Such systems may be bespoke or off-the-shelf • Bespoke systems are those written specifically for a particular customer, usually in a language such as C++, Visual BASIC or Java, e.g. – Point of Sale (POS) systems – Insurance quotation systems – Management Information Systems (MIS) • Off-the-shelf software is the boxed products you might see in PC World: – Sage Accounting – AutoRoute Bespoke Software • Purpose-designed for task - it does exactly what you want (or what you asked for, anyway!) • Purpose-designed for hardware • Extra features can be integrated more easily • More likely to be bugridden • Tied into one suppliers, e.g. for: – documentation (no books!) – training – support • Portability of data is less likely • Much more expensive General Purpose/Generic Software • Some software wasn’t designed for a specific purpose - they are known as generic or contentfree applications • Examples of generic software include: – word processors and DTP applications – database management systems – spreadsheets • Integrated packages contain several of these functions in one application - e.g. Microsoft Works or Lotus Symphony • Software suites contain these functions in separate applications, e.g. Microsoft Office or Lotus SmartSuite Object Linking and Embedding