A good solution will undergo a rigorous design stage before any attempt is made to implement it. The solution must address the stated need or opportunity and meet all the functional and non-functional requirements listed in the analysis stage.
Whereas in the analysis stage the focus is on what needs to be done, the design stage focuses on how it will be done. Designing a solution can occur without using a computer at all. Much time can be wasted if a design has not been properly planned before work starts on developing the solution.
A digital solution will undergo a detailed and rigorous design stage before any attempt is made to develop and implement it. Whereas the Analysis Stage is focused on what needs to be done, the Design Stage is focused on how it will be done.
The Design Stage is important as it should make crystal clear what the solution actually is and how it will function. This helps to avoid problems during the Development Stage such as:
An unclear vision between team members leading to misunderstandings and miscommunications during development
Time wasted during development on changing or shifting designs frequently
In the problem-solving methodology, the two activities involved in the design stage are:
• designing the solution
• creating evaluation criteria.
To design the solution, a range of design tools are used to represent both the appearance and the functionality of the solution. The type of design tools used for a particular solution will vary depending on the format of the solution (website, database, drone, software application, etc.).
Types of design tools include (but are not limited to):
• layout and mock-up diagrams (see Chapter 2)
• pseudocode
• site maps
• storyboards.
You are required to produce at least two solution designs relating to its functionality.
Just as you need to be able to communicate what your solution will look like, before you begin development, it is important to plan out in advance how your solution will function.
There are a wide variety of tools that you can employ to do this such as:
A Data Dictionary (if your solution involves the use of a database)
A Site Map (if your solution is web-based)
A Circuit Diagram (if your solution is hardware based)
An IPO Chart
A Flow Chart
Pseudocode
Pseudocode is frequently used when developing a solution using a programming language, but can also be used to represent the logic in solutions developed using other software types. Pseudocode combines the structure of programming language code with instructions or steps written in plain English, as it is created to be read by humans, not a computer.
Here is the pseudocode representing the steps of processing that will occur in a solution that a teacher will use to calculate a student’s average grade and award based on their tests result.
A site map is used to represent the functionality of a solution. A site map shows how the information has been structured within the solution, and how a user can navigate to find the required information. A site map is commonly used as a design tool for websites, but can also be used to show the structure of information presented using other formats, including games, multimedia, interactive solutions and smartphone applications.
IPO Chart
An IPO chart records the input, process, and output of a process, or function within your program.
You should have a row for each process or function.
Flow Charting
A Flowchart is a graphical representation of an algorithm. Programmers often use it as a program-planning tool to solve a problem. It makes use of symbols which are connected among them to indicate the flow of information and processing. The process of drawing a flowchart for an algorithm is known as “flowcharting”.
A storyboard is a design tool that can be used to represent the functionality of a solution, but also contains elements about the appearance of a solution. A storyboard shows the features of an individual section of a solution. A series of storyboards can be used to represent the entire solution. Storyboards are commonly used when designing websites, but can be used for other software types.
A storyboard can contain a basic layout diagram showing how the section of the solution can appear.
It also contains detailed information about:
• section name
• filename
• formatting features (e.g. background and foreground colours)
• purpose of the section
• media used in the section (e.g. images, videos)
• navigation to other sections of the solution.