Thursday, 26 September 2013

Rapid Application Development (RAD)

Rapid Application Development (RAD)

RAD is a method of designing and writing software that includes producing successive prototype versions of the software until the final version is produced. RAD fits closely with the spiral model of the System Development Cycle (See Unit 1)
This is referred to as Iterative Development. Each cycle may take 1-3 weeks.

Advantages of RAD
·        
  •     End user involvement in development allows for flexibility /changes in user requirements and prevents problems caused by misunderstanding of initial requirements.
  •      Prototyping means that tangible products can be seen at early stages of the project.
  •      Length of development time is usually shorter compared to other models (e.g. waterfall)


Disadvantages of RAD
·        
  •     Not efficient when dealing with very large-scale projects.
  •      Focuses on end result rather than processing thus producing solutions which may be inefficient in the way that they use available resources.
  •     Client may keep changing their minds about what they want the product to do.


Pseudo Code

Pseudo code

This is an alternate method of describing algorithms that use text instead of diagrams. It is basically just simplified code, that doesn't follow the strict rules and syntax of a programming language, but demonstrates the flow of the program and what it is supposed to do. 

There are no definite rules to writing pseudo code, but here are some guidelines:
·        

  •     Describe each step of the algorithm as briefly as possible
  •        Use uppercase letters with keywords and other parts of the pseudo-code which are      closer to a programming language
  •        Use lowercase letters with parts of the pseudo-code that are closer to English
  •         Indent code to show start and end blocks


Wednesday, 25 September 2013

Designing a Structured Program

Designing a Structured Program

On top of designing what data is needed how it is to be stored, you also need to design what the program will actually do with the data that is to be input in order to produce the wanted output. This is called an algorithm.
Only 3 different program constructs are needed to write a structured algorithm:
  • Sequence - One statement follows another and the program executes in the sequence it is written
  • Selection (if...then...else) - Next statement to be executed is dependent upon the value of an expression 
  • Iteration - A section of a program is repeated many times, as in a do...while loop

Programs that are written using top-down techniques, and using only the three constructs described are known as structured programs.

To design these types of programs effectively we have two main tools:
  • Program flowcharts
  • Psuedo-code

Program Flowcharts-
 These use diagrams to show the operation of the algorithm. - Small number of symbols to represent individual steps - Flow lines show order in which steps are carried out.

Psuedo-code- Pseudo-code is an alternative method of describing an algorithm that uses text instead of a diagram. It is essentially just simplified code, that doesn't follow the strict rules and syntax of a programming language, but demonstrates the flow of the program and what it is supposed to do.

There are no definite rules about writing pseudo-code, but here are some guidelines:

  • Describe each step of the algorithm as briefly as possible
  • Use uppercase letters with keywords and other parts of the pseudo-code which are closer to a programming language
  • Use lowercase letters with parts of the pseudo-code that are closer to English
  • Indent code to show start and end blocks










Friday, 20 September 2013

What is the difference between System Software and Application Software?

What is the difference between System Software and Application Software?



System Software- Software refers to the programs that we run on our computer systems. It allows the hardware to do something useful. Without software, the hardware wouldn't know what it was supposed to do. Software is made up of a series of of instructions or computer code. It is these instructions which tell the hardware that it needs to print a document, save a file or display a web page for example.

Applications Software- Application software is all the computer software that causes a computer to perform useful tasks beyond the running of the computer itself. For example, the Microsoft Office programs.

The difference between these two software is that system software are the base of application software, as without it, application software would have no problem to run off of. Application software are designed to run specific jobs or perform a task, whereas system software run and manage a variety of tasks that run the hardware of a computer system.

What is a Driver?



What is a Driver?

 Drivers are important parts of a computer system that allow a computer and a connected device to communicate and run efficiently.
A driver is any small software program that allows the use of a hardware device to run on a computer system. For example, a webcam and a monitor.
If your computer had no drivers, then any hardware device that is connected to your computer would not run efficiently, if at all.

Wednesday, 18 September 2013

Software

Software

Stages of a System Life Cycle

The system life cycle is a process of stages which occur during the development of a new IT system.

If organisations follow the stages of the system life cycle, they should be able to avoid many problems. 

The system life cycle consists of the following stages:

  1. Definition
  2. Investigation and analysis
  3. Design
  4. Implementation
  5. Testing
  6. Installation
  7. Documentation
  8. Evaluation
  9. Maintenance


Although all projects should start with the definition stage and end with the maintenance stage, the process is not always completely linear. After completion of one stage, it might be necessary to return to an earlier stage.

Importance of Defining a Problem Accurately
It is important to define a problem accurately because otherwise the problem could become miscalculated and the new system may not meet the customer's needs. Alternately, you could develop the correct system for the customer's needs, but overlook some of the major features and functions that were required. It also saves money if the problem is defined accurately. This means that because the problem was identified precisely, and developed accordingly, it saves time, money and man hours in the future correcting a problem which resulted from the original problem being misinterpreted.


Feasibility Studies
A feasibility study is generally what takes place next after the problem has been defined accurately. The function of a feasibility study is to determine whether it is actually possible or viable to go ahead with the proposed system being developed. The study takes into account factors such as cost, time and technical feasibility to develop. The purpose of this is to let you know whether the system is possible to develop with the budget you have, whether it is possible to do in a reasonable time scale and whether it is technically possible to create with the technology you have available to you.


Information Requirements of a System
It is important to determine the information requirements of a system so that you know what the system will need to be able to do during the development of the system. For example, if you designed a system without any knowledge of how big the memory needs to be or the amount of simultaneous work it needs to be able to do, then it is likely that the system developed does not have the right information requirements for what it is needed to do.


Different Methods of Fact Finding
  • Questionnaires - The first method of fact finding is in the form of questionnaires.The advantages of questionnaires are that they are set out in a standardized format, which means the information collected is presented in a clear and concise format because the information is generally collected in a Boolean format. Due to this, questionnaires are quite quick to fill out and they can be filled in by a large amount of people in one group. The disadvantages of questionnaires are that they are quite impersonal as all of the options within them tend to be Boolean. This means that the person filling out the questionnaire cannot provide any extra information, even if they have not understood one of the questions, meaning the information may be unreliable. Also, if the questionnaire is quite long, the person filling it out may answer the questions without really thinking if it is taking too long and they are bored.

  • Observation - The second method of fact finding is in the form of observation.The advantages of observation are that it takes less time to set up and interpret information than a method of fact finding in written format would. It is also less expensive as less materials are needed. They also provide more detail as you can see what is happening for yourself.The disadvantages of observation are that some information is not easy to interpret through sight, so some information may interpreted wrong and subsequently evaluated wrong because of this. It also may be difficult to use over a longer period of time.

  • Structured interviews - The third method of fact finding is in the form of structured interviews.The advantages of structured interviews are that due to the structuring of the interview, the subject remains on the main purpose of the interview, so there is little deviation. This means that the vast majority of information received is useful. They can also help to show the relationships between different concepts and provide detailed information on one subject.The disadvantages of structured interviews are that it may be difficult to direct the interview if the interviewer does not have a clear understanding of the concepts they are asking about. Some of the information may not be in the wanted depth that the interviewer is looking for.













Data Dictionary

Data Dictionary


Data Requirements

When designing a program, you also need to specify what data the will need and how it will be stored.  Designing the input and output requirements of the program will usually provide you with the majority of this information, but it needs to be presented in a way that can be easily checked for completeness and that can be referred to whilst the program is being written to avoid errors.
This is done by creating a data dictionary.

What is a data dictionary?

A data dictionary is a file which contains all necessary information and descriptions about the data that is used in the program. Details stored include:
  •          Variable name/identifier
  •          Data type and data structure (the type and format of the data)
  •          Size of data
  •          Validation rules (used to check that the data is appropriate)
  •          A description of the data (what it is used for)


Data Types
  •          Numeric (integers and Floating point, which is a decimal number)
  •          Text (A-Z, a-z, 0-9)
  •          Boolean (Yes/No, On/Off etc.)
  •          Currency

Validation Rules
  •          Presence Check (correct data is input)
  •          Look-Up Check (drop down menu)
  •          Range Check (can be alpha numeric)
  •          Length Check (data is too long or short)
  •          Type Check (type of character input)

Relationship Types

A person name and National insurance number are related pieces of information. This is known as a 1 to 1 (1:1) relationship as only one national insurance number can be related to any one person.




Example:

Table Name
Student
Field Name
First name, surname, course, grades
Data Type
Text and Numeric
Field Length
1-20 characters
Default value of field
Default value is blank
Field validation
Only text input into any field
Keys

Relationships
First name and surname, name and course, name and grades
Access rights
View only, unless admin


Saturday, 14 September 2013

Designing Input Screens

Designing Input Screens

Usually data input is by using a keyboard and/or a mouse through a graphical user interface (GUI) or form based interface. There are several factors that should be considered when designing an input screen.

The user: Who the user is you should consider age, level of computer literacy, language and possible disabilities. Your design should be appropriate to your audience.

Hardware available: What devices are available to enter the data.

Order: Users are likely to read from top left to bottom right. The layout and order of items on your input screen should correspond, e.g. Submit buttons will appear at the bottom of the page and to the right. Where the user interface is to be completed using a paper version of the form, then the screen should appear in the same order as they do on the paper version!

Graphical user interface (GUI) Objects: Text boxes, radio buttons, check boxes, list boxes, command buttons, menus and toolbars should be used to make data input efficient and reduce input errors.

Layout: Use available space efficiently. Group your form items under appropriate headings and subheadings. Ensure that the display is not cluttered.

Validation: The interface should reject any data which is obviously wrong e.g. text entered into a date field.


Instructions, help and information: The interface should provide feedback messages to explain what is happening. Additional help should be readily available and relevant to what the user is doing.

Designing the User Interface

Designing the User Interface



A program should be User Friendly.

A User Interface should be designed to:

  •     Allow users to input data easily
  •    Allow users to input data accurately
  •      Produce clear and understandable output
  •     Be efficient
  •    Fast response and processing times
  •    Make good use of IO devices
  •    Increase productivity of end user
  •  Be satisfying to the end user
  •   User is comfortable using it
  •     Easy to learn (no training required)
  •   Use familiar tools so user can reapply their existing skills

Components of a Computer System

Components of a Computer System

Definitions-

Hardware- Hardware is the physical parts of a computer and related devices. Internal hardware devices include motherboards, hard drives and RAM. External hardware devices include monitors, keyboards, mice, printers and scanners.

Software- Computer software is a general term that describes computer programs, often broken into two major categories; system software and application software. System software provides the basic non-task specific functions of the computer whereas application software is used to accomplish specific tasks.

Input Device- This is a machine that feeds data into a computer. For example, a keyboard is an input device. Input devices other than the keyboard are called alternate input devices. Mice, trackballs and light pens are all alternate input devices. 

Storage Device- A computer storage device is any type of hardware that stores data. The most common type of storage device, which nearly all computers have, is a hard drive. Whilst the hard drive is the most common storage device, others include USB sticks, floppy disks and SD cards. There are many more than these examples. 

Output Device- Any device that outputs information from a computer is called an output device. Since most information from a computer is output in either a visual or auditory format, the most common output devices are the monitor and speakers. Other examples include printers and projectors.

Purposes-

Input Devices- The purpose of an input device is to input information into a computer. For example, a keyboard inputs information into the computer. Without input devices, a computer would only be able to display devices and not allow users to interact with it.

Storage Devices- The purpose of a storage device is to store data. For example, a hard drive stores data internally and a USB stick stores data externally.

Output Devices- Output devices output information created by the computer. For example, a monitor displays data that the computer has processed. 

Roles and Functions of System Software and Applications Software-

System Software- Software refers to the programs that we run on our computer systems. It allows the hardware to do something useful. Without software, the hardware wouldn't know what it was supposed to do. Software is made up of a series of of instructions or computer code. It is these instructions which tell the hardware that it needs to print a document, save a file or display a web page for example.

Applications Software- Application software is all the computer software that causes a computer to perform useful tasks beyond the running of the computer itself. For example, the Microsoft Office programs. 

Wednesday, 11 September 2013

Reviewing Data Input Designs

Reviewing data input designs

The University Of Manchester- School of computer science

This service is a feedback form on The University of Manchester- School of computer science’s website. It has been created so that the users can feedback to the University on any comments they have about the website or any problems they experienced during their viewing of the website. The information asked for is your name, your family name, your email address, comments and problems. None of the information seems irrelevant because it is all needed to identify the person giving feedback on the site. 

On the form, they have given an example of what you must put in the correct fields. For example for the comments field, they have written ‘any comments about this site’. This is an example of good design because it makes it clear for the user what they must write and where.

However, on the form the creators of the site have chosen to name a box ‘family name’. I see this as an example of bad design because the user may become confused by the term family name. People recognize the word ‘surname’ more than they do ‘family name’ so changing this on the form would improve the over input design.

Another example of bad design is the fact that the creators have decided to put ‘(required)’ next to the name, family name and email fields. This is good, however what about the comments and problem section? Are they not ‘required’? The whole point of the form is to obtain users feedback (comments and problems) yet they have decided against making these two fields a requirement.


Twitter sign-up page

This service provided by Twitter is an online form you must fill out in order to sign-up to the social networking site. The information asked for is your full name, email address, desired password and a desired username. None of the information provided seems irrelevant because it is all required to set up your Twitter account.

There are only four sections to fill in on the form which is good because the user won’t want to fill in loads of details when signing up to the site. It is also clear on what you should put in the fields. For example, the creators of Twitter have decided to use ‘full name’ instead of just ‘name’. This makes it clear to the user that they must enter their full name, not just their first name.


The trainline.com search engine

This service provided by the trainline.com is a search engine because it searches through the site for the correct train times and tickets which match the needs entered into the form.  The form requires the user to input information regarding departure, destination, how many adults/children will be travelling and also whether you have a rail card. None of the information provided by the trainline.com is irrelevant because all the information is needed to narrow down which train times/tickets suits the user best.

An example of good design is that the form is dark blue. This will be the first thing the user sees on the site as it stands out from the rest of the page. This form is more than likely what the user needed and so it is easily accessible and stands out well.

When I look at this form, my first reaction is that it looks complicated. This would be true to people who don’t often book train tickets online as the boxes are only named after one word. For example, one of the fields just says ‘out’. This is an example of poor design because people won’t necessarily know what it means. 












Friday, 6 September 2013

User Interfaces

Good Design and User Interfaces


All programs are designed to:


  • Collect INPUT data
  • PROCESS data in some way
  • OUTPUT the result

Graphical User Interface (G.U.I)-

Graphical User Interfaces (or G.U.I'S for short) involve the user choosing an option by pointing a mouse (arrow) at a particular icon representing the desired option. An example of G.U.I is the Microsoft Windows Desktop Environment.

Windows Vista desktop environment
The Microsoft Windows Desktop Environment. This is a G.U.I
Advantages include:

  • They are far easier to use for 'beginners'. 
  • They enable you to easily exchange information between software by copy and paste ('drag and drop').
Disadvantages include:

  • They use a lot of memory and processing power. It can be slower to use for expert users and you are familiar to the Command Line Interface.
  • They can be irritating to experienced users as simple tasks may require several operations.  


Command Line Interface-

A Command Line Interface allows the user to interact with the computer by typing commands. The computer displays a prompt; the user keys in a command, presses enter or return and the command in question will be performed. A common Command Line Interface is Microsoft Disk Operating System. (MS-DOS). 
The command line screen
The MS-DOS. This is a Command Line Interface

Advantages include:


  • Experienced users who know the commands can work very quickly without having to find their way around menus. 
  • Command driven programs do not need to run in Windows.
  • They do not need the memory or the processing power of the latest computer and will often run on lower spec machines.
Disadvantages include: 

  • Commands must be typed correctly and in the right order or they will not work
  • An inexperienced user may find it difficult to use because of all the commands that have to be learned. 


Menu Driven Interface-

Menu Driven Interfaces display a range of various different options in the form of a menu which the user has to work through in ordered to select the desired option. They are better for beginners as they can work through the menus step by step. However, experienced users may find this time consuming. Menu Driven Interfaces are used a lot in everyday life. For example:

  • Ipods/Mp3's
  • Games Consoles 
  • ATM's
An ATM. This uses a Menu Driven Interface



Advantages include:

  • Ideal for small lists of options
  • Easy for novices
  • No need to learn any navigational skills
Disadvantages include:

  • It can be a slow form of navigation for experienced users
  • It has a limited user interface


Form Based Interface-

A type of user interface used to organize questions or options for the user so that they resemble a traditional paper form to be filled out by pointing to the fields and typing text, or by choosing from a list.


external image index.gif
This is an example of a form based interface


Advantages include:

  • Information is organised clearly
  • Easy for novices to understand and use
Disadvantages include:

  • Time consuming for more experienced users


Natural Language Interface-

Natural Language Interface is a type of human interface that recognizes verbs, phrases and clauses spoken by the user for selecting, creating and modifying data.  

Apple.inc's Iphone 4s running IOS5 with Siri
The Iphone's Siri feature is a good example of a Natural Language Interface


Advantages include:

  • The speed of the interface
  • The ease of use of the interface
Disadvantages include:

  • The challenge to understand a wider range of ambiguous input










TechRadar

TechRadar (http://www.techradar.com/) is a website that specializes in providing technological information to the everyday person. The website itself is up to date with all the latest technology information, for example the latest smart phones (I phone 5 and Samsung Galaxy 4) as well as next-gen games consoles such as the Xbox One and the PlayStation 4. Furthermore, the website provides updated technological news such us the forthcoming Apple conference. 

If ever I need the latest technological news, this website is the place I go. It is very well organised, with information clearly spread out into different sections as well as a 'user friendly' colour scheme of white, blue and pink. The selected colour scheme is good for me as they don't 'overpower' the website. Some sites have really bright colour schemes which would turn me away from it immediately so this is definitely a bonus for TechRadar. Clearly labeled tabs on the navigation bar supply shortcuts to the latest technology which is also useful to me as the user as it means I don't have to search, it is all at the top, ready for me to click and read.