Một số lĩnh vực ứng dụng của trí tuệ nhân tạo Hệ chuyên gia sử dụng các tri thức của những chuyên gia để giải quyết các vấn đề bài toán khác nhau trong nhiều lĩnh vực.. · Cơ sở tri thức
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
LUẬN VĂN THẠC SĨ MÁY TÍNH
Người hướng dẫn khoa học: PGS TS LÊ HUY THẬP
HÀ NỘI, 2013
Trang 2LỜI CẢM ƠN
Em xin chân thành cảm ơn toàn thể các thầy cô giáo trong trường Đại học Sư Phạm Hà Nội 2 đã hết lòng dạy dỗ, chỉ bảo, tạo điều kiện tốt cho em trong suốt quá trình học tập cũng như trong thời gian thực hiện luận văn tốt nghiệp này
Đặc biệt, em xin gửi lời cám ơn chân thành và sâu sắc tới PGS,TS NCNC Lê Huy Thập– người đã trực tiếp quan tâm, tận tình hướng dẫn, giúp
đỡ và tạo điều kiện hết sức thuận lợi cho em trong quá trình thực hiện luận văn
Cảm ơn các bạn đồng khoá và gia đình đã động viên, giúp đỡ tôi rất nhiều trong quá trình học tập tại ngành Khoa học máy tính cũng như trong thời gian thực hiện luận văn
Vì năng lực của bản thân em còn hạn chế nên đề tài không thể tránh khỏi những thiếu sót Em rất mong được sự chỉ bảo của quý thầy cô và đóng góp ý kiến của toàn thể các bạn để chương trình ngày càng hoàn thiện hơn nữa
Hà Nội, ngày 2 tháng 12 năm 2013
Học viên
Trần Thị Thúy Diệu
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này là công trình nghiên cứu của riêng tôi Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nghiên cứu nào khác./
Hà Nội, ngày 2 tháng 12 năm 2013
Học viên
Trần Thị Thúy Diệu
Trang 4DANH MỤC CÁC TỪ VIẾT TẮT
Trang 5MỤC LỤC
MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Mục đích nghiên cứu (Các kết quả cần đạt được) 1
3 Nhiệm vụ nghiên cứu 1
4 Đối tượng và phạm vi nghiên cứu 1
5 Giả thuyết khoa học 1
6 Phương pháp nghiên cứu 2
CHƯƠNG 1: TỔNG QUAN 3
1.1 Hệ chuyên gia 3
1.1.1 Khái niệm chuyên gia và hệ chuyên gia 3
1.1.2 Các đặc tính của chuyên gia và hệ chuyên gia 5
1.1.3 Sự phát triển của hệ chuyên gia 7
1.1.4 Các lĩnh vực ứng dụng của hệ chuyên gia 9
1.1.5 Kiến trúc tổng quát của các hệ chuyên gia 10
1.2 Hộp đen 14
1.2.1 Yêu cầu của quá trình kiểm thử bằng hộp đen 14
1.2.2 Phân loại kiểm thử bằng hộp đen 15
1.3 Cơ sở dữ liệu 19
1.3.1 Một số khái niệm cơ bản 19
1.3.2 Các mô hình cơ sở dữ liệu 22
1.3.3 Mô hình thực thể kết hợp 23
1.3.4 Mô hình dữ liệu quan hệ 26
1.4 Kết luận chương 29
1.4.1 Khái niệm chuyên gia và hệ chuyên gia 29
1.4.2 Hộp đen 30
Trang 61.4.3 Cơ sở dữ liệu 30
CHƯƠNG 2: HỆ CHUYÊN GIA VÀ CƠ SỞ DỮ LIỆU TRONG BỘ NHỚ TRI THỨC 31
2.1 Các phương pháp thu thập tri thức 31
2.1.1 Thu thập tri thức trong quá trình nghiên cứu định lượng 31
2.1.2 Thu thập tri thức trong quá trình nghiên cứu định tính 34
2.2 Kỹ sư tri thức và các cách thể hiện tri thức 37
2.2.1 Kỹ sư tri thức 37
2.2.2 Các cách thể hiện tri thức 41
2.3 Thiết kế CSDL trong bộ nhớ tri thức 44
2.3.1 Dạng quan hệ khi thể hiện bằng O-A-V 44
2.3.2 Dạng quan hệ khi thể hiện bằng luật 46
2.4 Kết luận chương 50
CHƯƠNG 3: ỨNG DỤNG LUẬT KẾT HỢP VÀ SUY LUẬN KHÔNG CHẮC CHẮN TẠI SIÊU THỊ 51
3.1 Lập trình ứng dụng đề tài tại siêu thị Mỹ phẩm 51
3.1.1 Dữ liệu 51
3.1.2 Các công cụ phát triển Demo 52
3.2 Các giao diện và kết quả của chương trình ứng dụng 53
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 56
TÀI LIỆU THAM KHẢO 57
Trang 7DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Một số lĩnh vực ứng dụng của trí tuệ nhân tạo 4
Hình 1.2 Hoạt động của hệ chuyên gia 5
Hình 1.3 Những thành phần cơ bản của một hệ chuyên gia 11
Hình 1.4 Quan hệ giữa máy suy diễn và cơ sở tri thức 12
Hình 1.5 Kiến trúc hệ chuyên gia theo J L Ermine 13
Hình 1.6 Kiến trúc hệ chuyên gia heo C Ernest 13
Hình 1.7 Kiến trúc hệ chuyên gia theo E V Popo 14
Hình 1.8 Ký hiệu của thực thể 23
Hình 1.9 Ký hiệu của thuộc tính 23
Hình 1.10 Mối kết hợp không có thuộc tính 25
Hình 1.11 Mối kết hợp có thuộc tính 25
Hình 1.12 Khóa 25
Hình 2.3-1 Liên kết thực thể … 45
Hình 2.3-2 Hình dạng một hộp đen 47
Hình 2.3-3 Liên kết thực thể … 49
Trang 8DANH MỤC CÁC BẢNG
Bảng 1.1 Sự phát triển của hệ chuyên gia 7
Bảng 1.2 Các lĩnh vực ứng dụng của hệ chuyên gia 9
Bảng 1.3 Ví dụ về quan hệ r 27
Bảng 3.1 Mô tả tập các sự kiện được sử dụng trong Demo 51
Bảng 3.2 Tập luật trong bộ nhớ tri thức 51
Hình 3.1 Giao diện chính của Demo 53
Hình 3.2 Giao diện khi cập nhật thông tin bảng quan hệ 54
Hình 3.3 Kết quả sau quá trình khai phá luật kết hợp 54
Hình 3.4 Tập luật mới được sinh ra 55
Trang 9HCG đã được đề cập rất nhiều trên thế giới và Việt Nam Tuy nhiên, cấu trúc của bộ nhớ tri thức thì hiện nay vẫn là vấn đề cần nghiên cứu và mở rộng
Chúng ta sẽ tìm cách thiết kế CSDL trong bộ nhớ tri thức, nhằm mục đích có thể cập nhật và giảm thời gian làm việc cho các thành đặc biệt là motor suy luận
2 Mục đích nghiên cứu (Các kết quả cần đạt được)
Dùng các phương pháp như: thu thập tri thức chuyên gia lĩnh vực, hộp đen (hoặc thử và sai) để liệt kê các luật trong bộ nhớ tri thức Kết quả được đưa vào CSDL
Lập trình ứng dụng đề tài
3 Nhiệm vụ nghiên cứu
Nghiên cứu hệ chuyên gia và cơ sở dữ liệu trong bộ nhớ tri thức
4 Đối tượng và phạm vi nghiên cứu
Cơ sở dữ liệu
Hệ chuyên gia
5 Giả thuyết khoa học
Dùng hệ hỗ trợ ra QĐ và trí tuệ nhân ta nhằm nâng cao khả năng suy diễn trong bộ nhớ tri thức
Trang 102
6 Phương pháp nghiên cứu
- Các phương pháp thu thập tri thức
- Kỹ sư tri thức và các cách thể hiện tri thức
- Thiết kế CSDL trong bộ nhớ tri thức
7 Nội dung luận văn
Luận văn bao gồm 3 chương
Chương 2 Hệ chuyên gia và cơ sở dữ liệu trong bộ nhớ tri thức
2.1 Các phương pháp thu thập tri thức
2.2 Kỹ sư tri thức và các cách thể hiện tri thức
2.3 Kết luận chương
Chương 3 Ứng dụng luật kết hợp và suy luận không chắc chắn tại siêu thị mỹ phẩm
3.1 Lập trình ứng dụng đề tài tại siêu thị Mỹ phẩm
3.2 Các giao diện và kết quả của chương trình ứng dụng
Trang 113
CHƯƠNG 1: TỔNG QUAN
1.1 Hệ chuyên gia
1.1.1 Khái niệm chuyên gia và hệ chuyên gia
Định nghĩa 1.1: Chuyên gia là một hoặc một nhóm có kiến thức sâu về
chuyên ngành và có kỹ năng giải các vấn đề (của chuyên ngành đó) một cách
có hiệu quả
Định nghĩa 1.2: Hệ chuyên gia
* Hệ chuyên gia là một hệ thống dựa trên tri thức, nó mô hình hóa các tri thức của chuyên gia và dùng tri thức này để giải vấn đề phức tạp thuộc lĩnh vực đó
* Hệ chuyên gia là một hệ thống bao gồm máy tính và chương trình được dùng để mô phỏng và bắt chước cách giải quyết vấn đề của chuyên gia Trong đó,
* Tri thức của hệ chuyên gia bao gồm các sự kiện và các luật Các sự kiện được cấu thành bởi một số nhiều các thông tin, được thu thập rộng rãi, công khai và được sự đồng tình của các chuyên gia trong lĩnh vực đó Các luật biểu thị sự quyết đoán chuyên môn của các chuyên gia trong lĩnh vực
* Mức độ hiệu quả của một hệ chuyên gia phụ thuộc vào kích thước và chất lượng của cơ sở tri thức mà hệ đó có được
* Mỗi hệ chuyên gia chỉ đặc trưng cho một lĩnh vực vấn đề nào đó
Hệ chuyên gia là một trong những lĩnh vực ứng dụng của trí tuệ nhân tạo Dưới đây là một số các lĩnh vực của trí tuệ nhân tạo:
Trang 124
Hình 1.1 Một số lĩnh vực ứng dụng của trí tuệ nhân tạo
Hệ chuyên gia sử dụng các tri thức của những chuyên gia để giải quyết các vấn đề (bài toán) khác nhau trong nhiều lĩnh vực Trong hệ chuyên gia có các khối cơ bản sau:
* Khối lưu tri thức cơ sở: chúng được sử dụng để lưu các tri thức bao gồm các sự kiện, các quan hệ và các luật
* Khối suy luận hay motor suy luận: là bộ xử lý được mô hình hóa theo cách lập luận và xử lý của chuyên gia Motor nhận thông tin về sự kiện, so sánh chúng với các kiến thức đã có trong khối lưu tri thức cơ sở rồi rút ra kết luận hay bình luận Như vậy, motor cần có kỹ thuật về suy luận
Expert Understanding
Natural Lannguage
Trang 13(2) Cơ sở tri thức của hệ chuyên gia là bộ nhớ tri thức lĩnh vực
Một hệ chuyên gia gồm ba thành phần chính là cơ sở tri thức, máy suy diễn hay môtơ suy diễn và hệ thống giao tiếp với người sử dụng
· Cơ sở tri thức chứa các tri thức có sẵn
· Máy suy diễn tạo ra câu trả lời cho người sử dụng qua hệ thống giao tiếp dựa trên cơ sở tri thức
Người sử dụng cung cấp các thông tin, dữ liệu cần được xử lý thông qua hệ chuyên gia Sau quá trình xử lý, hệ chuyên gia đưa ra kết quả cần thiết cho người sử dụng nhờ giao diện tương tác
Hoạt động của một hệ chuyên gia dựa trên tri thức được minh họa như sau :
Hình 1.2 Hoạt động của hệ chuyên gia Mỗi một hệ chuyên gia chỉ xử lý cho các vấn đề trong một lĩnh vực xác định dựa trên các tri thức có sẵn được tạo ra từ trước của lĩnh vực đó và các
Cơ sở tri thức
Máy suy diễn
Trang 146
Nó có đáng tin cậy không?
b) Các đặc trưng của hệ chuyên gia
Có bốn đặc trưng cơ bản của một hệ chuyên gia:
· Hiệu quả cao: Hiệu quả đưa ra kết quả trả lời và độ chính xác cao
· Thời gian trả lời thoả đáng: Khả năng truy xuất kết quả thông qua dữ liệu
đầu vao cho trước nhanh hơn so với các chuyên gia Hệ chuyên gia là một hệ thống thời gian thực
· Độ tin cậy cao: Không thể xảy ra sự cố hoặc giảm sút độ tin cậy khi sử
dụng
· Dễ hiểu: Hệ chuyên gia giải thích các bước suy luận một cách dễ hiểu và
nhất quán, không giống như cách trả lời bí ẩn của các hộp đen
c) Những ưu điểm của hệ chuyên gia
· Phổ cập: Là sản phẩm chuyên gia, được phát triển không ngừng với hiệu
quả sử dụng không thể phủ nhận
· Giảm giá thành: Do trả lời tự động thông qua hệ thống vì vậy tiết kiệm
được tiền bạc và công sức cho người sử dụng hơn so với sử dụng các chuyên gia
Trang 157
· Giảm rủi ro: Giúp con người tránh được trong các môi trường rủi ro, nguy
hiểm
· Tính thường trực: Bất kể lúc nào cũng có thể khai thác sử dụng, trong khi
con người có thể mệt mỏi, nghỉ ngơi hay vắng mặt
· Đa lĩnh vực: Hệ chuyên gia có thể sử dụng cho nhiều lĩnh vực khác nhau
và có thể sử dụng nhiều tri thức cơ sở của nhiều lĩnh vực khác nhau Trong khi các chuyên gia thông thường chỉ thành thạo trong một lĩnh vực xác định
· Độ tin cậy: Luôn đảm bảo độ tin cậy khi khai thác
· Khả năng giảng giải: Các vấn đề được giải quyết thông qua các cơ chế rõ
ràng
· Khả năng trả lời: Trả lời theo thời gian thực, khách quan
· Tính ổn định: Suy luận có lý và đầy đủ mọi lúc mọi nơi
· Trợ giúp thông minh như một người hướng dẫn: Có thể truy cập như là một
cơ sở dữ liệu thông minh
1.1.3 Sự phát triển của hệ chuyên gia
Sau đây là một số sự kiện quan trọng trong lịch sử phát triển của công nghệ hệ chuyên gia (expert system technology)
Trang 168
1957
Rosenblatt phát minh khả năng nhận thức; Newell, Shaw và Simon đề xuất giải bài toán tổng quát (GPS: General Problem Solver)
language)
1962
Nguyên lý Rosenblatt’s về chức năng thần kinh trong nhận thức
Perceptions)
1965
Phương pháp hợp giải Robinson Ưng dụng logic mờ (fuzzy logic) trong suy luận về các đối tượng mờ (fuzzy object) của Zadeh Xây dựng hệ chuyên gia đầu tiên về nha khoa DENDRAL (Feigenbaum, Buchanan, et.al)
(associative memory model) của Quillian
1971
Hệ chuyên gia HEARSAY I về nhận dạng tiếng nói (speech recognition) Xây dựng các luật giải bài toán con người (Human Problem Solving) popularizes rules (Newell and Simon)
representation) (Minsky)
1976
Toán nhân tạo (AM: Artificial Mathematician) (Lenat) Lý thuyết Dempster−Shafer về tính hiển nhiên của lập luận không chắc chắn (Dempster−Shafer theory of Evidence for reason under uncertainty) Ứng dụng hệ chuyên gia PROSPECTOR trong khai thác hầm mỏ (Duda, Har)
Trang 179
trong hệ chuyên gia XCON/R1 (Forgy)
máy tính DEC (DEC computer systems)
1979
Thuật toán mạng về so khớp nhanh (rete algorithm for fast pattern matching) của Forgy; thương mại hoá các ứng dụng về trí tuệ nhân tạo
machines) từ LMI
1982
Hệ chuyên gia về Toán học (SMP math expert system); mạng ron Hopfield (Hopfield Neural Net); Dự án xây dựng máy tính thông minh thế hệ 5 ở Nhật bản (Japanese Fifth Generation Project to develop intelligent computers)
(intelli Corp)
tool (NASA)
Bảng 1.1 Sự phát triển của hệ chuyên gia
1.1.4 Các lĩnh vực ứng dụng của hệ chuyên gia
Hệ chuyên gia thể hiện thể hiện được tầm quan trong của nó trong các lĩnh vực của đời sống Sau đây là một số các ứng dụng quan trọng nhất của hệ chuyên gia:
Trang 1810
Truyền đạt
Dạy học kiểu thong minh sao cho sinh viên có thể
hỏi vì sao, như thế nào và cái gì nếu giống như hỏi
một người thầy giáo Giải thích
Giải thích những dữ liệu thu nhận được
môn để đánh giá hiệu quả Lập kế hoạch
Lập kế hoạch sản xuất theo yêu cầu
đoán, kiểm tra, lập kế hoạch, dự đoán và chữa trị
Bảng 1.2 Các lĩnh vực ứng dụng của hệ chuyên gia
1.1.5 Kiến trúc tổng quát của các hệ chuyên gia
a) Các thành phần cơ bản của một hệ chuyên gia
Một hệ chuyên gia kiểu mẫu gồm bảy thành phần cơ bản như sau:
Trang 1911
Hình 1.3 Những thành phần cơ bản của một hệ chuyên gia
· Cơ sở tri thức: Gồm các phần tử (hay đơn vị) tri thức, thông thường được gọi là luật, được tổ chức như một cơ sở dữ liệu
· Máy duy diễn: Công cụ (chương trình, hay bộ xử lý) tạo ra sự suy luận
bằng cách quyết định xem những luật nào sẽ làm thỏa mãn các sự kiện, các đối tượng, chọn ưu tiên các luật thỏa mãn, thực hiện các luật có tính ưu tiên cao nhất
· Lịch công việc: Danh sách các luật ưu tiên do máy suy diễn tạo ra thoả mãn
các sự kiện, các đối tượng có mặt trong bộ nhớ làm việc
dùng
Bộ thu nạp
tri thức
Giao diện người, máy
Trang 20· Khả năng thu nhận tri thức: Cho phép người sử dụng bổ sung các tri thức
vào hệ thống một cách tự động thay vì tiếp nhận tri thức bằng cách mã hoá tri thức một cách tường minh Khả năng thu nhận tri thức là yếu tố mặc nhiên của nhiều hệ chuyên gia
· Giao diện người sử dụng: Là nơi người sử dụng và hệ chuyên gia trao đổi
Hình 1.4 Quan hệ giữa máy suy diễn và cơ sở tri thức b) Một số mô hình kiến trúc của hệ chuyên gia
Có nhiều mô hình kiến trúc hệ chuyên gia theo các tác giả khác nhau Sau đây là một số mô hình:
Máy suy
diễn
Cơ sở tri thức Tri thức thực hành Tri thức phán đoán
Trang 21Dữ liệu
Cấu trúc máy
suy diễn
Máy suy diễn
Tri thức mới Người sử dụng yêu cầu
Trang 22dữ liệu kiểm thử sẽ xuất phát từ đặc tả
1.2.1 Yêu cầu của quá trình kiểm thử bằng hộp đen
Quá trình kiểm thử bằng hộp đen cần giải quyết được một số lỗi trong hệ thống như sau:
· Các chức năng thiếu hoặc không đúng
· Các giao diện lỗi
· Các lỗi cấu trúc dữ liệu trong việc truy cập cơ sở dữ liệu bên ngoài
sử dụng
Khả năng thích nghi
Bộ nhớ làm việc
Sở hữu tri thức
Diễn dịch
Cơ sở tri thức
Trang 2315
1.2.2 Phân loại kiểm thử bằng hộp đen
Kiểm thử hộp đen áp dụng cho các giai đoạn sau của kiểm thử Kiểm thử hộp đen có một số loại của kiểm thử như sau:
a) Kiểm thử phân hoạch lớp giá trị tương đương
Khái niệm: Phân lớp tương đương là một phương pháp kiểm thử hộp đen chia
miền đầu vào của chương trình thành các lớp dữ liệu tương đương nhau Từ
đó, suy dẫn ra các ca kiểm thử Phương pháp này cố gắng xác định ra một ca kiểm thử mà làm lộ ra một lớp lỗi, làm giảm các trường hợp kiểm thử phải được xác định
Cách thực hiện:
· Bước 1: Xác định các lớp tương đương
· Bước 2: Tạo ra một test case ứng với mỗi lớp tương đương
Với kiểm thử hộp đen bằng lớp tương đương thì dữ liệu đầu vào và yêu cầu kiểm thử rất quan trọng Với đầu vào và yêu cầu kiểm thử khác nhau sẽ sinh ra các lớp tương đương khác nhau Việc kiểm tra các lớp tương đương được sinh ra sẽ kết luận các lớp dữ liệu đầu vào là hợp lệ hay không hợp lệ Thông thường, với các dữ liệu đầu vào không hợp lệ sẽ có tỉ lệ sinh ra lỗi nhiều hơn Từ đó, với dữ liệu đầu vào xác định sẽ có các khả năng xảy ra như sau:
· Nếu đầu vào định rõ giá trị của một mảng thì có một kiểu lớp cho các giá trị hợp lệ và một lớp ở bên trong nó
· Nếu điều kiện đầu vào chỉ là một tập giá trị thì chia vùng tương đương thành hai tình huống là một lớp tương đương hợp lệ và một lớp tương đương không hợp lệ
· Nếu điều kiện đầu vào xác định là một kiểu đúng/sai thì chia vùng tương đương thành hai tình huống là một lớp hợp lệ và một lớp không hợp lệ
Trang 2416
Ứng dụng và hạn chế
· Kiểm thử sẽ làm giảm đáng kể số lượng test case phải được tạo ra để thực hiện, nó phù hợp với các hệ thống có nhiều dữ liệu đầu vào và nhận giá trị trong các miền hay các tập
· Kiểm thử ứng dụng ở mức khử đơn vị, tích hợp hệ thống, kiểm thử chấp nhận tất cả các yêu cầu của nó là đầu vào hay đầu ra mà có thể được phân chia dựa theo yêu cầu của hệ thống
b) Kiểm thử biến đổi trạng thái
Khái niệm: Trạng thái là một điều kiện mà trong đó hệ thống phải chờ đợi một
hay nhiều sự kiện Các trạng thái ghi nhớ các sự kiện đầu vào và hệ thống nhận được trong quá khứ, và những phản hồi của hệ thống đối với các sự kiện
kế tiếp theo nếu chúng xảy ra Các sự kiện này có thể gây ra sự biến đổi các trạng thái hoặc các hành động phát sinh Trạng thái nhìn chung được biểu diễn bằng một hay nhiều biến trong hệ thống
· Sự chuyển tiếp: Thể hiện sự biến đổi từ trạng thái này sang trạng thái khác
· Biểu đồ trạng thái biểu diễn một thực thể cụ thể, nó mô tả hệ thống quy tắc
và các tương tác phức tạp chỉ trong những kí hiệu nhỏ gọn, các bảng trạng thái bao gồm 4 cột: Trạng thái, sự kiện, hành động và trạng thái tiếp theo
· Sự kiện là cái gì đó tác động làm hệ thống biến đổi trạng thái
· Hành động là hành động được bắt đầu khi có sự biến đổi trạng thái
Ưu điểm của bảng chuyển trạng thái
· Liệt kê tất cả các kết nối của trạng thái có thể, không chỉ những kết nối hợp
Trang 2517
Nhược điểm
· Bảng có thể mở rộng rất nhanh nếu hệ thống có nhiều sự kiện và trạng thái
mà hầu hết các ô trong bảng đều bỏ trống (lãng phí)
· Tạo các test case
ü Tạo một tập các test case mà tất cả các trạng thái được đi qua ít nhất một lần, đây là test mức yếu
ü Tạo một tập các test case mà tất cả các sự kiện đều được kích hoạt ít nhất một lần, đây cũng là test case mức yếu
ü Tạo một các test case mà tất cả các lộ trình đều được thực hiện ít nhất một lần, mức độ test này được quan tâm hơn so với mức độ bao phủ của nó tuy nhiên không dễ thực hiện
ü Tạo một tập các test case mà tất cả các sự kiện chuyển đổi đều được kiểm tra ít nhất t một lần, test mức độ này cho ta một mức test bao phủ nhưng không sinh ra số lượng test lớn
Cách thực hiện:
· Bước 1: Soạn thảo bảng trạng thái– sự kiện
· Bước2: Soạn thảo cây chuyển tiếp
· Bước 3: Soạn thảo tập lệnh thử nghiệm kiểm tra các trường hợp hợp lệ
· Bước 4: Soạn thảo tập lệnh thử nghiệm kiểm tra các trường hợp không hợp
lệ
· Bước 5: Soạn thảo tập lệnh thử nghiệm bảo vệ
ü Nếu sự bảo vệ gồm một điều kiện mà một giá trị biên sau đó sự bảo vệ là môt đối tượng phân tích giá trị biên
ü Nếu sự bảo vệ gồm một điều kiện phức tạp sau đó sự bảo vệ này được bao phủ bởi nguyên tắc bao phủ điều kiện/quy định đã được sửa đổi
Ứng dụng và hạn chế
· Giúp ta nhận dạng trạng thái, sự kiện, sự chuyển tiếp cần được kiểm thử
Trang 2618
· Biểu đồ không hữu dụng trong những trường hợp hệ thống không có trạng thái hay không cần phải đáp trả các sự kiện thời gian thực từ bên ngoài hệ thống
c) Kiểm thử giá trị biên
Khái niệm: Là kiểm thử dựa trên giá trị biên của vùng dữ liệu hợp lệ, việc
kiểm thử này nhằm mục đích hệ thống sẽ không chấp nhận các dữ liệu nằm bên ngoài dữ liệu hợp lệ, và chỉ chấp nhận các dữ liệu nằm bên trong (bao gồm cả biên)
Cách thực hiện:
· Bước 1: Xác định các lớp tương ứng
· Bước 2: Xác định biên tương ứng với mỗi lớp tương đương
· Bươc 3: Tạo các test case cho các giá trị biên bằng cách chọn một điểm trên biên, một điểm ngay dưới biên và một điểm ngay trên biên
Ứng dụng và hạn chế
· Kiểm thử giá trị biên có thể làm giảm đáng kể số lượng các test case mà đáng lẽ phải được tạo ra và thực hiện, nó phù hợp nhất với các hệ thống mà nhiều dữ liệu đầu vào nhận giá trị trong các miền hay các tập hợp
· Kiểm thử giá trị biên áp dụng ở kiểm thử mức đơn vị , tích hợp hệ thống và chấp nhận, tất cả các yêu cầu của nó là tất cả các đầu vào có thể phân chia và các biên có thể được xác định dựa vào yêu cầu hệ thống
d) Kiểm thử bảng quyết định
Khái niệm: Là kiểu kiểm thử dựa trên bảng quyết định Thông qua bảng quyết
định để xây dựng các trường hợp cần kiểm tra
Các bước thực hiện
· Bước 1: Lập bảng quyết định
· Bước 2: Xây dựng bảng testcase
Trang 2719
Ứng dụng và hạn chế
· Áp dụng cho hệ thống kết hợp nhiều điều kiện phức tạp
· Đưa ra các test case tương ứng
· Tốn nhiều thời gian
e) Kiểm thử phân tích miền
Khái niệm: Phân tích miền là một kỹ thuật có thể được sử dụng để xác định
các ca kiểm thử hiệu quả khi có thể nhiều biến số Nó xây dựng tổng quát trên
kỹ thuật phân lớp tương đương và kiểm thử giá trị biên với n kích thước đồng thời Giống như những kỹ thuật trên, tìm kiếm các vị trí mà các biên đã được xác định hoặc thực hiện không đúng
Ứng dụng và han chế: Phân miền được áp dụng khi có nhiều biến (đầu vào là
nhiều trường) nên được kiểm thử với nhau sao cho hiệu quả hoặc các biến tương tác hợp lý với nhau Kỹ thuật phù hợp nhất khi giá trị các biến là số, giá trị của các biến có kiểu logic, xâu…
1.3 Cơ sở dữ liệu
1.3.1 Một số khái niệm cơ bản
1.3.1.1 Định nghĩa cơ sở dữ liệu
Cơ sở dữ liệu (CSDL) là một hệ thống các thông tin có cấu trúc được lưu trữ trên các thiết bị như băng từ, đĩa từ,… để có thể thoả mãn yêu cầu khai thác đồng thời của nhiều người sử dụng hay nhiều chương trình ứng dụng với các mục đích khác nhau
CSDL gắn liền với đại số, logic toán và một số lĩnh vực khác
1.3.1.2.Ưu điểm của cơ sở dữ liệu
· Giảm sự trùng lặp thông tin xuống mức thấp nhất và do đó bảo đảm được tính nhất quán và toàn vẹn dữ liệu
· Đảm bảo dữ liệu có thể truy xuất theo nhiều cách khác nhau
Trang 2820
· Khả năng chia sẻ thông tin cho nhiều người sử dụng và nhiều ứng dụng khác nhau
1.3.1.3 Những vấn đề mà CSDL cần phải giải quyết
· Tính chủ quyền của dữ liệu: Tính chủ quyền của dữ liệu được thể hiện
ở phương diện an toàn dữ liệu, khả năng biểu diễn các mối liên hệ ngữ nghĩa của dữ liệu và tính chính xác của dữ liệu Điều này có nghĩa là người khai thác CSDL phải có nhiệm vụ cập nhật các thông tin mới nhất của CSDL
· Tính bảo mật và quyền khai thác thông tin của người sử dụng: Do có nhiều
người cùng khai thác CSDL một cách đồng thời nên cần phải có một cơ chế bảo mật và phân quyền khai thác CSDL
· Tranh chấp dữ liệu: Do có nhiều người cùng được phép truy cập và cùng
một tài nguyên dữ liệu của CSDL với những mục đích khác nhau Như vậy, CSDL cần phải có cơ chế ưu tiên truy nhập dữ liệu cũng như cơ chế giải quyết tình trạng khóa chết trong quá trình khai thác cạnh tranh Cơ chế ưu tiên
có thể được thực hiện dựa trên:
ü Cấp quyền ưu tiên cho người khai thác CSDL
ü Thời điểm truy nhập
ü Cơ chế lập lịch truy xuất hay cơ chế khóa
ü
· Đảm bảo dữ liệu khi có sự cố: Một CSDL cần có một cơ chế khôi phục dữ
liệu khi có các sự cố bất ngờ xảy ra để đảm bảo CSDL luôn ổn định
Trang 2921
· Những người quản trị CSDL, đó là những người hiểu biết về tin học, về các
hệ quản trị CSDL và hệ thống máy tính Họ là người tổ chức CSDL, do đó họ phải nắm rõ các vấn đề kỹ thuật về CSDL để có thể phục hồi CSDL khi có sự
cố Họ là những người cấp quyền hạn khai thác CSDL, do vậy họ có thể giải quyết được các vấn đề tranh chấp dữ liệu nếu có
1.3.1.5 Hệ quản trị cơ sở dữ liệu
Để giải quyết tốt những vấn đề mà cách tổ chức CSDL đặt ra như đã nói ở trên, cần thiết phải có những phần mềm chuyên dùng để khai thác chúng Những phần mềm này được gọi là các hệ quản trị CSDL Các hệ quản trị CSDL có nhiệm vụ hỗ trợ cho các nhà phân tích thiết kế CSDL cũng như những người khai thác CSDL Hiện nay trên thị trường phần mềm đã có những hệ quản trị CSDL hỗ trợ được nhiều tiện ích như: MS Access, Visual Foxpro, SQL Server, Oracle, …
Mỗi hệ quản trị CSDL đều được cài đặt dựa trên một mô hình dữ liệu
cụ thể Dù là dựa trên mô hình dữ liệu nào, một hệ quản trị CSDL cũng phải hội đủ các yếu tố sau:
· Ngôn ngữ giao tiếp giữa người sử dụng và CSDL:
ü Ngôn ngữ mô tả dữ liệu: Để cho phép khai báo cấu trúc của
CSDL, khai báo các mối liên hệ của dữ liệu và các quy tắc quản lý áp đặt lên các dữ liệu đó
ü Ngôn ngữ thao tác dữ liệu: Cho phép người sử dụng có thể cập nhật dữ
liệu (thêm/sửa/xoá)
ü Ngôn ngữ truy vấn dữ liệu: Cho phép người khai thác sử dụng để truy vấn
các thông tin cần thiết trong CSDL
ü Ngôn ngữ quản lý dữ liệu: Cho phép những người quản trị hệ thống
thay đổi cấu trúc của các bảng dữ liệu, khai báo bảo mật thông tin và cấp quyền hạn khai thác CSDL cho người sử dụng.,…
Trang 3022
· Từ điển dữ liệu: Dùng để mô tả các ánh xạ liên kết, ghi nhận các thành
phần cấu trúc của CSDL, các chương trình ứng dụng, mật mã, quyền hạn sử dụng,…
· Cơ chế giải quyết vấn đề tranh chấp dữ liệu: Mỗi hệ quản trị CSDL cũng
có thể cài đặt một cơ chế riêng để giải quyết các vấn đề này Một số biện pháp sau đây thường được sử dụng: thứ nhất: cấp quyền ưu tiên cho từng người sử dụng; thứ hai: đánh dấu yêu cầu truy xuất dữ liệu, phân chia thời gian, người nào có yêu cầu trước thì có quyền truy xuất dữ liệu trước,…
· Hệ quản trị CSDL cũng phải có cơ chế sao lưu (backup) và phục hồi (restore) dữ liệu khi có sự cố xảy ra
Điều này có thể thực hiện sau một thời gian nhất định hệ quản trị CSDL sẽ tự động tạo ra một bản sao CSDL, cách này hơi tốn kém, nhất là đối với CSDL lớn
· Hệ quản trị CSDL phải cung cấp một giao diện thân thiện, dễ sử dụng
1.3.1.6 Các ứng dụng của cơ sở dữ liệu
Hiện nay, hầu như CSDL gắn liền với mọi ứng dụng của tin học; chẳng hạn như việc quản lý hệ thống thông tin trong các cơ quan nhà nước, việc lưu trữ và xử lý thông tin trong các doanh nghiệp, trong các lĩnh vực nghiên cứu khoa học, trong công tác giảng dạy, cũng như trong việc tổ chức thông tin đa phương tiện,…
1.3.2 Các mô hình cơ sở dữ liệu
Mô hình dữ liệu là sự trừu tượng hoá môi trường thực Mỗi loại mô hình dữ liệu đặc trưng cho một cách tiếp cận dữ liệu khác nhau của những nhà phân tích thiết kế CSDL Mỗi loại mô hình dữ liệu đều có những ưu điểm và những mặt hạn chế của nó, nhưng vẫn có những mô hình dữ liệu nổi trội và được nhiều người quan tâm nghiên cứu Phần tiếp theo sẽ trình bày một số mô hình cơ sở dữ liệu cơ bản
Trang 31Một thực thể : Là một “sự vật” hoặc “đối tượng” mà nó tồn tại và có
thể phân biệt được với các đối tượng khác Ví dụ như một nhân viên trong một tổ chức là một thực thể
Ký hiệu: hình oval với tên gọi, có đường nối với thực thể
Hình 1.9 Ký hiệu của thuộc tính Khi phân tích một thuộc tính, thông thường cần xét đến kiểu dữ liệu và miền giá trị tương ứng của thuộc tính đó Chẳng hạn các thuộc tính Mã nhân
NhanVien
Trang 3224
viên (MANV), Họ tên (HoTen), Ðịa chỉ (DiaChi) là những chuỗi ký tự phản ánh những thông tin trên về nhân viên; Đơn giá là số nguyên dương,…
Có một số loại thuộc tính sau:
• Thuộc tính đơn, kết hợp: Thuộc tính đơn là thuộc tính không thể chia ra thành những phần con nhỏ hơn Còn thuộc tính kết hợp thì có thể chia ra thành những phần con (tức là thành những thuộc tính khác) Ví dụ tên nhân viên có thể cấu trúc như là thuộc tính kết hợp bao gồm tên, chữ lót, và họ Thuộc tính kết hợp có thể xuất hiện theo sự phân cấp Ví dụ thuộc tính địa chỉ nhân viên có các thuộc tính thành phần là số nhà, đường, thành phố, tỉnh
• Thuộc tính rỗng Một giá rỗng (null value) được dùng đến khi một thực thể không có giá trị đối với một thuộc tính Ví dụ một nhân viên nào đó không có người trong gia đình thì giá trị của thuộc tính tên người trong gia đình đối với nhân viên đó phải là rỗng Giá trị rỗng cũng có thể được dùng để chỉ ra rằng giá trị của thuộc tính là chưa biết Một giá trị chưa biết có thể hoặc là giá trị tồn tại nhưng chúng ta không có thông tin đó, hoặc là không biết được (không biết giá trị thực sự có tồn tại hay không)
• Thuộc tính suy ra: Giá trị của loại thuộc tính này có thể được suy ra từ các thuộc tính hoặc thực thể liên hệ khác Ví dụ tập thực thể khách hàng có thuộc tính số lượng tài khoản vay cho biết bao nhiêu tài khoản vay mà khách hàng
có từ ngân hàng Chúng ta có thể suy ra giá trị của thuộc tính này bằng cách đếm số lượng các thực thể tài khoản vay được kết hợp với khách hàng Một
ví dụ khác về tập thực thể nhân viên có các thuộc tính ngày bắt đầu, cho biết ngày bắt đầu làm việc tại
1.3.3.3 Mối kết hợp
Quan hệ giữa các tập thực thể được gọi là mối kết hợp Mỗi mối kết hợp cũng được đặt tên thể hiện mối kết hợp, chẳng hạn như mỗi hóa đơn chỉ bán cho một khách hàng, một khách hàng có thể mua hàng nhiều lần (nhiều hóa đơn)