130 likes | 191 Views
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).
E N D
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) <Telephone book entry> ::= <Name> <Telephone number> <Name> ::= <Last name>, <First name> <Last name> ::= <string> <First name> ::= <string> <string> ::= <character> | <character><string> <character> ::= 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 <Telephone number> ::= (<area code>) <exchange>-<local number> <area code> ::= <digit><digit><digit> <exchange> ::= <digit><digit><digit> <local number> ::= <digit><digit><digit><digit> <digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Transition Diagrams • Computer-Assisted Software Engineering (CASE) • Complexity issues
User-Action Notation (UAN) User Actions Interface Feedback Interface State ~[file] Mv file!, 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