# HSC Information Processing and Technology/Project Management

Projects involve the planning, designing and implementation of an information system for a specific purpose. An information system is a system that has been set up to store and carry out tasks using information. Most information systems in today's modern society utilize computers, but this has not always been the case, and some information systems, such as address books and filing cabinets, are still operated manually.
Projects can be done for any of the systems listed below
* Database information systems
* Communication systems
* transaction processing systems
* Decision support systems
* Automated manufacturing systems
* multimedia systems
The skills learnt in this topic can be applied to any of the listed topics, as developing any of those systems will require good planning, so the project work topic is foundational to your studies of the HSC component of IPT.

## Project Management

Project management is the process of planning, scheduling and controlling all the activities within each stage of the system development cycle. It aims to deliver a new system within an acceptable time frame and budget using any required knowledge, skills, tools or techniques necessary for the particular project.
A project can be any undertaking that sets out a specific objective
The advantages of using project management include:
* cost control
* development within specified times
* organised use of the available hardware and software
* an improved end product
Project management is best described as a set of five processes that guide the developer of a project. These five processes are known as the system development cycle:
* Understanding the problem
* Planning decisions
* Designing solutions
* Implementing Solutions
* Testing, Evaluating and Maintaining

### Developing a Project Plan

A project plan is a summary of a project that specifies who, what, how and when. It clarifies what needs to be done and helps people to understand how they fit into the project. A project plan breaks the project into major tasks called subprojects.
The start of a project plan is the problem definition. All the subsequent steps come from the problem definition.
A project plan:
* Is a summary of a project, specifying who, what, how and when.
* Clarifies what needs to be done, helps people understand how they fit into the project.
* Provides overall schedule, details of subprojects and a schedule for each subproject.
* Identifies people, information technology and data/information required by the system.
* Helps to deliver a system on time and minimise the effect of unanticipated problems.
A very important tool used in project planning is a Gantt chart, which shows how long each stage of a project or subproject will take
Project Plans involve goals, deliverables and schedules. People working on projects need to understand the need for these things to minimize problems later on
| Goals | Result of the project if it is successful. Goals may be broad or specific. |
| Deliverables | A tangible item expected from a task. Diagram, report, data dictionary, program or training manual. |
| Schedules | The timing of major tasks and who will do the work. |

### Communication Skills

Participants in a project must always be kept informed. Communication skills incorporate a variety of strategies and techniques for dealing with other people. Good communication facilitates the sharing of information and genuine understanding. All team members must contribute to the team cohesiveness by actively using communication strategies such as:
| Active listening | Involves restating, reflecting and summarising the speakers major points. |
| Conflict resolution | Solves arguments and disputes. |
| Negotiation skills | Involves discussing a problem and arriving at an agreement. |
| Interview Techniques | A list of questions prepared with a clear purpose. |
| Team building | Is the process of getting a group of people working together. |

## Social and Ethical Design

All projects have social and ethical implications. A persons ethics are their values, a set of beliefs about what is right or wrong. A project should be considered unethical if it:
* harmed others in some way
* was against society's standards of what is right
* violated the rights, freedom or justice due to others
* broke the law
Some ethical issues that should be thought of while going through project design are:
* crime and security, including data protection, piracy, hacking, and virus issues
* privacy of the individual
* intellectual property rights and copyright
* computing etiquette or rules that respect the rights of others
* the health and safety of all participants
* equity or the equal access of all participants to the benefits of an information system

### Design of System

Information systems should be designed to take into account the strengths and weaknesses of both people and machine.
| Machine-centred systems | Are designed to simplify what the computer must do at the expense of participants. They assume people will follow confusing procedures and illogical user manuals. |
| Human-centred systems | Are those that make participants work as effective and satisfying as possible. The allow people to do their work without wasting time and effort struggling with the information technology. |
| User-friendly | Describes a tool that people find easy to use. User-friendly information systems are more productive as participants do not waste time and effort dealing with the system. |

### The Environment

The environment is any aspect which is not directly part of the system but which affects it in some way. The information system has a boundary that sets the limits of the system environment. Within the limits are both human and physical resources.
Ergonomic design that considers the users by arranging the work environment to minimise the problems that can result from the use of hardware and software is desirable. Ergonomic design may include adjustable furniture, correct lighting, controlled noise and software that helps the user to carry out the tasks involved

## Understanding the Problem

Understanding the problem is the first stage in the system development cycle. The exact nature of the problem must be determined and whether it can be solved by an information system. This may involve redefining the problem and identifying its important elements. A clear problem statement is essential at this stage.
* What are the problems with the existing system?
* How does the existing system work?
* How do you identify the problems with the existing system?

### Prototypes

A prototype is a working model of an information system. Prototypes are built in order to understand the requirements of the system. The also can help in defining the problem to be solved and in determining how an information system might solve the problem. Advantages of using prototypes
* Clarifies how the existing system will work.
* The requirements of the system more accurately reflect the needs of the participants.
* Participants have the opportunity to be involved earlier and more directly in the development of the new system.
* The new system is easier to create from a prototype.
After all the information has been gathered, a requirements report is produced. This is a statement about the purpose/ requirements of the new information system. It includes aims and objectives of the new system and how it will help the organisation.

## Planning - Making Decisions

* This stage involves making decisions using the data gathered. The first task is to develop one or more potential solutions to the problem.
* A constraint is a factor that affects the system and prevents it from achieving the desired objectives. There are different types of constraints.

### Feasibility Studies

A feasibility study is a short report that analyses potential solutions in terms of the known constraints and makes a recommendation. It does not attempt to find a detailed solution. The feasibility study briefly examines the available options, estimates costs and identifies any constraints to be considered. It judges whether a potential solution can actually be implemented.
| Economical | Compares the costs of developing the new system with the expected benefits. |
| Technical | Determines the information technology requirements of the new system and the technical demands that will be placed on the new system. |
| Time | Determines whether time is available to implement the new system. |
| Organisational | Determines whether the new system will fit into the organisation and meet the current goals and objectives. It also determines whether the new system will have enough support from participants to be successfully implemented and whether participants can operate the system. |
A feasibility study can make three recommendations: No Change, Develop a new system or investigate other solutions.

#### Is the Problem Worth Solving?

Deciding whether the problem can be solved.
* Will the existing system be able to perform the required tasks in the foreseeable future?
* Will the proposed system meet future needs?
* Have existing similar solutions been examined?
* How crucial is the new system to the total organisation?

#### Is it economically feasible?

The systems analyst must determine whether the solution to the problem is affordable.
* Development hardware/ software costs?
* Development personnel costs?
* Outsourcing costs?
* The available capital
* Costs savings as a result of the products implementation
* Future upgrade costs

#### Is it operationally feasible?

Analyse whether a solution will be usable by the target customers.
* What expertise was required to complete this project?
* What resources are required to develop this project?
* Are we able to support this product in the future?
* Can we retrain/ redistribute existing resources to this project?

#### Is it technically feasible?

Determine what hardware and software is currently being used.
* Is the technology readily available for this solution?
* Can the product operate on a variety of platforms and hardware components?
* Will the solution continue to operate on any new and developing technologies?

#### Scheduling  Can it be completed in the required time?

The schedule feasibility takes into account the time frame in which a solution must be developed. The solution being developed must be achievable within an appropriate time frame. (Use of Gantt Charts).
* When is the best time to implement the product?
* Are personnel available at the required times?
* How long will each stage of the development take?
* Are required resources available when needed?
* What if key personnel leave during development?

#### Are there other alternative solutions?

After determining the feasibility of a solution, a decision must be made as to whether the solution is to be implemented.
* Smaller scale solution to the project
* Discontinue the project

#### What are the social and ethical issues?

Ensuring that the software being developed is not socially biased as this may impact the feasibility of the solution.
* Changing nature of work for users
* Affects on level of employment
* Affects on the public
* Legal issues

### The Project Plan

This is a summary of who, what, when, and how. It involves helping participants understand their role in the project. Identifies sub-projects and gives a time frame for them. Identifies the need for the users and participants and their feedback. Identifies the people, information technology, and data/information required by the system.
There are three important parts to a project plan:
* project goal- desired outcome
* deliverable- the tangible item expected from the task
* schedule- gantt chart, the timeline of tasks to be completed
NOTE: the project leader is responsible for developing the project plan and ensuring it is implemented correctly!

## Designing Solutions

Designing a solution is the transformation of the specifications into appropriate hardware, software and information processes. It involves purchasing hardware, writing or purchasing software, and specifying information processes to make the system operational.

### Participant Development

Participant development occurs when people within the information system develop the solution. Participants produce their own information system using readily available information technology. Information system personnel do not develop the system. Stages in the system development cycle are affected by participant development.
| Understanding the Problem | Participants identify the problem. Information system personnel might be used to advise the participant on possible tools to solve the problem. |
| Planning - Making Decisions | Participants chose an appropriate solution. |
| Designing Solutions | Participants develop the solution, often using guided processes found in application packages. The participant may require some training to design a solution. |
| Implementation | Participants begin using the system. This stage is often easier to accomplish with participant development than with a system developed by information system personnel as the participant is familiar with the application and does not require further training. |
| Testing, Evaluating and Maintaining | Participants are totally responsible for the maintenance and testing of the solution and determining if any changes need to be made to the solution. |

### Design Tools

Design tools assist in the development of a new system.

#### Context Diagrams

Context Diagrams are used to represent entire information systems. The system is shown as a single process along with the inputs and outputs (external entities) to the system. The external entities are connected to the single process by data flow arrows. Processes are represented by circles, entities by boxes and data flow by arrows.

#### Data Flow Diagrams

A data flow diagram is an expansion of a context diagram. DFDs represent the information system as a number of processes that together form the single process in a Context Diagram. The focus is on the flow of data between information processes in the system. DFDs show where data is collected, organised, analysed, stored, processed, transmitted and displayed. They provide a simple technique for visualising the movement of data and describing what participants do, rather than what the computers do. Data Flow Diagrams share the same symbols as Context Diagrams but have an extra one, an open ended box for data storage.

#### Decision Trees

Decision trees are a diagrammatic way of representing all possible combinations of decisions and their resulting actions. It represents the decisions made within a system as the branches of a tree. For every condition, there is an action/ outcome.

#### Decision Tables

Decision tables represent all possible conditions and the actions that will result. It indicates the alternatives for different conditions and actions based on the rules.

#### Data Dictionaries

A data dictionary is a description of the fields and data stored within the system. From the dictionary it is possible to determine the name used to reference the data, the type of data stored, the length of the field, the application program and an example of data being stored in the system. Data Dictionaries can also be used to calculate the storage required for each record. This forms part of the documentation for the system.

#### System Flowcharts

System flowcharts are a diagrammatic way of representing both the flow of data and logic through an information system. It documents the essential details of the system, such as sequence, processes, and rules for selecting particular actions. A system flowchart shows the hardware used to process data such as peripheral devices, storage mediums and processing units.
Note these have been removed from the 2010 Onwards Syllabus for HSC

### The use of Design Tools
## Implementing the Project Plan

The implementation stage delivers the new information system to users and participants. Participants will be provided with at least some of the following new components of the system: Hardware, Software, Data or Processes

### Training Participants

Training ensures participants can use the new system and understand its benefits. Training is also needed in the installation of a new system and to ensure that the computer is being used efficiently. The type of training depends on the existing knowledge of the participants and the features of the new system. Technical support staff are people who assist participants of a system on an as-needed basis.

### Determining the Conversion Method

Conversion of a system only takes place when a system already exists. It must be carefully planned and executed to avoid errors. There are four methods that can be used to upgrade or replace an existing system. Direct Conversion The old system is shut down or removed and the new system immediately replaces the old one.
Parallel Conversion During the change-over phase, both systems are running together. This method is often used when converting from a non-computing system to a computerised system.
Phased Conversion Parts of the old system are replaced by the new system until the whole system has been converted.
Pilot Conversion This involves trialing the new system in a part of an organisation. The pilot site is selected and a conversion method is used to convert to the new system. Once the pilot test is ok, the rest of the system is changed.
Advantages and Disadvantages of conversion methods:
| Method | Advantage | Disadvantage |
| Direct | Fast Users benefit quickly | Relies on participants to adapting to new system quickly No backup system if problems Any redundancies are immediate |
| Parallel | Participants adjust to the new system over time Problems with new system solved prior to closure of the old system | Extra workload for participants running two systems Confusion in discrepancies arise |
| Phased | Participants and users trained in each aspect of system as it is implemented | Components of new system often incompatible with old Difficulties working with hybrid system |
| Pilot | Any difficulties are confined to separate location Participants can be trained in the new system at the pilot site | Pilot site running a different system from rest of system |

### Deciding Testing Methods

Testing a system is a very important part of the implementation of a system. Without rigorous testing, the system cannot be guaranteed to work as expected.

### Taking Steps to Convert the New System
## Testing, Evaluating and Maintaining

Testing a solution ensures that it works. Testing is carried out throughout the system development cycle. Evaluation determines whether the system is working as expected or whether changes are required. It occurs after the new system is established and minor problems have been fixed. The system must also be tested, to make sure that the original objectives and aims have been achieved.
Test data must be sufficient to ensure the program is completely operational and free of logic errors. Test data must be constructed to test every part of a program, including the mainline of the program and any modules used by the program. Test data should test:
* All parts of the program
* Each path of execution
* Boundary conditions  the values of variables or expressions that determine the
choice of available options to be taken.

### Live Test Data

Live data is real data, used to ensure that a program works under real-life conditions. Stress testing involves increasing the load on a program in an attempt to make it fail.

### Larger File Sizes

A program developed to access files should be tested with a range of file types and sizes. The use of large files will highlight problems associated with data access.

### Mix of Transaction Types

A variety of different transaction types and sequences of data entry should be tested with live data. Module and program testing usually involve testing specific transactions or processes one at a time. During system testing, transactions occur in random order and checked to see if any errors arise.

### Response Times

Live data is used to ensure that the system response times are appropriate. Response times are dependent on all the system components, together with their interactions with each other and other processes that may be occurring concurrently. Response times should be tested on minimum hardware using typical data of different types.

### Volume data

It is important to test a system using expected loads. It is also necessary to test the system under heavy loads. Multi-user products should be tested with large numbers of users entering and processing data simultaneously to see if the program can handle the load.

### Interfaces between Modules

Interface tests will ensure that the correct numbers of parameters are sent to and from the module and that the format is correct. Interface tests will also detect conflicts between local and global variables. Comparison with Program Test Data Software developers generate test data to test the limits of the system that may not be tested under normal use.

### Benchmarking

A benchmark is a standard against which performance of a computer program can be assessed. Established programs are often used as a benchmark to indicate the quality and performance expectations of a new product. Benchmarks allow users of software products to make informed purchasing decisions.

### Quality Assurance

Quality Assurance is a set of procedures used to certify that a generated product meets specified criteria with respect to quality and reliability.
* Correctness
* Reliability
* Efficiency
* Integrity
* Maintainability
* Does it do what it is supposed to do?
* Does it do it all of the time?
* Does it do it the best way possible?
* Is it secure?
* Can it be understood?
Quality Assurance is not just about testing a product once it has been completed. Quality Assurance techniques should be implemented throughout the software development process.

### Alpha Testing

Testing of the final solution by personnel within the software development company prior to the products release. The client uses the system in a controlled environment and checks to see if it meets their requirements.

### Beta Testing

Testing of the final solution by a limited number of users outside the software development company using real world data and conditions. The program is given to a number of potential clients who will also report to the developers any problems they encounter in the program.

### Evaluation

* Usability
* Speed
* Security
* Accuracy
* Efficiency
* Rate of Usage

### Maintenance

Maintenance is the modification of the system by making minor improvements. It involves documentation and logs.

### Operation Manual

An operation manual details procedures participants follow when using a new system. Participants need to be instructed about and assisted with the major features and functions of the system. An operation manual includes:
* User-friendly format and structure
* Clear and concise instructions
* Steps listed in point form
* Tasks completed in the simplest way
* Appropriate instructions for file management and security
* Screen dumps included where possible.