Title: Chuong 5:
1Chuong 5
2N?i dung
- M?t s? khái ni?m
- Các mô hình thi?t k?
- Thi?t k? mô hình h? th?ng
- Thi?t k? giao di?n (Interface Design)
- Thi?t k? d? li?u (Data design)
- Thi?t k? ki?n trúc (Achitectural Design)
- Thi?t k? thành ph?n (Component Design)
31. M?t s? khái ni?m
- Thi?t k? là gì
- Thu?c tính ch?t lu?ng
- Thi?t k? h? th?ng
- Hu?ng d?n thi?t k?
- Nguyên lý thi?t k?
- Khái ni?m thi?t k?
4Thi?t k? là gì?
- Thi?t k? t?o ra m?t bi?u di?n hay mô hình c?a
ph?n m?m, nhung không gi?ng nhu mô hình phân tích
(t?p trung vào vi?c mô t? d? li?u, ch?c nang và
hành vi) - Mô hình thi?t k? cung c?p chi ti?t v? ki?n trúc
(architecture), Giao di?n (interfaces) và thành
ph?n (component) c?n thi?t d? cài d?t ph?n m?m - S?n ph?m công tác (work product) bi?u di?n ki?n
trúc (Co so d? li?u, giao ti?p v?i h? th?ng
khác), giao di?n ngu?i dùng (GUI), thành ph?n
(giao ti?p các thành ph?n, c?u trúc d? li?u, gi?i
thu?t du?i d?ng mã gi?)
5Thi?t k? là gì?
- SRS cho bi?t h? th?ng làm gì (what) và tr? thành
d?u vào cho quá trình thi?t k? - Thi?t k? dùng d? ch? ra h? th?ng s? làm nhu th?
nào (how), các yêu c?u s? du?c hi?n th?c hóa
(realize) ra sao? - K?t qu? c?a quá trình thi?t k? là Software Design
Document (SDD).
6Thu?c tính ch?t lu?ng
- Ch?c nang (functionality) kh? nang c?a ph?n m?m,
kèm theo tính an ninh - Ti?n d?ng (usability) bao g?m c? tính m? thu?t,
toàn v?n và tu li?u - Tin c?y (reliability) tính chính xác, dùng The
mean-time-to-failure (MTTF), Kh? nang ph?c h?i t?
l?i - Th?c thi (performance) t?c d? x? lý, th?i gian
dáp ?ng, s? d?ng tài nguyên, hi?u qu? - Kh? nang h? tr? (suppotability) d? m? r?ng, kh?
nang ráp n?i, kh? nang test, kh? nang c?u hình,
kh? nang tuong thích
7Thi?t k? h? th?ng
8Thi?t k? ph?n m?m
- Thi?t k? ph?n m?m là quá trình l?p thông qua dó
các yêu c?u h? th?ng s? du?c chuy?n d?i thành
blueprint (b?n thi?t k? chi ti?t) c?a ph?n m?m.
- Thi?t k? bao g?m hai ph?n
- Thi?t k? ý ni?m (conceptual design) nh?m nói cho
khách hàng bi?t chính xác h? th?ng s? làm gì - Thi?t k? k? thu?t (technical design) cho phép các
nhà xây d?ng h? th?ng bi?t cách v?n d?ng ph?n
c?ng và ph?n m?m nhu th? nào d? gi?i quy?t bài
toán c?a khách hàng.
9Hu?ng d?n thi?t k?
- M?t thi?t k? ph?i dua ra m?t ki?n trúc mà
- (1) Dùng m?u (pattern) hay ki?u (style) ki?n trúc
du?c th?a nh?n - (2) G?m nh?ng thành ph?n có d?c trung thi?t k?
t?t - (3) Có th? thi hành theo cách ti?n hóa
- Thi?t k? ph?i module hóa
- Thi?t k? ph?i trình bày riêng d? li?u, ki?n trúc,
giao di?n và thành ph?n (component) - Thi?t k? ph?i dua ra c?u trúc d? li?u phù h?p v?i
l?p th?c thi và t? nh?ng m?u d? li?u du?c th?a
nh?n - Thi?t k? ph?i dua ra nh?ng thành ph?n mà d?c l?p
ch?c nang
10- Thi?t k? ph?i dua ra nh?ng giao di?n (interface)
mà gi?m s? ph?c t?p c?a vi?c k?t n?i gi?a các
thành ph?n, cung nhu môi tru?ng ngoài - Thi?t k? du?c dua ra t? vi?c dùng phuong pháp l?p
mà du?c d?nh hu?ng b?i thông tin d?t du?c su?t
quá trình phân tích yêu c?u ph?n m?m - Thi?t k? ph?i dùng nh?ng ký hi?u hi?u qu? cao
trong vi?c thông tin
11Chuy?n mô hình phân tích sang mô hình thi?t k?
- M?i ph?n t? c?a mô hình phân tích (analysis
model) cung c?p thông tin c?n thi?t d? t?o 4 mô
hình thi?t k?.
12Nguyên lý thi?t k?
- Thi?t k? ph?i tránh tunnel vision
- Thi?t k? ph?i có th? l?n v?t ra mô hình phân tích
- Thi?t k? ph?i không reinvent the wheel
- Thi?t k? minimize the intellectual distance
gi?a ph?n m?m và nh?ng v?n d? trong th? gi?i th?c - Thi?t k? ph?i th? hi?n tính d?ng nh?t và tích h?p
- Thi?t k? ph?i h? tr? s? thay d?i
- Thi?t k? ph?i làm nh? di nh?ng l?ch l?c v? d?
li?u s? ki?n hay di?u ki?n ho?t d?ng - Thi?t k? không là code, code không là thi?t k?
- Thi?t k? ph?i du?c dánh giá ch?t lu?ng khi nó
dang du?c t?o không ph?i khi nó có v?n d? - Thi?t k? ph?i du?c ki?m tra (review) d? làm gi?m
thi?u nh?ng l?i ng? nghia (semantic)
13Khái ni?m thi?t k?
- Tr?u tu?ng (Abstraction) - data, procedure,
control - Ki?n trúc (Architecture) - the overall structure
of the software - M?u (Patterns) - conveys the essence of a
proven design solution - Module hóa (Modularity) - compartmentalization of
data and function - Che d?u thông tin (Information hiding) -
controlled interface - Ð?c l?p ch?c nang (Functional independence) -
single-minded function and low coupling - Tinh ch? (Refinement) - elaboration of detail for
all abstractions - Phân tách l?i (Refactoring) - a reorganization
technique that simplifies the design
142. Các mô hình thi?t k?
- Thi?t k? giao di?n (Interface Design)
- Thi?t k? ki?n trúc (Achitectural Design)
- Thi?t k? d? li?u (Data design)
- Thi?t k? thành ph?n (Component Design)
152.2 Thi?t k? giao di?n
- Ð? h? th?ng làm vi?c t?t, ta ph?i di?u khi?n du?c
các h? th?ng con, làm cho các d?ch v? c?a chúng
ph?i du?c th?c hi?n dúng ch? và dúng th?i di?m. - Có 2 lo?i di?u khi?n (control styles)
- Ði?u khi?n t?p trung m?t h? th?ng con ch?u trách
nhi?m ki?m soát, kh?i t?o ho?c d?ng các h? th?ng
con khác. - Ði?u khi?n hu?ng s? ki?n m?i h? th?ng dáp ?ng
v?i các s? ki?n x?y ra t? các h? th?ng con khác
ho?c t? môi tru?ng c?a h? th?ng.
162.2 Thi?t k? giao di?n
- Ba quy t?c vàng
- Các mô hình phân tích thi?t k? giao di?n
- Quy trình phân tích thi?t k? giao di?n
- Phân tích giao di?n
- Thi?t k? giao di?n
17Xây nhà Phát tri?n h? th?ng
B?n v? ki?n trúc (Blueprint) Thi?t k? ki?n trúc (architecture design)
Các mô t? Doors, windows, utility connections for water, for electricity, Thi?t k? giao di?n (user interface design)
18Ba quy t?c vàng
- 1. Place the user in control.
- 2. Reduce the users memory load.
- 3. Make the interface consistent.
19Quy t?c 1 Theo yêu c?u ngu?i dùng Place the
user in control
- Ngu?i dùng luôn mong mu?n h? th?ng tuong tác và
giúp h? th?c hi?n m?i vi?c d? dàng. - Ngu?i dùng mu?n
- to control the computer, not have the computer
control, - System reads their mind, it knows what the users
want to do before the user need to do - Nhung
- Ngu?i thi?t k? mu?n dua vào giao di?n các ràng
bu?c và gi?i h?n d? làm don gi?n hóa vi?c th?c
thi giao di?n.
20Quy t?c 1 Theo yêu c?u ngu?i dùng Place the
user in control
- Nên xác d?nh ki?u tuong tác sao cho không ép
ngu?i dùng th?c hi?n các thao tác không c?n thi?t
hay không mong mu?n - Cho phép tuong tác linh ho?t ( bàn phím, chu?t,
bút,..) - Cho phép ngu?i dùng du?c ng?t khi th?c 1 chu?i
thao tác hay du?c phép undo thao tác nào - Cho phép ngu?i dùng thông th?o du?c phép tùy bi?n
các tuong tác (dùng macro) - Không nên d? ngu?i dùng ph?i nhìn th?y các y?u t?
k? thu?t c?a h? th?ng (h? di?u hành, ch?c nang
qu?n lý file,) - Cho phép ngu?i dùng tuong tác tr?c ti?p v?i các
d?i tu?ng trên màn hình (kéo dãn 1 d?i tu?ng v?..)
21Quy t?c 2 gi?m thi?u vi?c ghi nh? c?a ngu?i
dùng Reduce the users memory load
- Càng b?t ngu?i dùng ph?i nh? càng nhi?u, thì vi?c
tuong tác v?i h? th?ng càng d? b? l?i - Ð? gi?m vi?c ph?i nh? các hành d?ng c?n làm, nên
dua ra các g?i ý hình ?nh (visual cues) - Nên t?o các m?c d?nh thích h?p
- Nên t?o các phím gõ t?t (shortcut) tr?c giác, d?
nh? - Nên s?p x?p giao di?n g?n gi?ng v?i th? gi?i th?c
- Nên t? ch?c thông tin theo d?ng phân c?p
(hierarchical), thông tin ? m?c tr?u tu?ng tru?c,
r?i t?i m?c chi ti?t ( ch?n ch?c nang g?ch du?i
xong, thì các ki?u g?ch du?i c? th? s? du?c li?t
kê ti?p theo..)
22Quy t?c 3 Giao di?n ph?i luôn nh?t quán Make
the interface consistent.
- Nh?t quán trong vi?c thi?t k? các màn hình giao
di?n theo cùng m?t tiêu chu?n - Cùng co ch? nh?p li?u
- Cùng co ch? chuy?n d?i t? nhi?m v? này sang nhi?m
v? khác
23M?c tiêu c?a thi?t k? giao di?n
- Là d? xác d?nh t?p h?p các d?i tu?ng giao di?n và
các hành d?ng cho phép ngu?i dùng th?c hi?n du?c
t?t c? nh?ng nhi?m v? c?a h? th?ng
24Các mô hình phân tích và thi?t k? giao di?n
- B?n mô hình có liên quan d?n thi?t k? giao di?n
- K? su ph?n m?m t?o mô hình thi?t k? (design
model) - Ngu?i ph? trách v? nhân s? t?o ra mô hình ngu?i
dùng (user model) - Ngu?i dùng cu?i phát tri?n mô hình nh?n bi?t h?
th?ng (system perception) - Ngu?i th?c thi t?o mô hình th?c thi
(implementation model) - Các mô hình này có th? r?t khác nhau. Vai trò c?a
ngu?i thi?t k? giao di?n là ph?i làm sao cho các
mô hình này tuong thích và t?o ra giao di?n ôn
d?nh.
25Phân lo?i ngu?i dùng
- Novices (ngu?i m?i) không có ki?n th?c v? h?
th?ng, hi?u bi?t r?t ít v? ?ng d?ng cung nhu cách
s? d?ng máy tính - Knowledgeable intermittent users (ngu?i dùng gián
do?n tuy có ki?n th?c) - Knowledgeable frequent users (ngu?i dùng thu?ng
xuyên có hi?u bi?t) - Phân tích giao di?n thu?ng xét d?n h? so
(profile) c?a ngu?i dùng h? th?ng và phân tích c?
môi tru?ng làm vi?c c?a ngu?i dùng.
26Quy trình phân tích thi?t k? giao di?n
- Quy trình phân tích và thi?t k? giao di?n thu?ng
l?p l?i và có th? du?c bi?u di?n b?ng mô hình
xo?n ?c
Ho?t d?ng implementation thu?ng là prototyping
27Quy trình thi?t k? giao di?n ngu?i dùng
- Quy trình thi?t k? giao di?n thu?ng hay l?p l?i
và theo mô hình xo?n ?c. - B?n ho?t d?ng chính
- 1. User, task, and environment analysis and
modeling - 2. Interface design
- 3. Interface construction
- 4. Interface validation
28Phân tích giao di?n
- M?c tiêu c?a phân tích giao di?n
- Ð? hi?u ngu?i s? s? d?ng h? th?ng thông qua giao
di?n - Ð? hi?u nhi?m v? ngu?i dùng cu?i ph?i th?c hi?n
- Ð? hi?u n?i dung trong m?i giao di?n
- Ð? hi?u b?n ch?t môi tru?ng mà nhi?m v? s? th?c
hi?n
29Phân tích giao di?n
- Phân tích ngu?i dùng (user analysis)
- Phân tích và mô hình hóa nhi?m v? (task analysis
and modeling) - Phân tích môi tru?ng làm vi?c
- Phân tích n?i dung hi?n th?
30Phân tích ngu?i dùng
- Ð? phân tích ngu?i dùng có th? d?a vào các ngu?n
sau - Ph?ng v?n ngu?i dùng (User interviews)
- T? vi?c bán hàng (Sales input) nhân viên bán
hàng s? giúp nhà thi?t k? phân lo?i ngu?i dùng và
n?m du?c nhu c?u c?a h? - T? ti?p th? (Marketing input)
- T? h? tr? (Support input)
31Phân tích ngu?i dùng
- Nh?ng câu h?i giúp nhà thi?t k? giao di?n hi?u rõ
hon ngu?i dùng - Are users trained professionals, technicians,
clerical or workers? - What level of formal education does the average
user have? - What is the age range of the user community?
- Do users work normal office hours, or do they
work until the job is done? - Are users expert typists or keyboard phobic?
- Is the software to be an integral part of the
work users do, or will it be used only
occasionally? - Do users want to know about the technology that
sists behind the interface?
32Phân tích môi tru?ng làm vi?c c?a ngu?i dùng
- Thông qua 1 s? câu h?i sau
- Where will the interface be located physically?
- Will the user be sitting, standing, or performing
other tasks unrelated to the interface? - Does the interface hardware accommodate space,
light, or noise constraints? - Are there special human factors considerations
driven by environmental factors?
33Phân tích nhi?m v?(Task analysis)
- M?c tiêu c?a phân tích nhi?m v? d? tr? l?i các
câu h?i sau - What work will the user perform in specific
circumstances? - What tasks and subtasks will be performed as the
user does the work? - What specific problem domain objects will the
user manipulate as work is performed? - What is the sequence of work tasks the
workflow? - What is the hierarchy of tasks?
34Phân tích nhi?m v?(Task analysis)
- Có th? theo 1 trong 2 cách d? phân tích nhi?m
vu - C?n ph?i hi?u du?c nhi?m v? mà ngu?i dùng c?n
ph?i làm (tru?c khi có ph?n m?m), r?i ánh x?
chúng thành t?p các nhi?m v? c?n th?c thi trong
giao di?n c?a ngu?i dùng. - Có th? nghiên c?u d?c t? có s?n c?a ph?n m?m và
t? t?p nhi?m v? c?a ngu?i dùng d? suy di?n ra mô
hình ngu?i dùng - M?i nhi?m v? chính (major task) có th? du?c chia
thành nhi?u nhi?m v? con (subtask)
35Phân tích nhi?m v?(Task analysis)
- N?u h? th?ng có nhi?u ngu?i dùng khác nhau, m?i
ngu?i dùng có vai trò khác nhau, nên s? d?ng các
giao di?n khác nhau , thì k? su thi?t k? c?n áp
d?ng k? thu?t workflow analysis - Workflow analysis k? thu?t cho phép k? su ph?n
m?m hi?u m?t quy trình công vi?c du?c hoàn thành
nhu th? nào - Th? hi?n workflow analysis là lu?c d? activity
c?a UML - Ví d? quy trình kê don và phát thu?c. Có 3 lo?i
ngu?i dùng b?nh nhân, bác si và ngu?i bán thu?c
36Phân tích n?i dung hi?n th?(Analysis of display
content)
- Khi phân tích giao di?n,các y?u t? th?m m? và
d?nh d?ng cung c?n du?c kh?o sát thông qua 1 s?
câu h?i - Are different types of data assigned to
consistent geographical locations on the screen? - Can user customize screen locations of content?
- Is proper on-screen identification assigned to
all content? - How should large report be partitioned for ease
of understanding? - Will mechanisms be available for moving directly
to data summary information for large data
collections? - Will graphical output be scaled to fit bounds of
display device used? - How will color be used to enhance understanding?
- How will error messages and warnings be displayed
to the user?
37Thi?t k? giao di?n
- Ngay sau khi phân tích xong giao di?n, thi?t k?
giao di?n s? b?t d?u - Là quá trình l?p, du?c chia thành 4 bu?c
- Xác d?nh các d?i tu?ng và thao tác c?a giao di?n
- Xác d?nh các s? ki?n làm cho tr?ng thái c?a các
giao di?n thay d?i. T?o mô hình cho các hành vi
này - Mô t? m?i tr?ng thái giao di?n
- Ch? ra làm th? nào ngu?i dùng hi?u các tr?ng thái
này t? thông tin du?c cung c?p trên giao di?n .
38Phân tích các bu?c thi?t k?
- T? d?c t? use case, l?c ra các noun (object) và
verb (action) d? t?o ra danh sách các object và
action - Phân lo?i d?i tu?ng (type) source, target và
application. - Source là lo?i d?i tu?ng có th? drag and drop vào
target. - Application là d?i tu?ng ch?a d? li?u c?a ?ng
d?ng nhung không du?c t?o ra 1 cách tr?c ti?p
b?ng các thao tác trên màn hình - Screen layout là 1 quá trình l?p d? s?p x?p v?
trí các bi?u tu?ng, xác d?nh các ph?n mô t?
(text), xác d?nh và d?t tên cho c?a s?, d?nh
nghia menu,
39Ví d? kh?o sát scenario
- Scenario The homeowner wishes to gain access to
the SafeHome system installed in his house. Using
software operating on a remote PC, the homeowner
determines the status of the alarm system, arms
or disarms the system, recon?gures security
zones, and views different rooms within the house
via preinstalled video cameras. - To access SafeHome from a remote location, the
homeowner provides an identi?er and a password.
These de?ne levels of access and provide
security. Once validated, the user checks the
status of the system and changes status by arming
or disarming SafeHome. The user recon?gures the
system by displaying a ?oor plan of the house,
viewing each of the security sensors, displaying
each currently con?gured zone, and modifying
zones as required. The user views the interior of
the house via strategically placed video cameras.
The user can pan and zoom each camera to provide
different views of the interior.
40Ví d? xác d?nh d?i tu?ng và hành d?ng
- Nhi?m v? c?a homeowner
- accesses the SafeHome system
- enters an ID and password to allow remote
access - checks system status
- arms or disarms SafeHome system
- displays ?oor plan and sensor locations
- displays zones on ?oor plan
- changes zones on ?oor plan
- displays video camera locations on ?oor plan
- selects video camera for viewing
- views video images (4 frames per second)
- pans or zooms the video camera
- Các d?i tu?ng ?? Các hành d?ng???
41Ví d? b? trí màn hình c?a Safehome
- Có 3 lo?i d?i tu?ng
- Source video camera location
- Target video camera. Khi source du?c kéo vào
target thì s? t?o ra hình ?nh mà camera dó thu
du?c - Application c?a s? video image
42Ví d? b? trí so b? màn hình
43M?u thi?t k? Design pattern
- M?u thi?t k? là m?t gi?i pháp t?ng th? cho các
v?n d? chung trong thi?t k? ph?n m?m. M?t m?u
thi?t k? không ph?i là m?t thi?t k? hoàn thi?n d?
mà có th? du?c chuy?n d?i tr?c ti?p thành mã nó
ch? là m?t mô t? hay là su?n (template) mô t?
cách gi?i quy?t m?t v?n d? mà có th? du?c dùng
trong nhi?u tình hu?ng khác nhau. Các m?u thi?t
k? hu?ng d?i tu?ng thu?ng cho th?y m?i quan h? và
s? tuong tác gi?a các l?p hay các d?i tu?ng, mà
không c?n ch? rõ các l?p hay d?i tu?ng c?a t?ng
?ng d?ng c? th?. Các gi?i thu?t không du?c xem là
các m?u thi?t k?, vì chúng gi?i quy?t các v?n d?
v? tính toán hon là các v?n d? v? thi?t k?.
44Ví d? các m?u thi?t k? giao di?n
- Top-level navigation
- Card stack
- Fill-in-the-blanks
- Sortable table
- Bread crumbs
- Edit-in-place
- Simple search
- Shopping cart
- Progress indicator
45B?n v?n d? thi?t k? giao di?n
- Response time
- User help facilities
- Error information handling
- Command label
- N?u không du?c chú tr?ng ngay khi b?t d?u thi?t
k? s? gây ra h?u qu? sau - Unnecessary iteration
- Project delays
- Customer frustration.
46V?n d? 1 Th?i gian dáp ?ng (Response time)
- Ðu?c tính t? lúc ngu?i dùng th?c hi?n 1 hành d?ng
ki?m soát (control) nào dó cho d?n lúc ph?n m?m
dáp ?ng du?c b?ng k?t qu? hay hành d?ng - Hai d?c tính length and variability.
- Length n?u th?i gian dáp ?ng quá lâu, s? gây b?c
b?i và cang th?ng cho ngu?i dùng. Th?i gian dáp
?ng quá nhanh cung gây b?t l?i, ngu?i dùng s? v?i
vàng và d? gây nh?m l?n - Variability d? dao d?ng c?a th?i gian dáp ?ng.
Ð? dao d?ng th?p cho phép ngu?i dùng xác l?p du?c
s? thao tác nh?p nhàng, ngay c? khi th?i gian dáp
?ng tuong d?i lâu. Ví d? th?i gian dáp ?ng 1
giây cho m?i l?nh v?n du?c ua thích hon là th?i
gian dáp ?ng thay d?i t? 0.1 d?n 2.5 giây. Ngu?i
dùng luôn c?m th?y m?t thang b?ng n?u lúc nhanh
lúc ch?m, h? luôn t? h?i li?u có cái gì khác dang
x?y ra m?i l?n dáp ?ng ch?m.
47V?n d? 2 Ti?n ích h? tr? ngu?i dùng User help
facilities
- Các ph?n m?m hi?n d?i d?u cung c?p h? tr? tr?c
tuy?n (on-line help) cho phép ngu?i dùng h?i và
du?c tr? l?i hay gi?i quy?t các r?c r?i mà không
c?n ph?i dóng giao di?n l?i. - Hai lo?i h? tr? tích h?p (integrated ) và b?
sung tùy ch?n (add-on) - Integrated help d??c thi?t k? ngay trong ph?n
m?m, thu?ng ? d?ng c?m ng? c?nh (context
sensitive) cho phép ngu?i dùng ch?n theo danh m?c
phù h?p v?i t?ng hành d?ng dang du?c th?c thi,
tang tính thân thi?n v?i ngu?i dùng. - Add-on help du?c b? sung thêm vào ph?n m?m sau
khi h? th?ng dã du?c xây d?ng. Nó th?c s? là 1
s? tay ngu?i dùng tr?c tuy?n nhung h?n ch? kh?
nang truy v?n, ngu?i dùng ph?i dò tìm thông qua 1
danh m?c hàng tram ch? d?.
48Thi?t k? ph?n h? tr?
- Ð? thi?t k? ph?n h? tr?, c?n xem xét các v?n d?
sau - Will help be available for all system functions
and at all times during system interaction?
Options include help for only a subset of all
functions and actions or help for all functions. - How will the user request help? Options include a
help menu, a special function key, or a HELP
command. - How will help be represented? Options include a
separate window, a reference to a printed
document (less than ideal), or a one- or two-line
suggestion produced in a ?xed screen location. - How will the user return to normal interaction?
Options include a return button displayed on the
screen, a function key, or control sequence. - How will help information be structured? Options
include a "?at" structure in which all
information is accessed through a keyword, a
layered hierarchy of information that provides
increasing detail as the user proceeds into the
structure, or the use of hypertext.
49V?n d? 3 Qu?n lý l?iError handling
- Thông báo (message) và c?nh báo (warnings) sai
l?ch ho?c không có tác d?ng gì s? làm tang s?
th?t v?ng cho ngu?i dùng. - Thông báo l?i nên theo các tính ch?t sau
- Nên mô t? theo thu?t ng? mà ngu?i dùng có th?
hi?u du?c. - Nên cung c?p l?i khuyên có tính xây d?ng giúp
ngu?i dùng khôi ph?c du?c khi l?i x?y ra. - Nên ch? ra các h?u qu? (ví d? file d? li?u có th?
b? l?i) nh? dó ngu?i dùng có th? ki?m tra l?i - Nên d?ng hành v?i các g?i ý âm thanh hay hình
?nh nhu ti?ng beep, thông báo nh?p nháy ho?c có
màu d?c bi?t (d?) - Ch? don thu?n là thông báo, không mang tính phán
quy?t, d? l?i cho ngu?i dùng
50V?n d? 4 Thi?t k? nhãnMenu and command labeling
- Gõ l?nh vào là cách tuong tác thông d?ng nh?t
gi?a ngu?i và máy và thu?ng du?c dùng trong m?i
?ng d?ng - Hi?n nay giao di?n thông d?ng là window-oriented,
drag and drop, menu và các nút l?nh - Dù ph?i gõ l?nh hay dùng nút l?nh, c?n luu ý các
v?n d? sau - M?i tùy ch?n c?a th?c don có tuong duong v?i 1
l?nh không? - Khi thi hành l?nh thì s? du?c form gì?
- H?c và nh? l?nh khó khan nhu th? nào? Ph?i làm
gì n?u quên l?nh - Ngu?i dùng có th? tùy bi?n hay vi?t t?t l?nh du?c
không?
51- Tham kh?o 12 quy t?c thi?t k?
- http//www.smashingmagazine.com/2009/01/19/12-usef
ul-techniques-for-good-user-interface-design-in-we
b-applications/
52User Interface Design
Examples of change 1990 to 2006
532.3 Thi?t k? d? li?u data design
- Ðôi khi còn g?i là data architecting
- Ð? t?o mô hình d? li?u ? m?c tr?u tu?ng (view c?a
ngu?i dùng). - Trong nhi?u ?ng d?ng d? li?u có ?nh hu?ng dáng k?
d?n ki?n trúc ph?n m?m dang phát tri?n. - C?u trúc d? li?u luôn luôn là 1 ph?n quan tr?ng
c?a thi?t k? ph?n m?m
54Thi?t k? d? li?u
- Thi?t k? d? li?u ? m?c thành ph?n ch? t?p trung
vào vi?c bi?u di?n các c?u trúc d? li?u du?c truy
xu?t tr?c ti?p b?i m?t hay nhi?u thành ph?n ph?n
m?m (SW components) - M?t s? nguyên t?c
- Các nguyên t?c dùng d? phân tích ch?c nang cung
nên áp d?ng cho d? li?u - T?t c? c?u trúc d? li?u và thao tác du?c th?c thi
trên m?i c?u trúc cung c?n xác d?nh (Nguyên t?c
này r?t thích h?p cho lo?i c?u trúc class)
552.4 Thi?t k? ki?n trúc
- Ki?n trúc(Architecture) là gì?
- Tuong t? nhu nói d?n ki?n trúc tòa nhà.
- Ki?n trúc ch? hình d?ng t?ng th? c?a c?u trúc v?t
lý. - Ki?n trúc là cách th?c mà các thành ph?n
(component) khác nhau du?c tích h?p l?i d? t?o
nên m?t t?ng th? th?ng nh?t. - Ki?n trúc còn ch? ra cách mà tòa nhà còn ph?i phù
h?p v?i môi tru?ng và hòa h?p v?i các tòa nhà
khác trong vùng. - Ki?n trúc ph?n m?m (software architecture) c?a 1
chuong trình hay h? th?ng máy tính là c?u trúc
c?a h? th?ng bao g?m thành ph?n ph?n m?m
(software component), các thu?c tính nhìn th?y
du?c c?a thành ph?n và m?i quan h? gi?a chúng.
56Thi?t k? ki?n trúc
- Thành ph?n ph?n m?m (software component) có th?
don gi?n là m?t module chuong trình hay m?t class
hu?ng d?i tu?ng hay cung có th? là c? m?t
database hay middleware - Thu?c tính c?a thành ph?n (properties of
components) là các d?c tính c?n thi?t d? nh?n
bi?t s? tuong tác gi?a các thành ph?n nhu th?
nào. ? m?c thi?t k? ki?n trúc, các thu?c tính
n?i b? nhu chi ti?t 1 gi?i thu?t chua c?n ph?i
xác d?nh. - M?i quan h? gi?a các thành ph?n n?u don gi?n có
th? gi?ng nhu phép g?i th? t?c t? 1 module này
d?n module khác, n?u ph?c t?p thì gi?ng nhu
protocol truy xu?t CSDL.
57Thi?t k? ki?n trúc
- Ki?n trúc không ph?i là ph?n m?m v?n hành
(operational software). - Ki?n trúc cho phép k? su ph?n m?m
- Phân tích tính hi?u qu? c?a thi?t k? xem có dáp
?ng các yêu c?u hay không? - Kh?o sát các ch?n l?a ki?n trúc khác nhau
- Gi?m các r?i ro liên quan d?n vi?c xây d?ng ph?n
m?m
58T?m quan tr?ng c?a thi?t k? ki?n trúc
- B?n thi?t k? c?a ki?n trúc ph?n m?m là cách cho
phép giao ti?p gi?a các stakeholder trong quá
trình phát tri?n h? th?ng - Ki?n trúc s? giúp ra các quy?t d?nh thi?t k? s?m
có ?nh hu?ng l?n d?n s? thành công sau này c?a h?
th?ng - Chính ki?n trúc t?o ra mô hình cho th?y h? th?ng
du?c c?u trúc nhu th? nào và các thành ph?n làm
vi?c v?i nhau nhu th? nào (how)
59Các m?u ki?n trúc(Architecture pattern and style)
- Ph?n m?m có th? du?c xây d?ng theo m?t trong các
m?u ki?n trúc) - M?i m?u ki?n trúc mô t? m?t lo?i h? th?ng bao
g?m - T?p h?p các thành ph?n (database, computational
modules) th?c thi ch?c nang du?c yêu c?u b?i h?
th?ng. - T?p các k?t n?i (connector) thành ph?n
- Các ràng bu?c (constraint) xác d?nh thành ph?n
du?c tích h?p nhu th? nào - Các mô hình ng? nghia (semantic model) cho phép
nhà thi?t k? hi?u du?c các thu?c tính t?ng th?
c?a h? th?ng b?ng cách phân tích các thu?c tính
dã bi?t c?a các thành ph?n
60Phân bi?t gi?a pattern và style
- Ph?m vi c?a pattern h?p hon, t?p trung vào m?t
ng? c?nh nào dó hon là ki?n trúc t?ng th? - Có th? dùng l?n l?n c? hai thu?t ng? này
61M?t s? m?u ki?n trúc chung
- Data-centered architecture
- Data-flow architecture
- Main program/subprogram architecture
- Object-oriented architecture
- Layered architecture
62Ki?n trúc Data-centered
- Kho d? li?u (data store) n?m ? trung tâm ki?n
trúc này và du?c truy xu?t thu?ng xuyên b?i các
thành ph?n khác d? c?p nh?t, thêm, xóa hay s?a
d?i d? li?u trong kho.
63Ki?n trúc Data Flow
- Ki?n trúc Data-?ow du?c áp d?ng khi d? li?u d?u
vào b? bi?n d?i thông qua 1 chu?i các tính toán
hay t?o ra các thành ph?n thành d? li?u c?a d?u
ra. - Ví d? m?u pipe and ?lter có 1 t?p các component,
du?c n?i v?i nhau b?i các pipe d? truy?n d? li?u
t? thành ph?n này d?n thành ph?n khác. M?i filter
làm vi?c d?c l?p nhau, du?c thi?t k? d? dành cho
1 l?ai d? li?u d?u vào nào dó và t?o d? li?u ra ?
1 d?ng nào dó cho filter k? ti?p.
64Ki?n trúc Data Flow
65 Main program
Controller subprogram
Controller subprogram
Controller subprogram
Application subprogram
Application subprogram
Application subprogram
Application subprogram
Application subprogram
Application subprogram
Application subprogram
C?u trúc Main program/ subprogram
66Ki?n trúc hu?ng d?i tu?ng(Object-oriented
architectures)
- Các thành ph?n c?a h? th?ng ch?a v?a d? li?u v?a
thao tác (operation) - Vi?c giao ti?p gi?a các thành ph?n du?c th?c hi?n
thông qua các thông di?p (message) g?i cho nhau
67Ki?n trúc call and return
- Cho phép ngu?i thi?t k? ph?n m?m t?o c?u trúc
chuong trình d? ch?nh s?a và m? r?ng. - Hai ki?u chính
- Main program/subprogram architectures.
- Remote procedure call architectures.
68Ki?n trúc phân l?p(Layered architecture)
- Bao g?m 1 s? l?p, m?i l?p th?c hi?n các ho?t d?ng
khác nhau.
69Áp d?ng các ki?u ki?n trúc
- Các ki?u ki?n trúc này ch? là 1 t?p con trong s?
r?t nhi?u ki?u ki?n trúc khác. - Sau khi thu th?p yêu c?u phát hi?n ra các d?c
tính (characteristic) và ràng bu?c (constraint)
c?a h? th?ng, nhà thi?t k? có th? ch?n m?t hay
t?p h?p các ki?u ki?n trúc nào phù h?p nh?t v?i
các d?c tính c?a h? th?ng dó. - Co th? có nhi?u ch?n l?a khác (alternative) cho
cùng 1 h? th?ng.
70Trình t? thi?t k? ki?n trúc
- Ngay khi b?t d?u thi?t k? ki?n trúc, ph?n m?m c?n
xây d?ng ph?i du?c d?t vào trong ng? c?nh liên
quan d?n - Th?c th? bên ngoài
- B?n ch?t c?a s? tuong tác gi?a ph?n m?m và th?c
th? - Sau khi dã mô hình hóa ng? c?nh và giao di?n bên
ngoài, c?n xác d?nh và tinh ch?nh các thành ph?n
ph?n m?m d? th?c thi ki?n trúc. - Quy trình này s? l?p l?i cho d?n khi hoàn t?t
ki?n trúc thi?t k?
71Lu?c d? ??
72Bi?u di?n h? th?ng theo ng? c?nh
- Khi phân tích h? th?ng thì lu?c d? ng? c?nh
(System Context Diagram DFD m?c 0) du?c dùng d?
bi?u di?n dòng thông tin vào và ra c?a h? th?ng - Khi thi?t k? ki?n trúc thì lu?c d? ng? c?nh ki?n
trúc ( Architectural Context Diagram ACD) du?c
dùng d? mô hình hóa cách th?c ph?n m?m tuong tác
v?i các th?c th? bên ngoài.
73Superordinate systems
C?u trúc chung c?a architectural Context Diagram
Used by
Target system
Peers
uses
uses
Actors
Depends on
Subordinate systems
74C?u trúc c?a ACD
- Superordinate system h? th?ng s? d?ng h? th?ng
dích d? th?c hi?n các x? lý m?c cao hon - Subordinate system h? th?ng du?c dùng b?i h?
th?ng dích, cung c?p d? li?u hay các x? lý c?n
thi?t d? giúp h? th?ng dích hoàn thành ch?c nang - Peer-level system h? th?ng tuong tác 1-1
- Actor th?c th? (con ngu?i, thi?t b?) tuong tác
v?i h? th?ng dích . - M?i th?c th? bên ngoài tuong tác v?i h? th?ng
dích thông qua giao di?n (interface)
75Superordinate systems
Ví d? ACD c?a SafeHome
Safehome product
Internet-based system
Used by
Target system Security function
Peers
Control panel
Surveillance system
uses
Homeowner
uses
Actors
Depends on
Sensors
Sensors
Subordinate systems
76Ánh x? dòng d? li?u thành ki?n trúc
- Thi?t k? ki?u c?u trúc (Structured design) thu?ng
du?c mô t? nhu m?t phuong pháp thi?t k? hu?ng
dòng d? li?u (data ?ow-oriented). - Nó cung c?p 1 cách chuy?n d?i thu?n ti?n t? DFD
thành ki?n trúc ph?n m?m theo quy trình 7 bu?c.
77Quy trình b?y bu?c chuy?n t? DFD sang thi?t k?
ph?n m?m
- Xem l?i mô hình h? th?ng co b?n
- Xem và tinh ch?nh l?i DFD ? các m?c 2 và 3
- Xác d?nh xem DFD có d?c tính transform flow hay
transaction flow không? - Cô l?p di?m transform center
- Th?c hi?n "?rst-level factoring (phân chia m?c
d?u tiên) - Th?c hi?n second-level factoring (phân chia m?c
th? c?p) - Tinh ch?nh l?i ki?n trúc d?a vào heuristics
78Dòng thông tin
- Lo?i dòng thông tin (information ?ow) s? quy d?nh
cách ánh x? trong bu?c 3. Có 2 lo?i dòng - Transform flow
- Transaction flow
- M?t DFD có th? du?c d?c trung b?ng c? hai lo?i
dòng transform flow và transaction flow.
79Transform Flow
- Thông tin du?c dua vào ho?c xu?t ra bên ngoài
ph?n m?m trong d?ng "external world" . Ví d? d?
li?u dua vào t? bàn phím, gi?ng nói qua di?n
tho?i, hình ?nh là thông tin bên ngoài. - D? li?u bên ngoài này c?n ph?i du?c bi?n d?i
thành d?ng internal d? du?c x? lý. - Thông tin du?c dua vào h? th?ng d?c theo các
du?ng d?n (path) du?c g?i là dòng vào (incoming
?ow). - Bên trong ph?n m?m, d? li?u vào s? du?c dua vào
trung tâm bi?n d?i (transform center) và b?t d?u
chuy?n d?c theo các du?ng d?n d? xu?t ra ngoài
du?c g?i là dòng ra (outgoing ?ow). - Trong lu?c d? DFD, n?u dòng d? li?u x?y ra 1 cách
tu?n t? (sequential) theo d?ng du?ng th?ng
(straight line) thì ph?n lu?c d? dó có d?c tính
transform ?ow
80Transaction Flow
- Mô hình h? th?ng co b?n thu?ng thu?c d?ng
transform ?ow, m?i dòng d? li?u d?u có th? du?c
d?c trung theo d?ng này. - Dòng thông tin cung có th? du?c d?c trung b?i 1
m?c d? li?u (data item) nào dó mà m?c d? li?u này
có th? kích kh?i (trigger) các dòng d? li?u khác
d?c theo 1 hay nhi?u du?ng d?n. M?c d? li?u này
du?c g?i là transaction. - Transaction ?ow du?c d?c trung b?i d? li?u di
chuy?n d?c theo 1 incoming path d? bi?n thông tin
c?a th? gi?i bên ngoài thành 1 transaction ?
transaction du?c dánh giá và d?a vào giá tr? c?a
nó mà dòng s? di theo 1 trong nhi?u action path. - Noi mà các dòng thông tin t?a ra du?c g?i là
transaction center.
81Transaction flow
82Transform mapping
- Transform mapping là m?t t?p h?p các bu?c thi?t
k? cho phép DFD có d?c tính transform flow du?c
ánh x? thành 1 ki?u ki?n trúc xác d?nh nào dó.
83Ví d? DFD m?c 0
84Ví d? 7 bu?c thi?t k?
- Bu?c 1 xem l?i mô hình h? th?ng co b?n và thông
tin h? tr?. C?n xem l?i SRS và d?c t? h? th?ng
(system specification), c? hai mô t? DFD m?c 0 và
1. - Bu?c 2 xem và tinh ch?nh l?i DFD ? các m?c 2 và
3. Ví d? kh?o sát DFD m?c 2 dành cho vi?c giám
sát các c?m bi?n (sensor) và DFD m?c 3 du?c suy
d?n t? m?c 2. ? m?c 3, m?i process tuong ?ng v?i
1 phép transform d?u th?c hi?n 1 ch?c nang riêng
bi?t nào dó mà có th? tri?n khai nhu m?t module
trong ph?n m?m. Vì v?y, DFD m?c 3 này ch?a chi
ti?t v?a d? cho thi?t k? ki?n trúc c?a h? th?ng
con (c?m bi?n) và không c?n tinh ch?nh thêm n?a.
85DFD m?c 1
86Level 2 DFD that re?nes the monitor
sensors process
87DFD m?c 3
88Ví d? 7 bu?c thi?t k?
- Bu?c 3 xác d?nh xem DFD có d?c tính transform
flow hay transaction flow không? - Nói chung thì dòng thông tin trong 1 h? th?ng
thu?ng d?u có th? bi?u di?n nhu d?ng transfom.
Nhung n?u DFD có d?c tính transaction rõ ràng thì
nên theo cách ánh x? c?a transaction flow. Các
mi?n c?c b? (local region) c?a transform flow hay
transaction flow d?u b? cách ly nhau. Các dòng
con này có th? du?c dùng d? tinh ch?nh ki?n trúc
chuong trình dã du?c suy d?n t? d?c tính t?ng th?
chung tru?c dó. - ? DFD m?c 3, d? li?u dua vào ph?n m?m d?c theo 1
incoming path và di ra d?c theo 3 outgoing path
và không có transaction center rõ ràng. Vì v?y
dòng thông tin c?a lu?c d? này là transform.
89Ví d? 7 bu?c thi?t k?
- Bu?c 4 cô l?p transform center b?ng cách xác
d?nh du?ng biên (boundary) c?a các dòng vào và
ra. Ðu?ng biên c?a dòng vào và ra không c?n ph?i
quá kh?t khe và tùy theo nhà thi?t k?, có th? v?
trí c?a biên là nh?ng di?m khác nhau trên các
dòng. - Có th? có nhi?u k?t qu? thi?t k? khác nhau b?ng
cách thay d?i v? trí c?a các du?ng biên dòng.
Vi?c thay d?i v? trí biên này nói chung không ?nh
hu?ng nhi?u t?i c?u trúc cu?i cùng c?a chuong
trình. - Các transform t?o nên transform center s? n?m bên
trong hai du?ng biên.
90DFD m?c 3 v?i các Ðu?ng biên dòng (flow
boundary)
91Ví d? 7 bu?c thi?t k?
- Bu?c 5 th?c hi?n "?rst-level factoring (phân
chia m?c d?u tiên) - C?u trúc chuong trình bi?u di?n s? phân ph?i các
control t? trên xu?ng du?i. - Vi?c phân chia (factoring) s? t?o ra trong c?u
trúc chuong trình module m?c cao th?c thi vi?c ra
quy?t d?nh, và các module m?c th?p th?c thi h?u
h?t các ngõ vào, bi?n d?i và ngõ ra. Các module
m?c gi?a th?c thi 1 s? control và làm m?t s?
công vi?c m?c trung bình. - Khi phép bi?n d?i (transform) du?c dua vào, DFD
du?c ánh x? thành 1 c?u trúc xác d?nh nào dó (vd
call and return architecture) ch?a control dành
cho vi?c x? lý ngõ vào, bi?n d?i và x? lý thông
tin ngõ ra.
92Ví d? 7 bu?c thi?t k?
- Bu?c 5 (tt)
- Controller chính (monitor sensors executive) n?m
? d?nh c?a c?u trúc chuong trình và ph?i h?p v?i
các control phía du?i - Sensor input controller nh?n t?t c? d? li?u ngõ
vào - Alarm conditions controller giám sát t?t c? các
thao tác liên quan d?n d? li?u - Alarm output controller ph?i h?p d? t?o ra thông
tin ngõ ra. - Nh?ng h? th?ng l?n thì có th? có nhi?u hon 2
control module cho m?i ch?c nang di?u khi?n. - S? module ? phân chia m?c d?u tiên này nên h?n
ch? it nh?t sao cho v?n hoàn thành du?c ch?c nang
di?u khi?n và v?n gi? du?c d?c tính coupling và
cohesion
93Assignment
- Coupling là gì?
- Cohesion là gì?
94Phân chia m?c 1
95Ví d? 7 bu?c thi?t k?
- Bu?c 6 Th?c thi "second-level factoring." (phân
chia m?c hai) - Vi?c phân chia m?c hai du?c hoàn thành b?ng cách
ánh x? các transform don l? c?a DFD thành các
module thích h?p bên trong c?u trúc. B?t d?u t?
du?ng biên c?a transform center và chuy?n d?n ra
ngoài d?c theo du?ng d?n vào r?i sau dó theo
du?ng d?n ra. Các transform du?c bi?n d?i thành
các control m?c du?i. - Th?c t? hai hay nhi?u hon các transform k?t h?p
l?i d? bi?u di?n 1 module hay m?t transform có
th? du?c m? r?ng thành 2 hay nhi?u module hon.
96(No Transcript)
97First-iteration program structure for monitor
sensors
98Ví d? 7 bu?c thi?t k?
- Bu?c 7 tinh ch?nh l?i ki?n trúc ? l?n l?p d?u
(first-iteration) b?ng thi?t k? heuristic - Ki?n trúc nên du?c tinh ch?nh l?i. Các thành ph?n
có th? tri?n khai hay rút g?n l?i sao cho vi?c
phân rã h?p lý hon, cohesion t?t hon, gi?m
coupling. - Nh?ng ch?nh s?a ? bu?c này s? t?n th?i gian và
công s?c nhung có th? có ?nh hu?ng l?n d?n ch?t
lu?ng ph?n m?m
99K?t qu? bu?c 7
100Transaction mapping
- Ví d? Kh?o sát h? th?ng con user interaction c?a
h? th?ng SafeHome - Các bu?c 1, 2 và 3 tuong t? nhu transform mapping
- Bu?c 1 xem l?i mô hình h? th?ng co b?n
- Bu?c 2 xem và tinh ch?nh l?i DFD ? các m?c 2 và
3 - Bu?c 3 xác d?nh xem DFD có d?c tính transform
hay transaction flow
101DFD m?c 1
102DFD m?c 2 c?a h? th?ng con user interface
103Transaction mapping
- Bu?c 3 xác d?nh xem DFD có d?c tính transform
hay transaction flow - M?c d? li?u command type làm cho dòng d? li?u t?a
ra ? DFD có d?c tính transaction flow. - Tuy nhiên hai action path t?a ra t? Invoke
command processing thì du?ng nhu có d?c tính
transform flow. Vì v?y c?n xác d?nh du?ng biên
cho c? lo?i dòng này.
104Transaction mapping
- Bu?c 4 xác d?nh transaction center và d?c tính
dòng d?c theo m?i action path - Transaction center là nút Invoke command
processing. T?t c? path vào và ra kh?i tâm này
c?n ph?i du?c cô l?p l?i. - K? d?n m?i action path c?n du?c dánh giá xem nó
có d?c tính dòng nào? - Xét nhánh Password nó có d?c tính transform nên
nó có các du?ng biên riêng
105Transaction mapping
- Bu?c 5 ánh x? DFD thành c?u trúc chuong trình
- Transaction flow du?c ánh x? thành 1 c?u trúc
ch?a 1 nhánh vào (incoming branch) và 1 nhánh g?i
di (dispatch branch). - C?u trúc c?a nhánh vào du?c phát tri?n tuong t?
nhu transform mapping. Xu?t phát t? transaction
center, các nút d?c theo du?ng d?n vào (incoming
path) du?c ánh x? thành các module. - C?u trúc c?a nhánh g?i di ch?a 1 dispatcher
module (module di?u v?n) s? di?u khi?n t?t c? các
action module phía du?i nó. - M?i action path du?c ánh x? thành 1 c?u trúc
tuong ?ng v?i d?c tính dòng c?a nó.
106Transaction mapping
107Phân rã m?c 1 cho h? th?ng con
108- Bu?c 6 phân chia và tinh ch?nh l?i c?u trúc
transaction và c?u trúc c?a m?i action path - Bu?c 7 Tinh ch?nh l?i ki?n trúc l?p l?n d?u
(first-iteration) b?ng thi?t k? heuristic