Defining the problem precisely is vital to the successful development of any product. An intimate understanding of the nature and requirements of the problem must be realised. Once an understanding of the problem is reached it is possible to consider the inputs into and outputs from the system. The nature of the processing required to
transform these inputs into the outputs can then be developed.
There are many other questions and issues that should be addressed during this initial
phase. Some common questions follow:
In the HSC course, we examine many of these questions in more detail.
Introduction Summary
Defining the problem
A problem must be understood. It must have an objective and a clearly defined end, and the problem definition should consider any constraints likely to restrict the problem solution. The user perspective of the problem is most crucial. You cannot solve a problem unless you know what caused or why it exists. The user is the most likely person to be aware of such issues.
Questions to help define and identify the problem
- * What are the users specific needs?
- * What are the objectives involved in meeting these needs?
- * What boundaries or limitations might exist for the problem?
Needs
A need is a necessity. For example, a user may dislike the interface of the program they work with. They might prefer other colours or different backgrounds. None of these are needs just preferences. If useful output requires that numbers be shown to two decimal places, then that is a need.
Needs are often based around the health and safety of the computer user. They are essentials. Preferences are those elements of a program that a user would rather work with.
A program developer aims to meet needs first and then to provide a range of preferences where possible. Screen design elements are very important aspects of meeting both needs and preferences in program development.
Objectives
Objectives are aims. Achieving the objectives will help to meet the needs of the user.
Some of the other major objectives to be achieved in many programming projects include:
- Meeting social and ethical standards
- Using an appropriate method of display
- Providing for input and output
- Deciding on relevant data formats for display
- Providing clear and understandable methods of navigating between screens.
Boundaries
Boundaries are limits or borders. No program development can consider everything in an environment, and its not feasible to think that a single program can do everything a user requires. Some of the issues in deciding boundaries will relate to the users environment and computer configuration. The program to be written may well be limited to a particular clock speed. Other hardware factors include memory and storage. Carefully documenting the boundaries enables all those involved in the program development to have realistic expectations of what the eventual program can or cannot achieve.
Feasibility of the solution
Feasibility determines whether a problem is worth solving. This involves two perspectives: can the problem be solved and if it can is it worth proceeding with the solution. Unless these two perspectives are positive then its useless to proceed with the next stage.
Constraints refer to any restrictions or limitations placed on a problem solution, such as insufficient time or money. Feasibility needs to be considered from many points of view: TOES - technical, operational, economic/budgetary, scheduling, possible alternatives and any social and ethical issues.
- Technical feasibility is simply the availability of hardware and software for the product. A potential program is usually planned for a particular hardware platform and for a particular operating system, so feasibility is often not an issue. However should the program require technology different from that which already exist or where new technology has to be purchased for the problem to be solved, it may be an important issue.
- Operational feasibility refers to the skills and resources needed to complete and maintain the potential program. The program development may require a range of skills that are difficult to gather together or may need resources that are hard to obtain. The solution may have to be abandoned until skills exist to continue.
- Economic / Budgetary feasibility refers to the ability to develop the potential program within the money allocated or available. An experienced analyst can often calculate the cost of a project within reasonable limits and needs to give the client a clear itemized cost analysis so that they are aware of the various aspects of the project and the estimated cost of each step.
- Scheduling feasibility refers to the time requirements. On a large project, time is very expensive: programmer’s time installation time and training time are just some aspects. There is usually a firm completion date that must be met. Such a situation leads to other decisions, including the size of the development team and the possibility of outsourcing some of the development to together providers.
Text Book Content