Professional Documents
Culture Documents
1
Giới thiệu môn học
• 2 tín chỉ = 45 Tiết
• Điểm QT= một phần BTL + ý thức học trên lớp + một số bài
kiểm tra không báo trước
• Điểm cuối kỳ = Bài tập lớn
• Mục đích môn học:
̶ Các khái niệm cơ bản trong kỹ thuật phần mềm
̶ Các bước cơ bản xây dựng phần mềm, từ lập kế hoạch, phân
tích, thiết kế cho đến bảo trì phần mềm
̶ Có kỹ năng thực hành làm phần mềm theo nhóm
2
Tài liệu tham khảo
4
Khái niệm phần mềm
• Máy tính: Thực hiện các nhiệm vụ rất khác nhau bằng cách sử
dụng các phần mềm khác nhau
=> Phần mềm tạo ra sự khác biệt giữa các máy tính và cũng quyết
định năng lực của máy tính.
• Phần mềm: là một cấu phần quan trọng của một hệ thống
thông tin, nó là cách gọi khác của chương trình. Nó bao gồm
tập lệnh để từng bước hướng dẫn máy tính làm việc nhằm
chuyển đổi dữ liệu thành thông tin.
5
Sản phẩm phần mềm
• Sản phẩm chung
̶ Hệ thống độc lập được tiếp thị và bán cho bất kỳ khách hàng
nào muốn mua chúng.
̶ Ví dụ: phần mềm PC như phần mềm soạn thảo văn bản,
chương trình đồ họa, công cụ quản lý dự án; Phần mềm
CAD;
• Sản phẩm tùy chỉnh
̶ Phần mềm được ủy quyền bởi một khách hàng cụ thể để đáp
ứng nhu cầu riêng của họ.
̶ Ví dụ: hệ thống điều khiển nhúng, phần mềm kiểm soát
không lưu, hệ thống giám sát giao thông.
6
Tại sao phần mềm quan trọng?
• Nền kinh tế của TẤT CẢ các quốc gia phát triển đều phụ
thuộc vào phần mềm.
• Ngày càng có nhiều hệ thống được điều khiển bằng phần
mềm (giao thông, y tế, giáo dục, viễn thông, quân sự, công
nghiệp, giải trí,…)
• Chi tiêu cho phần mềm chiếm một phần đáng kể GNP ở tất
cả các nước phát triển.
7
Chi phí phần mềm
• Chi phí phần mềm thường chi phối chi phí của hệ thống máy
tính. Chi phí phần mềm trên PC thường lớn hơn chi phí phần
cứng.
• Phần mềm tốn nhiều chi phí để bảo trì hơn là để phát triển.
• Đối với các hệ thống có tuổi thọ cao, chi phí bảo trì có thể
gấp vài lần chi phí phát triển.
• Kỹ thuật phần mềm quan tâm đến việc phát triển phần mềm
hiệu quả về chi phí.
8
Các giai đoạn tiến hóa phần mềm
̶ Việc bảo trì phần mềm tiêu tốn công sức và tài nguyên
9
Các giai đoạn tiến hóa phần mềm
10
Các ứng dụng của phần mềm
11
Phần mềm hệ thống
• Xử lý các cấu trúc thông tin phức tạp nhưng xác định
12
Phần mềm thời gian thực
• Là các chương trình giám sát/phân tích/điều khiển các sự
kiện trong thế giới thực ngay khi nó xảy ra.
̶ Thành phần phân tích: để biến đổi thông tin theo yêu cầu của
ứng dụng
̶ Thành phần kiểm soát hoặc đưa ra đáp ứng môi trường ngoài
̶ Thành phần điều phối: để điều hòa các thành phần khác sao
cho có thể duy trì việc đáp ứng thời gian thực
13
Phần mềm nghiệp vụ
• Phục vụ các hoạt động kinh doanh hay các nghiệp vụ của
tổ chức, doanh nghiệp
• Là các hệ thống thông tin quản lý gắn chặt với CSDL, các
ứng dụng tương tác như xử lý giao tác cho các điểm bán
hàng.
14
Phần mềm khoa học và kỹ thuật
• Thường đòi hỏi phần cứng có năng lực tính toán cao
• Ứng dụng trong các lĩnh vực khoa học khác nhau
15
Phần mềm nhúng
• Thực hiện các chức năng một cách hạn chế và đóng kín
̶ Có các đặc trưng của phần mềm thời gian thực và phần
mềm hệ thống
16
Phần mềm cho máy tính cá nhân
• Phát triển mạnh trong khoảng hơn 1 thập kỷ trở lại đây
̶ …
17
Phần mềm trí tuệ nhân tạo
• Sử dụng các thuật toán phi số để giải quyết các vấn đề phức
tạp mà tính toán hay phân tích trực tiếp không quản lý nổi
• Các ứng dụng chính: hệ chuyên gia (hay hệ thống dựa trên
tri thức, các hệ thống nhận dạng (tiếng nói và hình ảnh),
chứng minh định lý, mô phỏng và các trò chơi
18
Phần mềm phục vụ KTPM
19
Đặc điểm của phần mềm
• Là hàng hóa vô hình
• Không hao mòn nhưng giá trị suy giảm theo thời gian
• Chức năng của phần mềm thường biến hóa, thay đổi theo
thời gian
• Phần mềm vốn chứa ý tưởng và sáng tạo của tác giả/nhóm
làm ra nó
21
Các chỉ tiêu cơ bản để đánh giá phần
mềm tốt
• Phản ánh đúng yêu cầu người dùng (tính hiệu quả)
• Giá thành không vượt quá giá ước lượng ban đầu
22
Đặc điểm của phần mềm
23
Khái niệm kỹ thuật phần mềm
24
Tầm quan trọng của kỹ thuật phần
mềm
• Ngày càng có nhiều cá nhân và xã hội dựa vào các hệ thống
phần mềm tiên tiến.
=> cần có khả năng sản xuất các hệ thống đáng tin cậy, kinh
tế và nhanh chóng.
• Đối với hầu hết các loại hệ thống, phần lớn chi phí là chi phí
thay đổi phần mềm sau khi nó được đưa vào sử dụng.
25
Thành phần của phần mềm
Phần mềm (sản phẩm phần mềm), bao gồm:
̶ Chương trình (Program): là phần được thi hành trên máy
tính
26
Các lớp của kỹ thuật phần mềm
Tools
Methods
Process Model
Quality Focus
27
Quality Focus
Đảm bảo chất lượng sản phẩm hay dịch vụ luôn là một
nhiệm vụ sống còn của các công ty hay tổ chức. Do đó,
mọi nền tảng công nghệ và kỹ thuật đều phải lấy việc đảm
bảo chất lượng là mục tiêu hướng tới, và kỹ thuật phần
mềm cũng không thể nằm ngoài mục tiêu này
28
Process Model
29
Methods
30
Tools
31
Tiến trình phần mềm
• Là một dãy các giai đoạn và các hoạt động trong đó,
cũng như các kết quả kèm theo. Kết quả cuối cùng chính
là phần mềm cần phải xây dựng, đáp ứng được các yêu
cầu của người dùng, và hoàn thành theo đúng kế hoạch
về thời gian và ngân sách
32
Tiến trình phần mềm
Lập kế hoạch dự án
Thiết kế
Giai đoạn
Phát triển Cài đặt và kiểm thử
Giai đoạn
Hỗ trợ Bảo trì
33
Tiến trình phần mềm
Giai đoạn định nghĩa: tập trung vào làm rõ Cái gì, bao
gồm
̶ Thông tin gì cần xử lý, bao gồm thông tin đầu vào và đầu
ra.
̶ Các tiêu chuẩn hợp lệ nào để đánh giá được sự đúng đắn
và thành công của hệ thống.
34
Tiến trình phần mềm
Giai đoạn phát triển: tập trung vào Làm thế nào, bao
gồm
̶ Kiến trúc hệ thống (system architecture) được tổ chức thế
nào.
̶ Các chức năng được cài đặt và liên kết với nhau thế nào.
35
Tiến trình phần mềm
Giai đoạn hỗ trợ: còn gọi là giai đoạn bảo trì, tập trung
vào việc ứng phó với các thay đổi của hệ thống phần mềm,
bao gồm
̶ Sửa lỗi (Correction)
36
Mô hình tiến trình phần mềm
• Mô hình tiến trình cũng còn được gọi là mẫu tiến trình
(process paradigm), hay mô hình phát triển phần mềm.
37
Các mô hình tiến trình
38
Mô hình tuyến tính cổ điển
Lập kế hoạch
Phân tích
Thiết kế
Triển khai
Kiểm thử
Hệ thống
39
Mô hình tuyến tính cổ điển
̶ Thời gian thực hiện mỗi bước thường kéo dài do phải làm
thật hoàn chỉnh
̶ Thường chỉ tiếp xúc với người dùng vào giai đoạn đầu và
giai đoạn cuối. Người dùng thường không tham gia vào
các bước ở giữa, như từ thiết kế, cài đặt và đến tích hợp
40
Mô hình tuyến tính cổ điển
• Ưu điểm:
̶ Đơn giản và rõ ràng
̶ Đóng vai trò như một mẫu tham chiếu cho các mô hình khác
̶ Vẫn còn được sử dụng rộng rãi cho đến nay
• Nhược điểm:
̶ Không dễ dàng cho việc thu thập đầy đủ và tường minh tất cả các yêu
cầu hệ thống ngay từ ban đầu
̶ Người dùng phải chờ đến cuối cùng mới có được hệ thống để dùng, nên
thời gian chờ đợi là khá lâu, có khi đến hàng năm. Khi đó có thể có các
yêu cầu mới đã phát sinh, dễ dẫn khả năng hệ thống không còn đáp
ứng được kỳ vọng của người dùng.
̶ Dễ dẫn đến tình trạng “blocking states”, tức là khi có một nhóm bị chậm
tiến độ, thì các nhóm khác phải chờ, và thời gian chờ đợi thậm chí vượt
quá thời gian làm việc.
41
Mô hình phát triển song song
Lập kế hoạch
Thiết kế
Phân tích
Triển khai
Thiết kế
Phân hệ 2
Triển khai Tích hợp
hệ thống
Kiểm thử
Phân hệ 1
Hệ thống 42
Mô hình phát triển song song
• Cải tiến vấn đề thời gian từ pha phân tích đến khi sản
phẩm được hoàn thiện và chuyển giao cho người dùng.
• Mỗi hệ thống con sẽ đồng thời được thiết kế, xây dựng và
kiểm thử riêng.
̶ Người dùng nhanh nhận được hệ thống của mình hơn, giảm được
rủi ro phải làm lại từ đầu hay hủy bỏ dự án do yêu cầu nghiệp vụ
thay đổi khi hệ thống đang được xây dựng
• Nhược điểm
̶ Gặp vấn đề khi phải quay lại các pha trước
44
Mô hình phát triển theo giai đoạn
Lập kế hoạch
Phân tích
Phân tích
Thiết kế
Triển khai
Phân tích
Kiểm thử
Thiết kế
Hệ thống
(Phiên bản 1)
Triển khai
Phân tích
Kiểm thử
Thiết kế
Hệ thống
Triển khai (Phiên bản 2)
Kiểm thử
Hệ thống
(Phiên bản 3) 45
Mô hình phát triển theo giai đoạn
• Chia hệ thống thành các phiên bản khác nhau, xây dựng lần lượt
từng phiên bản.
• Giai đoạn phân tích:
– Xác định tất cả khái niệm về hệ thống mới
– Phân loại yêu cầu cho các giai đoạn phát triển khác nhau.
– Các yêu cầu quan trọng nhất được liệt kê và đưa vào phiên bản đầu
tiên.
• Phiên bản 1 sẽ được phân tích, thiết kế, triển khai và kiểm thử như
một hệ thống hoàn chỉnh.
• Kết thúc phiên bản 1, hệ thống được triển khai cho khách hàng
• Tiến hành đồng thời công việc phân tích, thiết kế, triển khai và
kiểm thử cho các chức năng cần bổ sung thêm cho phiên bản 1 để
thu được phiên bản 2. Quá trình này sẽ tiếp tục tương tự cho các
phiên bản tiếp theo cho đến khi thu được một hệ thống hoàn chỉnh
hoặc không thể sử dụng được nữa. 46
Mô hình phát triển theo giai đoạn
• Ưu điểm
̶ Nhanh chóng có được phiên bản của hệ thống để triển khai cho
khách hàng ngay cả khi hệ thống vẫn còn được xây dựng.
̶ Trong quá trình triển khai các phiên bản trước, nếu phát sinh lỗi
hoặc nghiệp vụ thay đổi cũng sẽ lập tức được cập nhật trong các
phiên bản tiếp theo.
• Nhược điểm
̶ Giai đoạn đầu người dùng sử dụng hệ thống là một sản phẩm
chưa hoàn thiện.
̶ Cần phải xác định được đâu là yêu cầu cần thiết nhất để đưa
ngay vào giai đoạn đầu tiên.
̶ Trong trường hợp mọi yêu cầu đều phải xây dựng xong thì mới có
thể triển khai được thì phương pháp này kém hiệu quả. 47
Mô hình bản mẫu
Thông thường trong thực tế, các yêu cầu của hệ thống khó có
thể xác định rõ ràng và chi tiết ngay trong giai đoạn đầu của dự
án phần mềm:
̶ Người dùng cũng chỉ đưa ra các mục tiêu tổng quát của phần
mềm, chứ chưa định rõ được một cách chi tiết các chức năng cụ
thể, hay các thông tin chi tiết đầu vào, đầu ra như thế nào.
̶ Nhà phát triển cũng chưa xác định rõ ràng ngay các yêu cầu,
cũng như chắc chắn về chất lượng phần mềm, khả năng thỏa
mãn của khách hàng
mô hình bản mẫu
48
Mô hình bản mẫu
49
Mô hình bản mẫu
Gồm các giai đoạn:
̶ Thu thập các yêu cầu (requirements gathering): khách hàng và nhà
phát triển sẽ gặp nhau để xác định ra các mục tiêu tổng thể của phần
mềm. Sau đó họ sẽ định ra phần nào đã rõ, phần nào cần phải định
nghĩa thêm.
̶ Thiết kế nhanh (quick design): thiết kế này tập trung vào những phần
mà khách hàng có thể nhìn thấy được (giao diện, các dữ liệu vào, ra).
Sau đó, từ thiết kế này, một bản mẫu sẽ được xây dựng.
̶ Kiểm tra và đánh giá bản mẫu: Bản mẫu này sẽ được dùng để cho
phép người dùng đánh giá, nhằm làm rõ hơn các yêu cầu của họ.
Đồng thời, thông qua bản mẫu, người phát triển hệ thống cũng hình
dung cụ thể hơn về những yêu cầu của khách hàng, cũng như khả
năng cài đặt và hiệu quả hoạt động của hệ thống.
50
Mô hình bản mẫu
• Ưu điểm:
̶ Cho phép người dùng xác định yêu cầu của mình rõ ràng và cụ thể
hơn, đồng thời nhà phát triển cũng nắm được chính xác hơn các yêu
cầu đó.
̶ Cả người dùng và nhà phát triển thường đều thích mô hình này, do
người dùng luôn cảm nhận được hệ thống thực sẽ như thế nào, và nhà
phát triển cũng luôn có cái để xây dựng và dần hoàn thiện.
• Nhược điểm:
̶ Để có được bản mẫu nhanh, việc thiết kế cũng được làm nhanh, nên
thường được làm không cẩn thận. Điều này dễ dẫn đến các thiết kế có
tính chắp vá, không có cái nhìn tổng thể và dài hạn.
̶ Việc làm bản mẫu nhanh cũng thường kéo theo việc lựa chọn các công
cụ cài đặt vội vàng, không cẩn thận, (như ngôn ngữ lập trình, hệ quản
trị cơ sở dữ liệu,v.v). Điều này sẽ ảnh hưởng đến các giai đoạn phát
triển sau khi quy mô và yêu cầu của hệ thống ngày càng lớn lên
51
Mô hình xoáy ốc
• Cũng là một mô hình tiến hóa kết hợp đặc tính lặp lại của
mô hình bản mẫu và tính hệ thống của mô hình thác
nước cổ điển
• Mô hình này cũng cho phép tạo ra một dãy các phiên bản
tăng trưởng (incremental release). Tuy nhiên khác với mô
hình tăng trưởng, các phiên bản đầu tiên của mô hình
xoáy ốc thường chỉ là các mô hình trên giấy hoặc bản
mẫu (prototype). Đến các phiên bản sau thì mới là các
bản chạy được và càng ngày càng hoàn chỉnh.
52
Mô hình xoáy ốc
53
Mô hình xoáy ốc
• Mô hình này phân chia thành các giai đoạn, được gọi là
các vùng nhiệm vụ (task regions).
• Mỗi vùng lại bao gồm một tập các nhiệm vụ (set of
tasks), và số lượng cũng thay đổi tùy theo tính chất của
dự án.
54
Mô hình xoáy ốc
• Ưu điểm:
̶ Linh hoạt, dễ thích ứng với các loại phần mềm và các nhu cầu
sử dụng khác nhau, nhất là các phần mềm quy mô lớn
̶ Có khá đầy đủ các bước trong tiến trình phát triển, nhất là việc
chú trọng phân tích tính rủi ro (risk) của phần mềm cả về mặt
kỹ thuật và quản lý
• Hạn chế:
̶ Phức tạp, cần khá nhiều thời gian để hiểu và vận dụng được một
cách hiệu quả
̶ Khó khăn trong việc quản lý nhiều chu trình phát triển
55
VIỆN ĐIỆN TỬ - VIỄN THÔNG
School of Electronics and telecommunications
1
Khảo sát hiện trạng và xác lập dự án
Mục đích:
̶ Tìm được sự mô tả hệ thống bằng văn bản, đề xuất ra phương
án thực hiện, cuối cùng là ký được một hợp đồng và hình thành
1 dự án mang tính khả thi.
̶ Thường gồm 2 giai đoạn:
o Khảo sát sơ bộ nhằm xác định tính khả thi của dự án
o Khảo sát chi tiết nhằm xác định chính xác những gì sẽ thực hiện
và khẳng định những lợi ích kèm theo
2
Khảo sát hiện trạng và xác lập dự án
3
Khảo sát hiện trạng và xác lập dự án
5
Khảo sát hiện trạng và xác lập dự án
• Phát hiện những yếu kém của hiện trạng
̶ Hệ thống thiếu cái gì, (chức năng, phương tiện, nhân lực)
̶ Kém hiệu quả, hiệu suất công việc thấp
̶ Phương pháp xử lý không chặt chẽ, di chuyển thông tin vòng
vèo
̶ Cơ cấu tổ chức bất hợp lý
̶ Giấy tờ, tài liệu trình bày kém gây ùn tắc làm cho hệ thống
quá tải, gây tổn phí về vật tư, thiết bị, con người
• Các yêu cầu nảy sinh
̶ Khắc phục những yếu kém trên
̶ Những yêu cầu về thông tin chưa được đáp ứng
̶ Những nguyện vọng của nhân viên
̶ Các dự kiến và các kế hoạch phát triển về quy mô của đơn vị
6
Xác định phạm vi, khả năng và mục tiêu
của dự án
7
Xác định phạm vi, khả năng và mục tiêu
của dự án
8
Phân tích tính khả thi
9
Phân tích tính khả thi
10
Phân tích tính khả thi
11
Quản trị dự án
12
VIỆN ĐIỆN TỬ - VIỄN THÔNG
School of Electronics and telecommunications
1
Tìm hiểu yêu cầu
• Mục đích:
̶ Tìm hiểu xem phải phát triển cái gì, chứ không phải là
phát triển như thế nào.
̶ Kết quả của bước nghiên cứu yêu cầu là tạo ra đặc tả yêu
cầu của phần mềm - là tài liệu ràng buộc giữa khách hàng
và người phát triển.
– Khách hàng rất hay thay đổi các yêu cầu của mình
2
Tìm hiểu yêu cầu
3
Tìm hiểu yêu cầu
• Khái niệm:
̶ là một bản kê chỉ ra hệ thống phải làm gì hay hệ thống
phải có những đặc tính gì.
̶ thường tập trung vào nhu cầu của nghiệp vụ nên thường
được gọi là yêu cầu nghiệp vụ
̶ ở bước thiết kế, các yêu cầu nghiệp vụ mở rộng theo
hướng kỹ thuật và chúng mô tả hệ thống sẽ được xây
dựng như thế nào
̶ Yêu cầu trong giai đoạn thiết kế thường được đưa ra bởi
người phát triển và thường được gọi là yêu cầu hệ thống
4
Tìm hiểu yêu cầu
• Gồm 2 loại:
̶ Yêu cầu về mặt chức năng
o Chỉ ra các chức năng mà hệ thống cần có.
o Ví dụ:
Hệ thống phải có khả năng tìm kiếm hàng hóa trong
kho
Lập báo cáo chi phí thực tế và chi phí phát sinh
̶ Yêu cầu phi chức năng
o Hoạt động, hiệu năng, tính bảo mật, và khía cạnh văn
hóa, chính trị
o Thường được sử dụng trong giai đoạn thiết kế
5
Tìm hiểu yêu cầu
Yêu cầu phi Mô tả Ví dụ
chức năng
Hoạt động Môi trường vật lý và kỹ thuật để Hệ thống được triển khai trên mạng Internet.
triển khai hệ thống Người dùng sử dụng các trình duyệt web để sử dụng các dịch
vụ
Phải có khả năng kết nối dữ liệu với các hệ thống quản lý kế
toán
Hiệu năng Tốc độ, dung lượng và độ tin Hệ thống phải hoạt động tin cậy 24h/ngày x365 ngày/năm.
cậy Kết quả trả về cho khách hàng không quá 1 phút sau khi khách
hàng yêu cầu.
Tại một thời điểm phải có khả năng phục vụ tối đa 1000 khách
hàng.
Bảo mật Ai có thể truy cập vào hệ thống Khách hàng có thể xem, tìm kiếm sản phẩm và đặt hàng
Chỉ có cán bộ kho mới có thể nhập dữ liệu về hàng hóa
Chỉ có người quản lý mới có thể duyệt đơn hàng của khách
hàng.
Văn hóa & chính Các yếu tố về văn hóa, chính trị, Phải hỗ trợ xử lý cả 2 loại tiền tệ là USD và VNĐ
trị luật pháp ảnh hưởng đến hệ Ngôn ngữ sử dụng là tiếng Việt
thống Không được vi phạm bản quyền của các hệ thống tương tự
khác.
• Phỏng vấn
• Quan sát
7
Phỏng vấn
8
Ví dụ câu hỏi phỏng vấn
Câu hỏi đóng Trung bình có bao nhiêu cuộc gọi điện để đặt hàng/ngày?
Thông tin gì còn thiếu trên báo cáo doanh thu hàng tháng?
9
Phiên làm việc JAD (Join Application
Development)
• Phải đảm bảo nội dung câu hỏi sao cho người được hỏi
không thể hiểu sai vấn đề cần trả lời
11
Quan sát
• Là cách quan sát các quy trình nghiệp vụ đang được thực
hiện trong thực tế
• Là cách tốt nhất để thu thập thông tin về hệ thống hiện tại
• Cần chú ý không làm ảnh hưởng đến những người đang
làm việc
• Chỉ nên dùng khi cần hiểu rõ hoặc bổ sung thêm thông tin
cho kết quả của các cách trên
12
Phân tích tài liệu
• Cung cấp các thông tin cần xử lý cho người phân tích
thông qua các tài liệu
13
VIỆN ĐIỆN TỬ - VIỄN THÔNG
School of Electronics and telecommunications
1
Phân tích hệ thống
• Phân tích toàn bộ các yêu cầu đã xác định ở bước
nghiên cứu yêu cầu.
2
Công cụ phân tích theo cấu trúc
• Sơ đồ chức năng.
• Sơ đồ luồng dữ liệu.
• Từ điển dữ liệu.
3
Sơ đồ chức năng
• Thể hiện:
̶ một cách nhìn khái quát, dễ hiểu, từ đại thể đến chi tiết
về các chức năng, nhiệm vụ cần thực hiện
̶ quá trình triển khai sơ đồ luồng dữ liệu
̶ quyết định tần suất xuất hiện của các tiến trình nhỏ hơn
trong sơ đồ luồng dữ liệu
4
Ví dụ về sơ đồ chức năng
Hệ thống quản lý nhà xe/công ty xe hợp đồng du lịch
1. Quản lý 2. Quản lý 3. Quản lý 4. Quản lý 5. Quản lý 6. Quản lý 7. Quản lý 8. Quản lý 9. Báo cáo,
nhân viên tài xế xe hợp đồng hợp đồng điều xe thu chi lương thống kê
1.1. Nhập 2.1. Nhập 4.1. Nhập 6.1. Nhập tt 7.1. Nhập 9.1. Báo cáo
3.1. Nhập 5.1. Cập nhật 8.1. Lập bảng
thông tin thông tin thông tin phiếu thu phiếu chi h/ doanh thu,
thông tin xe lịch chạy xe lương
nhân viên tài xế hợp đồng hợp đồng đồng lợi nhuận
1.2. Cập nhật 4.2. Thanh 7.2. Nhập 9.2. Báo cáo
2.2. Nhập 3.2. Nhập 5.2. Cập nhật 8.2. Cập nhật
thông tin toán hợp 6.3 thống kê phiếu chi lợi nhuận
lịch làm việc lịch chạy xe lịch tài xế lương
nhân viên đồng mua xe mới theo đầu xe
1.3. Tìm 2.3. Cập nhật 3.3. Nhập tt 6.3. Nhập 7.3. Nhập 9.3. Báo cáo
4.3. Thống
kiếm thông thông tin bảo hành sửa phiếu thu xe phiếu thu sửa nhân viên, tài
kê hợp đồng
tin nhân viên tài xế chữa khác chữa, xăng dầu xế nghỉ việc
7.4. Nhập
2.4. Tìm 3.4. Tìm 6.4. Tìm 9.4. Báo cáo
phiếu chi
kiếm kiếm kiếm chi tiêu
khác
7.5. Thống
kê chi
7.6. Tìm
kiếm
5
Sơ đồ luồng dữ liệu (DFD)
• Mô tả dòng thông tin trong hệ thống
• hỗ trợ bốn hoạt động chính:
̶ Phân tích
̶ Thiết kế
̶ Truyền thông
̶ Sưu liệu
• Thể hiện
̶ Hệ thống cần thực hiện các chức năng nào?
̶ Sự liên quan giữa các chức năng?
̶ Hệ thống cần truyền đi cái gì?
̶ Các đầu vào nào cần truyền tới các đầu ra nào?
̶ Hệ thống cần thực hiện dạng công việc nào?
̶ Hệ thống nhận thông tin để làm việc từ đâu?
̶ Hệ thống gửi kết quả công việc đến đâu? 6
Yêu cầu của sơ đồ luồng dữ liệu
• Toàn bộ sơ đồ được trình bày cân đối trên một trang (đối
với hệ thống nhỏ)
• Các chức năng hệ thống của cùng một mức cần được trình
bày trên một trang (đối với hệ thống lớn)
7
Các ký pháp trong sơ đồ luồng dữ liệu
Kho dữ liệu
8
Các ký pháp trong sơ đồ luồng dữ liệu
9
Các ký pháp trong sơ đồ luồng dữ liệu
• Kho:
̶ Kho sử dụng để mô hình hoá một tập hợp dữ liệu ở trạng thái
tĩnh.
̶ Tên kho thể hiện kho là tập hợp nhiều gói dữ liệu được dòng
đưa đến kho hoặc từ kho ra. Tên kho thường được đặt là danh
từ thể hiện thông tin gì được lưu trữ trong kho.
• Nhân tố ngoài:
̶ Nhân tố ngoài (còn gọi là thực thể ngoài) có thể là người, là
nhóm người hoặc một tổ chức không thuộc lĩnh vực nghiên cứu
của hệ thống (chúng có thể ở trong hoặc ở ngoài hệ thống)
nhưng có một sự liên hệ nhất định nào đó với hệ thống
̶ Chỉ ra giới hạn của hệ thống và nhận diện mối quan hệ của hệ
thống với thế giới bên ngoài
̶ Tên nhân tố ngoài thường chỉ người hoặc nhóm người của tổ
chức (phòng, ban,…) hoặc tên của hệ thống khác có trao đổi
thông tin với hệ thống đang xét. 10
Các mức của sơ đồ luồng dữ liệu
• Mức đỉnh
11
Các mức của sơ đồ luồng dữ liệu
• Mức ngữ cảnh (Context diagram): Sơ đồ luồng dữ liệu mức
ngữ cảnh chỉ chứa đúng 1 tiến trình (gọi là tiến trình 0) tổng
quát hoá toàn bộ chức năng của hệ thống trong mối quan hệ
với các thực thể ngoài
• Mức đỉnh (Top level diagram): Sơ đồ luồng dữ liệu mức đỉnh
là sơ đồ dòng dữ liệu cho ta cái nhìn chi tiết hơn về hệ thống
thông tin so với sơ đồ mức ngữ cảnh
• Mức dưới đỉnh (Lower level diagram): Sơ đồ mức dưới đỉnh
phân rã sơ đồ luồng dữ liệu mức đỉnh một cách chi tiết hơn.
Sau đó lại tiếp tục phân rã các sơ đồ luồng dữ liệu mức dưới
đỉnh vừa nhận được thành các mức thấp hơn. Quá trình
phân rã sẽ dừng lại khi ta nhận được các chức năng cơ bản
(functional primitive) trên sơ đồ 12
Kỹ thuật chia mức
13
Ví dụ về các mức DFD
14
Một số chỉ dẫn xây dựng mô hình DFD
• Chọn các tên có ý nghĩa cho các quá trình, dòng, kho và
nơi kết thúc (thực thể ngoài /trong).
• Đảm bảo các DFD chính xác khi đứng độc lập và chính
xác cả khi kết hợp với bất kỳ DFD nào.
15
Một số qui định khi xây dựng sơ đồ luồng dữ
liệu
• Tên quá trình trong mỗi sơ đồ ngữ cảnh phải là tên của hệ
thống thông tin.
• Sử dụng các tên viết tắt khi có dùng từ điển dữ liệu được
máy tính hoá
• Sử dụng số tham chiếu duy nhất cho mỗi ký hiệu quá trình
thay vì chữ viết tắt cho các ký hiệu DFD khác.
• Mọi luồng dữ liệu phải bắt đầu hoặc kết thúc tại một tiến 16
Ví dụ về sơ đồ luồng dữ liệu
17
Các phương tiện để đặc tả chức năng
• Các sơ đồ khối
18
Đặc tả chức năng (P-SPec)
• Một đặc tả chức năng thường được trình bày một cách ngắn
gọn, không vượt quá một trang A4, và gồm hai phần:
̶ Phần đầu đề gồm:
• Tên chức năng;
• Các dữ liệu vào;
• Các dữ liệu ra.
̶ Phần thân mô tả nội dung xử lý, ở đó thường sử dụng các
phương tiện mô tả sau đây (liệt kê theo trật tự ưu tiên giảm
dần):
• Các phương trình toán học.
• Các bảng quyết định hay cây quyết định.
• Các sơ đồ khối.
• Các ngôn ngữ tự nhiên cấu trúc hóa.
• (Không nên sử dụng ngôn ngữ tự do).
19
Ví dụ về P-Spec
20
Bảng quyết định và cây quyết định
21
Bảng quyết định và cây quyết định
22
Sơ đồ khối
23
Ngôn ngữ có cấu trúc
24
Từ điển dữ liệu
25
Từ điển dữ liệu
26
Tài liệu của pha phân tích
• Mô tả chi tiết các công cụ và kỹ thuật sử dụng để hoàn thành
việc phân tích
• Cung cấp sự mô tả đặc biệt các yêu cầu của hệ thống mà
người sử dụng có thể đánh giá và chấp nhận.
• Cung cấp nguồn thông tin cơ bản cho người thiết kế hệ thống
• Giải thích mục đích và phạm vi của hệ thống
• Đưa ra các yêu cầu mà người thiết kế cần thực hiện.
• Nội dung chính bao gồm:
̶ Kết hợp các yêu cầu mới
̶ Các công cụ và tài liệu hỗ trợ
̶ Tổng kết quá trình phân tích
27
VIỆN ĐIỆN TỬ - VIỄN THÔNG
School of Electronics and telecommunications
1
Mô hình thực thể và liên kết
Khảo sát hệ
thống Phân tích hệ
thống Thiết kế hệ
thống
Thu thập
Phân tích Thiết kế
các yêu
dữ liệu dữ liệu
cầu
Các Kịch Mô
bản sử dụng hình
Mô hình
thực quan hệ
Từ điển dữ thể liên
liệu kết
2
Mục đích của mô hình thực thể và liên
kết
• Xác định rõ các mối quan hệ, ràng buộc giữa các đơn vị
thông tin này
3
Cấu tạo của mô hình thực thể liên kết
4
Thực thể và tập thực thể
• Một thực thể là:
̶ Thành phần quan trọng đối với nghiệp vụ, nên dữ liệu về nó cần phải
được biết.
̶ Có thể là một đối tượng cụ thể hoặc trừu tượng.
̶ Thường là danh từ.
• Một tập thực thể: là một tập hợp các thực thể cùng một loại.
Tập thực thể còn được gọi là Kiểu thực thể.
• Ký hiệu: thực thể và tập thực thể đều được biểu diễn bằng
một hình chữ nhật.
• Ví dụ:
The movie
“Mission Movies
Impossible” 5
Các thuộc tính của thực thể
• Khái niệm:
̶ Một thuộc tính của một thực thể là một chi tiết thông tin về thực
thể đó.
̶ Thuộc tính cũng biểu diễn các thông tin cần thiết cho nghiệp vụ,
nhưng gắn liền với thực thể, chứ không đứng độc lập như thực thể.
̶ Một thuộc tính có các giá trị mà thuộc một miền giá trị nào đó (kiểu
dữ liệu của nó).
• Ký hiệu:
Year of
Title production
Movies
6
Thuộc tính khóa
ID
Year of
Title production
Movies
7
Ví dụ – Thực thể, Tập thực thể, Thuộc
tính
ID
Year of
Title production
Movies
Title =
ID = 1 Year of
“Mission
Impossible” production
= 1996
The movie
“Mission Impossible”
8
Liên kết (Relationship)
• Khái niệm:
̶ Nó biểu diễn mối quan hệ (ràng buộc) giữa hai hay nhiều thực
thể.
̶ Nó cần thiết cho nghiệp vụ
• Ví dụ:
̶ Đạo diễn chỉ đạo làm Phim
̶ Diễn viên tham gia đóng Phim
̶ Đào diễn mời Diễn viên tham gia đóng Phim
• Số ngôi của liên kết:
̶ Là số thực thể tham gia liên kết đó
̶ Ví dụ:
o Đạo diễn chỉ đạo làm Phim: liên kết 2 ngôi;
o Đào diễn mời Diễn viên tham gia đóng Phim: LK 3 ngôi
9
Liên kết (Relationship)
• Ký hiệu:
̶ Đạo diễn chỉ đạo làm Phim: liên kết 2 ngôi;
̶ Đào diễn mời Diễn viên tham gia đóng Phim: LK 3 ngôi
Actors
10
Các loại liên kết
• Liên kết 2 ngôi (Binary relationship): là liên kết giữa các thực
thể thuộc 2 tập thực thể.
̶ Liên kết Lớp con (Subclass, hay còn gọi là ISA): là một loại liên kết 2
ngôi đặc biệt.
11
Ví dụ về các loại liên kết
• Tự liên kết
elder
brother
Person brotherhood
younger
• Liên kết 2 ngôi brother
12
Ví dụ về các loại liên kết
• Liên kết ISA:
address
name dob
Person
isa
roll# school
Student
13
Ví dụ về các loại liên kết
• Liên kết nhiều ngôi:
̶ Một sinh viên tham gia một khóa học trong một lớp học
Course
14
Lực lượng của Liên kết
• Khái niệm:
̶ Lực lượng (multiplicity) của một liên kết là số lượng các thực
thể của từng tập thực thể tham gia vào liên kết đó.
̶ Một: khi có đúng một thực thể của một tập thực thể tham gia
̶ Nhiều: khi có nhiều hơn 1 thực thể của một tập thực thể tham
gia
15
Ví dụ về lực lượng
• Xét liên kết: Đạo diễn chỉ đạo làm Phim:
̶ Một đạo diễn có thể chỉ đạo Không, Một, hoặc Nhiều bộ phim
̶ Một bộ phim phải được chỉ đạo bởi ít nhất Một đạo diễn
16
Lực lượng của Liên kết 2 ngôi
̶ Một Nhiều (1:N): mỗi thực thể trong X có quan hệ với nhiều
thực thể trong Y. Nhưng ngược lại mỗi thực thể trong Y có quan
hệ với đúng một thực thể trong X.
̶ Nhiều Nhiều (M:N): mỗi thực thể trong X có quan hệ với nhiều
thực thể trong Y và tương tự ngược lại.
17
Lực lượng của Liên kết 2 ngôi
• Ký hiệu
1 1
1:1 X Y X Y
1 N
1:N X Y X Y
M N
M: X Y X Y
N
18
Xây dựng mô hình thực thể liên kết
1. Xác định các thực thể và các thuộc tính của chúng
19
Xác định các thực thể
• Phương pháp:
̶ Rà soát trong các Kịch bản sử dụng, và nhất là Từ điển dữ liệu
để xác định các đơn vị dữ liệu, đó sẽ là các thực thể và các
thuộc tính tiềm năng
̶ Cân nhắc mức độ quan trọng của các thực thể và các thuộc tính
tiềm năng đó đối với hệ thống
• Lưu ý: cần phân biệt giữa các thực thể và thuộc tính.
20
Xác định các liên kết
• Phương pháp:
̶ Xác định các mối quan hệ giữa các thực thể, để từ đó xác định
ra loại liên kết
̶ Xác định lực lượng của các thực thể tham gia
̶ Xác định các thuộc tính của các liên kết nếu có
21
Hoàn thiện mô hình
• Cân nhắc rồi thống nhất việc lựa chọn Thực thể | Liên kết |
Thuộc tính trong mô hình
• Trong quá trình này, có thể cần phải chuyển đổi giữa Liên
kết và Thực thể, hoặc giữa Thuộc tính và Thực thể
22
Ví dụ: Mô hình TT LK – Từ điển dữ liệu
23
Ví dụ: Mô hình TT LK – Các thực thể
24
Ví dụ: Mô hình TT LK – Các liên kết
• Thời khóa biểu là liên kết nhiều ngôi giữa các thực thể:
Khoa, Lớp học và Phòng học. Liên kết này sẽ bổ sung
thêm các thuộc tính là Năm học, Học kỳ và Tiết học.
• Khối lượng giảng dạy là liên kết M:N giữa TKB và Giáo
viên: Một TKB sẽ phân KLGD cho nhiều Giáo viên, và
ngược lại một Giáo viên tham gia giảng dạy theo nhiều
TKB.
26
Ví dụ: Mô hình TT LK – Các liên kết
1 N
Khoa Có Bộ môn
1 N
Khoa Có Lớp học
Giáo N 1
Thuộc Bộ môn
viên
1
IS
A
Trưởng Bộ 1
LĐạo
môn
27
Ví dụ: Mô hình TT LK – Các liên kết
Học kỳ
Năm học Tiết học
Phòng học
N M Giáo
TKB KLGD
viên
28
Ví dụ: Mô hình TT LK – Hoàn thiện
1 N
1 N N 1
Khoa TKB Lớp học
1 N 1
N
1
1 Trưởng Bộ
môn
29
Các nguyên tắc thiết kế mô hình TTLK
1. Trung thành
2. Tránh dư thừa
3. Giữ cho mô hình đơn giản
4. Chọn đúng loại liên kết
5. Chọn loại thành phần phù hợp
30
Nguyên tắc 1: Trung thành
• Luôn luôn, các phân tích và thiết kế cần phải phản ánh
chân thực các mô tả của hệ thống nghiệp vụ.
Nên đặt tên các Thực thể, Liên kết và Thuộc tính càng
gần với thực tế càng tốt.
31
Nguyên tắc 2: Tránh dư thừa
• Không để tình trạng cùng một thông tin lại xuất hiện ở
nhiều chỗ khác nhau trong mô hình
• Có thể gộp các thực thể có thông tin chung, và kết hợp
với liên kết ISA để giảm dư thừa
32
Ví dụ: dư thừa
N 1
Beers ManfBy Manfs
manf
33
Ví dụ: không còn dư thừa
N 1
Beers ManfBy Manfs
34
Ví dụ: giảm dư thừa với liên kết ISA
name
dob
roll#
name
dob
Student ID
school addr
Person addr
school company
name dob
emp# Student Employee
Employee
addr
company
35
Nguyên tắc 3: Giữ mô hình đơn giản
36
Ví dụ: Thực thể không cần thiết
1 N
Trường Có Khoa
37
Nguyên tắc 4: Chọn đúng loại liên kết
• Khi giữa các thực thể có thể tồn tại nhiều liên kết khác
nhau, thì chỉ cần chọn các liên kết cơ bản nhất. Còn các
liên kết còn lại mà có thể suy được từ các liên kết cơ
bản thì nên bỏ đi.
38
Ví dụ: Chọn đúng loại liên kết
Salary
title year name addr
N
length genre 1 • Liệu có cần thêm các liên
kết giữa Movies và Studios,
Studios cũng như giữa Movies và
Stars không?
• Nếu có thì liên kết Contracts
name addr có cần thiết nữa không?
39
Nguyên tắc 5: Chọn loại thành phần phù hợp
• Đôi khi không dễ quyết định biểu diễn một thông tin dưới
dạng nào của mô hình TTLK, vì dường như dạng nào
cũng có thể được. Khi đó cần chọn dạng phù hợp nhất,
mà tiêu chuẩn có thể dựa vào các nguyên tắc trên.
• Cần phân biệt giữa thực thể, thuộc tính và liên kết để
chọn cho phù hợp:
̶ Thực thể có thể tồn tại độc lập và cần có thêm thông tin chi tiết
cho nó (các thuộc tính).
̶ Các thuộc tính không đứng độc lập, mà cần bổ sung, hay là bộ
phận của thực thể hay liên kết nào đó.
̶ Liên kết cũng không tồn tại độc lập, mà phụ thuộc vào các thực
thể thành phần
40
VIỆN ĐIỆN TỬ - VIỄN THÔNG
School of Electronics and telecommunications
1
Nội dung chính
– Thiết kế giao diện các menu, form nhập, mẫu báo cáo, thông
báo
Mục đích của giai đoạn Thiết kế
• Là quá trình chuyển các yêu cầu của phần mềm sang dạng
biểu diễn của phần mềm mà nó có thể được đánh giá về chất
lượng trước khi cài đặt.
• Thiếu thiết kế, việc cài đặt có thể gặp các vấn đề:
– Thiếu kế hoạch cài đặt: không biết rõ thứ tự cài đặt các thành phần,
do đó gây ra sự lộn xộn và khó khăn trong việc ước lượng và phân
công công việc
– Không rõ ràng: chưa hiểu rõ các yêu cầu sẽ được cài đặt thế nào
– Khó nâng cấp và bảo trì: khi có lỗi, rất khó xác định nó nằm ở phần
nào. Khi muốn nâng cấp cũng không biết cần nâng cấp ở đâu, ảnh
hưởng của nó đến hệ thống hiện tại thế nào
Các nguyên tắc thiết kế
• Sự trừu tượng:
– Là sự tập trung vào một vấn đề ở một mức khái quát nào đó, và bỏ
qua các chi tiết mức thấp hơn không liên quan
– Quá trình thiết kế hệ thống đòi hỏi nhiều mức trừu tượng khác nhau
– Khi các nhiệm vụ đã được làm mịn thì dữ liệu cũng phải được làm
mịn, được phân rã hay cấu trúc lại.
Các nguyên tắc thiết kế
– Là một kỹ thuật cơ bản nhất để quản lý một cách hiệu quả độ phức
tạp của hệ thống
– Modul hóa tốt có thể giúp giảm thiểu thời gian và chi phí phát triển hệ
thống
Modul hóa
• Khái niệm:
Cao Cố kết thủ tục Khi modul đó chỉ thực hiện một công việc
rõ ràng
Ví dụ về mức độ cố kết
• Bài toán: viết một chương trình tính giá trị một biểu thức
số học mà có thể được nhập từ bàn phím hay từ một tệp
văn bản. Kết quả đưa ra cũng có thể đưa ra màn hình
hoặc ghi vào tệp văn bản.
• Sơ đồ cho giải thuật của bài toán trên được cho ở hình
sau:
Ví dụ về mức độ cố kết
Nhập từ
bàn phím BT dạng
Chọn Chuyển bt
trung tố
cách sang dạng
nhập hậu tố
Nhập từ tệp
BT dạng
In ra màn hậu tố
hình Giá trị
Chọn BT Tính giá trị
cách
biểu thức
xuất
Ghi ra tệp
Mức độ cố kết thấp: trùng khớp
Nhập từ
Chọn bàn phím BT dạng
Chuyển bt
cách trung tố
sang dạng
nhập hậu tố
Nhập từ tệp
BT dạng
hậu tố
In ra màn
hình Giá trị
Chọn BT Tính giá trị
cách
biểu thức
xuất
Ghi ra tệp
modul Nhập từ
nhập BT bàn phím BT dạng
Chọn Chuyển bt
cách trung tố
sang dạng
nhập hậu tố
Nhập từ tệp
BT dạng
In ra màn hậu tố
hình Giá trị
Chọn
BT Tính giá trị
cách
biểu thức
xuất
Ghi ra tệp
modul
tính giá
modul xuất BT trị BT
Mức độ cố kết cao: thủ tục rõ ràng
Nhập từ
bàn phím BT dạng
Chọn cách Chuyển bt
trung tố
nhập sang dạng
hậu tố
Nhập từ tệp
BT dạng
hậu tố
In ra màn
hình Giá trị
Chọn cách BT Tính giá trị
xuất biểu thức
Ghi ra tệp
Mức độ tương liên
• Khái niệm:
1
Nội dung chính
2
Tổng
2
quan về Mô hình dữ liệu quan hệ
3
Mô hình dữ liệu là gì?
4
Tóm tắt lịch sử của các Mô hình dữ liệu
5
Mô hình dữ liệu quan hệ
(Relational Data Model)
– Mỗi cột biểu diễn cho một thuộc tính của CUSTOMER và được gọi là
“thuộc tính”
6
Mô hình dữ liệu quan hệ
(Relational Data Model)
• Lược đồ (Schema)
– Lược đồ của một quan hệ là thông tin về cấu trúc của quan hệ đó
– Nó bao gồm tên và tập các thuộc tính của quan hệ đó.
– Ví dụ: Lược đồ của quan hệ Customers ở trên:
o Customers(Customers ID, tax ID, name, address)
• Bộ và thành phần
– Một hàng của một quan hệ được gọi là một bộ (tuple) hay
bản ghi (record)
– Một giá trị của một thuộc tính trong một bộ được gọi là một
thành phần (component)
7
Mô hình dữ liệu quan hệ
(Relational Data Model)
– Nên khái niệm miền giá trị tương đương với khái niệm kiểu dữ
liệu (data type)
– Ở mức cài đặt trong một hệ quản trị CSDL, thì miền giá trị của
các thuộc tính của một quan hệ cần phải chọn sao cho nằm
trong số các kiểu dữ liệu mà hệ QT CSDL đó hỗ trợ
8
Mô hình dữ liệu quan hệ
(Relational Data Model)
• Biểu diễn tương đương của quan hệ
– Quan hệ là tập hợp của các bộ (sets of tuples), chứ không phải
danh sách của các bộ (lists of tuples)
– Do vậy, thứ tự của các bộ trong quan hệ không quan trọng, mà
quan trọng là nội dung của các bộ. Đồng thời nếu có 2 bộ có giá
trị bằng nhau trên mọi thuộc tính thì coi như 1 bộ bị thừa
10
Các bất thường trong quan hệ
• Quan sát quan hệ Student
ID Name Class Department Subject Mark
1 E1-001 Nguyen Van A E1 Electronics Electronic Circuit 8
2 E1-001 Nguyen Van A E1 Electronics Digital Technique 7
3 E1-002 Tran Thi B E1 Electronics Digital Technique 9
4 E1-002 Tran Thi B E1 Electronics Electronic Circuit 8
5 E2-001 Nguyen Ho C E2 Electronics Digital Technique 6
6 IT1-001 Tran Thi B IT1 IT Electronic Circuit 10
7 IT1-002 Le Van D IT1 IT Digital Technique 8
– Dư thừa (Redundancy)
– Bất thường khi cập nhật (Update Anomalie)
– Bất thường khi bổ sung (Insertion Anomalie)
– Bất thường khi xóa (Deletion Anomalie)
Các bất thường trong quan hệ
12
Phụ thuộc hàm
• Định nghĩa về PTH (Functional Dependency)
– Cho lược đồ quan hệ R(A1,A2,…An), và A = A1A2 … An, và 2
tập các thuộc tính X và Y A. Chúng ta nói rằng:
o X Y (X xác định hàm Y, hay Y phụ thuộc hàm vào X), nếu thể hiện r
của R, thì không tồn tại 2 bộ t1, t2, sao cho t1[X]=t2[X] và t1[Y] t2[Y]
o Nói cách khác: tập các thuộc tính Y phụ thuộc hàm vào tập các thuộc
tính X khi và chỉ khi ứng với mỗi bộ giá trị của X trong R chỉ xác định
đúng một giá trị của Y tại mọi thời điểm
– X được gọi là Quyết định (determinant) của PTH.
• Một số PTH từ bảng Student:
– ID Name;
– ID Class;
– Class Department;
– (ID, Subject) Mark
13
Phụ thuộc hàm
14
Phụ thuộc hàm
• PTH đến từ đâu?
– Nó xuất phát các quy tắc nghiệp vụ (hay logic nghiệp vụ) của cơ sở
dữ liệu. Các quy tắc nghiệp vụ này sẽ quy định các phụ thuộc giữa các
thuộc tính, và từ đó sẽ tạo ra các phụ thuộc hàm.
15
Phụ thuộc hàm
• Hệ tiên đề Amstrong
– Tính phản xạ: Y X thì X Y (PTH tầm thường)
– Tính tăng trưởng: X, Y, Z, nếu X Y thì XZ YZ (XZ = X Z)
– Tính bắc cầu: X, Y, Z, nếu X Y và Y Z thì X Z
• Các hệ quả:
– Tính hợp : nếu X Y và X Z thì X YZ
– Tính tách: nếu X Y và Z Y thì X Z
– Tính tựa bắc cầu: nếu X Y và YW Z thì XW Z
16
Phụ thuộc hàm
17
Khóa
• Có một số loại khóa như sau:
– Siêu khóa (Super Keys).
– Khóa ngoại.
18
Khóa
• Siêu khóa
– Là một hay một tập các cột xác định duy nhất một hàng trong
bảng
– SK là siêu khóa của R khi với mọi t1, t2 thuộc bất kỳ thể hiện r của
R ta luôn có t1[SK] ≠ t2[SK]
– SK là siêu khóa củaR <=> SK xác định hàm mọi thuộc tính của R
(SK -> R).
Ví dụ: Cho lược đồ DMSV(MaSV, SoCMTND, Ho_ten_sv,
Ngay_Sinh, Dia_chi, Que_quan).
19
Khóa
• Khóa ứng viên (khóa ứng cử): Là một tập con của siêu khóa (cũng là một
siêu khóa), nhưng không thể thu lại thành một siêu khóa khác
Ví dụ ta có tập các khóa ứng viên{ (MaSV),(SoCMTND)}.
• Khóa chính:Là một khóa được lựa chọn một cách tùy ý từ tập các khóa
ứng viên, và được sử dụng trong các chỉ mục của bảng đó.
• Khóa ngoại: Một thuộc tính của quan hệ R1 được gọi là một khoá ngoại
lai nếu nó không phải là khoá chính của quan hệ R1 nhưng các giá trị của
nó là các giá trị của khoá chính trong một quan hệ R2 nào đó
• Khóa ngoại lai dùng để chứa dữ liệu dùng cho việc liên kết với các bảng
khác trong CSDL.
20
Khóa
Ví dụ về các khóa
Siêu khóa
21
Khóa
22
Nguyên nhân gây ra các bất thường
23
Nguyên nhân gây ra các bất thường
• Nhận xét: các thuộc tính dư thừa là các thuộc tính phụ
thuộc hàm bộ phận hoặc bắc cầu vào Khóa chính, ví dụ
như:
– (ID, Subject) Name, Class, Department; PTH bộ phận vì
ID Name, ID Class, ID Department
– Class Department
24
Nguyên nhân gây ra các bất thường
• Là sự tồn tại của các phụ thuộc bộ phận hoặc bắc cầu
vào khóa chính
• Giải pháp: Cần loại bỏ các loại PTH này trong quan hệ,
nhưng làm thế nào?
Phép tách lược đồ!
25
Phép tách
26
Ví dụ: tách bảng Student thành 3 bảng S1,
S2 và S3
S1 S3
ID Name Class ID Subject Mark
E1-001 Nguyen Van A E1 E1-001 Electronic Circuit 8
E1-002 Tran Thi B E1
E1-001 Digital Technique 7
E2-001 Nguyen Ho C E2
E1-002 Digital Technique 9
IT1-001 Tran Thi B IT1
E1-002 Electronic Circuit 8
IT1-002 Le Van D IT1
E2-001 Digital Technique 6
S2
IT1-001 Electronic Circuit 10
Class Department
E1 Electronics IT1-002 Digital Technique 8
E2 Electronics
IT1 IT
Phép tách
28
2 Chuẩn hóa dữ liệu
29
Khái niệm chuẩn hóa
• Chuẩn hóa: Mô hình quan hệ chỉ chấp nhận duy nhất các quan hệ thoả
mãn điều kiện “Mọi giá trị trong quan hệ - nghĩa là tất cả các giá trị của
các thuộc tính trong tất cả các bộ - đều phải là nguyên tố (atomic) (nghĩa
là không chia nhỏ được nữa)” .
• Nói một cách khác, tại mỗi vị trí cắt nhau của một hàng và một cột trong
bảng tồn tại đúng một giá trị và không bao giờ là một tập các giá trị.
• Dạng chuẩn (normal form): Là trạng thái của một quan hệ có được do áp
dụng những quy tắc liên quan đến phụ thuộc hàm của quan hệ đó.
• Chuẩn hoá dữ liệu: là quá trình phân rã lược đồ quan hệ chưa chuẩn hoá
(có dạng chuẩn thấp) thành các lược đồ quan hệ nhỏ hơn nhưng ở dạng
chuẩn cao hơn (có cấu trúc tốt hơn)
30
Mục đích của việc chuẩn hóa
• Xóa bỏ các dị thường trong các thao tác cập nhật dữ liệu.
31
Các dạng chuẩn
• Dạng chuẩn 1(1 Normal Form - 1NF): Một bảng đạt chuẩn 1 khi và chỉ khi
tất cả các cột trong bảng chỉ chứa giá trị nguyên tố, nghĩa là không có
nhóm lặp (các cột) bên trong một hàng của bảng.
• Kết luận:
– Mọi lược đồ quan hệ đều
thuộc dạng chuẩn 1.
32
Các dạng chuẩn
33
Các dạng chuẩn
• Kết luận:
– Mọi lược đồ quan hệ thuộc dạng chuẩn 2 cũng thuộc dạng chuẩn 1.
– Còn xuất hiện sự trùng lặp dữ liệu. Do đó gây ra các dị thường về cập nhật
dữ liệu.
34
Các dạng chuẩn
• Dạng chuẩn 3(3 Normal Form - 3NF): Lược đồ quan hệ R được gọi là
thuộc dạng chuẩn 3 nếu:
– R thuộc dạng chuẩn 2.
– Mọi thuộc tính không khóa của R không phụ thuộc bắc cầu vào khóa chính
của R.
Ví dụ: Lược đồ dưới đây thuộc dạng chuẩn 2 nhưng không thuộc dạng chuẩn 3, vì tồn tại
phụ thuộc hàm bắc cầu:
Rõ ràng: MaNV MaPB, MaPB TenPB => MaNV TenPB, Sau khi chuẩn hóa sang
dạng 3NF chúng ta nhận được các lược đồ sau:
35
Các dạng chuẩn
• Kết luận:
– Mọi lược đồ quan hệ thuộc dạng chuẩn 3 cũng thuộc dạng chuẩn 2.
– PTH bắt cầu là nguyên nhân dẫn đến trùng lặp dữ liệu.
36
Lược đồ khái niệm
37
Lược đồ khái niệm
38
5 Các phép toán trên CSDL quan hệ
• Chèn (insert)
• Loại bỏ (delete)
Trong mô hình CSDL quan hệ được nêu trên, các phép toán
này được áp dụng cho từng bộ của các quan hệ lưu trữ trong
máy
39
Các phép toán trên CSDL quan hệ
40
Các phép toán trên CSDL quan hệ
– Nếu xem thứ tự các trường là cố định, khi đó có thể biểu diễn phép
chèn dưới dạng không tường minh như sau:
INSERT (r; d1, d2, ..., dn)
– Mục đích của phép chèn là thêm một bộ vào một quan hệ nhất định
– Kết quả của phép toán này có thể gây ra một số sai sót với những lý
do sau đây:
o Bộ mới cần thêm vào không phù hợp với lược đồ quan hệ đã cho
o Một số giá trị của một số thuộc tính nằm ngoài miền giá trị của thuộc tính đó
o Giá trị khoá của bộ mới có thể là giá trị đã có trong quan hệ đang lưu trữ
– Do vậy, tuỳ từng hệ thống cụ thể sẽ có những cách khắc phục riêng
41
Các phép toán trên CSDL quan hệ
42
Các phép toán trên CSDL quan hệ
– Tuy nhiên, không phải lúc nào phép loại bỏ cũng cần đầy đủ tất cả các
loại thông tin của bộ cần loại bỏ
– Nếu có giá trị về bộ đó tại các thuộc tính khoá K = {B1, B2,..., Bj} thì
phép loại bỏ chỉ cần viết:
DEL (r; B1 = f1, B2 = f2, ..., Bj = fj)
– Ví dụ, trong phép loại bỏ nêu trên, vì (S#, P#) là khoá của quan hệ SP
nên ta chỉ cần viết:
DEL (SP; S# = S3, P# = P2)
43
Các phép toán trên CSDL quan hệ
– Gọi tập {C1, ..., Cp} {A1, ..., An} là tập các thuộc tính mà tại đó các
giá trị của bộ cần thay đổi, khi đó phép thay đổi có dạng:
r = r - t t'
– Hay ta có thể biểu diễn chi tiết phép loại bỏ như sau:
CH (r; A1 = d1, A2 = d2, ..., An = dn; C1 = e1, C2 = e2, ..., Cp = ep)
44
Các phép toán trên CSDL quan hệ
– Nếu K = {B1, ..., Bm} là khoá của quan hệ, khi đó chỉ cần viết:
CH (r; B1 = f1, B2 = f2, ..., Bm = fm; C1 = e1, C2 = e2, ..., Cp = ep)
– Ví dụ: Cần thay đổi địa chỉ hãng cung cấp S1 từ London thành
Amsterdam trong quan hệ S. Khi đó phép thay đổi có dạng như sau:
CH (S; S# = S1; CITY = Amsterdam)
– Cũng có thể không dùng phép thay đổi mà dùng tổ hợp của phép loại
bỏ và phép chèn một bộ mới
– Do vậy, sai sót đối với phép thay đổi cũng sẽ xảy ra tương tự như với
phép chèn và phép loại bỏ
45
Các bước đưa về dạng chuẩn 3NF
• Buớc 1: Chuyển quan hệ chưa chuẩn hóa thành 1 tập quan hệ tương
đương ở dạng 1NF.
– Cách 1: Loại bỏ các nhóm lặp bằng cách đưa dữ liệu thích hợp vào các cột
trống của các hàng chứa dữ liệu lặp
o Cách này thường được gọi là “làm phẳng” (flattening)
o Bằng cách này sữ dư thừa đã được đưa vào quan hệ kết quả, tuy nhiên sự dư thừa này sẽ
được loại bỏ trong quá trình chuẩn hóa
– Cách 2:
o Chỉ định một hoặc một nhóm các thuộc tính làm khóa chính cho bảng chưa chuẩn hóa
o Loại bỏ các nhóm lặp bằng cách mang nhóm các thuộc tính lặp lại cùng bản copy của khóa
chính sang một quan hệ tách biệt
o Nếu bảng chưa chuẩn hóa có chưa hơn một nhóm lặp lại hay các nhóm lặp lại lồng nhau thì
cách này được lặp đi lặp lại cho đến khi không còn nhóm lặp nữa.
46
Các bước đưa về dạng chuẩn 3NF
• Bước 2. Tạo các ánh xạ của quan hệ gốc 1NF để hạn chế mọi phụ thuộc
hàm không đầy đủ vào khoá chính để tạo ra một tập các quan hệ 2NF
theo các bước sau:
– Từ quan hệ ban đầu, đối với mỗi thuộc tính của khoá chính, ta tạo một quan
hệ tách biệt
– Tiếp tục tạo các quan hệ tách biệt mới với tất cả các kết hợp của các thuộc
tính của khoá chính cho đến khi tạo được quan hệ với toàn bộ khoá chính
gốc
– Chỉ định thuộc tính hoặc kết hợp các thuộc tính này làm khoá chính cho các
quan hệ mới
– Trong quan hệ gốc, tìm sự phụ thuộc hàm đầy đủ của từng thuộc tính trong
các thuộc tính còn lại vào các khoá chính mới tìm ra và đặt nó vào quan hệ
tương ứng với khoá chính mới này
• Khi đã xét hết các thuộc tính còn lại trong quan hệ gốc thì bỏ đi các
quan hệ mà chỉ có các thuộc tính khoá mà không có các thuộc tính
không khoá khác
47
Các bước đưa về dạng chuẩn 3NF
• Bước 3: Tạo các ánh xạ của các quan hệ 2NF này để hạn chế mọi
phụ thuộc hàm bắc cầu của các thuộc tính không khoá vào khoá
chính. Kết quả sẽ tạo nên một tập các quan hệ 3NF.
– Từ quan hệ 2NF ban đầu, mang bản copy của thuộc tính quyết định
cùng tất cả các thuộc tính không khoá mà phụ thuộc hàm vào thuộc
tính quyết định này sang một quan hệ mới với thuộc tính quyết định
sẽ được chỉ định làm khoá chính của quan hệ mới
48
Các bước đưa về dạng chuẩn 3NF
• Lưu ý:
– Trường hợp quan hệ đã ở dạng 3NF nhưng có các khoá ứng cử phủ
nhau thì chưa thể khẳng định là đã ở dạng chuẩn BCNF
– Nếu tồn tại thuộc tính quyết định mà không phải là khoá ứng cử thì
phải mang bản copy của thuộc tính quyết định cùng các thuộc tính
phụ thuộc hàm đầy đủ vào nó sang một quan hệ mới
• Mục đích chính của quá trình này là giảm được sự dư thừa thông
tin, và do đó tránh được các vấn đề dị thường với các phép toán
lưu trữ như đã bàn đến ở trên
49
Các quy tắc toàn vẹn dữ liệu
• C.J. Date:
– Qui tắc Toàn vẹn thực thể (Entity Integrity Rule - EI):
o Không một thành phần nào của các thuộc tính dùng làm khoá chính trên
một bảng dữ liệu được là null
– Qui tắc Toàn vẹn quy chiếu (Referential Integrity Rule - RI):
o Nếu một bảng dữ liệu bao gồm một khoá ngoại lai (FK) khớp với một
khoá chính (PK) trên một bảng dữ liệu T nào đó, thì mỗi trị của FK phải
hoặc:
– bằng trị của khoá chính trên một hàng nào đó của bảng dữ liệu T,
hoặc
– hoàn toàn null (Điều này không nên có vì không kết nối vào đâu)
• Cần tuân thủ các quy tắc toàn vẹn dữ liệu này trong 3 phép toán
thao tác CSDL 50
Các quy tắc toàn vẹn dữ liệu
• Phép toán Chèn (Insert): Nếu người sử dụng cố thử đưa vào một bộ với
khoá ngoại lai không khớp với trị của khoá chính của bảng dữ liệu tương
ứng thì để đảm bảo các quy tắc toàn vẹn dữ liệu, ta có thể cho áp dụng
một trong 3 nguyên tắc sau đây:
– Gạt bỏ việc thêm hàng này và yêu cầu người sử dụng đưa vào thông tin của
khoá chính trên bảng dữ liệu tương ứng
o Nguyên tắc này được gọi là nguyên tắc phụ thuộc (DEPENDENT)
– Tự động chuyển người sử dụng qua một chương trình khác để cho phép
người sử dụng thêm vào quan hệ tương ứng một hàng mới với khoá chính
cần thiết
– Chấp nhận bộ mới với khoá ngoại lai là null, nếu đồng ý chấp nhận null đối
với khoá ngoại lai
o Nguyên tắc này được gọi là nguyên tắc làm rỗng (NULLIFY)
51
Các quy tắc toàn vẹn dữ liệu
• Phép toán Thay đổi (Update): Để xác định sẽ xử lý như thế nào khi người
sử dụng cố tình thay đổi khoá chính có liên hệ với một khoá ngoại lai, có
thể chọn một trong 3 hướng giải quyết sau đây:
– Tự động thay đổi giá trị của khoá ngoại lai cho khớp với giá trị mới của
khoá chính
o Nguyên tắc này được gọi là nguyên tắc thác đổ hay dây chuyền
(CASCADE)
– Chỉ cho phép thay đổi giá trị khoá chính ở hàng hiện không có giá trị
của khoá chính khớp với giá trị hiện có của khoá ngoại lai tương ứng
o Nguyên tắc này được gọi là nguyên tắc hạn chế (RESTRICT)
– Cho khoá ngoại lai về null đối với các hàng có giá trị của khoá ngoại
lai hiện khớp với giá trị của khoá chính cần thay đổi, nếu đồng ý chấp
nhận null đối với khoá ngoại lai
o Đây là nguyên tắc làm rỗng (NULLIFY) 52
Các quy tắc toàn vẹn dữ liệu
• Phép toán Xoá (Delete): Nếu người sử dụng cố tình xoá một hàng chứa giá
trị của khoá chính mà ít nhất có một bảng dữ liệu hiện đang sử dụng giá trị
này cho khoá ngoại lai thì quy tắc toàn vẹn dữ liệu có thể tăng cường bằng
một trong ba nguyên tắc sau đây (cũng tương tự như với phép thay đổi ở
trên):
– Tự động xoá tất cả các hàng trong tất cả các bảng dữ liệu có giá trị của
khoá ngoại lai trùng với giá trị của khoá chính cần xoá
o Nguyên tắc này được gọi là nguyên tắc thác đổ hay dây chuyền
(CASCADE)
– Chỉ cho phép xoá giá trị khoá chính ở hàng hiện không có giá trị của
khoá chính khớp với giá trị hiện có của khoá ngoại lai tương ứng
o Nguyên tắc này được gọi là nguyên tắc hạn chế (RESTRICT)
– Cho khoá ngoại lai về null đối với các hàng có giá trị của khoá ngoại
lai hiện khớp với giá trị của khoá chính cần xoá, nếu đồng ý chấp nhận
null đối với khoá ngoại lai
53
o Đây là nguyên tắc làm rỗng (NULLIFY)
2
Chuyển từ Mô hình thực thể liên kết
sang Mô hình quan hệ
54
Chuyển từ thực thể sang quan hệ
name
dob
roll#
Student (roll#, name, dob,
Student addr, school)
school addr
55
Chuyển từ liên kết sang quan hệ
• Chuyển liên kết nhiều ngôi thành các liên kết hai ngôi:
– Coi liên kết như tập thực thể
Sinh
Sinh viên
viên Sinh viên
1
N
N 1
Khoa
Khoa Học Học Khoa
N
1
Khóa
Khóa Khóa
56
Chuyển từ liên kết sang quan hệ
– Liên kết 1:N: chỉ cần thêm thuộc tính khóa của thực thể ở đầu 1 vào
thực thể ở đầu N, thì liên kết này có thể được bỏ đi.
57
Chuyển từ liên kết sang quan hệ
ID_SV ID_Lớp
Sinh viên (ID_SV, Tên SV,
M 1
Sinh viên Học Lớp
ID_Lop);
58
Chuyển từ liên kết sang quan hệ
• Chuyển liên kết ISA sang quan hệ: không cần phải
tạo quan hệ mới cho loại liên kết này, nhưng các thực thể
tham gia một cây liên kết này cần được xử lý đặc biệt
theo 1 trong 3 cách như sau:
– Theo góc nhìn Thực thể/Liên kết: với mỗi thực thể E trong cây
liên kết, tạo một quan hệ mà chứa các thuộc tính khóa của gốc và
các thuộc tính thuộc về E.
– Theo cách tiếp cận hướng đối tượng: Coi các thực thể như các
đối tượng thuộc về một lớp. Với mỗi cây con của cây liên kết, thì
tạo ra một quan hệ mà chứa tất cả các thuộc tính của cây con đó.
– Sử dụng giá trị rỗng (NULL values): tạo ra một quan hệ duy
nhất bao gồm tất cả các thuộc tính của các thực thể trong cây liên
kết.
59
Chuyển từ liên kết sang quan hệ
ID Person
isa isa
roll# emp#
Student Employee
school
company
60
Chuyển từ liên kết sang quan hệ
61
Chuyển từ liên kết sang quan hệ
– Theo góc nhìn Thực thể/liên kết ta được các quan hệ:
o Cây liên kết trên có 4 cây con:
Một mình Person
Person và Student
Person và Employee
Cả 3 tập thực thể
o Từ đó ta sẽ có 4 quan hệ:
Person(ID, name, address, dob)
PersonS(ID, name, address, dob, roll#, school)
PersonE(ID, name, address, dob, emp#, company)
PersonSE(ID, name, address, dob, roll#, school , emp#,
company)
62
Chuyển từ liên kết sang quan hệ
– Theo cách sử dụng giá trị rỗng: Từ cây liên kết, ta tạo ra
1 quan hệ duy nhất:
63
VIỆN ĐIỆN TỬ - VIỄN THÔNG
School of Electronics and telecommunications
1
Các nội dung chính
2
Các loại giao diện
• Giao diện giữa các modul và các thiết bị/hệ thống bên ngoài
• Giao diện người máy: giao diện giữa người sử dụng và phần
mềm
3
Tầm quan trọng của giao diện
• Là nơi cung cấp các chức năng cho người dùng: cần đầy đủ
các chức năng, dễ sử dụng và sử dụng an toàn.
• Là nơi cung cấp các trợ giúp: cần hiểu được các nhu cầu trợ
giúp và giúp đỡ kịp thời và hiệu quả.
• Là công cụ sử dụng hàng ngày: nên cần khả năng tùy biến
và linh hoạt để tránh nhàm chán và sử dụng ngày càng hiệu
quả.
4
Các quy tắc thiết kế
5
Quy tắc 1: Luôn đặt người dùng vào vị trí điều khiển
• Ý nghĩa:
– Giao diện cần phải giúp người dùng luôn duy trì quyền điều
khiển chương trình, chứ không phải bị điều khiển bởi chương
trình
6
Quy tắc 1: Luôn đặt người dùng vào vị trí điều khiển
– Cung cấp nhiều loại tương tác linh hoạt: cho phép người dùng có nhiều
lựa chọn loại hình tương tác, như bàn phím, chuột, cảm ứng, giọng
nói,v.v.
– Cho phép giao diện có thể tùy biến và tiến hóa theo sở thích và kinh
nghiệm của người dùng
– Che dấu các chi tiết kỹ thuật bên trong không cần thiết khỏi người dùng
thông thường
7
Quy tắc 2: Giảm thiểu gánh nặng ghi nhớ của người
dùng
• Ý nghĩa:
– Quy tắc này giúp người dùng sử dụng hệ thống cảm thấy thoải
mái hơn, thao tác chính xác hơn, giảm thiểu công sức phải nhớ,
cũng như các lỗi do việc nhớ không chính xác
8
Quy tắc 2: Giảm thiểu gánh nặng ghi nhớ của người
dùng
9
Quy tắc 3: Tạo giao diện nhất quán
• Ý nghĩa:
– Các giao diện của một hệ thống cần phải theo một phong cách
thống nhất nào đó, như các form nhập liệu theo một cách bố trí
nhất định, các báo cáo có cùng định dạng nhất định, các cửa sổ
có cùng phong cách nhất định
– Tính nhất quán của giao diện sẽ làm người dùng cảm thấy thân
thiện hơn, dễ sử dụng hơn, thích nghi nhanh hơn. Đồng thời nó
cũng giảm thiểu các sai sót, thời gian làm quen của người dùng
với hệ thống
10
Quy tắc 3: Tạo giao diện nhất quán
– Hạn chế thay đổi các phong cách giao diện mà đã tạo được ấn
tượng tốt với người dùng. Chỉ nên thay đổi khi có lý do chính
đáng
11
Các kiểu tương tác của người dùng
12
Các kiểu tương tác của người dùng
Chọn Tránh lỗi người Thao tác chậm đối với người sử Phần lớn các hệ thống
menu dùng dụng có kinh nghiệm. thông dụng
Yêu cầu gõ ký tự ít Có thể trở nên phức tạp nếu có
nhiều lựa chọn menu.
Điền vào Nhập dữ liệu đơn Tốn nhiều không gian màn hình Khai thuế, xử lý nợ cá
form giản Rắc rối xảy ra khi các lựa chọn nhân
Dễ học của người dùng không khớp với
Kiểm tra được các trường của form.
Ngôn ngữ Mạnh và linh động Khó học Hệ điều hành, hệ
lệnh Quản lý lỗi kém. thống
điều khiển và lệnh
Ngôn ngữ Người sử dụng Yêu cầu gõ nhiều. Hệ thống truy vấn
tự bình thường có thể Hệ thống hiểu ngôn ngữ tự nhiên thông tin
nhiên dùng được. không tin cậy được
Dễ mở rộng
13
Các bước thiết kế giao diện
14
Các bước thiết kế giao diện
15
Phân tích người dùng, tác vụ, môi trường
• Nếu không hiểu người dùng muốn làm gì với hệ thống, ta khó có thể thiết
kế nên một giao diện hiệu quả.
• Phân tích người dùng phải được mô tả sao cho cả người dùng và người
thiết kế có thể hiểu được.
• Sử dụng kịch bản trong đó mô tả các tình huống sử dụng hệ thống cũng là
một cách để mô tả các phân tích này
– Phân tích tác vụ: Mô hình hóa các bước để hoàn thành một tác vụ.
– Quan sát: Quan sát người sử dụng tại nơi làm việc.
16
Phân tích tác vụ theo cây phân cấp
17
Phỏng vấn
• Thiết kế phỏng vấn dưới dạng cấu trúc linh động, dựa vào
các câu hỏi mở.
• Phỏng vấn theo nhóm cho phép người dùng thảo luận với
nhau về những gì họ làm.
18
Quan sát
• Quan sát người dùng tại nơi làm việc và đặt câu hỏi về công
việc của họ (không có kịch bản sẵn ).
• Hỗ trợ cho việc hiểu vai trò xã hội và ảnh hưởng về mặt tổ
chức lên công việc.
19
Tạo protype cho giao diện người dùng
• Mục tiêu là cho phép người dùng có những trải nghiệm trực
tiếp với giao diện.
• Không có những kinh nghiệm này, không thể đánh giá được
tính sử dụng của một giao diện.
– Sau đó, thiết kế được tinh chỉnh, phát triển các bản mẫu tự động hóa
với độ phức tạp ngày càng tăng.
20
Xây dựng prototype trên
giấy
• Đi một lượt qua các kịch bản và phác thảo các giao diện.
21
Các kỹ thuật xây dựng prototype
– Khi người dùng tương tác với prototype này,màn hình sẽ chuyển qua
một màn hình khác.
22
Đánh giá giao diện
• Đánh giá đầy đủ rất tốn kém và thường không thực tế đối
với đa số hệ thống.
• Về lý tưởng, một giao diện nên được đánh giá dựa vào đặc
tả tính sử dụng. Tuy nhiên, các đặc tả như vậy hiếm khi
được tạo ra.
23
Các thuộc tính về tính sử dụng
Thuộc tính Mô tả
Tính có thể học được Một người dùng mới mất bao lâu để sử dụng
được hệ thống có hiệu quả?
Tốc độ thao tác Tốc độ trả lời của hệ thống có đáp ứng tốt được
công việc của người dùng hay không?
Tính chịu lỗi Mức độ chịu lỗi của hệ thống đối với lỗi người
dùng như thế nào?
Khả năng khôi phục Hệ thống khôi phục từ lỗi người dùng tốt đến
mức nào?
Tính tương thích Hệ thống gắn bó với một mô hình làm việc đến
đâu?
24
Các kỹ thuật đánh giá đơn giản
• Cài các mã thu thập thông tin về các tiện ích sử dụng và lỗi
người dùng.
• Cung cấp chức năng trong chương trình để thu thập phản
hồi trực tuyến từ người dùng.
25
Các bước thiết kế giao diện
26
VIỆN ĐIỆN TỬ - VIỄN THÔNG
School of Electronics and telecommunications
1
Kiến trúc phần mềm
• Khái niệm:
“Là một cấu trúc bao gồm các thành phần phần mềm, các
tính chất có thể thấy được từ bên ngoài của các thành
phần này, và các liên kết giữa chúng”
• Các thành phần phần mềm có thể gồm:
– Các module
2
Kiến trúc phần mềm
3
Kiến trúc phần mềm
– Mô hình Repository
– Mô hình client–server
4
Mô hình Model-View-Controller (MVC)
5
Mô hình Model-View-Controller (MVC)
6
Ví dụ: Kiến trúc ứng dụng Web sử dụng mô hình MVC
7
Mô hình kiến trúc phân tầng
• Được sử dụng để mô hình hóa giao diện của các hệ thống
con.
• Tổ chức hệ thống thành một tập các tầng, mỗi tầng cung
cấp một tập các dịch vụ.
• Hỗ trợ việc phát triển dần dần các hệ thống con trên các
tầng khác nhau. Khi giao diện của tầng thay đổi, chỉ các
tầng lân cận mới bị ảnh hưởng.
8
Mô hình kiến trúc phân tầng
Nhược Thực tế, cung cấp một sự phân chia rõ rệt giữa các tầng thường rất
điểm khó khăn và tầng cao hơn có thể tương tác trực tiếp với tầng thấp
hơn hơn là thông qua một tầng bên dưới nó. Hiệu năng cũng có
thể là một vấn đề vì nhiều mức diễn giải của một yêu cầu dịch vụ
khi nó được thực hiện tại mỗi tầng.
9
Mô hình phân tầng tổng quát
10
Mô hình Repository
• Các hệ thống con phải trao đổi dữ liệu với nhau. Có hai
khả năng:
– Việc chia sẻ dữ liệu được thực hiện ở cơ sở dữ liệu trung tâm
hay còn gọi là kho dữ liệu, kho này được truy cập bởi tất cả các
hệ thống con.
Sử Sử dụng mô hình này khi ta có một hệ thống trong đó một lượng lớn thông
dụng tin được sinh ra phải được lưu trữ trong một thời gian dài. Ta cũng có thể
khi sử dụng nó trong các hệ thống hướng dữ liệu trong đó dữ liệu trong kho
nào kích hoạt hành động hay công cụ.
Ưu Các component có thể độc lập với nhau – chúng không cần biết sự tồn tại
điểm của các component khác. Các thay đổi xảy ra ở một component không ảnh
hưởng tới các component khác. Tất cả các dữ liệu có thể được quản lý một
cách nhất quán (ví dụ như backup dữ liệu được thực hiện đồng thời) vì tất
cả dữ liệu được lưu trữ ở cùng một nơi.
Nhược Các vấn đề xảy ra trên kho chung ảnh hưởng đến toàn hệ thống. Có thể
điểm không hiệu quả trong việc tổ chức các giao tiếp thông qua kho. Phân tán
kho trên nhiều máy tính có thể khó khăn.
12
Một kiến trúc repository cho một IDE
13
Mô hình client - server
• Tập hợp các server độc lập cung cấp các dịch vụ cụ thể
ví dụ như in ấn, quản trị dữ liệu, ...
• Tập hợp các khách hàng triệu gọi các dịch vụ này.
• Hệ thống mạng cho phép người dùng truy cập vào các
server.
14
Mô hình client - server
Sử Được sử dụng khi dữ liệu trong một cơ sở dữ liệu chia sẻ phải truy cập từ
dụng nhiều nơi. Vì các server được truy cập từ nhiều nơi khác nhau, có thể được
khi sử dụng khi tải trên hệ thống thay đổi.
nào
Ưu Ưu điểm chính là server được phân tán trên mạng. Chức năng chung (dịch
điểm vụ in ấn chẳng hạn) có thể có sẵn cho tất cả các khách hàng và không cần
thiết phải cài đặt toàn bộ các dịch vụ.
Nhược Mỗi dịch vụ là một điểm đơn gây lỗi vì vậy dễ bị tấn công từ chối dịch vụ
điểm hoặc lỗi server. Hiệu năng có thể không dự đoán trước được do nó phụ
thuộc vào mạng cũng như hệ thống. Có thể có các vấn đề về quản lý nếu
server được sở hữu bởi các tổ chức khác nhau.
15
Ví dụ về mô hình client - server cho
một thư viện phim ảnh
16
Mô hình pipe filter
• Các chuyển đổi chức năng xử lý các đầu vào và tạo ra các đầu ra.
• Các biến thể của phương pháp này rất phổ biến. Khi các chuyển đổi là tuần
tự, đây là mô hình xử lý khối tuần tự mà các hệ thống xử lý dữ liệu sử
dụng.
• Không thật sự phù hợp với các hệ thống tương tác.
17
Mô hình pipe filter
Tên Mô hình pipe filter
Mô tả Việc xử lý dữ liệu trong một hệ thống được tổ chức sao cho mỗi
component xử lý (filter) là rời rạc và tiến hành một loại xử lý dữ
liệu. Dòng dữ liệu (pipe) đi từ một component đến một component
khác để xử lý.
Sử Thường sử dụng trong các ứng dụng xử lý dữ liệu ( cả ứng dụng
dụng xử lý khối và xử lý giao tác) trong đó các đầu vào được xử lý ở
khi các giai đoạn rời rạc để tạo ra các đầu ra tương ứng.
nào
Ưu Dễ hiểu và hỗ trợ việc tái sử dụng chuyển đổi. Kiểu dòng dữ liệu
điểm phù hợp với cấu trúc của của nhiều quy trình công việc. Tiến hóa
bằng cách thêm vào các chuyển đổi là dễ dàng. Có thể cài đặt
theo kiểu hệ thống tuần tự hoặc song song.
Nhược Format của dữ liệu truyền đi phải được chấp thuận trong việc giao
điểm tiếp giữa các chuyển đổi. Mỗi chuyển đổi phải phân tích cú pháp
đầu vào của nó và chuyển nó thành đầu ra ở dạng được chấp
nhận. Điều này gây khó khăn trong việc tái sử dụng các chuyển
đổi hàm mà cấu trúc dữ liệu không tương thích.
18
Ví dụ về mô hình pipe filter
19