Selection and Design of the Method of Solution

This is the section where the method used to solve the problem specified in the Objectives of the Selection, Analysis and Formulation of the Problem Section is selected and designed. Remember to refer to the Objectives regularly in order to ensure that your design meets the user's requirements.

This section is again divided into a number of sub-sections.

Overall Plan

You need to be clear in your own mind as to how you intend to design the solution. Remember to use the Top Down Design method using self-contained modules. The method used should be described showing the links between the modules, and also there should be clear description have the data flow in your system, possible using the Data Flow Diagram or similar.

If you are solving a multimedia/ www site problem, the content of the pages should be given, and the links between them using the storyboard technique.

Remember it is based on the Objectives.

This section requires the following:

Alternative Methods and Justification

This section explains possible methods of solving the problem. Include both software and hardware designs, but concentrate on the software side. Specify the type of package or programming language, but do not specify the actual package or programming language used. Similarly with the hardware.

At this stage your project should be independent of any particular programming language or package, and also of any specific hardware device, if possible.

This section requires the following:

Data Structures and Validation

Data Processing and Databases

This section describes how the data is organised and stored. Alternatives could be considered, and choices justified. Details of how the data is stored internally and externally needs to be described.

This section requires the following:

Multimedia/ WWW Site

Here how the pages are organised within the site needs to explained. Again alternatives need to be considered and selections justified.

This section requires the following:

Input and Output Requirements (I/O Requirements)

This section deals with the Human Computer Interface (HCI) i.e. how the user and the computer system communicate with each other. It may be useful in some projects to split this section to Input Requirements and Output Requirements at some stage. Initially the type of User Interface (UI) needs to be considered and selection justified, before moving on to consider details.

The I/O designs should be discussed in terms of user friendliness, suitability, consistency and robustness. Think about the target users, decide on basic standards, such as colour, fonts, controls, consistent format, jumping to various sections of the program etc. These designs need to be included.

In addition to the screen designs, are than any paper based forms which need to be designed e.g. Data Capture Forms (DCFs), Hardcopy Output?

What inputs are required by the system? What outputs need to be displayed? These may have to be justified.

This section requires the following:

Multimedia/ WWW Site

In this style of project, pages may have a similar format and content. To avoid unnecessary repetition, where pages are very similar, include one example and provide a list of the other similar pages, and indicate where they differ.

Processes - The Algorithm (Modular Design)

This can be a time consuming task, but it is worth while to do it properly for a number of reasons.

In the Overall Plan you described how you are using the Top-Down Design Method, with modules performing self-contained tasks. We now have to describe how the modules perform these processes, using algorithms written in pseudocode.

Follow the Top-Down Method, and take each module in turn. Before writing the algorithm, ensure that the module has a meaningful identifier, and give a brief description of the task carried out by the module.

Also it may be useful to provide a Data Table of any data items used by the module. Remember use meaningful identifiers, and refer to the Data Structure Designs when necessary. In this table indicate what data types they are, whether they are local or global, and whether they are value or reference parameters. The Data Table could be included before or after the actual algorithm.

Write the actual algorithm in pseudocode, not in any particular programming language. At this stage, remember, it should be independent of any particular programming language or package.

Do not be afraid to use the Step-Wise Refinement method, and include the various refinements.

Keep your modules short and simple. Avoid complex algorithms and clever tricks no one else will understand. Annotate the algorithms where necessary, especially when a complex task or control structure is being used. Read through each module, and dry run the module to check for any logical errors.

This section requires the following for each module:

Multimedia/ WWW Site

As you possible do not use algorithms and modules in the same way as described above, the following should be included in your project.

In this case your modular design is based on your pages.

Each page should have a meaningful identifier, and a brief description of the purpose of the page given.

Identify the resources required for each page. Resources for each page may differ, but sometimes they may be more or less the same. To avoid unnecessary repetition, where pages require very similar resources, include one example and provide a list of the other similar pages, and indicate where they differ.

Resources can include text boxes, pictures and graphics, sounds, animation and video. It also include links to other pages, input boxes, search engines and so on. The content of the input box, or the button pressed, may determine the next link! This should be shown in this section.

A diagrammatic representation may be more useful than a written one.

This section requires the following for each page:

Testing Strategy

As nothing has actually been created as yet, at this stage you can only describe how you intend to test your solution. The actual testing takes place later.

You should specify that, each module will be tested individually, using appropriate test data, to ensure that it works. Then it is added to the other modules in the program, and this is then tested to ensure that the solution works so far. If the testing is successful, then move on to create and test the next module, otherwise find and correct the error.

When the final module has been individually tested and added to the whole, and this has been tested, then we can say that the testing is complete.

There are a number of types of test which can be undertaken, these are:

Test Data should be carefully thought out and selected, in order to test the modules and program thoroughly. Test data should include:

This section requires the following:

Multimedia/ WWW Site

Testing for these types of projects may differ to the above project. However, there may be some similarities.

Nôl