Hardware and Software | SDLC
| Programming and Software development (IS)
Use http://webopedia.internet.com to make revision notes on the key terms below.
Capabilities: what can the device or software do e.g. hard disk
allows data to be stored and accessed in sequential or direct
mode.
Capacities: refers to the measurements of things such as data
transfer rate 10megbits per second, data storage capacity e.g.
100gig.
Computer systems comprise
Hardware
Processor: CPU provides
the processing. Single processors and parallel processors.
Abbreviation of central processing
unit, and pronounced as separate letters.
The CPU is the brains of the computer. Sometimes referred to simply as
the
processor or central processor, the CPU is where most calculations take
place. In terms of computing power, the CPU is the most important element
of
a computer system.
On large machines, CPUs require one or more printed circuit boards. On
personal computers and small workstations, the CPU is housed in a single
chip
called a microprocessor.
Two typical components of a CPU are:
The arithmetic logic unit (ALU), which performs arithmetic and logical
operations.
The control unit, which extracts instructions from memory and decodes
and executes them, calling on the ALU when necessary. (ref: webopedia)
Input devices: learn
a range of these, what there capacities and capabilities are e.g. touch
screen, light pens,
barcode scanners, disk, keyboard, voice input, modem.
Any machine that feeds data into a computer. For example, a keyboard is
an
input device, whereas a display monitor is an output device. Input devices
other than the keyboard are sometimes called alternate input devices. Mice,
trackballs, and light pens are all alternate input devices.
Output devices: learn
a range of these: printers (dot matrix impact, laser and ink Jet, high
speed line printers), modem,
disk etc.
Any machine capable of representing information from a computer. This includes
display screens, printers, plotters,
and synthesizers.
(also refer to www.pctechguide.com)
Communication devices
and ports and buses
Bus: links the parts of a CPU together. data bus passes data and memory
bus passes memory addresses.
Communication devices e.g. modem, router, gateway etc.
Ports: enable hardware devices to be connected or interfaced.
Parallel: transfers a group of bits at one time, faster.
Serial: transfers a stream of bits one at a time, slower but can go over
longer distances.
New development used on the recent laptops is the USB port. This
uses a serial interface but because of
technological developments the rate of transfer is much higher.
Example of Notes from Webopedia:
USB
Last modified: August 28, 2001
Short for Universal Serial Bus, an external bus standard that supports
data
transfer rates of 480 Mbps (480 million bits per second). A single USB
port
can be used to connect up to 127 peripheral devices, such as mice, modems,
and keyboards. USB also supports Plug-and-Play installation and hot
plugging. (this is a major advantage because the device driver does not
need to be loaded at start up time it can be
loaded as needed. The USB also allows a number of devices to be connected
and use the one port.)
Starting in 1996, a few computer manufacturers started including USB support
in their new machines. It wasn't until the release of the best-selling
iMac in
1998 that USB became widespread. It is expected to completely replace
serial and parallel ports.
Network (see separate material on this - ie what you should have done in class and as homework)
A group of two or more computer systems linked together. There are many
types of computer networks, including:
local-area networks (LANs) : The computers are geographically
close together (that is, in the same building).
wide-area networks (WANs) : The computers are farther apart and
are connected by telephone lines or radio waves.
In addition to these types, the following characteristics are also used
to
categorize different types of networks:
topology : The geometric arrangement of a computer system. Common
topologies include a bus, star, and ring.
protocol : The protocol defines a common set of rules and signals that
computers on the network use to communicate. One of the most
popular protocols for LANs is called Ethernet. Another popular LAN
protocol for PCs is the IBM token-ring network .
architecture : Networks can be broadly classified as using either a
peer-to-peer or client/server architecture.
Computers on a network are sometimes called nodes. Computers and devices
that allocate resources for a network are called servers. (ref: webopedia)
Software
Systems Software controls
operation of computer system: memory, screen display, hard disk and file
operation,
network communication,
device driver loading, security.
Operating Systems and network operating systems are the main examples.
Refers to the operating system and all utility programs that manage computer
resources at a low level. Software is generally divided into systems software
and applications software. Systems software includes compilers, loaders,
linkers,
and debuggers. (ref: webopedia)
Device drivers are important pieces of system software as they allow hardware
input and output devices to
communicate with the host computer. The device driver must be loaded into
RAM.
driver: A program that controls a device. Every device, whether
it be a printer, disk
drive, or keyboard, must have a driver program. Many drivers, such as the
keyboard driver, come with the operating system. For other devices, you
may
need to load a new driver when you connect the device to your computer.
In
DOS systems, drivers are files with a.SYS extension. In Windows
environments, drivers often have a.DRV extension. (ref: webopedia)
Utility software such as backup software systems are also examples of System software.
network operating system
An operating system that includes special functions for connecting computers
and devices into a local-area network (LAN). Some operating systems, such
as UNIX and the Mac OS, have networking functions built in. The term
network operating system, however, is generally reserved for software that
enhances a basic operating system by adding networking features. For
example, some popular NOS's for DOS and Windows systems include
Novell Netware, Artisoft's LANtastic, Microsoft LAN Manager, and
Windows NT. (ref: webopedia)
Application
Software. Applications software comprises programs designed for an
end user, such as word processors,
database systems, and spreadsheet programs.
Problems of compatibility
When
adding hardware or software to computer systems (to improve their ability
to meet the information needs, hence
the term information system = hardware + software + people + procedures
+ data), you need to be aware of
COMPATIBILITY issues.
New
hardware may not be compatible becasue:
can't be connected to the computer ie no port available, pins and plugs
just don't fit, no device driver available eg
with printers.
not sufficient RAM available to hold device driver or data generated etc.
operating system maynot be correct revision level.
There are a range of possibilities, but check: ram, hard disk, cpu, physical connection, device driver etc.
New Software (Systems or Application) may not be compatible because:
will not fit in available RAM i.e. needs more or the RAM is too slow.
may not work with the current version of operating system
may require faster processor
may require more hard disk space
may require replacement display unit etc.
Revision of SDLC concepts see: SDLC you must know the material in this handout and be able to apply it to a range of different circumstances. The previous exam all provide excellent case studies to do. The new exam has a different structure but the past exams still are useful.
Mission statement is the statement that organizations use to outline the fundamental goal and philosophy of the organisation.
e.g Out company aims to provide face to face customer service to ensure that customers receive the service that they have come to value and trust.
Meeting Organizational Objectives
When designing IS we need to ensure that the system addresses the goal and philosophy of the organisation. In the above example an e-commerce solution or phone order system may well be in total conflict and thus the organisation would need to possible re-enginer its whole operating philosophy!
In relation to the mission statement the organisation will have a range of objectives that need to be meet in order to meet the over all goal. eg the accounting department of an organisation main objective is to provide financial control and management in order to monitor and contain costs and to aid in making a profit. To do this the accounting department must make a range od decisions. To make these decisions they need to gain access to a range of information to enable them to be informed when making the decisions. To get the information they will need to use a computerized IS. Thus the IS needs to meet a range of objectives (technical, operation and economic) in order to produce the information EFFICIENTLY and EFFECTIVELY to aid the organisation meet the objectives of each separate organisational section, which in turn cooperate together to meet the overall goal of the organisation.
Information System Objectives
An accounting system may have a range of technical objectives: collect the following data, input this via keyboard and barcode, processing this within 2 hours, store the data in a file and be able to retrieve in these ways (x,y,z....), to be able to process the data in these ways (a,s,d,f...) and to be able to allow these queries (q,w,e,r...) and to be able to produce these reports (f,g,h,.....) and to ensure these people are able to get access to the information etc.
Often these objectives can be shown as REQUIREMENTS of the system in the ANALYSIS phase and can be shown in over view in top level DFD diagrams and in more detail in lower level DFDs and process descriptions such as DECISION TABLES and ALGORITHMS.
An accounting system may have a range of operational and procedural objectives: enable the data to be input within 2hours of collection, ensure that backups operates, in a network ensure that security works etc.
An accounting system may have budget to operate within etc.
Feasibility
Feasibility of options is an important factor to be considered in applying the SDLC. At each phase question of which option would we pick will arise and thus you need to have some criteria in mind which assists in selecting between options.
Preliminary Investigation/ Study Phase
In the above example an e-commerce
solution maybe possible but does it fit the goal of the organisation?
It maybe possible to implement
a student absence system either using student cards that are swiped, students
absence
slips with barcode or teacher
direct entry onto a database. Each of these might be possible but you need
to ask:
is
it operationally feasible? ie can the proposed system fit into the
way the organisation functions and are
there any operational factors that might limit an others perfect
solution e.g. students swapping swipe cards in
very large classes.
is
it technically feasible? A solution maybe technically too sophisticated
for an organisation to handle or is simply
too leading bleeding edge. e.g. a person may propose implanting chips in
students ties as a way of tracking them. This
may not be technically feasible - not too mention a few other problems,
but mark my words it will be proposed in
schools within 5 years.
is
it economically feasible? a proposal may fit the other criteria but
maybe far too costly to justify the expense i.e. the
returns do not match the costs.
At each subsequent phase you can ask the same types of feasibility questions.
Program development: similar steps to the SDLC.
Takes place in the Development phase of the SDLC.
Step 1: Analysis. data definition and file design, input and output
layouts, processing requirements
Step 2: Design: structured programming methodology used (top-down decomposition
or step wise refinement)
Structure chart to set out relationship of the separate modules. Can use
an object model i.e. like the employee,
employees and payroll model or more traditional structure design where
the data and procedures are modeled
differently.
USER Interface (menu, gui, event driven) and layouts for output.
detail Algorithms
perform desk check to test algorithms
Step 2: construct program
Step 3: debug: syntax, logic and run-time errors, IDEs, debuggers etc.
Step 4: Testing: design test data, develop expected results, design
a set of tests, apply these, check ACTUAL output against
EXPECTED output.
Step 5: System test in real environment ready to enable the complete
system to be implemented.
Step 6: Document: internal and external (never done very well, we always
run out of time and money and enthusiasm just like in SAC1 unit 4!), but
nevertheless a vital cog!
Types of programming environment:
Traditional Imperative: programming defines data,
algorithms and uses library routines. Structured Program
development, decomposition and step wise refinement.
Objective Oriented: group the data and methods that
operate on the data together i.e. hidden, enable methods to be called in
the same way but behave according to the circumstances
e.g. displayAll( ), displayAll( filter). Can inherit and extend objects
already defined to easily add functionality.
Desired advantages of both methods:
code reuse
understandable code to aid maintenance and modification
enable code to be written by different people within the one project
error free development: main aim of OO
increase speed of development
reduce BUGS
Compilers and Interpreters: see handout with SAC 1 Unit 4 test of section 3
A program that translates source code into object code. The compiler derives
its name from the way it works, looking at the entire piece of source code
and
collecting and reorganizing the instructions. Thus, a compiler differs
from an
interpreter, which analyzes and executes each line of source code in
succession, without looking at the entire program. The advantage of
interpreters is that they can execute a program immediately. Compilers
require
some time before an executable program emerges. However, programs
produced by compilers run much faster than the same programs executed by
an interpreter.
Every high-level programming language (except strictly interpretive languages)
comes with a compiler. In effect, the compiler is the language, because
it
defines which instructions are acceptable.
Because compilers translate source code into object code, which is unique
for
each type of computer, many compilers are available for the same language.
For example, there is a FORTRAN compiler for PCs and another for Apple
Macintosh computers. In addition, the compiler industry is quite competitive,
so there are actually many compilers for each language on each type of
computer. More than a dozen companies develop and sell C compilers for
the
PC.
Data and Data Structures
Data can be classified as different DATA TYPES
Character: single byte per
represented character, ASCII code
String: group of characters
Integer: positive and negative
whole numbers, use 16 and 32 bits. Limited range and get overflow errors.
Real (float or double):
use normal form, 32 bits or 64 bits, provide good precision but many real
numbers can't be
represented accurately.
Thus we have overflow, underflow i.e. too small and rounding of decimal
point values.
Boolean: true or false
Data Structures
one dimensional arrays e.g.
String name [20], allows 20 individual names to be stored in memory as
a group known by the
array name, each element
can be retrieved by the use of the index to indicate position.
e.g. name [3] = "fred" is stored as the 4th element (we start at 0 in Java and C++)
two dimension arrays temps[row][col]
enable data to accessed like in a spreadsheet with row and col indexes.
The data is
actually just a list of
single arrays that can be accessed as a table.
records allow a list to be created but each element can be a collection of related data items of different type.
employee (Int idInString nameIn, ) {
iD = idIn;
name = nameIn;
}
Files allow data to be permanently
stored on disk or tape. The structure is denoted by the record structure.
Files can be organised sequentially
(disk or tape) or randomly (disk only). Access is either sequentially (tape
or disk) or
directly (disk only)
Programs are written using:
Instructions grouped into functions.
Instructions can either
be:
input or output
repetition ie loop (while, do-while, for)
selection (case or if/then/else)
can have compound if statements
if (condition) {true block}
else {if etc.}
Idea is to not use goto to aid readability. Irony is that the compiler turns your lovely structure code into spaghetti code!
Functions (methods in Java)
Allow
program to be broken up into separate units i.e. see structure chart.
functions are called by using the functions name.
communication between functions is via passing data values as arguments
to the parameter on the declaration line of the
function.
double rate =12, hours = 23
//note parameters can be function calls
e.g. call pay(rate, hours) // the value
of rate and hours denotes the argument values
.
.
somewhere below or above the function is declared
double pay (double r, double h) //r & h are parameters and
LOCAL variables
return r * h // a value is returned thus the function has
the required DATA type.
arguments
are passed by value in Java, this means changes are not made to the argument
variablesbakc in the calling
part of the program. You can also pass by reference. Arrays are reference
variable i.e. the array name points to the start
of the memory locations. When you pass and array name to another array
name in a function you pass the reference to
memory not a copy of the array. Thus changes made will remain when the
function finishes.
Variables
are either local or global (there is static also). Local means the variable
can only be reference within the
function it is declared i.e. scope is restricted. GLOBAL variables can
be accessed and CHANGED from anywhere. In
Java the employee method used a GLOBAL like declaration of id, name, rate
and hours i.e. these values once given to
the object could be referenced from anywhere within the object class structure.
User interface and program design
Traditional
Menu: users selects option from available menu. Usually means that
the program has a set sequence or
structure in which the user must operate. ATMs still use the basic
structure. Usually implies structured program design.
Event
Driven with GUI: this means that buttons are located on the screen
and uses select the action they wish
usually by click a mouse button (i.e. event is detected and handled). Gives
greater flexibility and matches more the style
of normal manual operation at a desk, for instance. Usually implies some
form of Object Oriented Event driven design.
Notes from Webopedia
object oriented
A popular buzzword that can mean different things depending on how it is
being used. Object-oriented programming (OOP) refers to a special type
of
programming that combines data structures with functions to create re-usable
objects (see under object-oriented programming). Object-oriented graphics
is the same as vector graphics.
Otherwise, the term object-oriented is generally used to describe a system
that deals primarily with different types of objects, and where the actions
you
can take depend on what type of object you are manipulating. For example
an
object-oriented draw program might enable you to draw many types of
objects, such as circles, rectangles, triangles, etc. Applying the same
action to
each of these objects, however, would produce different results. If the
action
is Make 3D, for instance, the result would be a sphere, box, and pyramid,
respectively.