http://www.ebook.edu.vn
_____________________________________________________________Chơng III.
Nguyễn Quốc Toản- Nguyên văn Vỵ - Vu Đức Thi - Lê Đình Phùng
56
Chơng III
thiết kế phần mềm
III.1.Thiết kế phần mềm
III.1.1.Vấn đề thiết kế
III.I.2.Quá trình thiết kế
III.1.3. Phơng pháp thiết kế
III.1.4. Chiến lợc thiết kế
III.1.5. Chất lợng thiết kế III.2.Thiết kế hớng đối tợng
III.2.1. Cách tiếp cận hớng đối tợng
III.2.2.Ba đặc trng của thiết kế hớng đối tợng
III.2.3.Các u điểm của thiết kế hớng đối tợng
III.2.4.Phân biệt giữa thiết kế hớng đối tợng và lập trình hớng đối
tợng III.3.Thiết kế hớng chức năng
III.3.1.Cách tiếp cận hớng chức năng
III.3.2.Lu đồ dữ liệu
III.3.3.Đồ thị cấu trúc
III.3.4.Các từ điển dữ liệu
Thiết kế phần mềm nằm ở trung tâm kỹ thuật của tiến trình kỹ nghệ phần mềm và đợc áp
dụng bất kể tới khuôn cảnh phát triển đợc sử dụng. Một khi các yêu cầu phần mềm đã đợc phân
tích và đặc tả thì thiết kế phần mềm là một trong ba hoạt động kỹ thuật - thiết kế , lập trình, kiểm thử
- những hoạt động cần để xây dựng và kiểm chứng phần mềm. Từng hoạt động này biến đổi thông
tin theo cách cuối cùng tạo ra phần mềm máy tính hợp lệ.
Luồng thông tin trong giai đoạn kỹ thuật này của tiến trình kỹ nghệ phần mềm đợc minh
hoạ trong hình sau: Các yêu cầu phần mềm, đợc biểu thị bởi các mô hình thông tin, chức năng và hành vi, là cái
vào cho bớc thiết kế. Bằng việc sử dụng một trong một số các phơng pháp thiết kế, bớc thiết kế
tạo ra thiết kế dữ liệu, thiết kế kiến trúc và thiết kế thủ tục:
Thiết kế phần mềm v
kỹ nghệ phần mềm
mô tả thủ
tục phần
mềm ứng
với từng
thành phần
cấu trúc
http://www.ebook.edu.vn
_____________________________________________________________Chơng III.
Nguyễn Quốc Toản- Nguyên văn Vỵ - Vu Đức Thi - Lê Đình Phùng
56
Tầm quan trọng của thiết kế phần mềm có thể đợc phát biểu bằng một từ- chất lợng. Thiết
kế là nơi chất lợng đợc nuôi dỡng trong việc phát triển phần mềm: cung cấp cách biểu diễn phần
mềm có thể đợc xác nhận về chất lợng, là cách duy nhất mà chúng ta có thể chuyển hoá một
cách chính xác các yêu cầu của khách hàng thành sản phẩm hay hệ thống phần mềm cuối cùng.
Thiết kế phần mềm phục vụ nh một nền tảng cho mọi bớc kỹ nghệ phần mềm và bảo trì::
Có thiết kế
không thiết kế
Không có thiết kế, ta có nguy cơ dựng lên một hệ thống không ổn định- một hệ thống sẽ thất bại
Phác thảo
thiết kế phi
hình thức
Thiết kế
p
hi
hình thức
Thiết kế hình
thức
Thiết kế kết
thúc
bảo trì
kiểm thử
cài đặt
thiết kế
kiểm thử
cài đặt
bảo trì
Tầm quan trọng của thiết kế
http://www.ebook.edu.vn
_____________________________________________________________Chơng III.
Nguyễn Quốc Toản- Nguyên văn Vỵ - Vu Đức Thi - Lê Đình Phùng
56
Quan hệ giữa thiết kế và đặc tả là rất chặt chẽ. Mặc dầu quá trình đa ra một đặc tả yêu cầu
đợc xem nh một phần tử cơ bản của hợp đồng là một hoạt động riêng biệt song việc hình thức
hoá đặc tả yêu cầu hẳn là một phần của quá trình thiết kế. Thực tế, ngời làm thiết kế sẽ lặp đi
hoạt động tài liệu
Thành quả của mỗi hoạt động thiết kế là một đặc tả. Đặc tả này có thể là một đặc tả trừu tợng,
hình thức và đợc tạo ra để làm rõ các yêu cầu , nó cũng có thể là một đặc tả về một phần nào
đó của hệ thống phải đợc thực hiện nh thế nào. Khi quá trình thiết kế tiến triển thì các chi tiết
ngày càng đợc bổ sung vào đặc tả đó. Các kết quả cuối cùng là các đặc tả về các thuật toán và
các cấu trúc dữ liệu đợc dùng làm cơ sở cho việc thực hiện hệ thống
Thực tế, các hoạt động thiết kế diễn ra song song với các sản phẩm thiết kế khác nhau. Các
http://www.ebook.edu.vn
_____________________________________________________________Chơng III.
Nguyễn Quốc Toản- Nguyên văn Vỵ - Vu Đức Thi - Lê Đình Phùng
56
a. Thiết kế kiến trúc: các hệ con tạo nên hệ tổng thể và các quan hệ của chúng là đợc minh định
và ghi thành tài liệu
b. Đặc tả trừu tợng: đối với mỗi hệ con, một đặc tả trừu tợng các dịch vụ mà nó cung cấp và các
ràng buộc phải tuân theo đợc cung cấp
c. Thiết kế giao diện: giao diện của từng hệ con với các hệ con khác là đợc thiết kế và ghi thành
tài liệu. đặc tả giao diện không đợc mơ hồ và cho phép sử dụng hệ con đó mà không cần biết về
phép toán hệ con.
d. Thiết kế các thành phần: các dịch vụ cung cấp bởi một hệ con là đợc phân chia qua các thành
phần hợp thành của hệ con đó
e. Thiết kế cấu trúc dữ liệu: các cấu trúc dữ liệu đợc dùng trong việc thực hiện hệ thống là đợc
thiết kế chi tiết và đợc đặc tả
f. Thiết kế thuật toán: các thuật toán đợc dùng để cung cấp cho các dịch vụlà đợc thiết kế chi tiết
và đợc đặc tả
Quá trình này đợc lặp lại cho mỗi hệ con sao cho đến khi các thành phần hợp thành đợc
minh định đều có thể ánh xạ trực tiếp vào các thành phần ngôn ngữ lập trình, chẳng hạn nh các
gói, các thủ tục và các hàm
Phơng pháp tiếp cận thờng xuyên khuyên dùng là phơng pháp tiếp cận từ trên xuống: vấn
đề đợc phân chia một cách đệ quy thành các vấn đề con cho tới khi các vấn đề dễ giải quyết
đợc minh định. Trong quá trình này ngời thiết kế sẽ nhận ra các thành phần có thể dùng lại
đợc. Chú ý rằng ngời thiết kế không nhất thiết phải phân chia tất cả các thành phần trừu tợng
khi mà họ bằng kinh nghiệm đã biết chắc rằng thành phần nào là chắc chắn xây dựng đợc. Do
đó họ có thể tập trung sức lực cho phần đáng xét nhất.
Chú ý rằng khi mà phơng pháp hớng đối tợng đợc chấp nhận thì phơng pháp từ trên
a. Thiết kế phần mềm là một mô hình của thế giới thực mô tả các thực thể và các mối quan hệ của
chúng với nhau
b. Thiết kế cần mô tả sao đạt mức:
làm cơ sở cho thực hiện chi tiết
làm phơng tiện liên lạc giữa các nhóm thiết kế các hệ con
cung cấp đủ thông tin cho những ngời bảo trì hệ thống
c. Ngời ta thờng dùng các khái niệm đồ thị, các ngôn ngữ mô tả chơng trình, văn bản không
hình thức để tạo dựng các tài liệu thiết kế
III.1.3. Phơng pháp thiết kế
III.1.3.1. Về phơng pháp thiết kế
Trong nhiều tổ chức việc thiết kế phần mềm vẫn còn là một quá trình tự học. Bằng
cách cho một tập hợp các yêu cầu (thờng là bằng ngôn ngữ tự nhiên) ngời ta có một thiết kế
không hình thức. Bắt đầu việc mã hoá và thiết kế đợc cải biên trong khi hệ đợc thực hiện .
Khi giai đoạn thực hiện kết thúc thì thiết kế đã bị biến đổi sản phẩm với đặc tả ban đầu đến mức
mà các tài liệu thiết kế nguyên thuỷ là một mô tả hoàn toàn khác với chính hệ đợc tạo ra
Một cách tiếp cận có phơng pháp hơn là phơng pháp cấu trúc. Đó là các phơng pháp
làm mịn kiến trúc phần mềm theo cách thức từ trên xuống. Các khía cạnh thủ tục của định nghĩa
thiết kế đã tiến hoá thành một triết lí gọi là lập trình có cấu trúc.
Vào cuối những năm 1960 Diịkstra và những ngời khác đã đề nghị việc dùng một tập các kết cấu logic đơn
giản để từ đó tạo nên bất kỳ chơng trình nào. Các kết cấu đều nhấn mạnh vào "bảo trì miền chức năng". Tức là mỗi
kết cấu đều có một cấu trúc logic dự đoán đợc, có lối vào trên đỉnh, có lối ra ở đáy, làm cho độc giả theo dõi đợc
luồng thủ tục dễ dàng hơn.
Các kết cấu là tuần tự, điều kiện và lặp. Kết cấu tuần tự cài đặt cho các bớc xử lý mà về bản chất có trong đặc
tả của bất kỳ thuật toán nào. Kết cấu điều kiện đa ra tiện nghi cho việc xử lý có chọn lựa dựa trên một sự kiện logic
nào đó, còn kết cấu lặp thì đa ra tiện nghi cho việc lặp lại. Ba kết cấu này là nền tảng cho lập trình có cấu trúc- một
kỹ thuật thiết kế quan trọng trong một lĩnh vực rôngj hơn mà ta biết tới qua việc gọi là kỹ nghệ phần mềm.
Lập trình có cấu trúc đợc nêu ra để giới hạn việc thiết kế thủ tục cho phần mềm vào một số nhỏ các thao tác
dự kiến đợc. Độ đo độ phức tạp chỉ ra rằng việc dùng các kết cấu có cấu trúc làm giảm độ phức tạp chơng trình và
Các phơng pháp thiết kế thờng trợ giúp một vài cách nhìn nhận hệ thống nh sau:
Nhìn nhận cấu trúc: cho cái nhìn cấu trúc thông qua lợc đồ cấu trúc
Nhìn nhận quan hệ thực thể: mô tả các cấu trúc dữ liệu logic đợc dùng, nói đến đặc tả dữ
liệu quan hệ thực thể
Nhìn nhận dòng dữ liệu: về lợc đồ dòng dữ liệu
Ngời ta còn dùng lợc đồ chuyển trạng thái để bổ sung cho phơng pháp trên.
Để đảm bảo chất lợng cho một biểu diễn thiết kế, cần có các tiêu chuẩn cho thiết kế tốt.
Song về mặt phơng pháp, chúng ta đa ra các hớng dẫn sau:
1. Thiết kế nên nêu ra cách tổ chức theo cấp bậc để dùng cách kiểm soát thông minh trong số các
thành phần phần mềm
2. Thiết kế nên theo các modul, tức là phần mềm nên đợc phân hoạch một cách logic thành các
thành phần thực hiện những chức năng và chức năng con xác định.
3. Thiết kế nên chứa cách biểu diễn phân biệt và tách biệt giữa dữ liệu và thủ tục
4. Thiết kế nên dẫn tới các modul (nh chơng trình con hay thủ tục) nêu ra các đặc trng chức
năng đặc biệt.
5. Thiết kế nên dẫn tới giao diện làm rút gọn độ phức tạp của việc nối ghép giữa các modul và với
môi trờng bên ngoài
6. Thiết kế nên đợc hớng theo cách dùng một phơng pháp lặp lại đợc điều khiển bởi thông tin
có trong phân tích các yêu cầu phần mềm
Các đặc trng trên của một thiết kế tốt có đợc khi thực hiện đúng tiến trình thiết kế kỹ nghệ
phần mềm thông qua việc áp dụng các nguyên lí thiết kế cơ bản, phơng pháp luận hệ thống và việc
xét duyệt thấu đáo.
Nh vậy, mỗi phơng pháp thiết kế phần mềm đều đa vào những cách trực cảm và lí pháp
duy nhất, cũng nh một cách nhìn thiển cận thế nào đó về cái gì đặc tr
ng cho chất lợng thiết kế .
Tuy vậy, mỗi phơng pháp đều có những đặc trng chung sau:
1. Một cơ chế để chuyển hoá từ biểu diễn miền thông tin thành biểu diễn thiết kế
2. Một kí pháp để biểu diễn các thành phần chức năng và g iao diện của chúng
ngữ hớng cài đặt trong mô tả giải pháp
Mức thấp: giải pháp đợc phát biểu theo thuật ngữ chi tiết để có thể đợc cài đặt trực tiếp
Mỗi bớc trong tiến trình kĩ nghệ phần mềm đều là sự làm mịn cho một mức trừu tợng của
phần mềm. Trong kĩ nghệ hệ thống, phần mềm đợc dùng nh một phần tử của hệ thống dựa trên
máy tính. Trong phân tích các yêu cầu phần mềm,giải pháp phần mềm đợc phát biểu dới dạng "đó
là cái quan trọng trong môi trờng vấn đề". Khi chúng ta chuyển từ thiết kế sơ bộ sang thiết kế chi
tiết thì mức độ trừu tợng đợc rút lại. Cuối cùng, ta đi tới mức trừu tợng thấp nhất khi sinh ra
chơng trình gốc.
+Có nhiều dạng trừu tợng: (thủ tục, dữ liệu , điều khiển)
Khi chúng ta chuyển sang mức trừu tợng khác nhau, chúng ta làm việc để tạo ra các trừu tợng
thủ tục và dữ liệu. Trừu tợng thủ tục là một dãy các lệnh có tên, có một chức năng xác định và giới
hạn. Một ví dụ về thủ tục trừu tợng là từ đi vào cửa. Đi vào kéo theo một dãy dài các bớc thủ
tục (nh bớc tới cửa, lại gần và nắm lấy quả đấm, xoay quả đấm cửa và kéo cửa ra, bớc vào cửa
mở ). Trừu tợng dữ liệu là một tập hợp các dữ liệu có tên mô tả cho một sự vật dữ liệu. Thí dụ về
dữ liệu trừu tợng là séc thanh toán. Đối tợng dữ liệu này thực chất là một tập hợp nhiều mẩu
thông tin khác nhau (nh tên ngời thanh toán, số tiền thanh toán, tiền thuế, ). Vậy chúng ta có thể
tham khảo tới mọi dữ liệu bằng cách nói tên của trừu tợng dữ liệu.
I.Trừu tợng thủ tục
1. Ví dụ về trừu tợng thủ tục:
Để minh hoạ cho phần mềm đợc xác định bởi ba mức trừu tợng thủ tục, chúng ta xét vấn đề sau: Phát triển phần
mềm thực hiện tất cả các chức năng liên quan tới hệ thống làm bản vẽ hai chiều cho ứng dụng thiết kế có trợ giúp máy
tính mức thấp ( CDA).
Trừu tợng I. Phần mềm sẽ đợc tổ hợp vào trong dao điện đồ hoạ máy tính làm cho việc trao đổi trực quan với
ngời vẽ sơ đồ thiết kế thành khả hiện, chuột sẽ thay thế cho bàn vẽ và ê ke. Mọi việc vẽ đờng thẳng thành đờng
cong, mọi tính toán hình học, mọi cách xét theo bộ phận và phụ sẽ do phần mềm CAD thực hiện Các dờng vẽ sẽ
đợc lu trữ trong một tệp đờng vẽ bao gồm mọi thong tin hình học, văn bản và các thông tin phụ
Tại mức này của trừu tợng, ngời ta phát biểu dới dạng môi trờng vấn đề.
end;
end repetion;
end procedure.
Tại mức trừu tợng này đã có việc biểu diễn thủ tục sơ bộ. Thuật ngữ nay đã hớng phần mềm
(nh việc dùng các cấu trúc do while) và việc dính líu tới mô đun bắt đầu nổi lên bề mặt.
Khái niệm về làm mịn từng bớc và mô đun gắn liền với việc trừu tợng. Khi thiết kế phần
mềm tiến hoá, từng mức mô đun trong cấu trúc chơng trình sẽ biểu diễn cho việc làm mịn dần
trong mức trừu tợng của phần mềm.
2. Trừu tợng dữ liệu :
Giống nh trừu tợng thủ tục, làm cho ngời thiết kế có thể biểu diễn một sự vật dữ liệu ở các
mức chi tiết khác nhau, nhng điều quan trọng hơn, là xác định một sự vật dữ liệu trong hoàn cảnh
các thao tác (thủ tục) có thể đợc áp dụng vào nó.
Trừu tợng dữ liệu :
Tiếp tục thí dụ phần mềm CAD ở trên, chúng ta có thể định nghĩa một sự vật dữ liệu gọi là drawing. Sự vật dữ liệu
drawing bao hàm một thông tin nào đó không có sự mở rộng thêm, khi nó đợc xem xét trong hoàn cảnh của hệ bản vẽ.
Tuy nhiên ngời thiết kế có thể xác định drawing nh một kiểu dữ liệu trừu tợng. Tức là, các chi tiết bên trong của
drawing đợc xác định:
TYPE drawing IS STRUCTURE DEFINED
Number IS STRING LENGTH(12);
Geometry DEFINED
Notes IS STRING LENGTH (256)
BOM DEFINED
END drawing TYPE;
Trong mô tả ngôn ngữ thiết kế trên, drawing đợc định nghĩa dới dạng các bộ phận thành tố của nó. Trong trờng
hợp này, trừu tợng dữ liệu drawing bản thân nó bao gồm các trừu tợng dữ liệu khác: geometry và bom (hoá đơn vật
t).
Một khi kiểu drawing (một kiểu dữ liệu trừu tợng) đã đợc định nghĩa thì chúng ta có thể dùng nó để mô tả cho
Làm mịn thực tại là một tiến trình khởi thảo. Bắt đầu với một phát biểu về chức năng (hay
mô tả thông tin) đợc xác định nh mức trừu tợng cao. Tức là, phát biểu mô tả chức năng hay
thông tin về mặt quan niệm, nhng không đa ra thông tin về cách làm việc nội bộ của chức năng
hay cấu trúc nội bộ của thông tin đó. Việc làm mịn buộc ngời thiết kế phải khởi thảo phát biểu
nguyên gốc, đa ra ngày càng nhiều chi tiết khi từng việc làm mịn (khởi thảo) kế tiếp xuất hiện.
Chiến lợc thiết kế Top-down dựa trên cơ sở nguyên lý"chia để trị. ý tởng hcính của phơng pháp này là từ số liệu đầu
vào của một vấn đề, một bài toán ban đầu chúng ta chia ra thành các modul nhỏ hơn một ít, cha cần thiết kế chi tiết cho
từng modul
Sau khi thiết kế tổng thể xong ở mức O, chúng ta sẽ đi giải quyết từng modol một. Mỗi một modul này, đến
lợt nó, ta lại có thể chia nhỏ thành các modul nhỏ hơn (mức 1,2, )
Việc giải các modul nhỏ này sẽ góp phần vào việc giải quyết toàn bộ vấn đề. Nh vậy ta đi từ trừu tợng ban
đầu để đến các cụ thể của mỗi modul nhỏ
Tính modul
Phần mềm đợc chia thành các thành phần có tên riêng biệt và định địa chỉ đợc, gọi là các
chi
p
hí
phần mềm
P
A B
BBBA ABAA
AAB
Từ
trên
Xuống
dới
Mức 0
Mức 1
mức 2 Mức 3
Trừu
tợng
Cụ thể
http://www.ebook.edu.vn
_____________________________________________________________Chơng III. "vấn đề " cần giải quyết
quan phần mềm
"giải pháp" phần mềm
Hình-Tiến hoá của cấu trúc
Miền chi phí
tối thiểu
Số các
modul
M
S
1
S
2
S
3
S
4
S
5
http://www.ebook.edu.vn
_____________________________________________________________Chơng III.
Nguyễn Quốc Toản- Nguyên văn Vỵ - Vu Đức Thi - Lê Đình Phùng
56
lý, sự xuất hiện/ thứ tự các quyết định hay việc lặp lại các thao tác.
Ngời ta dùng các kí pháp khác nhau để biểu diễn cho cấp bậc điều khiển. Thông dụng nhất là
biểu đồ kiểu cây. Trong đó độ sâu và chiều rộng đa ra một chỉ báo về số mức điều khiển và độ trải
rộng toàn bộ của điều khiển tơng ứng. Số mô đun ra là một độ đo đo số các mô đun trực tiếp bị
điều khiển bởi các mô đun khác. Số mô đun vào chỉ ra cách thức mô đun trực tiếp điều khiển một
mô đun đã cho.
P
S
1
S
4
S
5
S
4
S
3
S
2
S
1
S
2
S
5
S
3
S
1
Mối quan hệ điều khiển giữa các mô đun đợc diễn tả theo cách sau: Một mô đun điều khiển
một mô đun khác thì thì đợc gọi là thợng cấp của nó, và ngợc lại một mô đun bị một mô đun
khác điều khiển thì đợc gọi là thuộc cấp của nơi điều khiển. Chẳng hạn: mô đun M là thợng cấp
của các mô đun a,b và c. Mô đun h là thuộc cấp của mô đun e và cuối cùng là là thuộc cấp của
modul M. Mối quan hệ theo chiều rộng (tức là giữa các modul d và e ), mặc dầu có thể diễn tả trong
thực tế nhng không nhất thiết phải đợc xác định bằng thuật ngữ tờng minh.
Cấp bậc điều khiển cũng biểu diễn cho hai đặc trng khác nhau của cấu trúc phần mềm: tính
thấy đợc và tính nối đợc. Tính thấy đợc chỉ ra tập hợp các thành phần chơng trình có thể đợc
gọi hay đợc dùng nh dữ liệu bởi một thành phần đã cho, ngay cả khi điều này đợc thực hiện gián
tiếp. Chẳng hạn, một mô đun trong một hệ thống hớng đối tợng có thể thâm nhập vào một mảng
rộng các sự vật dữ liệu mà nó đã kế thừa, nhng chỉ dùng một số nhỏ các sự vật dữ liệu đó. Tính nối
đợc chỉ ra tập các thành phần trực tiếp đợc gọi hay đợc sử dụng nh dữ liệu bởi một thành phần
đã cho. Chẳng hạn, một mô đun trực tiếp gây ra cho một mô đun khác bắt đầu thực hiện là đợc nối
với nó.
Cấu trúc dữ liệu:
Cấu trúc dữ liệu: biểu diễn mối quan hệ logic giữa các phần tử dữ liệu riêng lẻ. Vì cấu trúc
thông tin sẽ luôn luôn ảnh hởng tới thiết kế thủ tục cuối cùng nên cấu trúc dữ liệu cũng quan trọng
nh cấu trúc chơng trình để biểu thị kiến trúc phần mềm.
ý nghĩa: Cấu trúc dữ liệu khống chế cách tổ chức, các phơng pháp thâm nhập, mức độ kết hợp
và các phơng án xử lý thông tin .
Tổ chức và độ phức tạp của các cấu trúc dữ liệu chỉ bị giới hạn bởi tài khéo léo của ngời thiết
kế. Tuy nhiên cũng có một số hạn chế, các cấu trúc dữ liệu cổ điển vốn tạo nên các khối xây dựng
cho nhiều cấu trúc dữ liệu phức tạp.
M
b
k
h
báo về
số
mức
điều
khiển
http://www.ebook.edu.vn
_____________________________________________________________Chơng III.
Nguyễn Quốc Toản- Nguyên văn Vỵ - Vu Đức Thi - Lê Đình Phùng
56 hình- Cấu trúc dữ liệu cổ điển
cách tổ chức dữ liệu thích hợp (nh vec tơ) và một hay nhiều con trỏ chỉ ra địa chỉ trong bộ nhớ
khoản mục vô hớng (cấu trúc DL đơn giản nhất)
vecto tuần tự
khônggiannchiều
danh sách m óc nối
cây cấp bậc
http://www.ebook.edu.vn
_____________________________________________________________Chơng III.
Nguyễn Quốc Toản- Nguyên văn Vỵ - Vu Đức Thi - Lê Đình Phùng
56
của đỉnh tiếp trong danh sách. Có thể bổ xung thêm các đỉnh tại bất kì điểm nào trong danh sách
bằng cách định nghĩa lại các con trỏ để thích hợp với lối vào danh sách mới.
Các cấu trúc dữ liệu khác tổ hợp hay đợc xây dựng bằng cách dùng các cấu trúc dữ liệu nền
tảng đợc mô tả ở trên. Chẳng hạn, cấu trúc dữ liệu cấp bậc đợc cài đặt bằng cách dùng danh
sách đa móc nối có chứa các khoản mục vô hớng, vec tơ và có thể cả không gian n chiều. Cấu
trúc cấp bậc thờng hay gặp trong các ứng dụng có đòi hỏi phân loại và liên kết thông tin. Phân
loại bao hàm việc gộp nhóm thông tin theo một phân loại tổng quát nào đó .
Tính kết hợp hàm ý khả năng liên kết thông tin từ các phân loại khác nhau.
Điều quan trọng cần lu ý rằng cấu trúc dữ liệu, giống nh cấu trúc chơng trình, có thể
đợc biểu diễn ở các mức trừu tợng khác nhau. Chẳng hạn, chồng (stack )là một mô hình khái
niệm về cấu trúc dữ liệu có thể đợc cài đặt nh một vec tơ hay danh sách móc nối.
Thủ tục phần mềm
Cấu trúc chơng trình xác định ra cấp bậc điều khiển không để ý đến dãy các xử lý và quyết
định. Thủ tục phần mềm tập trung vào các chi tiết xử lý cho từng mô đun riêng biệt. Thủ tục phải
cung cấp một đặc tả chính xác về xử lý, kể cả trình tự các sự kiện, các điểm quyết định chính xác,
các thao tác lặp lại, và ngay cả cấu trúc/tổ chức dữ liệu. modul A
modul A
A1 A2
http://www.ebook.edu.vn
_____________________________________________________________Chơng III.
Nguyễn Quốc Toản- Nguyên văn Vỵ - Vu Đức Thi - Lê Đình Phùng
56
Hình- Thủ tục đợc phân tầng Che dấu thông tin
2. Thiết kế hớng đối tợng
Hệ thống đợc nhìn nhận nh một bộ các đối tợng (chứ không phải là một bộ chức năng).
Hệ thống đợc phân tán, mỗi đối tợng có những thông tin trạng thái riêng của nó. Đối tợng là bộ
các thuộc tính xác định trạng thái của đối tợng đó và các phép toán thực hiện trên các rhuộc tính
đó. Mỗi đối tợng là một khách thể của một lớp mà lớp đợc xác định bởi các thuộc tính và các
phép toán của nó. Nó đợc thừa kế từ một vài lớp đôí tợng lớp cao hơn, sao cho định nghĩa nó chỉ
cần nêu đủ các khác nhau giữa nó và các lớp cao hơn nó. Các đối tợng liên lạc với nhau chỉ bằng
cách trao đổi các thông báo: thực tế hầu hết các liên lạc giữa các đối tợng thực hiện bằng cách một
đối tợng này gọi một thủ tục, mà thủ tục này kết hợp với một đối tợng khác
Thiết kế hớng đối tợng dựa trên ý tởng che dấu thông tin. Thiết kế hớng đối tợng gần
đây đợc phát triển nhiều đã tạo ra các hệ thống cấu tạo bởi nhiều thành phần độc lập và có tơng
tác với nhau.
Sự thật, các hệ phần mềm lớn là phức tạp đến mức mà ngời ta đã dùng các phơng pháp tiếp
cận khác nhau trong việc thiết kế các thành phần khác nhau của một hệ thống. Chẳng có một chiến
lợc tốt nhất nào cho các dự án lớn. Các cách tiếp cận hớng chức năng và hớng đối tợng là bổ
sung hỗ trợ cho nhau chứ không đối kháng nhau. Kỹ s phần mềm sẽ chọn cách tiếp cận thích hợp
nhất cho từng giai đoạn thiết kế. Nhìn ở mức tổng thể thì hệ thống nh một bộ các đối tợng (chứ
không phải là bộ các chức năng), cho nên ở mức trừu tợng thì cách tiếp cận hớng đối tợng là
thích hợp hơn. Đến mức chi tiết thì thì tự nhiên hơn là nên xem chúng là các chức năng tơng tác
giữa các đối tợng. Sau đó mỗi đối tợng lại đ
ợc phân giải thành các thành phần, tức là lại có thể
xem nó nh là một hệ (con)
Rất nhiều hệ thống , đặc biệt là hệ thống thời gian thực đợc nhúng (vào một hệ thiết bị vật
chất có thực) đợc cấu tạo nh là một hệ gồm một bộ các quá trình hoạt động song song và có liên
lạc với nhau. Các hệ này thờng phải tuân theo các ràng buộc nghiêm ngặt về thời gian, mà các phần
cứng thờng hoạt động tơng đối chậm, chỉ có cách tiếp cận nhiều bộ xử lý hoạt động song song
mới có thể hoàn thành đợc yêu cầu về thời gian .
Các chơng trình tuần tự là dễ thiết kế, thực hiện, kiểm tra và thử nghiệm hơn là các hệ song
song. Sự phụ thuộc thời gian giữa các quá trình là khó hình thức hoá, khó khống chế và thử nghiệm
logic đó thì mức độ kết dính của nó là thấp.
Constantine và Yourdon định ra 7 mức kết dính theo thứ tự tăng dần sau đây:
a. Kết dính gom góp: các phần của thành phần không liên quan với nhau, song lại bị bó vào một
thành phần
b. Hội hợp logic: các thành phần cùng thực hiện các chức năng tơng tự chẳng hạn nh vào, xử lý
lỗi, là đợc đặt vào cùng một thành phần
c. Kết dính theo thời điểm: tất cả các thành phần cùng hoạt hoá một lúc, chẳng hạn nh khởi sự và
kết thúc, là đợc bó lại với nhau
d. Kết dính thủ tục: các phần tử trong thành phần đợc ghép lại trong một dãy điều khiển
e. Kết dính truyền thông: tất cả các phần tử của thành phần cùng thao tác trên một dữ liệu vào và
đa ra cùng một dữ liệu ra
f. Kết dính tuần tự: trong một thành phần, ra của phần tử này là vào của phần tử khác
g. Kết dính chức năng: Mỗi phần của thành phần đều là cần thiết để thi hành cùng một chức năng
nào đó.
Các lớp kết dính này không đợc định nghĩa chặt chẽ và cũng không phải luôn luôn quyết
định đợc
Một đối tợng kết dính là một đối tợng nó thể hiện một thực thể đơn, tất cả các phép toán
trên thực thể đó đều nằm trong thực thể đó Vậy có thể xác định một lớp kết dính nữa là:
h. Kết dính đối tợng: mỗi phép toán cho một chức năng , chức năng này cho phép các thuộc tính
của đối tợng đó đợc cải biên, thanh tra và sử dụng nh là cơ sở cho sự cung cấp dịch vụ
2. Sự ghép nối (Coupling)
Ghép nối liên quan đến kết dính, nó chỉ ra độ nôí ghép giữa các đơn vị của ch
ơng trình. Hệ
thống có nối ghép cao sẽ có độ nối ghép mạnh giữa các đơn vị, các đơn vị phụ thuộc lẫn nhau. Hệ
thống nối ghép lỏng lẻo làm cho các đơn vị là độc lập hoặc là tơng đối độc lập với nhau.
Các modul là đợc ghép nối chặt chẽ nếu chúng dùng các biến chung và nếu chúng trao đổi
các thông tin điều khiển. (ghép nối chung nhau và ghép nối điều khiển). Ghép nối lỏng lẻo đạt đợc
khi bảo đảm rằng các thông tin biểu diễn là đợc giữ trong thành phần này là giao diện dữ liệu của
ngời đọc thiết kế phải nhìn nhiều lớp đối tợng khác nhau trong tôn ti thừa kế thì độ dễ hiểu của
thiết kế là đợc rút gọn
4.Sự thích nghi đợc (Adaptability)
Nếu một thiết kế nhằm đợc bảo trì thì nó phải là sẵn sàng thích nghi đợc. Dĩ nhiên điều
này suy ra rằng các thành phần của chúng nên đợc ghép nối lỏng lẻo. Tuy nhiên sự thích nghi đợc
lại có nghĩa là thiết kế đó phải đợc soạn thảo t liệu tốt, t liệu thành phần phải là dễ hiểu và kiên
định với sự thực hiện , nghĩa là sự thực hiện phải đợc viết ra trong cách dễ đọc
Một thiết kế dễ thích nghi hẳn là có mức nhìn thấy đợc cao. Hẳn là có một quan hệ rõ ràng
giữa các mức khác nhau của thiết kế . Ngời đọc thiết kế hẳn có thể tìm đợc các biểu diễn liên
quan sao cho lợc đồ cấu trúc biểu diễn sự vận chuyển của biểu đồ dòng dữ liệu
Cần phải dễ dàng kết hợp chặt chẽ các biến đổi về thiết kế trong toàn bộ t liệu thiết kế
Nếu không nh vậy thì các thay đổi thiết kế có thể sẽ không đợc đa vào trong các mô tả
liên quan. T liệu thiết kế đó có thể trở nên không kiên định. Các biến đổi tiếp sau là khó thực hiện
(thành phần thiết kế này là ít thích nghi đợc) vì rằng sự cải biên đó không thể dựa vào tính kiên
định của t liệu thiết kế
Để có độ thích nghi tối u thì một thành phần phải là tự chứa. Một thành phần có thể là ghép
nối lỏng lẻo theo nghĩa là chỉ hợp tác với các thành phần khác thông qua việc truyền các thông báo.
Điều này không giống nh là tự chứa vì rằng thành phần đó có thể dựa trên các thành phần khác
chẳng hạn nh các chức năng hệ thống hoặc các chức năng xử lý sai. Sự thích nghi với một thành
phần có thể dính líu đến sự thay đổi các phần của thành phần đó mà nó dựa trên các chức năng
ngoại nên đặc tả của các chức năng ngoại này cũng phải xét đến sự cải biên đó.
Muốn là tự chứa một cách hoàn toàn thì một thành phần không nên dùng các thành phần
khác đợc xác định ngoại lai. Tuy nhiên, điều đó lại mâu thuẫn với kinh nghiệm nói rằng các thành
phần hiện có nên là dùng lại đợc. Vậy là cần có một cân bằng giữa tính u việt của sự dùng lại các
thành phần và sự mất mát tính thích nghi đợc của thành phần.
Một trong những u việt chính của thừa kế trong thiết kế hớng đối tợng là các thành phần
này có thể sẵn sàng thích nghi đợc. Cơ cấu thích nghi đợc này không dựa trên việc cải biên thành
phần đó mà trên việc tạo ra một thành phần mới có thừa kế các thuộc tính và các phép toán của
thành phần gốc. Chỉ các thuộc tính và phép toán cần phải biến đổi mới đợc cải biên. Các thành
1. Không có vùng dữ liệu dùng chung. Các đối tợng liên lạc với nhau bằng cách trao đổi thông
báo chứ không phải bằng các biến dùng chung.
2. Các đối tợng là các thực thể độc lập, dễ thay đổi vì rằng tất cả các trạng thái và các thông tin
biểu diễn chỉ ảnh hởng trong phạm vi chính đối tợng đó thôi. Các thay đổi về biểu diễn thông
tin có thể đợc thực hiện không cần sự tham khảo tới các đối tợng hệ thống khác
3. Các đối tợng có thể phân tán và có thể hành động tuần tự hoặc song song.
III.2.3.Các u điểm của thiết kế hớng đối tợng
Dễ bảo trì vì các đối tợng là độc lập. Các đối tợng có thể hiểu và cải biên nh là một thực thể
độc lập. Thay đổi trong thực hiện một đối tợng hoặc thêm các dịch vụ sẽ không làm ảnh hởng
tới các đối tợng hệ thống khác.
Các đối tợng là các thành phần dùng lại đợc thích hợp (do tính độc lập của chúng). Một thiết
kế có thể dùng lại đợc các đối tợng đã đợc thiết kế trong các bản thiết kế trớc đó
Có một vài lớp hệ thống thể hiện phản ánh quan hệ rõ ràng giữa các thực thể có thực (chẳng hạn
nh các thành phần phần cứng) với các đối tợng điều khiển nó trong hệ thống. Điều này đạt
đợc tính dễ hiểu của thiết kế
Nhợc điểm của thiết kế hớng đối tợng:
Sự nhận minh các đối tợng hệ thống thích hợp là khó khăn. Cách nhìn tự nhiên nhiều hệ
thống là cách nhìn chức năng và việc thích nghi với cách nhìn hớng đối tợng đôi khi là khó khăn.
III.2.4.Phân biệt giữa thiết kế hớng đối tợng và lập trình hớng đối tợng
Dễ nhầm lẫn 2 khái niệm này. Ngôn ngữ lập trình hớng đối tợng là một ngôn ngữ lập trình
cho phép thực hiện trực tiếp các đối tợng và cung cấp các lớp đối tợng và sự thừa kế .
Thiết kế hớng đối tợng là một chiến lợc thiết kế, không phụ thuộc vào ngôn ngữ thực hiện
cụ thể nào. Các ngôn ngữ lập trình hớng đối tợng và các khả năng bao gói đối tợng làm cho
thiết kế hớng đối tợng đợc thực hiện một cách đơn giản hơn. Tuy nhiên một thiết kế hớng
vẫn sẽ còn đợc tiếp tục sử dụng rộng rãi.
Trong thiết kế hớng chức năng, ngời ta dùng các biểu đồ dòng dữ liệu (mà nó mô tả việc
xử lý dữ liệu logic), các lợc đồ cấu trúc ( nó chỉ ra cấu trúc của phần mềm ) và các mô tả PDL (mô
tả thiết kế chi tiết). Khái niệm dòng dữ liệu đang hớng tới thích hợp hơn cho việc sử dụng một hệ
thống vẽ biểu đồ tự động và sử dụng một dạng lợc đồ cấu trúc có kèm thêm các thông tin điều
khiển
Chiến lợc thiết kế hớng chức năng dựa trên việc phân giải hệ thống thành một bộ các chức
năng có tơng tác nhau với trạng thái hệ thống tập trung dùng chung cho các chức năng đó. Các
chức năng này có thể có các thông tin trạng thái cục bộ nhng chỉ dùng cho quá trình thực hiện chức
năng đó mà thôi.
Thiết kế hớng chức năng gắn với các chi tiết của một thuật toán của chức năng đó nhng các thông
tin trạng thái hệ thống là không bị che dấu. Điều này có thể gây ra một vấn đề vì rằng một chức
năng có thể thay đổi trạng thái theo một cách mà các chức năng khác không ngờ tới. Việc thay đổi
một chức năng và cách nó sử dụng trạng thái của hệ thống có thể gây ra những tơng tác bất ngờ đối
với các chức năng khác
Cách tiếp cận chức năng để thiết kế là tốt nhất khi mà khối lợng thông tin trạng thái hệ
thống đợc làm nhỏ nhất và thông tin dùng chung nhau là rõ ràng
III.3.2.Biểu đồ dòng dữ liệu
Biểu đồ dòng dữ liệu chỉ ra cách thức biến đổi dữ liệu vào thành dữ liệu ra thông qua một dãy
các phép biến đổi. Đó là một cách ngây thơ và hữu ích để mô tả một hệ thống và nó cũng là dễ hiểu
không cần một sự huấn luyện đặc biệt nào. Bớc thứ nhất của thiết kế hớng chức năng là phát triển
một biểu đồ dòng dữ liệu hệ thống. Biểu đồ này không nhất thiết bao gồm các thông tin điều khiển
nhng nên lập t liệu các phép biến đổi dữ liệu .
http://www.ebook.edu.vn
_____________________________________________________________Chơng III.
Nguyễn Quốc Toản- Nguyên văn Vỵ - Vu Đức Thi - Lê Đình Phùng
56
thông tin vào còn mũi tên ra từ một hộp ngầm chỉ thông tin ra. Các kho dữ liệu đợc chỉ bởi các
hình chữ nhật góc tầy và các thông tin vào từ ngời dùng đợc chỉ bởi các khuyên tròn. Sau này, để
tránh nhầm với kí pháp đã dùng trong biểu đồ dòng dữ liệu , ngời ta dùng khối trụ biểu diễn kho
dữ liệu và hình bình hành biểu diễn thông tin vào.
III.3.4.Các từ điển dữ liệu
Từ điển dữ liệu vừa có ích cho việc bảo trì hệ thống vừa có ích trong quá trình thiết kế. Với
mỗi lối vào đã đợc minh định trong biểu đồ phải có một lối vào từ điển dữ liệu cung cấp thông tin
về kiểu, chức năng của dữ liệu và một lý do cơ bản cho việc nó vào. Đôi khi ngời ta gọi cái này là
một mô tả ngắn của chức năng thành phần.
Lối vào từ điển thành phần phải là một mô tả kiểu văn bản cho thành phần và phải đợc mô
tả chi tiết.
Các từ điển dữ liệu dùng để nối các mô tả thiết kế kiểu biểu đồ và các mô tả thiết kế kiểu văn
bản. Một vài bộ công cụ CASE cung cấp một phép nối tự động biểu đồ dòng dữ liệu và từ điển dữ
liệu. III.4.Giao diện ngời sử dụng
p
hé
p
biến đổi
kho dữ liệu
giao
tác
in
put
-Một giao diện khó sử dụng ít ra là sẽ gây nhiều sai lầm của ngời sử dụng. Trong
trờng hợp xấu nhất nó có thể làm cho hệ thống bị huỷ hoại bất chấp chức năng của nó.
-Một giao diện thiết kế kém có thể làm cho ngời sử dụng gây ra các sai lầm tai hoạ.
Nếu các thông tin đợc biểu diễn theo cách lẫn lộn và dễ hiểu nhầm thì ngời dùng có thể hiểu
nhầm ý nghĩa của các khoản mục thông tin và gây ra một dãy các hành vi nguy hiểm. Trong giáo
trình này chỉ nhấn mạnh các giao diện đồ hoạ.
+Giao diện ngời sử dụng phải tính đến nhu cầu kinh nghiệm và khả năng của ngời sử dụng
Trong những ngày đầu của tin học (trớc khi có những thiết bị hiển thị đồ hoạ, chuột, trạm
làm việc tốc độ cao và những điều tơng tự) một mốt tơng tác ngời-máy thực tế duy nhất là giao
diện chỉ lệnh và hỏi (thế hệ 1). Trao đổi thuần tuý văn bản và đợc dẫn thông qua các chỉ lệnh và
các đáp ứng với các câu hỏi do hệ thống sinh ra. Ngời sử dụng có thể trao đổi với hệ thống bằng
cách xác định một chỉ lệnh nh:
>run progr1.exe/debug='on'/out=p1/in=1/alloc=1000k
*RUN ALLOCATION TO BE QUEUED?>>yes
*AUTOMATIC CHECKPOINTING INTERVAL?>>5
Nhận xét: mặc dầu chỉ lệnh và câu hỏi bí mật nh thế rất chính xác, chúng cũng vẫn sinh lỗi, rất
không dung thứ (nếu có lỗi phạm phải) và phải nói là khó học.
Một biến thể (cải tiến) về giao diện chỉ lệnh và hỏi là giao diện đơn (menu) đơn giản (thế hệ
2). Tại đây, một danh sách các tuỳ chọn đợc nêu ra cho ngời dùng và quyết định thích hợp đợc
chọn thông qua một mã gõ vào nào đó.
Khi phần cứng trở nên tinh vi hơn và kỹ s phần mềm học đợc nhiều hơn vè nhân tố con
ngời và tác động của chúng tới thiết kế giao diện thì giao diện trỏ và nhặt, hớng cửa sổ bắt đầu
tiến hoá (đôi khi còn đợc gọi là giao diện cửa sổ, biểu tợng, đơn và thiết bị trỏ (thế hệ ba).
ích lợi của giao diện "thế hệ ba":
1. Có thể hiển thị đồng thời nhiều kiểu thông tin khác nhau, cho phép ngời dùng chuyển hoàn
cảnh (nh viết chơng trình gốc trong cửa sổ này; xem kết quả đa ra trên cửa sổ khác, viết cập
nhật cho lời thuật xử lý trên cửa sổ thứ ba) mà không mất mối nối trực quan với công việc khác.
Cửa sổ cho phép ngời dùng thực hiện nhiều nhiệm vụ trao đổi và nhận biết mà không chán.
2. Nhiều nhiệm vụ tơng tác khác nhau có sẵn qua sơ đồ đơn kéo xuống. Những đơn nh vậy cho
phép ngời dùng thực hiện các nhiệm vụ kiểm soát và đối thoại một cách dễ dàng.
-Hình ảnh hệ thống: ngời cài đặt hệ thống tạo ra
Các mô hình này khác nhau. Vai trò của thiết kế giao diện là điều hoà những sự khác biệt này và
đa ra một cách biểu diễn nhất quán cho giao diện
Mô hình thiết kế của toàn bộ hệ thống: tổ hợp các biểu diễn dữ liệu, kiến trúc và thủ tục
của phần mềm
Mô hình ngời dùng mô tả sơ lợc hệ thống cho ngời dùng cuối. Để có hiệu quả, mọi
thiết kế nên bắt đầu với một hiểu biết về ngời dùng đợc dự định, kể cả thông tin về tuổi
tác, giới tính, khả năng thể chất, nền tảng giáo dục, văn hoá, động cơ, mục đích và nhân
cách (có thể phân thành ngời mới học, ngời ít khi dùng nhng có hiểu biết, ngời dùng
thờng xuyên và có hiểu biết
Cảm nhận hệ thống là hình ảnh của hệ thống mà ng
ời dùng mang trong đầu
Hình ảnh hệ thống tổ hợp cách biểu lộ bên ngoài của hệ thống dựa trên máy tính (nhìn và
cảm thấy giao diện) vơí mọi thông tin hỗ trợ (sách, tài liệu sử dụng, băng video) mô tả
cho cú pháp và ngữ nghĩa của hệ thống. Khi hình ảnh hệ thống và cảm nhận hệ thống
trùng nhau thì nói chung ngời dùng cảm thấy thoải mái với phần mềm và dùng nó một
cách hiệu quả
Về bản chất, các mô hình này làm cho ngời thiết kế giao diện thoả mãn với vấn đề mấu
chốt của nguyên lí quan trọng nhất trong thiết kế giao diện ngời dùng: biết ngời dùng, biết nhiệm
vụ.
III.4.2.2. Phân tích và mô hình hoá nhiệm vụ
Việc khởi thảo từng bớc (cũng còn đợc gọi là phân tách chức năng hay làm mịn dần từng
bớc) nh cơ chế để làm mịn các nhiệm vụ xử lý cần cho phần mềm hoàn thành một chức năng
mong muốn nào đó.
Phân tích nhiệm vụ cũng có cách tiếp cận tơng tự nhng đợc áp dụng cho các hoạt động
con ngời. Trớc hết phải xác định và phân loại các nhiệm vụ.
Ví dụ nh việc thiết kế nội thất bao gồm một số hoạt động chính:
5. Xác định các cơ chế điều khiển, nh thiết bị và hành động sẵn có cho ngời dùng để thay đổi
trạng thái hệ thống
6. Chỉ ra cách thức cơ chế điều khiển này ảnh hởng tới trạng thái hệ thống
7. Chỉ ra cách thức ngời dùng diễn giải trạng thái của hệ thống từ thông tin đợc cung cấp qua
giao diện
III.4.2.3.Vấn đề thiết kế
Bốn vấn đề thiết kế thông thờng gần nh bao giờ cũng nổi lên:
1. Thời gian hệ thống đáp ứng (độ dài, độ biến thiên)
2. Tiện nghi giúp đỡ ngời dùng(tích hợp, phụ thêm)
3. giải quyết thông tin lỗi (thông báo, cảnh báo)
4. gắn nhãn chỉ lệnh (tiện nghi tạo macro)
Thời gian hệ thống đáp ứng là nan giải chính cho nhiều hệ thống tơng tác (đặc biệt là những
ứng dụng có dùng máy tính lớn tập trung). Nói chung, thời gian hệ thống đáp ứng đợc đo từ điểm
tại đó ngời dùng thực hiện hành động điều khiển nào đó (nh gõ phím hay nháy chuột) cho tới khi
phần mềm đáp ứng với cái ra hay hành động mong muốn.
Thời gian hệ thống đáp ứng có hai đặc trng quan trọng: độ dài và độ biến thiên. Nếu độ dài thời
gian đáp ứng quá lâu thì ngời dùng không tránh khỏi chán nản và căng thẳng. Tuy nhiên thời gian
đáp ứng quá ngắn cũng có thể bất lợi nếu ngời dùng bị giao diện giữ nhịp. Sự đáp ứng nhanh chóng
có thể buộc ngời dùng phải vội vã do đó phạm sai lầm.
Độ biến thiên nói tới độ lệch khỏi thời gian đáp ứng trung bình, và theo nhiều cách thức thì
nó còn quan trọng hơn đặc trng thời gian đáp ứng. Độ biến thiên thấp làm cho ng
ời dùng thiết lập
đợc nhịp điệu, cho dù thời gian đáp ứng tơng đối lâu. Chẳng hạn đáp ứng1giây đối với một lệnh
thì đợc a chuộng hơn cho một đáp ứng biến thiên từ 0,1 đến 2,5 giây. Trong trờng hợp sau, ngời
dùng bao giờ cũng bị mất cân bằng, bao giờ cũng phải tự hỏi liệu có cái gì đó khác sẽ xuất hiện
bên ngoài khung cảnh này hay không.
Ta thờng gặp phải hai kiểu tiện nghi trợ giúp khác nhau: tích hợp và phụ thêm. Tiện nghi trợ
giúp tích hợp đợc thiết kế trong phần mềm ngay từ đầu. Nó thờng cảm ngữ cảnh, làm cho ngời
dùng lựa đợc từ các chủ đề có liên quan tới hành động hiện đang đợc thực hiện. Hiển nhiên, điều