Revision Notes review notes for IS and IPM

Hardware and Software | SDLC | Programming and Software development (IS)



Hardware and Software concepts
refer: IS chapter 2 Hardware and Software Overview and the review exercise you did on this chapter
         IPM refer relevant chapters and review exercises

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.



Revision of Program and software development concepts

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.