[[Outcome 1 - Programming#3. design tools for representing modules, including| Outcome 1 - KK3]]
A data dictionary is a ***design tool.***
**This is important for the exam**
## What is it?
A data dictionary is used to plan the storage of system elements such as and including variables, data structures, and objects such as graphical user interface (GUI) text boxes or radio buttons. A data dictionary should list objects such as GUI text boxes, radio buttons. A data dictionary should list every variable's name and data type. It can also include the purpose, source, size, description etc.
## Use Cases
It is used to
- design the structure of a program or database,
- act as a reference source during development
- be used during software maintenance and upgrade after implementation.
## Examples
| Name | Type | Purpose |
| ---------- | ---- | ------------------------------- |
| customerId | Int | Unique identifer for a customer |
| | | |
**Variable Data Dictionary
| Name | Data Type | Length | Required | Validation | Description | Sample |
| ------------- | --------- | ------ | -------- | ---------- | ----------- | ------ |
| strFamilyName | String | 25 | | | | |
| strGivenName | String | 15 | | | | |
| boolMarried | Bool | 1 | | | | |
| numPets | Int | | | | | |
**ContactBook Data Dictionary
| Name | Data Type | Length | Key |
| ------------ | --------- | ------ | ----- |
| strGivenName | String | 15 | True |
| phoneNumber | String | 10 | False |
| address | String | 50 | False |
# Exam Question
![[2023 Exam#**Question 12** (6 marks)]]