Xem mẫu
- Tập bài giảng Công nghệ phần mềm
Chƣơng 5
THIẾT KẾ PHẦN MỀM
5.1. Đặc điểm của quá trình thiết kế phần mềm
Xây dựng ứng dụng phần mềm là một dây chuyền các chuyển đổi, mà ở đó
phân tích nhằm xác định ứng dụng sẽ thực hiện cái gì (what) còn thiết kế nhằm để trả
lời câu hỏi phần mềm cụ thể sẽ nhƣ thế nào (how)? Tức là xác định cách thức thực
hiện những gì đã đƣợc đặt ra ở phần phân tích.
Trong ba giai đoạn: thiết kế, cài đặt và bảo trì thì thiết kế là giai đoạn quan
trọng nhất, chịu trách nhiệm đến 80% đối với sự thành công của một sản phẩm. Cài đặt
là việc thực thi những gì đã thiết kế. Nếu trong quá trình cài đặt có xuất hiện vấn đề thì
phải quay lại sửa bản thiết kế. Quá trình thiết kế tốt là cơ sở để quản lý và giảm chi phí
cho công việc bảo trì phần mềm sau này.
Nhiệm vụ của thiết kế là chuyển đổi những yêu cầu của hệ thống (kết quả của
quá trình phân tích) sang dạng biểu diễn của hệ thống phần mềm. Nghĩa là xây dựng
các mô tả văn bản (thiết kế chi tiết) nêu rõ mối quan hệ giữa tiền điều kiện và hậu điều
kiện cho tất cả các chức năng (quá trình) của hệ thống. Tiền điều kiện xác định những
cái sẽ nhận giá trị chân lý đúng trƣớc khi một quá trình thực hiện, còn hậu điều kiện
xác định những điều sẽ nhận giá trị đúng khi chấp nhận tiền điều kiện và khi quá trình
đó kết thúc thành công.
Tầm quan trọng của thiết kế đƣợc thể hiện qua hình 5.1:
Hình 5.1. Tầm quan trọng của quá trình thiết kế
Nhƣ vậy, thiết kế là một thực tế về một quyết định chọn lựa, xây dựng một đặc
tả về hành vi nhìn thấy đƣợc từ bên ngoài và bổ sung các chi tiết cần thiết cho việc cài
đặt trên hệ thống máy tính bao gồm cả chi tiết về tổ chức quản lý dữ liệu, công việc và
tƣơng tác với con ngƣời. Thiết kế phải nhờ vào các kinh nghiệm và phải học tập những
cái có sẵn từ các hệ thống khác; không thể chỉ đọc sách là đủ. Bản thiết kế tốt là chìa
khóa cho sự thành công của hệ thống.
124 Phạm Hùng Phú -Nguyễn Văn Thẩm
- Tập bài giảng Công nghệ phần mềm
Mối liên quan của thiết kế phần mềm với công nghệ phần mềm đƣợc thể hiện
qua sơ đồ hình 5.2:
Hình 5.2. Mối liên quan của giai đoạn thiết kế với các giai đoạn khác
Thiết kế phần mềm là hoạt động đƣợc xác lập dựa trên hai mặt: quản lý và kỹ
thuật, chúng đan xen với nhau. Mối quan hệ giữa hai khía cạnh kỹ thuật và quản lý
đƣợc thể hiện qua hình 5.3:
Hình 5.3. Các giai đoạn thiết kế
Trong quan điểm quản lý, thiết kế phần mềm đƣợc tiến hành 2 bƣớc:
- Thiết kế sơ bộ: quan tâm đến việc dịch các yêu cầu thành các kiến trúc dữ liệu
và phần mềm.
- Thiết kế chi tiết: tập trung vào việc làm mịn biểu diễn kiến trúc để dẫn đến cấu
trúc dữ liệu chi tiết và biểu diễn thuật toán cho phần mềm.
Đối với khía cạnh kỹ thuật, xuất hiện một số hoạt động thiết kế nhƣ:
- Thiết kế dữ liệu
- Thiết kế kiến trúc
Phạm Hùng Phú -Nguyễn Văn Thẩm 125
- Tập bài giảng Công nghệ phần mềm
- Thiết kế thủ tục
- Thiết kế đối tƣợng
- Thiết kế giao diện
Các hoạt động của giai đoạn thiết kế phần mềm theo khía cạnh kỹ thuật đƣợc
biểu diễn nhƣ hình qua hình 5.4. Trong đó, hoạt động thiết kế xử lý gồm hai hoạt
động: Thiết kế thủ tục và thiết kế đối tƣợng.
Hình 5.4. Các giai đoạn thiết kế theo khía cạnh kỹ thuật
Các kết quả cần có khi thiết kế hệ thống theo khía cạnh kỹ thuật
Bảng 5.1. Kết quả của các giai đoạn thiết kế theo khía cạnh kỹ thuật
STT Hoạt động Kết quả Kết quả chi tiết
- Sơ đồ các màn hình
- Danh sách các màn hình
Thiết kế giao Hệ thống các màn
1 - Nội dung từng màn hình
diện hình giao diện
- Biến cố và xử lý trên từng màn
hình.
- Danh sách các hàm
Hệ thống các hàm
- Danh sách các kiểu dữ liệu
2 Thiết kế xử lý cùng với cấu trúc
- Mô tả chi tiết từng hàm
dữ liệu tƣơng ứng
- Mô tả chi tiết các kiểu dữ liệu
- Cấu trúc lƣu trữ
Thiết kế dữ Tổ chức lƣu trữ - Danh sách các thành phần lƣu trữ
3
liệu trên bộ nhớ phụ - Mô tả chi tiết các thành phần
- Danh sách các ràng buộc
Trong tiến trình thiết kế, mô hình để biểu diễn công việc thiết kế là đồ thị. Các
đỉnh của đồ thị dùng để biểu diễn các thực thể (các tiến trình, các chức năng, các
kiểu...) và các cạnh là các mối liên hệ giữa chúng. Quá trình thiết kế thƣờng đƣợc mô
tả bằng nhiều mức khác nhau của cách tiếp cận trừu tƣợng hóa, nhằm tách các bộ phận
cấu thành của bài toán nhằm nâng cao độ chắc chắn, độ tin cậy của hệ thống.
126 Phạm Hùng Phú -Nguyễn Văn Thẩm
- Tập bài giảng Công nghệ phần mềm
Hình 5.5. Tiến trình thiết kế
5.2. Chiến lƣợc thiết kế
Do các hệ phần mềm lớn là phức tạp nên ngƣời ta thƣờng dùng các phƣơng pháp
tiếp cận khác nhau trong việc thiết kế các 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. Hai chiến lƣợc thiết kế hiện đang đƣợc
dùng rộng rãi trong việc phát triển phần mềm đó là thiết kế hƣớng chức năng và thiết
kế hƣớng đối tƣợng. Mỗi chiến lƣợc thiết kế đều có ƣu và nhƣợc điểm riêng phụ thuộc
vào ứng dụng phát triển và nhóm phát triển phần mềm.
Cách tiếp cận hƣớng chức năng hay hƣớng đối tƣợng là bổ sung và hỗ trợ cho nhau
chứ không phải là đố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ế.
5.2.1. Thiết kế hƣớng chức năng
Thiết kế hƣớng chức năng là một cách tiếp cận thiết kế phần mềm trong đó bản
thiết kế đƣợc phân giải thành một bộ các đơn thể đƣợc tác động lẫn nhau, mà một đơn
thể có một chức năng đƣợc xác định rõ ràng. Các chức năng có các trạng thái cục bộ
nhƣng chúng chia sẻ với nhau trạng thái hệ thống, trạng thái này là tập trung và mọi
chức năng đều có thể truy cập đƣợc.
Một số quan niệm cho rằng thiết kế hƣớng chức năng đã lỗi thời và nên đƣợc thay
thế bởi cách tiếp cận hƣớng đối tƣợng. Thế nhƣng, nhiều tổ chức đã phát triển các
chuẩn và các phƣơng pháp dựa trên sự phân giải chức năng. Nhiều phƣơng pháp thiết
kế kết hợp với các công cụ CASE đều là hƣớng chức năng và có nhiều hệ thống đã
đƣợc phát triển bằng cách sử dụng phƣơng pháp tiếp cận hƣớng chức năng. Các hệ
thống đó sẽ phải đƣợc bảo trì cho một tƣơng lai xa xôi. Bởi vậy thiết kế hƣớng chức
năng vẫn sẽ còn đƣợc tiếp tục sử dụng rộng rãi.
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ộ nhƣng chỉ
dùng cho quá trình thực hiện chức năng đó mà thôi.
Phạm Hùng Phú -Nguyễn Văn Thẩm 127
- Tập bài giảng Công nghệ phần mềm
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 đó
nhƣng 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 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.
Do đó cách tiếp cận chức năng để thiết kế là thắng lợi nhất khi mà khối lƣợng
thông tin trạng thái hệ thống là đƣợc làm nhỏ nhất và thông tin dùng chung nhau là rõ
ràng.
5.2.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. 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à một 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 của nó. Nó đƣợc thừa kế từ
một vài lớp đối tƣợng lớp cao hơn, sao cho dễ đị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ó.
Che dấu thông tin là chiến lƣợc thiết kế dấu càng nhiều thông tin trong các thành
phần càng hay. Cái đó ngầm hiểu rằng việc kết hợp điều khiển logic và cấu trúc dữ
liệu đƣợc thực hiện trong thiết kế càng chậm càng tốt. Liên lạc thông qua các thông tin
trạng thái dùng chung (các biến tổng thể) là ít nhất, nhờ vậy khả năng hiểu là đƣợc
tăng lên. Thiết kế là tƣơng đối dễ thay đổi vì sự thay đổi một thành phần không thể
không dự kiến các hiệu ứng phụ trên các thành phần khác.
Thiết kế hƣớng đối tƣợng là dựa trên việc che dấu thông tin, nhìn hệ phần mềm
nhƣ là một bộ các đối tƣợng tƣơng tác với nhau chứ không phải là một bộ các chức
năng nhƣ cách tiếp cận chức năng. Các đối tƣợng này có một trạng thái đƣợc che dấu
và các phép toán trên các trạng thái đó. Thiết kế biểu thị các dịch vụ đƣợc yêu cầu và
đƣợc cung cấp bởi các đối tƣợng có tƣơng tác với nó. Thiết kế hƣớng đối tƣợng có ba
đặc trƣng:
- Vùng dữ liệu dùng chung là bị loại bỏ. 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.
- Các đối tƣợng là các thực thể độc lập mà chúng sẵn sàng đƣợc thay đổi vì rằng tất
cả các trạng thái và các thông tin biểu diễn là 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.
- Các đối tƣợng có thể phân tán và có thể hành động tuần tự hoặc song song.
Không cần có quyết định về tính song song ngay từ một giai đoạn sớm của quá trình
thiết kế.
Các ƣu điểm của phƣơng pháp thiết kế hƣớng đối tƣợng:
128 Phạm Hùng Phú -Nguyễn Văn Thẩm
- Tập bài giảng Công nghệ phần mềm
- 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 đó.
- Đối với một vài lớp hệ thống, có một phản ánh 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 cải thiện đƣợc tính dễ hiểu của thiết kế.
Các nhƣợc điểm của phƣơng pháp 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.
- Phƣơng pháp thiết kế hƣớng đối tƣợng vẫn còn là tƣơng đối chƣa chín muồi và
đang thay đổi mau chóng.
Ở đây, cần phân biệt hai khái niệm là thiết kế hƣớng đối tƣợng và lập trình (cài đặt)
hƣớng đối tƣợng:
- Thiết kế hƣớng đối tƣợng là một chiến lƣợc thiết kế nó không phụ thuộc vào một
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 đối tƣợng cũng có thể đƣợc thực hiện trong
một ngôn ngữ kiểu nhƣ Pascal hoặc C mà không có các đặc điểm nhƣ vậy.
- Việc chấp nhận thiết kế hƣớng đối tƣợng nhƣ là một chiến lƣợc hữu hiệu đã dẫn
đến sự phát triển phƣơng pháp thiết kế hƣớng đối tƣợng. Nhƣ Ada không phải là ngôn
ngữ lập trình hƣớng đối tƣợng vì nó không trợ giúp sự thừa kế của các lớp, nhƣng lại
có thể thực hiện các đối tƣợng trong Ada bằng cách sử dụng các gói hoặc các nhiệm
vụ, do đó Ada đƣợc dùng để mô tả các thiết kế hƣớng đối tƣợng.
- Thiết kế hƣớng đối tƣợng là một chiến lƣợc thiết kế, nó không phụ thuộc vào
ngôn ngữ để thực hiện. Các ngôn ngữ lập trình hƣớng đối tƣợng và khả năng bao gói
dữ liệu làm cho dễ thực hiện một thiết kế hƣớng đối tƣợng hơn. Tuy nhiên cũng có thể
thực hiện một thiết kế hƣớng đối tƣợng trong một ngôn ngữ kiểu nhƣ Pascal hoặc C.
5.3. Thiết kế kiến trúc ứng dụng
5.3.1. Khái niệm
Kiến trúc của phần mềm ứng dụng đƣợc suy dẫn ra qua tiến trình phân hoạch đặt
mối quan hệ giữa các phần tử của giải pháp phần mềm với các bộ phận của thế giới
thực đƣợc xác định không tƣờng minh trong phân tích yêu cầu. Các hệ thống lớn có
thể đƣợc phân rã thành các phân hệ cung cấp các dịch vụ. Mỗi phân hệ có các module
Phạm Hùng Phú -Nguyễn Văn Thẩm 129
- Tập bài giảng Công nghệ phần mềm
và có một giao diện xác định để giao tiếp với các phân hệ khác. Nó là một hệ thống có
quyền riêng của mình cho phép các hoạt động không phụ thuộc vào các dịch vụ của
các phân hệ khác.
Quy trình thiết kế khởi đầu để xác định các phân hệ của hệ thống và thiết lập một
khuôn khổ điều khiển và truyền thông giữa các phân hệ đƣợc gọi là thiết kế kiến trúc
cho ứng dụng. Thiết kế kiến trúc ứng dụng luôn đƣợc tiến hành trƣớc khi có các đặc tả
chi tiết về hệ thống.
Việc phân rã kiến trúc hệ thống là cần thiết cho việc cấu trúc và tổ chức đặc tả và
chứa các hoạt động sau:
- Cấu trúc hệ thống: Hệ thống đƣợc cấu trúc thành một số các phân hệ, mỗi phân hệ
là một đơn vị phần mềm độc lập. Các liên kết thông tin giữa các phân hệ đƣợc xác
định.
- Mô hình hoá điều khiển: Một mô hình chung về các quan hệ điều khiển giữa các
thành phần của hệ thống đƣợc thiết lập.
- Phân rã mô hình: Mỗi phân hệ đã xác định sẽ đƣợc phân rã thành các module.
Kiến trúc sƣ sẽ phải quyết định các kiểu module và các kết nối.
Kết quả của thiết kế kiến trúc ứng dụng là tài liệu thiết kế kiến trúc. Tài liệu thiết
kế kiến trúc bao gồm:
- Các biểu diễn đồ hoạ về các mô hình hệ thống kèm theo các giải thích bằng văn
bản.
- Mô tả tại sao hệ thống đƣợc phân rã thành các phân hệ và các phân hệ lại đƣợc
phân rã thành các module.
Giai đoạn đầu tiên của thiết kế kiến trúc là việc phân rã hệ thống thành nhiều phân
hệ tƣơng tác nhau. Tại mức trừu tƣợng nhất, một thiết kế kiến trúc có thể đƣợc coi nhƣ
là một sơ đồ khối trong đó mỗi khối đại diện cho một phân hệ. Các hộp nằm trong một
khối đƣợc coi là phân hệ con của phân hệ. Các mũi tên đại diện cho các điều khiển
hoặc các dữ liệu giao tiếp giữa các phân hệ. Sau đó, một số mô hình đặc trƣng hơn
đƣợc phát triển để biểu diễn các dữ liệu chia sẻ, các giao diện và phân phối dữ liệu
giữa các phân hệ trong ứng dụng.
5.3.2. Các mô hình thiết kế ứng dụng
1) Mô hình kho dữ liệu (Data Warehouse Model)
Các phân hệ cần trao đổi thông tin, và nó có thể tiến hành theo hai cách:
- Mỗi phân hệ duy trì một cơ sở dữ liệu riêng của mình. Dữ liệu đƣợc trao đổi giữa
các phân hệ bằng cách chuyển đổi các thông báo.
- Mọi dữ liệu đƣợc lƣu trữ tại một cơ sở dữ liệu trung tâm có thể đƣợc truy cập bởi
mọi phân hệ. Mô hình này gọi là mô hình kho dữ liệu.
130 Phạm Hùng Phú -Nguyễn Văn Thẩm
- Tập bài giảng Công nghệ phần mềm
Hình 5.6. Mô hình kho dữ liệu
Mô hình kho dữ liệu phù hợp cho các ứng dụng khi dữ liệu đƣợc tạo bởi một phân
hệ và đƣợc sử dụng bởi các phân hệ khác. Đây là cách hữu hiệu để chia sẻ một số
lƣợng lớn dữ liệu mà không cần chuyển đổi dữ liệu tƣờng minh từ một phân hệ này tới
các phân hệ khác.
Phân hệ phải chấp nhận mô hình này nếu muốn tham gia hệ thống. Sẽ rất khó tích
hợp một phân hệ mới nếu nó không phù hợp với tiêu chuẩn của kho dữ liệu. Phân hệ
tạo dữ liệu không cần liên quan đến việc dữ liệu đƣợc phân hệ khác sử dụng nhƣ thế
nào. Việc phát triển mô hình sẽ khó khăn khi một số lƣợng lớn dữ liệu đã có theo tiêu
chuẩn cũ. Việc chuyển đổi dữ liệu sẽ rất tốn kém. Các hoạt động nhƣ lƣu trữ, bảo mật,
điều khiển truy nhập và khôi phục đƣợc tập trung hoá.
Ví dụ kiến trúc của một bộ CASE tích hợp sử dụng mô hình kho dữ liệu:
Hình 5.7. Kiến trúc của một bộ CASE tích hợp
Tuy nhiên, các phân hệ có thể có các yêu cầu khác nhau về mức độ bảo mật, khôi
phục và chiến lƣợc lƣu trữ. Mô hình này bắt buộc các phân hệ phải chấp nhận một
chính sách chung. Mọi việc sẽ đơn giản nếu phân hệ mới cần tích hợp tƣơng thích với
Phạm Hùng Phú -Nguyễn Văn Thẩm 131
- Tập bài giảng Công nghệ phần mềm
dữ liệu cũ. Tuy nhiên sẽ khó khăn nếu phân phối dữ liệu tới nhiều máy khác nhau.
Việc này sẽ phát sinh khả năng dƣ thừa dữ liệu, không toàn vẹn.
2) Mô hình khách - phục vụ
Mô hình khách - phục vụ là một mô hình hệ thống phân tán biểu diễn việc phân tán
các dữ liệu và xử lý trên nhiều máy tính khác nhau.
Hình 5.8. Mô hình kho dữ liệu
Các thành phần chính là:
- Một tập các server độc lập phục vụ cho các phân hệ.
- Một tập các khách hàng yêu cầu các dịch vụ. Chúng có thể là các phân hệ, hay là
các thể hiện khác nhau của cùng một chƣơng trình.
- Một mạng cho phép các khách hàng có thể truy nhập đƣợc các dịch vụ.
Ví dụ kiến trúc của một thƣ viện phim và hình ảnh sử dụng mô hình kho dữ liệu:
Hình 5.9. Kiến trúc của một thƣ viện phim và hình ảnh
Khách hàng phải biết đƣợc định danh của các dịch vụ, còn các dịch vụ không cần
biết các định danh của khách hàng.
Ƣu điểm quan trọng nhất của mô hình này là sự phân tán rất rõ ràng. Mô hình này
dễ dàng thêm một server và tích hợp dần dần khi có nhu cầu mà không ảnh hƣởng tới
các thành phần cũ. Sự thiếu vắng của mô hình chia sẻ dữ liệu ở đây có nghĩa là sẽ khó
dự đoán đƣợc các vấn đề khi tích hợp dữ liệu vào hệ thống cũ. Mỗi server phải có
132 Phạm Hùng Phú -Nguyễn Văn Thẩm
- Tập bài giảng Công nghệ phần mềm
trách nhiệm với bản thân mình về lƣu trữ, khôi phục,...Không có một trung tâm nên
khách hàng phải tự biết và tìm server, đây là vấn đề khó khăn đối với các mạng lớn
nhƣ WAN, Internet.
3) Mô hình máy trừu tƣợng
Mô hình máy trừu tƣợng đôi khi gọi là mô hình lớp, mô hình hoá giao diện của các
phần mềm. Mô hình phân lớp tổ chức hệ thống thành nhiều lớp và mỗi lớp cung cấp
một tập các dịch vụ. Mỗi lớp có thể đƣợc coi nhƣ một máy trừu tƣợng (Abstract
Machine) mà ngôn ngữ của máy đƣợc định nghĩa bởi các dịch vụ mà lớp đó cung cấp.
Do đó, mô hình này thƣờng đƣợc sử dụng để mô hình hoá giao diện (Interface) của hệ
thống con. Mô hình phân lớp hỗ trợ phát triển các hệ thống con theo kiểu tăng vòng ở
nhiều lớp khác nhau. Khi giao diện của một lớp thay đổi thì chỉ những lớp liền kề nó
mới bị ảnh hƣởng.
Hình 5.10. Mô hình máy trừu tƣợng
Ví dụ kiến trúc của hệ thống quản lý phiên bản sử dụng mô hình máy trừu tƣợng:
Hình 5.11. Kiến trúc của hệ thống quản lý phiên bản
Ví dụ kiến trúc của ứng dụng doanh nghiệp sử dụng mô hình máy trừu tƣợng:
Hình 5.12. Kiến trúc của ứng dụng doanh nghiệp
Phạm Hùng Phú -Nguyễn Văn Thẩm 133
- Tập bài giảng Công nghệ phần mềm
4) Mô hình điều khiển
Là mô hình mà để vận hành, hệ thống phải đƣợc điều khiển làm việc đồng bộ và
đúng. Mô hình cấu trúc không có các thông tin điều khiển mà các luồng điều khiển
đƣợc chỉ ra ở mô hình điều khiển. Hai cách tiếp cận chung có thể xác định là:
- Điều khiển tập trung,
- Điều khiển trên cơ sở sự kiện
Mô hình điều khiển bổ sung cho mô hình cấu trúc. Mỗi mô hình cấu trúc đã nói
trên đều có thể dùng mô hình điều khiển tập trung hoặc mô hình điều khiển trên cơ sở
sự kiện.
Mô hình điều khiển tập trung
Một phân hệ đƣợc thiết kế nhƣ bộ điều khiển hệ thống có trách nhiệm quản lý việc
thực hiện các phân hệ khác. Các mô hình điều khiển tập trung phân lớp theo hai loại
phụ thuộc việc điều khiển đƣợc tiến hành tuần tự hay song song.
- Mô hình gọi - trả lời: Mô hình này phù hợp với các mô hình thủ tục top - down.
Hình 5.13. Mô hình gọi - trả lời
- Mô hình quản lý: Mô hình này thích hợp với các hệ thống đồng thời. Một cấu
thành hệ thống đƣợc thiết kế nhƣ là một bộ quản trị và điều khiển việc khởi động, kết
thúc và phối hợp các phân hệ khác.
Hình 5.14. Mô hình quản lý
Mô hình hệ thống điều khiển bởi sự kiện
Mô hình hệ thống điều khiển bởi sự kiện có nhiều kiểu khác nhau của hệ thống
hƣớng sự kiện, nhƣ:
134 Phạm Hùng Phú -Nguyễn Văn Thẩm
- Tập bài giảng Công nghệ phần mềm
- Mô hình phát tin: Trong mô hình này, về nguyên tắc, một sự kiện đƣợc thông báo
cho các phân hệ. Các phân hệ đƣợc thiết kế điều khiển sự kiện này sẽ tự quyết việc trả
lời. Mô hình này hiệu quả với các phân hệ đƣợc phân bố trên các máy tính khác nhau
trên mạng.
+ Ƣu điểm: Việc phát triển tƣơng đối đơn giản. Một phân hệ mới xử lý một lớp sự
kiện mới có thể đƣợc tích hợp khi ghi nhận các sự kiện này vào bộ điều khiển sự kiện.
Mỗi phân hệ có thể kích hoạt mọi phân hệ khác không cần biết tên và vị trí của các
phân hệ đó. Phân bố trong suốt với các phân hệ.
+ Nhƣợc điểm: Phân hệ không biết sự kiện có đƣợc xử lý hay không và khi nào
đƣợc xử lý. Rất có thể hai phân hệ khác nhau cùng sinh một sự kiện và có thể gây
xung đột.
Hình 5.15. Mô hình phát tin
- Mô hình điều khiển ngắt: Có một hệ thống bên ngoài đƣợc sử dụng riêng cho việc
theo dõi các ngắt bên ngoài và đƣợc chuyển tới các phân hệ tƣơng ứng. Mô hình này
phù hợp với các hệ thống thời gian. Ƣu điểm của nó là cho phép đáp ứng nhanh nhất
với các sự kiện. Nhƣợc điểm là việc lập trình phức tạp.
Hình 5.16. Mô hình điều khiển ngắt
5) Mô hình đối tƣợng
Hệ thống đƣợc phân thành các đối tƣợng giao tiếp với nhau. Phân tích hƣớng đối
tƣợng chỉ ra các lớp đối tƣợng liên quan, các thuộc tính và các hoạt động của chúng.
Phạm Hùng Phú -Nguyễn Văn Thẩm 135
- Tập bài giảng Công nghệ phần mềm
Ƣu điểm của nó là tính bao đóng cho phép dấu các thực hiện của các đối tƣợng và cho
phép dùng lại mã. Tuy nhiên nhƣợc điểm là để sử dụng các dịch vụ, các đối tƣợng phải
gọi tƣờng minh các tên và giao diện của các đối tƣợng khác. Sự thay đổi giao diện sẽ
làm ảnh hƣởng tới các đối tƣợng khác.
6) Mô hình luồng dữ liệu
Hệ thống đƣợc phân hoá thành các module chức năng. Chúng nhận các dữ liệu
chuyển hoá chúng rồi lại đƣa ra kết quả. Trong mô hình luồng dữ liệu, các bộ biến đổi
xử lý dữ liệu đầu vào và tạo dữ liệu ra. Dữ liệu đƣợc chảy tuần tự theo luồng từ bộ
biến đổi này sang bộ khác. Mỗi bƣớc của quy trình giống nhƣ một phép biến đổi.
Hình 5.17. Mô hình luồng dữ liệu
Ƣu điểm:
- Hỗ trợ việc sử dụng lại các biến đổi.
- Phù hợp với suy nghĩ của mọi ngƣời quan niệm về dữ liệu đƣợc xử lý theo luồng
có đầu vào và đầu ra.
- Thêm các xử lý khác vào hệ thống đơn giản.
- Dễ thực hiện xử lý song song hoặc tuần tự.
Nhƣợc điểm:
- Cần phải có một định dạng chung cho các dữ liệu để có thể xử lý bởi mọi bộ biến
đổi.
- Các hệ thống tƣơng tác khó đƣợc viết theo mô hình luồng dữ liệu. Trong khi các
giao diện vào và ra theo dạng văn bản có thể dùng mô hình luồng dữ liệu thì các giao
diện đồ hoạ có các dạng vào ra phức tạp hơn dựa trên sự kiện khó có thể áp dụng mô
hình luồng dữ liệu.
5.4. Thiết kế cơ sở dữ liệu
5.4.1. Cách tổ chức lƣu trữ dữ liệu
Mục tiêu chính của thiết kế dữ liệu là mô tả cách thức tổ chức lƣu trữ các dữ liệu
của phần mềm.
136 Phạm Hùng Phú -Nguyễn Văn Thẩm
- Tập bài giảng Công nghệ phần mềm
Trong đó D1, D2 đƣợc lƣu trữ trong bộ nhớ chính; D3, D4 đƣợc lƣu trữ trong bộ
nhớ phụ.
Cách thức lƣu trữ dữ liệu trên bộ nhớ chính: Kiểu cấu trúc, kiểu mảng, kiểu xâu,
kiểu cây,..
Cách thức lƣu trữ dữ liệu trên bộ nhớ phụ: Tập tin (Có cấu trúc/Không có cấu trúc),
cơ sở dữ liệu (Quan hệ/Đối tƣợng):
- Lƣu trữ dƣới dạng tập tin: Thích hợp với một số phần mềm đặc thù, chẳng hạn trò
chơi, mô phỏng ứng dụng Word, Paint, ...; đặc điểm chung của các phần mềm này là
chú trọng rất nhiều vào các xử lý; hình thức giao diện và không chú trọng nhiều đến
việc lƣu trữ lại các thông tin đƣợc tiếp nhận trong quá trình sử dụng phần mềm, các
thông tin này thƣờng đƣợc tiếp nhận và xử lý ngay.
- Lƣu trữ dƣới dạng cơ sở dữ liệu: Thƣờng sử dụng với các phần mềm quản lý,
chẳng hạn các phần mềm quản lý học sinh, thƣ viện, bán hàng, nhân sự, …; có đặc
điểm cần lƣu trữ lại các thông tin đƣợc tiếp nhận trong quá trình sử dụng phần mềm.
Cách tiếp cận dùng cơ sở dữ liệu rất thông dụng và thƣờng dùng là cơ sở dữ liệu quan
hệ:
- Cách thức tổ chức lƣu trữ dữ liệu của phần mềm đƣợc mô tả thông qua hai loại
thông tin:
+ Thông tin tổng quát: Cung cấp góc nhìn tổng quát về các thành phần lƣu trữ bao
gồm danh sách các bảng dữ liệu và danh sách các liên kết. Việc lƣu trữ cần sử dụng
bao nhiêu bảng dữ liệu và đó là các bảng nào, mối liên kết giữa các bảng dữ liệu.
+ Thông tin chi tiết: mô tả chi tiết từng thành phần lƣu trữ gồm danh sách các
thuộc tính của từng thành phần, danh sách các miền giá trị toàn vẹn đó chính là các qui
định về tính hợp lệ của các thông tin đƣợc lƣu trữ.
- Danh sách các bảng dữ liệu
Số thứ tự Tên bảng Ý nghĩa Ghi chú
1
- Danh sách các thuộc tính của bảng
Loại
Số thứ Thuộc Giá trị khởi
Ràng buộc Ý nghĩa thuộc
tự tính tạo
tính
1
Phạm Hùng Phú -Nguyễn Văn Thẩm 137
- Tập bài giảng Công nghệ phần mềm
Các loại thuộc tính:
+ Thuộc tính khóa
+ Thuộc tính có giá trị rời rạc: Thuộc tính phái của Sinh viên chỉ có 2 giá trị: Nam
hoặc Nữ; thuộc tính phái của Sinh viên chỉ có 2 giá trị: 0 hoặc 1 (0: Nam, 1: Nữ);
thuộc tính điểm học phần chỉ có các giá trị 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10; thuộc tính loại
nhân viên chỉ có các giá trị: Nhân viên văn phòng, nhân viên bán hàng, nhân viên sản
xuất.
+ Thuộc tính đa trị: Thuộc tính điện thoại của nhân viên là thuộc tính đa trị:
081234567, 09081234567,…; thuộc tính email của sinh viên cũng là một thuộc tính đa
trị: dungspnd@yahoo.com, dungspnd@gmail.com,....
+ Thuộc tính là đối tƣợng phụ: thuộc tính địa chỉ của sinh viên, nhân viên là một
đối tƣợng phụ, bao gồm các thông tin: Số nhà, Đƣờng, Phƣờng/xã, Quận/huyện, Tỉnh
thành; thuộc tính ngày sinh của sinh viên, nhân viên cũng là một đối tƣợng phụ gồm
các thông tin: ngày, tháng, năm.
+ Thuộc tính tính toán: thuộc tính thành tiền trong hóa đơn là một thuộc tính tính
toán, đƣợc tính bằng tổng số lƣợng * đơn giá của các mặt hàng; thuộc tính điểm trung
bình của học sinh, sinh viên cũng là một thuộc tính tính toán.
- Danh sách các miền giá trị toàn vẹn:
Mã số Mô tả miền GT (RBTV) Thành phần liên quan Ghi chú
RB1
RB2
- Quan hệ giữa các bảng dữ liệu: Quan hệ “1-1”, Quan hệ “1-nhiều”, Quan hệ
“nhiều-nhiều”.
5.4.2. Xây dựng sơ đồ logic dữ liệu
Có nhiều phƣơng pháp, nhiều đề nghị khác nhau về việc mô tả thông tin của thành
phần dữ liệu trong giai đoạn thiết kế. Để biểu diễn các thông tin tổng quát về bảng
thuộc tính, miền giá trị mô tả chi tiết các thành phần ta dùng sơ đồ logic còn đƣợc gọi
là mô hình vật lý. Mô hình vật lý này sẽ đƣợc xây dựng dựa trên mô hình ERD đã có ở
giai đoạn phân tích, kèm theo vài thay đổi tùy theo ngƣời thiết kế. Nguyên tắc chuyển
đổi từ mô hình ERD sang mô hình vật lý dựa trên mối kết hợp giữa các thực thể.
Các bƣớc chuyển đổi từ mô hình ERD sang mô hình vật lý.
Bƣớc 1: Chuyển các tập thực thể thành các lƣợc đồ quan hệ.
- Tên tập thực thể thành tên của lƣợc đồ quan hệ.
- Các thuộc tính của tập thực thể thành các thuộc tính của lƣợc đồ quan hệ.
- Khóa của tập thực thể thành khóa của lƣợc đồ quan hệ.
Bƣớc 2: Chuyển các mối liên hệ đƣợc chuyển thành các lƣợc đồ quan hệ.
- Tên của mối liên hệ thành tên của lƣợc đồ quan hệ
138 Phạm Hùng Phú -Nguyễn Văn Thẩm
- Tập bài giảng Công nghệ phần mềm
- Các thuộc tính khoá của tập thực thể tham gia vào mối liên hệ thành các thuộc
tính của lƣợc đồ quan hệ.
- Khoá của lƣợc đồ quan hệ đƣợc xác định tùy thuộc vào loại mối liên hệ, nếu
mối liên hệ là:
+ Một-Một thì khoá của tập thực thể nào cũng có thể trở thành khoá của lƣợc đồ
quan hệ.
+ Nhiều-Một thì khoá bên nhiều thành khoá tên của lƣợc đồ quan hệ.
+ Nhiều-Nhiều thì các thuộc tính khoá của tất cả các tập thực thể trở thành khoá
của lƣợc đồ quan hệ.
Bƣớc 3: Gộp các lƣợc đồ quan hệ có chung khóa thành một lƣợc đồ.
- Tên của lƣợc đồ quan hệ mới là tên mới hoặc là tên của một trong các tên của
các lƣợc đồ quan hệ đem gộp.
- Tập thuộc tính là hợp các thuộc tính của các lƣợc đồ quan hệ đem gộp.
- Khoá là khoá chung.
Bƣớc 4: Chuẩn hóa các lƣợc đồ quan hệ để đƣa các lƣợc đồ quan hệ về dạng
chuẩn 3NF.
Sơ đồ logic: Là công cụ cho phép mô tả trực quan cách thức lƣu trữ dữ liệu trên bộ
nhớ phụ với việc sử dụng cơ sở dữ liệu quan hệ và mối liên kết giữa các bảng.
Các quy ƣớc:
5.4.3. Cách phƣơng pháp thiết kế cơ sở dữ liệu
Có hai cách tiếp cận chính để thiết kế dữ liệu.
1) Phƣơng pháp trực tiếp:
Từ các yêu cầu đã xác định, tạo lập trực tiếp sơ đồ logic cùng với bảng thuộc tính,
bảng miền giá trị toàn vẹn. Cách tiếp cận này rất khó thực hiện đối với mô hình vật lý
phức tạp. Chẳng hạn thiết kế những phần mềm phức tạp nhƣ phần mềm kế toán, nhân
sự, tiền lƣơng,…
2) Phƣơng pháp gián tiếp:
Từ các yêu cầu đã xác định, tạo lập mô hình ERD, và sau đó dựa vào mô hình này
sẽ tạo lập sơ đồ logic, bảng thuộc tính, bảng miền giá trị. Cách tiếp cận này dễ thực
hiện hơn và mô hình ERD thƣờng đơn giản, dễ hiểu vì mô hình này chỉ chứa các
thành phần dữ liệu cơ bản nhất của phần mềm.
Các bƣớc thực hiện:
Bƣớc 1: Xây dựng mô hình ERD
Bƣớc 2: Chuyển mô hình ERD sang mô hình logic dữ liệu
Phạm Hùng Phú -Nguyễn Văn Thẩm 139
- Tập bài giảng Công nghệ phần mềm
Bƣớc 3: Vẽ sơ đồ logic dữ liệu
Bƣớc 4: Lập bảng danh sách các bảng dữ liệu.
Bƣớc 5: Lập bảng danh sách bảng thuộc tính.
Bƣớc 6: Lập bảng danh sách bảng miền giá trị.
Ví dụ Xét phần mềm quản lý thƣ viện với yêu cầu nghiệp vụ cho mƣợn sách có
mẫu phiếu mƣợn:
Hãy lập sơ đồ logic dữ liệu cho yêu cầu nghiệp vụ trên với các yêu cầu số lƣợng
sách trong kho và số phiếu phải lớn hơn 0, ngày mƣợn phải nhỏ hơn hoặc bằng ngày
trả.
Bƣớc 1: Xây dựng mô hình ERD
Bƣớc 2: Chuyển mô hình ERD sang mô hình logic dữ liệu
- Docgia (Madg, Hoten, Ns, Diachi)
- Sach(MaS, TenS, Tacgia, Nhaxb, Soluong)
- Phieumuon(Sop, MaS, Madg, NgayM, NgayTr)
Bƣớc 3: Vẽ sơ đồ logic dữ liệu
Bƣớc 4: Lập bảng danh sách các bảng dữ liệu.
Số thứ tự Tên bảng Ý nghĩa Ghi chú
1 Docgia Lƣu trữ thông tin về độc giả
2 Sach Lƣu trữ thông tin về sách
3 Phieumuon Lƣu trữ thông tin về quá
trình mƣợn sách của độc giả
Bƣớc 5: Lập bảng danh sách bảng thuộc tính.
- Danh sách các thuộc tính của bảng Docgia
140 Phạm Hùng Phú -Nguyễn Văn Thẩm
- Tập bài giảng Công nghệ phần mềm
Số thứ Ràng Giá trị
Thuộc tính Ý nghĩa Loại thuộc tính
tự buộc khởi tạo
1 Madg Mã độc giả Khóa
2 Hoten Họ tên độc giả Đối tƣợng phụ
3 Ns Ngày sinh Đối tƣợng phụ
4 Diachi Địa chỉ Đối tƣợng phụ
- Danh sách các thuộc tính của bảng Sach
Số thứ Ràng Giá trị Loại thuộc
Thuộc tính Ý nghĩa
tự buộc khởi tạo tính
1 MaS Mã sách Khóa
2 TenS Tên sách Rời rạc
3 Tacgia Họ tên tác giả Rời rạc
4 Nhaxb Nhà xuất bản Rời rạc
5 Soluong RB1 Số lƣợng Rời rạc
- Danh sách các thuộc tính của bảng Phiếu mƣợn
Số thứ Ràng Giá trị Loại thuộc
Thuộc tính Ý nghĩa
tự buộc khởi tạo tính
1 Sop RB1 Số phiếu Khóa chính
2 MaS Mã sách Khóa ngoại
3 Madg Mã độc giả Khóa ngoại
4 NgayM RB2 Ngày mƣợn Đối tƣợng phụ
5 NgayTr RB3 Ngày trả Đối tƣợng phụ
Bƣớc 6: Lập bảng danh sách bảng miền giá trị.
Mã số Mô tả miền GT (RBTV) Thành phần liên quan Ghi chú
RB1 Phải lớn hơn 0 Phiếu mƣợn, Sách
RB2 Phải nhỏ hơn hoặc bằng Phiếu mƣợn
ngày trả.
RB3 Phải lớn hơn hoặc bằng Phiếu mƣợn
ngày mƣợn.
5.4.4. Yêu cầu về chất lƣợng thiết kế cơ sở dữ liệu
Để đảm bảo các tiêu chuẩn về chất lƣợng thiết kế cơ sở dữ liệu cần xem xét đánh
giá sơ đồ logic theo các yêu cầu về chất lƣợng và tiến hành cập nhật lại sơ đồ. Các yêu
cầu về chất lƣợng thiết kế cơ sở dữ liệu bao gồm tính đúng đắn, tính tiến hoá, tính hiệu
quả, tính bảo mật.
Bảng 5.2. Yêu cầu về chất lƣợng thiết kế cơ sở dữ liệu
STT Tiêu chuẩn Yêu cầu
Lƣu trữ đầy đủ và đúng ngữ nghĩa các thông tin có trong
1 Tính đúng đắn
nghiệp vụ liên quan
Lƣu trữ thông tin về tổ chức và qui định có trong nghiệp vụ
2 Tính tiến hóa
liên quan
Lƣu trữ tiết kiệm nhất không gian bộ nhớ, truy xuất nhanh
3 Tính hiệu quả
nhất thông tin cần thiết
Lƣu trữ thông tin về các ngƣời sử dụng phần mềm cùng với
4 Tính bảo mật
quyền hạn tƣơng ứng
Phạm Hùng Phú -Nguyễn Văn Thẩm 141
- Tập bài giảng Công nghệ phần mềm
1) Xem xét tính tiến hoá:
Để đảm bảo tính tiến hoá, sơ đồ logic sẽ còn bổ sung cập nhật lại nhiều thành phần
qua các bƣớc thiết kế chi tiết. Thông thƣờng khi thiết kế dữ liệu ở bƣớc đầu tiên thì
giới hạn xem xét đến các thuộc tính có giá trị rời rạc (A, B, C; 1, 2, 3, …). Thuộc tính
có giá trị rời rạc là các thuộc tính mà miền giá trị chỉ bao gồm một giá trị nhất định nào
đó. Các giá trị này thông thƣờng thuộc về một tập hợp có độ biến động rất ít trong quá
trình sử dụng phần mềm.
Ví dụ:
- Khi xem xét quan hệ Độc giả, ta nhận thấy loại độc giả gồm có ba loại "Sinh
viên", "Học sinh” ", "Cán bộ" thì khả năng thêm loại Độc giả mới là rất thấp.
Khi xem xét quan hệ Sách, ta nhận thấy ngôn ngữ thể hiện của sách có ba loại ngôn
ngữ đang dùng là "Tiếng Việt", "Tiếng Anh", "Tiếng Pháp" thì khả năng thêm loại
ngôn ngữ mới là rất thấp.
Nhƣ vậy loại độc giả và loại ngôn ngữ là kiểu chuỗi và là thuộc tính có giá trị rời
rạc. Tuy là khả năng biến động thấp nhƣng không phải là không có, và nếu không
chuẩn bị trƣớc, ngƣời dùng không thể khai báo đƣợc các biến động này. Để bảo đảm
tính tiến hoá của hệ thống sau này, ta có thể tách các thuộc tính này thành các thành
phần trong sơ đồ logic. Khi đó sơ đồ logic có thêm một số thành phần mới.
2) Xem xét tính hiệu quả
Tính hiệu quả trong thiết kế dữ liệu sẽ đƣợc xem xét dƣới góc độ lƣu trữ tối ƣu.
Vấn đề đặt ra là xây dựng sơ đồ logic sao cho vẫn bảo đảm lƣu trữ đầy đủ thông tin
theo yêu cầu nhƣng với dung lƣợng lƣu trữ nhỏ nhất có thể có. Điều này đặc biệt quan
trọng đối với các phần mềm với hệ thống lƣu trữ lớn và nhiều phát sinh thông tin cần
lƣu trữ theo thời gian. Xem xét lại việc ánh xạ quan hệ nhiều-nhiều (m-n) để có thể lƣu
trữ tốt hơn.
Xét sơ đồ logic gồm 2 quan hệ A, B và mối kết hợp nhiều-nhiều C và đƣợc tách
thành một quan hệ mới là C.
Để có thể ánh xạ mô hình trên vào sơ đồ logic với 4 thành phần A, B, C, D. Với D
là chi tiết của C. Các thuộc tính của A, B vẫn đƣợc bảo toàn, C trong trƣờng hợp này
chỉ chứa các thuộc tính chung (có giá trị giống nhau) trong mỗi lần A quan hệ B, D sẽ
gồm các thuộc tính riêng (có giá trị khác nhau) trong mỗi lần A quan hệ với B.
142 Phạm Hùng Phú -Nguyễn Văn Thẩm
- Tập bài giảng Công nghệ phần mềm
Ví dụ: Xét phần mềm quản lý thƣ viện A: Độc giả, B: Sách, C: Phiếu mƣợn với các
thuộc tính ngày mƣợn, ngày trả, số phiếu. Trong một lần độc giả mƣợn sách thì số
phiếu là thuộc tính chung, ngày mƣợn, ngày trả là các thuộc tính riêng. Ta bổ sung
thêm quan hệ chi tiết phiếu mƣợn (D) để lƣu trữ các thuộc tính riêng này.
5.5. Thiết kế giao diện
5.5.1. Quy trình thiết kế giao diện
Màn hình giao diện đƣợc gọi tắt là giao diện (Interface) là một trong các hình thức
giao tiếp giữa ngƣời sử dụng và phần mềm khi họ thực hiện các công việc của mình
trên máy tính. Mục tiêu chính của thiết kế giao diện là mô tả hệ thống các màn hình
giao diện này.
Thiết kế giao diện ngƣời dùng là một quy trình lặp lại bao gồm sự cộng tác giữa
ngƣời sử dụng và ngƣời thiết kế. Trong quy trình này gồm 3 hoạt động cơ bản:
- Phân tích ngƣời sử dụng: Tìm hiểu những gì ngƣời sử dụng sẽ làm với hệ thống
- Lập mẫu thử hệ thống: Xây dựng một tập các mẫu thử để thử nghiệm
- Đánh giá giao diện: Thử nghiệm các mẫu thử cùng với ngƣời sử dụng.
Hình 5.18. Quy trình thiết kế giao diện
1) Phân tích ngƣời sử dụng
Nếu không hiểu rõ những gì ngƣời sử dụng muốn làm với hệ thống, thì sẽ không
thể thiết kế đƣợc một giao diện hiệu quả. Phân tích ngƣời sử dụng phải đƣợc mô tả
theo những thuật ngữ để ngƣời sử dụng và những ngƣời thiết kế khác có thể hiểu đƣợc.
Phạm Hùng Phú -Nguyễn Văn Thẩm 143
nguon tai.lieu . vn