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
Design Tools
Design Tools
Design Tools
Design Tools
Top Related