05-InterfaceDesign
05-InterfaceDesign
Interface design
1. Graphical user interface design
ITSS SOFTWARE DEVELOPMENT/SOFTWARE DESIGN AND CONSTRUCTION
2. System/Device interface design
5. INTERFACE DESIGN
Nguyen Thi Thu Trang
[email protected]
1 2
3 4
3 4
1
5 6
Standardizing Standardizing
uDisplay
• Control
• Physical size, resolution, and number of colors
supported by displays • Style, size, color, and characters displayed
uScreen: divided into displayed objects called • Input check process
windows (Window) • Sequence of moving the focus (e.g., defining the tab
• Location of standard buttons (e.g., OK, Cancel, sequence)
Register, Search) • Menu
• Display location of messages, etc. • Design menus with consideration of the standard
• Display of screen title and menus specification (common client area) of the screen
• Consistency in expression of alphanumeric characters
• Direct input from a keyboard
• Expression of sentences and detailed items
• Maintain consistency in the assignment of shortcut keys
• Color coordination
5 6
7 8
7 8
2
9 10
9 10
11
12
• Working model with UX
Prototype • Simulate user interaction
• User journey, usability
11 12
3
13 14
13 14
15 16
15 16
4
17 18
17 18
19 20
Link the screen: Screen transition diagram 1. Graphical user interface design
1.1. Standardizing the screen configuration
Edit Slide
1.2. Creating screen images
Show From Start
1.3. Creating a screen transition diagram
Format Text 1.4. Creating screen specifications
View Slide Master
Selected
slide
Replace Text Duplicate Slide
Selected
slide
Show Current Slide
19 20
5
21 22
21 22
23 24
23 24
6
25 26
27
<<subsystem>>
Subsystem Name
Interface Name
Realization (Elided form)
27 28
7
30
X() <<subsystem>>
W() SubsystemB •}
ClassB1 ClassB2 ClassB3
29 30
8
Candidate Subsystems Identifying Subsystems
• Analysis classes which may evolve into subsystems: “Superman
<<boundary>>
Class” ClassA
• Classes providing complex services and/or utilities
• Boundary classes (user interfaces and external system X()
W()
interfaces)
• Existing products or external systems in the design
(e.g., components):
• Communication software <<subsystem>>
Subsystem A
• Database access support <<Interface>>
<<subsystem>>
InterfaceK SubsystemA
• Types and data structures <<subsystem>>
Subsystem B
• Common utilities ClassA1 ClassA2
X()
• Application-specific products <<subsystem>>
W() X() W()
Subsystem C
34 35
36
36 37
9
Example: Design Subsystems and Interfaces
Interface Guidelines Analysis Design
• Interface name <<boundary>>
BillingSystem <<subsystem>>
• Reflects role in system Billing System
38 39
+ getCourseOfferings () + initialize ()
+ initialize () + getCourseOfferings ()
40 41
10
Example: Subsystem Context: CourseCatalogSystem Example: Subsystem Context: Billing System
<<control>>
<<control>>
RegistrationController
<<control>> Required interface CloseRegistrationController
CloseRegistrationController
defined + getCurrentSchedule() + // is registration open?()
+ // is registration open?() + deleteCurrentSchedule() + // close registration()
+ // close registration() + submitSchedule()
+ saveSchedule() 0..1
0..1 + getCourseOfferings()
+ setSession() + Biller 1
+courseCatalog 1
+ <<class>> new() <<Interface>>
1
<<Interface>> + getStudent() <<entity>>
IBillingSystem
ICourseCatalogSystem
Student
+ submitBill(forStudent : Student, forTuition : double)
+ getCourseOfferings ( for Semester: Semester )
+ initialize ()
CourseOfferingList
Provided
interface + new()
<<subsystem>>
defined <<subsystem>>
+ add()
BillingSystem
CourseCatalogSystem
42 43
44
44 45
11
Subsystem Design Steps Subsystem Design Steps
• Distribute subsystem behavior to subsystem elements • Distribute subsystem behavior to
subsystem elements
• Document subsystem elements • Document subsystem elements
• Describe subsystem dependencies
• Describe subsystem dependencies • Checkpoints
• Checkpoints
46 47
48 49
12
What Are Gates? Subsystem Interaction Diagrams
• A connection point in : Client Subsystem : Supplier Subsystem
50 51
doThat( )
: Design : Design
• The complete subsystem Element1 Element2
thisAgain( )
behavior is distributed
amongst the internal thatAgain( )
13
Example: Billing System Subsystem In Context Example: Local BillingSystem Subsystem Interaction
subsystem interface
: Registrar
: CloseRegistration : CloseRegistration : ICourseCatalog : Course : Schedule : Student. : Ibilling Subsystem
Form Controller System Offering System
Billing System : BillingSystem : StudentBillingTransaction : Student :BillingSystemInterface : Billing System
1. // close registration( ) Client
1.1. // is registration open?( ) Retrieve a list of course
offerings for the current 1. submitBill(Student, double)
semester
2. // close registration( ) Retrieve the
Close information that must
2.1. getCourseOfferings(Semester) registration for 1.1. create(Student, double) be included on the bill
each course
offering If the maximum number of
Repeat twice this selected primary courses have
is for simplicity; 2.2. // close registration( )
not been committed, select
1.1.1. // get contact info( )
realistically, an alternate course offerings).
indefinite number
of iterations could
occur) 2.3. // level( )
1.2. submit(StudentBillingTransaction)
subsystem responsibility
54 55
submitBill() StudentBillingTransaction
• Document subsystem elements create(forStudent : Student, forAmount : double)
Subsystem Interface
• Describe subsystem dependencies
<<Entity>>
• Checkpoints <<subsystem>>
BillingSystem Student
(from University Artifacts)
Subsystem
0..1
Component
BillingSystemInterface
submit(theTransaction : StudentBillingTransaction)
56 57
14
Subsystem Design Steps Subsystem Dependencies: Guidelines
• Distribute subsystem behavior to • Subsystem dependency on a subsystem
• Checkpoints
Supporting
<<subsystem>>
Types
Use with care
Client Support
58 59
60 61
15
Checkpoints: Design Subsystems Review: Subsystem Design
• Is a realization association defined for each
• What is the purpose of
interface offered by the subsystem?
• Is a dependency association defined for each
Subsystem Design?
interface used by the subsystem? • What are gates?
• Are you sure that none of the elements within
the subsystem have public visibility? • Why should dependencies
• Is each operation on an interface realized by on a subsystem be on the
the subsystem documented in a interaction subsystem interface?
diagram? If not, is the operation realized by a
single class, so that it is easy to see that there
is a simple 1:1 mapping between the class
operation and the interface operation?
62 63
64
Question?
64
16