Software nature & capabilities - Computing and ICT in a Nutshell

Download Report

Transcript Software nature & capabilities - Computing and ICT in a Nutshell

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