1.2.7 Suitable representations to illustrate system requirements
IB Subtopic
There are many ways to show system requirements. You will be using the following types of charts to illustrate your requirements in Criterion B. Remember, these will change many times. Design quickly and change often by getting feedback from the stakeholders.
System flowcharts describe the flow of data through any individual program. Flowcharts show the specific hardware that will be used to obtain and store data. You can use the following symbols to create a system flowchart.
Data Flow Diagrams are used to describe a particular problem that needs to be solved in your application. You can have many DFD’s for your design and you can connect DFD’s to other DFD’s. The following symbols can be used:
Here is a simple data flow diagram:
As you’ll notice, all DFD’s need a process that has inputs and outputs. You can connect processes together to show a more complex idea:
This diagram shows a few possible mistakes you might come across when creating a DFD.
You could also have processes that receive multiple inputs and produce multiple outputs:
DFD’s can also have multiple Levels:
Where one part of the level 1 DFD will be explained in more detail:
We’ve done UML Diagrams before. As opposed to DFD’s and Flowcharts, UML diagrams show the relationship between objects in your program. The least amount of objects you use, the smaller your UML diagram will be. Here are the Symbols you can use with UML diagrams as illustrated by a great example of what your UML Diagram might look like.
Notation | Definition |
Inheritance (or Generalization) | An “is-a” relationship between parent and child class. |
Association | A simple structural link between two classes that shows some non-specific relationship |
Aggregation | A “has-a” relationship between classes. In this case, a GUI window has some shapes. |
Composition | A special type of aggregation where parts are destroyed when the whole is destroyed. |
Dependency | A “uses-a” relationship where one class uses some other class without storing it or having a parent-child relationship. |
<<Entity>> <<Boundary>> <<Control>> | – Entity is synonymous with classes that are part of the Model – Boundary is the same as a class that’s part of the View – Control is the same as a class that’s part of the Controller |