External Specification
This contains the dataflow diagrams for the spreadsheet. Object diagrams show the major objects used in the internal
model and the data which flows between them. The formula language to be used by the spreadsheet is also specified.
Spreadsheet context diagram
- image
- * selection of standard image formats *
- command
- * variety of standard spreadsheet commands such as new spreadsheet, close spreadsheet, copy, paste,... and specific
image spreadsheet commands such as load image, zoom in, zoom out, ... *
- formula
- * string *
- selection
- * name of cell that has been selected *
- value
- [blank | number | text | image | error]
- blank
- * value of empty formula *
- number
- * floating point number *
- text
- * string *
- error
- [ * value of cell in circular reference* | *value of formula with incorrect inputs* ]
- Spreadsheet
- * the entire spreadsheet *
Context diagram for Internal Model
- name
- [ * standard spreadsheet cell name* | * cell name with number first* ]
- newformula
- name + formula
- size
- width + height
- replacement
- name + value
- update
- value + name
- Internal Model
- * spreadsheet with no user interface *
Refinement of Internal Model
- reference
- * an actual cell within the spreadsheet, irrespective of name *
- extract formula
- * finds the formula of the given cell *
- insert formula
- * the formula of the given cell is set to this, the names of all cells whose values have changed are output *
- get value
- * finds the value of the given cell *
Refinement of extract formula
- program
- * ast representation of a formula *
- lookup name
- * find reference to cell from name *
- lookup formula
- * find the program used by the cell *
- decompile
- * convert program to formula *
Refinement of insert formula
- compile
- * convert formula to program*
- insert program
- * set the program used by given cell *
- workout updates
- * finds all those cells whose values may have changed because of a change of program in a cell *
Refinement of get value
- lookup program
- * finds the program used by a cell *
- interpret
- * evaluates a program to get a value *
Object diagram of Internal Model
- P
- program
- F
- formula
- N
- name
- R
- reference
- S
- * message to start working *
- U
- name
* this cell's value has changed *
- DE
- reference
* either a cell does or does not depend on another *
- I
- image
- RQ
- (program) + (size) + (priority)
* information needed to find a value and return it *
- D
- value
- Formula Line
- * inserts and retrieves programs into cells given the name and formula *
- Compiler
- * converts formula to programs and back *
- Grid
- * converts cell name to references and back *
- Notifier
- * signals cells that they should update their value, detects cycles *
- Cell
- * stores data value (unless it is an image), handles or passes on requests for its data, keeps track of cell
dependency *
- Cache
- * store image values, removes them if there is insufficient memory *
- Interpreter
- * evaluates programs into values *
formula ::= BLANK
| =expr
| ~widget
| number
| text
number ::= ( | + | -) non-negative
non-negative ::= numeral (numberal)*
numeral ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
text ::= character (character)*
expr ::= primary-expr (infix-operator primary-expr)*
| prefix-operator(expr (; expr)*)
primary-expr ::= number
| text
| (expr)
| cells-ref
infix-operator ::= + | - | * | /
cells-ref ::= cell-ref(| ..cell-ref) (, cell-ref | ..cell-ref))*
cell-ref ::= column-ref+row-ref
column-ref ::= (A | B..C | Z) (A | B..C | Z)*
row-ref ::= non-negative
prefix-operator ::= LOAD | SAVE
| BLUR | ROTATE | ...
| SUM | AVERAGE | MAX | ...
| SEQUENCE
widget ::= NUMBER
| STRING
|