Chapter 5 Andrew Bates Jay Babb Steve Haroz
Introduction “Log Cabin” Analogy Design before Implementation
Specification Methods Natural-language vs. formal/semiformal Grammars Menu-tree Structures Transition Diagrams User Action Notation (UAN)
Grammars Backus-Naur Form (BNF) ::= ::=, ::= ::= | ::= A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z ::= ( ) - ::= ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Transition Diagrams Computer-Assisted Software Engineering (CASE) Complexity issues
User-Action Notation (UAN) User ActionsInterface FeedbackInterface State ~[file] Mvfile!, forall(file!): file-!selected = file ~[x,y]*outline(file) > ~ ~[trash]outline(file) > ~, trash! M^erase(file), trash!!selected = null
UI Building Tools UI Independence –Separate interface design from internals –Enable multiple UI strategies –Enable multiple platform support –Establish role of UI architect –Enforce standards
UI Building Tools (cont.) Methodology and Notation –Develop design procedures –Find ways to talk about design –Create Project Management Rapid Prototyping –Try out ideas early –Test, revise, test, revise… (iterative design) –Engage end users, managers, and customers
UI Building Tools (cont.) Software Support –Increase Productivity –Offer constraint and consistency checks –Facilitate team approaches –Ease maintenance
Design Tools