Từ các dữ liệu thu thập được qua rất nhiều các quá trình phát triển dự án, qua một quá trình lựa chọn, phân loại, xử lí, phân tích trở thành một tập hợp các tri thức có thé chia sé và sử
Trang 1ĐẠI HỌC QUỐC GIA TP HCMTRƯỜNG ĐẠI HỌC BÁCH KHOA
IP.HCM
HO XUAN CAM TRANG
NGHIEN CUU VA PHAT TRIEN MOT CO SO TRI THUC
HO TRO NANG CAO CHAT LUONG HOAT DONG SAN
XUAT PHAN MEM
Chuyên ngành: Hệ thống thông tin quan líMã số chuyên ngành: 60 34 48
LUẬN VÁN THẠC SĨ
TP HO CHI MINH, thang 06 năm 2013
Trang 2CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠITRUONG ĐẠI HỌC BACH KHOA —DHQG -HCM
Cán bộ hướng dẫn khoa học : TS.Nguyén Chánh
Thảnh -. Cán bộ chấm nhận Xét Ï : - sEsE E121 EESESESE SE EeEgEvEeEserkrxesCán bộ chấm nhận Xét 2 : - - + E E912 E9E 989128 E5 E8 vs gkrxei
Luận văn thạc sĩ được bảo vệ tại Trường Dai học Bách Khoa, DHQG Tp HCM
Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên
ngành sau khi luận văn đãđược sửa chữa (nêu có).
CHỦ TỊCH HỘI ĐÔNG TRƯỞNG KHOA
Trang 3ĐẠI HỌC QUỐC GIA TP.HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆTTRƯỜNG ĐẠI HỌC BÁCH NAM Độc lập - Tự do - Hạnh phúc
KHOA
NHIEM VỤ LUẬN VĂN THẠC SĨHọ tên học viên: Hồ Xuân Cẩm TrangE sec eeeveeesee MSHV:11320984
Ngày, tháng, năm sinh: I4/05/SŠ cccĂSsseeesss Nơi sinh: Kon Tum
Chuyên ngành: Quản Lý Hệ Thống Thông Tĩn Mã số : 60 3448
I TEN DE TAI: Nghiên cứu và phat triển một cơ sở tri thức hỗ trợ hoạt động sản xuấtphần mềm
Il NHIEM VỤ VA NOI DUNG
> Hình thành một co sở tri thức về các lỗi phat trién trong quá trình sản xuấtphan mém bao gồm các thông tin về dạng lỗi, nguyên nhân lỗi và cách phòng
tránh.
> Xây dựng một cơ chế hỗ trợ người dùng truy cập cơ sở tri thức
> Đánh giá mức độ hỗ trợ của cơ sở tri thức đối với việc nâng cao chất lượng của
hoạt động sản xuất phan mém
Ii NGAY GIAO NHIEM VU: 21/01/2013IV NGAY HOAN THANH NHIEM VU: 21/06/2013V CAN BO HUONG DAN : TS Nguyễn Chánh Thanh
Tp HCM, ngày thang năm 20
CAN BO HUONG DAN CHU NHIEM BO MON DAO TAO
TRUONG KHOA
Trang 4LƠI CAM ƠN
Trước tiên, tôi xin được gửi lời cảm ơn đến quý Thay Cô của trường Dai học Bách khoaTP HCM đã trang bị cho tôi những kiến thức quý báu trong thời gian tôi học cao họcngành Hệ thong Thông tin Quản lý
Xin đặc biệt cảm ơn TS Nguyễn Chánh Thành, người hướng dẫn khoa học của đề tài.Thây đã rất tận tình hướng dẫn và định hướng cho tôi trong việc nghiên cứu và hoànthành đề tài này
Cuối cùng, tôi xin gửi lời cảm ơn đến tất cả những người bạn, những người đồngnghiệp đã tận tình hỗ trợ và giúp đỡ, góp ý cho tôi trong suốt thời gian học tập và nguyêncứu dé tài
H6 Xuân Cam Trang
Trang 5TOM TAT LUAN VAN THAC Si
Luận văn sẽ trình bay việc nghiên cứu va phát triển một cơ sở tri thức hỗ trợ nâng caochất lượng sản xuất phần mềm Thông qua kết qua phân tích nhu cau của các đối tượng làchính các chuyên gia hoạt động trong lĩnh vực này, luận vănsẽ phát triển một cơ sở trithức về các lỗi phát sinh trong quá trình sản xuất phần mềm Luận văn sẽ tập trung xâydựng một ontology về lỗi phan mềm và hiện thực nó băng cách thu thập dữ liệu về lỗiphan mềm từ 5 dự án khác nhau có qui mô khá lớn ở một số công ty phần mềm, sau đóphân loại dựa trên phương pháp ODC, từ đó tìm ra nguyên nhân và đề nghị một số biệnpháp phòng tránh Ngoài ra luận văn cũng xâydựng được một cơ chế hỗ trợ người dùngtruy cập và sử dụng cơ sở tri thức vàtrình bày một số cácphương pháp thực nghiệm nhằmđánh giá mức độ đáp ứng của cơ sở tri thức trong việc hỗ trợ các lập trình viên nói riêng
cũng như trong việc giảm chi phí và nâng cao chât lượng phân mềm nói chung.Từ khoá: Defect, Defect Analysis, Root Cause Analysis, Prevent Action, ODC
Trang 6Based on the fact that the cost of finding and correcting defect represents one of the mostexpensive software development activites, this study will present a research andimplementation of a knowledge base about defect in order to improve the quality ofsoftware development This study will focus on developing a defect ontology, thencreates a defect knowledge base by finding and analysis the defect data that occurred inthe software development process for five big projects and aims at classifying variousdefect using Orthogonal Defect Classification (ODC), finding root cause of defects andsuggest some prevention ideas The study also built a web application for the defectknowledge base can be accessed and used Then by conducting some experiments, it alsoshowcase on how the knowledge base helps the developers in their work in particular orto improve the software development quality in general.
Keywords: Defect, Defect Analysis, Root Cause Analysis, Prevent Action, ODC
Trang 7LỜI CAM ĐOAN
Tôi xin cam đoan rằng toàn bộ những nội dung và số liệu trong luận văn này do tôi tự
nghiên cứu, khảo sát và thực hiện Những dữ liệu được thu thập và xử lí một cách kháchquan và trung thực.
H6 Xuân Cam Trang
Trang 8DANH MUC BANG .-5 5-5 9990.000808 sesese ÌxDANH MỤC CÁC THUAT NGỮ VÀ TU VIET 'TÁẮTT - 5 sss s2 sesss XCHƯƠNG 1 /00/019)00/.9077 1
l.[ GiGi thiệu cece cccscescscsescscsscscscsssscsssvsscscssescssssssesvssssesvssssssvsssstevsssesstaneeeans |IS 0i 0 ẽadd.ẢẦ 3
1.3 Đối tượng nghiên COU - c6 522239 SEEEE E313 1111 211111111 3
14 Phương pháp nghiÊn CỨU - c0 415 Cac công trình nghiên cứu liên Quan - - 2555520010111 1 999 31 1 ng 4CHƯƠNG 2 CƠ SỞ LY THUYET 5° 5-5< 5° s2 se Ss£ssEseEseseesseeeseesee 9
2.1 Cơ sở lí thuyết Về 16: ec eecccccccccssssessescsesscsssesscsesesscsescscsessscsesesessssesecssseeseseeeees 9
2.1.1 LI Ă 2.2.2.2 ThS THỰ 151511111 111111011101 1101011101010 HH1 010101 92.1.2 Mô hình phân loại lỗi OIDC - ¿5 +52 SE+E+EESE£E£EE£E£EEEEEEEEEEEEEEErErkrkee 9
2.1.3 Kiểu lỗi (Defect TYJ€): -c- 5c SE E3 1212111111112 1111111211111 11.1 11
2.1.4 Kích hoạt lỗi (Defect TTi@&9€T) -c- tt t3 3 32323131111 1111 111151111111 e6 13
2.1.5 Tác động của lỗi (Defect Impact) eccccccccscscscscsssssssssssssssssssssesesssessssssssessesesenss 13
2.2 Tri thức va CO SỞ tri tHỨC - 5< 2c 2211100118010 1808 118 1v ng cv cv, 142.2.1 Tri thỨC -c-ScSt nTh TH T1 1511111211 111111 111111111111 11 1111011111 ke 142.2.2 Đặc tính của tri thỨC: c1 1n S101 011 111110 111v 1n x56 17
Trang 9VỊ2.2.3 Quản If tri thỨC c0 093001010 re 172.24 Quản lí tri thức trong lĩnh vực san xuất phan mểm - +s+ssscsxsxzecxz 182.2.5 CƠ SỞ frI thỨC cọ nọ 19
2.3 Giới thiệu VỀ ONCOLOGY weececccccescssssesssesessesssesscsesessesescsesesesscsessescsssesessssesecseseeeeees 21
23.1 Khái niệm Lọ re 212.3.2 Tại sao phải xây dung OnfOlOBV? ng 222.3.3 Phương pháp xây dựng Ontology < SH ke 242.34 OWL— Web Ontology Language - - - - ch 26
CHƯƠNG 3 PHƯƠNG PHÁP NGHIÊN CỨU -s°-cs°sscsscess 28
3.1 Các bước thực hiỆn -G G100 28
3.1.1 Phân tích nhu cầu s-+c++xt+rtEEEEkttrttrrtrrrrirrirrrirrrrrirrrrrrerr 28
3.1.2 Thu thập dữ eu -G G0990 00H 303.1.3 Phân tích dữ liỆU G0900 313.14 Xây dung OnfỌOBV G0 nọ và 32
3.1.5 Xây dựng cơ chế hỗ trợ truy cập cơ SỞ tri thỨC «s54 32“o9 33CHƯƠNG 4 XÂY DUNG CƠ SỞ TRI THỨC 2-2 5-2 s2 ses<ess se 354.1 Kiến trúc của cơ sở tri thỨC -c+c+ct+rxtsrerrttrkrtrtrrrrrrrrirrrrrrrrrrrrrrrrire 35
ALL OntỌOĐV Họ nọ kh 35
A.1.2 Từ Ontology đến cơ sở tri thie ¿25 + + 2 +E+E£E+E£EEEE£E£EEEeEErErkrkrersee Al4.1.2.1 Lược đồ cơ sở dữ liệ -G- + xxx E112 SE ggrvgxseree Al4.1.2.2 Tạo nên các thực thể của OntolOgyy - + 555 2c+cscscxsecrsceee 424.2 Ứng dụng (demo) + c5 E2 EEEEE15E5E5E113115115111111111111 1111111111111 tk 43CHƯƠNG 5 THỰC NGHIỆM VA ĐÁNH GIA <-< << s< se seseseses 455.1 Kết quả thực nghiệm - ¿6 S2 SE SE E915 E521 111515111511 1111111 11111111 T 45
Trang 10Vil5.I.I Thu thập dữ liỆu G Ăn re 455.1.2 Phân tích và đánh giá (<< 19001011 ng re 47
5.1.3 Tổng quát một số nội dung của cơ sở tri thỨC - 25 + 2 s+s+ssscse2 565.2 Hậu kiỂm Gv 11191 111 51111101111 0101010111 11g10 T1 ng: 63
5.2.1 Đánh giá mức độ đáp ứng và độ tin cậy của cơ sở tri thức 63
5.2.2 Bước cải tiễến cv th HH reo 68CHƯƠNG 6 KET LUẬN VÀ HƯỚNG PHAT TRIEN 5s 69DANH MỤC CÁC TÀI LIEU THAM KHẢO - 5-2 5s 2 sssSssesseses 71
Trang 11DANH MUC HINH ANH
Hinh 2-1: M6 hinh m6 ta su phan bồ của các lỗi qua các giai đoạn phát triển của dự án [7]
¬ 10Hình 2-2 : Chu kì hình thành của tri tHỨC - << <1 1119999310111 9 ng ng ke 15Hình 2-3: Mơ hình dữ liệu, thơng tin va tri thu - G55 x1 ng ke 16
Hình 2-4 So đồ thé hiện mục dich của việc xây dung ontology c.ccccccsessesesesssseeseseseeeees 24Hình 3-1: Sơ đồ Pareto biểu diễn lí do đến trễ của nhân viên văn phịng 34Hình 4-1 Mơ tả ontology về lỗi phần mm ¿225252222 £E‡E+E£E+EvEererreeersred 36
Hình 4-2 Defect Type COnfOlÒV - cọ 37Hình 4-3 Root Cause ()nfỌOĐV - c0 nọ 38Hình 4-4 Defect Trigger COnfOlÒV cọ cv kh 39Hình 4-5: Defect Impact CQntỌÒyV cọ nh 41
Hình 4-6 Lược đồ cơ sở dit liệU - - =6 9191191119191 1 118121 3 11111 erxrrei 42Hình 4-7 Ứng dụng hỗ trợ tìm kiếm lỗi -. + ¿2 S2 SE SE£E£E£EEEE£E£EEEEEEEEEEEkrkrrrreee 43Hình 4-8 Ứng dụng hỗ trợ truy cập thơng tin chỉ tiết về lỗi 5- + 52 552c+cscs2 4Hình 5-1: Sơ đỗ Paterio về phân loại lỗi qua các giai đoạn phát triển của dự án 51Hình 5-2: Sơ đỗ Pareto về phân loại lỗi theo Defect Type c.cccscccscssssesessssessesessseeeseeeees 53Hình 5-3: Sơ đỗ Paterio về phân loại lỗi theo Defect Impact - 225552552 55Hình 5-4: Lược đồ nguyên nhân hệ quả của lỗi phần MEM - - 255252552 57
Hình 5-5: Tỉ lệ đánh giá của lập trình viên cho 33/100 lỗi tìm được từ cơng cụ truy cập 65
Hình 5-6: Đánh giá chất lượng của thơng tin trên 200 mẫu thử . 5- 552552 66Hình 5-7: Đánh giá mức độ đáp ứng đối với nhu cầu sử dung thực té 67
Trang 12DANH MỤC BANG
Bang 5-1:Bang 5-2:Bang 5-3:Bang 5-4:Bang 5-5:Bang 5-6:Bang 5-7:Bang 5-8:
Thong tin vé 16i thu thập được qua các dự AN «s2 45Thống kê các mỗi quan hệ ngữ nghĩa của lớp Defect + 55552 47Phân loại lỗi phần mềm qua các giai đoạn của 5 dự án đưa vào nghiên cứu 50Phân bố lỗi theo Defect Type - ¿- 5522222293221 E9E212111 211121 cxee 52Phân bố lỗi theo Defect Impact - + 2 525222 SE2E+EEE£EErkrvererererreee 54Phân bố lỗi theo Defect Trigger c.c.cccccsessesssessesesessssessssesesssesesseseseseseseessseses 55Nguyên nhân va cách khắc phục lỗi phần mềm - 222 2 2552: 58Hau kiém str dụng công cụ truy cập cơ sở tri thỨC <s «se 64
Trang 13DANH MỤC CÁC THUAT NGỮ VA TỪ VIET TAT
Thuật ngữ (viết tắt) Giải thíchOrthogonal Defect ODC là phương pháp do IBM phát triển vào những nămClassification (ODC) | 1990s bởi Ram Chillarege để phân loại và phân tích lỗi
trong tat cả các giai đoạn phat triên của một dự án phânmém.
World Wide Web Tổ chức tiêu chuẩn quốc tế về web trên internet
HyperText Markup | Một ngôn ngữ đánh dau được thiết kế ra dé tạo nên các trang
Language (HTML) | web với các mâu thông tin được trình bày trên World Wide
Web.
eXtensible Markup | Ngôn ngữ đánh dấu với mục đích chung do W3C dé nghị, để
Language (XML) tạo ra các ngôn ngữ đánh dâu khác và có kha năng mô tả
nhiều loại dữ liệu khác nhau Mục đích chính của XML làđơn giản hóa việc chia sẻ dữ liệu giữa các hệ thông khácnhau, đặc biệt là các hệ thông được Kết nôi với Internet.
Web Ontologoy Một lớp ngôn ngữ biểu diễn tri thức và được sử dụng cho
Language (OWL) việc định nghĩa và xây dựng các ontology.
Metadata Siêu đữ liệu: dữ liệu dùng để mô tả dữ liệu, hỗ trợ trong việc
tìm kiêm và suy diễn tri thức trên dữ liệu.
Phases/Iterations Cac giai doan phat triển khác nhau của một dự án phan
Trang 14Thuật ngữ (viết tắt) Giải thích
Implementation Giai doan thuc thi.
Testing Giai đoạn kiểm thử chương trình.Documenfation Giai đoạn viết tài liệu hướng dẫn sử dụng cho khách hàng
Severity Mức độ nghiêm trong của lỗi phan mềm
Cause CategoryPhân loại lỗi phân mém dựa trên nơi xuat phát/nguyên nhân
của nó.
Root causeNguyên nhân dan đền lôi phan mém.
Working EffortCông sức bỏ ra dé khăc phục sự cô do lôi phan mêm gay ra
được đo lường băng sô giờ bỏ ra đê sửa chữa chúng.Fixing CostGia tri bỏ ra dé sửa chữa lôi phan mém.
CostWeightage Trọng số của mỗi lỗi phan mềm được tính toán dựa trên
trọng sô của Fixing Cost.
Severity Weightage Trọng số của mỗi lỗi phan mềm được tính toán dựa trên
trọng số cua Severity.
Final Weightage Trọng số tổng cộng của mỗi lỗi phan mềm.Voting Đánh giá của người sử dụng đối với mỗi tri thức.View Số lượt truy cập của người sử dụng
ImportQua trình đưa dữ liệu vào cơ sở tri thức.
Trang 15hiện nay.
Nhu chúng ta đã biết, dé sản xuất được một phan mém thì phải trải qua một qui trìnhphức tạp bao gồm rất nhiều giai đoạn (phases/iterations) và cần sự tham gia của rất nhiềungười Ở mỗi một giai đoạn đều yêu câu phải có các chuyên gia, là những người có nhiềukinh nghiệm cùng làm việc với nhau để đưa ra các ý tưởng sáng tạo, các ứng dụng khoahọc kĩ thuật để tạo nên một sản phẩm thành công Trong khi đó khoa học kĩ thuật hiện đạilại luôn luôn phát triển không ngừng, chính vì thế mà tri thức và kinh nghiệm đạt đượctrong hoạt động sản xuất mềm được xem như là một tài sản hết sức quí giá cho một tổchức nói riêng cũng như cho ngành công nghệ phan mềm nói chung Tuy nhiên tri thứcsau khi được tạo ra bởi con người và lưu trữ đưới một hình thức nào đó cần được tô chứclại, qua một quá trình xử lí và phân loại theo một mục đích nhất định dé con người có thểdễ dàng tiếp cận và sử dụng chúng một cách có hiệu quả Cũng vi lí do đó mà nhu cầu
quản lí các tri thức trở thành một hoạt động không thể thiếu trong hoạt động sản xuấtphần mêm.
Việc xây dựng một cơ sở tri thức được xem là bước đầu trong nhu cầu quan If tri thứctrong hoạt động sản xuất phần mềm Co sở tri thức chính là nơi tập hop tat các tri thứcthu được từ kinh nghiệm trong các quá trình phát triển dự án nhằm hỗ trợ cho các nhânviên trong tô chức Từ các dữ liệu thu thập được qua rất nhiều các quá trình phát triển dự
án, qua một quá trình lựa chọn, phân loại, xử lí, phân tích trở thành một tập hợp các tri
thức có thé chia sé và sử dụng một cách có hữu ích nhăm hỗ trợ phát triển hiệu quả các
dự án về sau.
Trang 16Trong giới hạn của luận văn này chúng tôi chỉ quan tâm đên một yêu tô duy nhât có ảnhhưởng rât lớn đền chât lượng của một hoạt động phân mêm và cũng là một yêu tô thamgia Xuyên sudt trong một quá trình sản xuât phan mém, đó là lôiphần mém (software
defect) mà từ đây chúng tôi xin gọi tắt là lỗi.Lỗi phần mềm là tất cả các lỗi xảy ra trong một chương trình hay hệ thống máy tính dẫnđến những kết quả không như mong muốn hoặc làm cho phần mềm chạy sai hoàn toàn,thậm chí ngưng hoạt động Bất kì một đội phát triển dự án phần mềm đều mong muốnxây dựng được một phần mêm với số lượng các lỗi càng nhỏ càng tốt Các rủi ro trongmột chương trình phần mềm được phát hiện càng sớm thì chất lượng của phần mềm càngđược cải thiện dang kế Hon thế nữa, việc xác định và sửa chữa các lỗi là công việc hếtsức ton thời gian và chi phí Tuy việc loại bỏ tat cả các lỗi ra khỏi một dự án phần mềm làkhông thể nhưng chúng ta có thể làm giảm mức độ trầm trọng và sự thiệt hại mà chúng
gây ra cho dự án của chúng ta.
Hiện nay, có rất nhiều công trình nghiên cứu về dự báo lỗi trong các sản phẩm phanmềm, phan lớn dựa vào phân tích các lỗi đã từng xảy ra trong một số lượng lớn các dựán, từ đó dự đoán được các lỗi còn tổn tại trong một hệ thống phan mềm Các nghiên cứunày không nằm ngoài mục đích hỗ cho các lập trình viên và các nhà quản lí điều khiếnđược qui trình phát triển phần mềm, liệu họ có nên dành thêm thời gian để tiếp tục tìmkiếm và sửa lỗi hay có thé đưa sản phẩm của mình bước sang giai đoạn phát triển tiếp
theo.
Nhìn chung thì ngày nay các nghiên cứu chủ yếu phân tích lỗi theo 2 hướng đó là phânloại (classification) và dự báo (prediction) nhằm xây dựng nên các mô hình (model) m6tả được các lỗi trọng yếu thường xảy ra và dự đoán được xu hướng các lỗi có khả năng sẽxảy ra trong tương lai [3] [4] [6] Tất cả các phân tích đó giúp cho lập trình viên có théphát hiện ra các lỗi có khả năng xảy ra và giúp cho người quản lí dự án có thé đánh giá vànăm bắt được chất lượng của dự án, từ đó phân công nguồn lực để kiểm tra, phát hiện và
sửa chữa lỗi một cách phù hợp
Bên cạnh đó còn có một sô công trình nghiên cứu về việc dự đoán các lôi dựa trên môiquan hệ của chung sử dụng một sô kĩ thuật phân tích dữ liệu (data mining) [5] và từ đócũng dự đoán được thời gian và công sức tương ứng cân phải bỏ ra dé sửa những lôi đó.Nói tóm lại là đề trả lời cho những câu hỏi sau:
Trang 17—_ Với những lôi đang xảy ra trong một dự án phân mêm thi có những lỗi nàokhác có khả năng lớn cũng đang diện ra hoặc sé xuât hiện
— Để sửa các lỗi đã xảy ra thì sẽ tốn bao nhiêu thời gian và nỗ lực tương ứng
1.2 Mục tiêu
Xây dựng một cơ sở tri thức vừa đủ về các lỗi phát sinh trong quá trình sản xuất phầnmềm, bao gồm các thông tin về dạng lỗi, nguyên nhân dẫn đến lỗi, tỉ lệ phân bố lỗi theochức năng hay tần suất xuất hiện Thông qua việc phân tích thông tin lỗi và nguyên nhân
của chúng, đề xuât ra các giải pháp gợi ý hô trợ người dùng giải quyết các lôi đó.
Tiếp theo đó sẽ xây dựng một cơ chế dé người dùng có thé truy cập vào cơ sở tri thức đó,có thé là một công cụ chi dừng lai ở một bản dùng thử (demo) dé người dùng có thé sử
dụng thử và nhận xét đánh gia.1.3 Đối tượng nghiên cứu
Phạm vi nghiên cứu chỉ giới hạn trong công ty phát triển phần mềm KMS Việt Nam '.Hiện nay công ty đang sử dụng một số công cụ để lưu lại các lỗi xảy ra trong một dự ánnhư Issuetracker (JIRA *) BugZilla 3 Qtrace * Các công cu này hiện tại là một nơichứa thông tin về các lỗi kèm theo cơ chế để người sử dụng có thể tạo mới, sửa chữa vàtruy xuất thông tin Ngoài ra mỗi công cụ còn có các tính năng riêng biệt như gửi thưthông báo, hỗ trợ người dùng tìm kiếm thống tin hiệu quả, có thể xuất ra các thông tinthống kê và các lược đồ hỗ trợ các nhà quản lí biết được tình hình sức khỏe của dự án Tuy nhiên các công cụ này chi dừng ở bước lưu trữ thông tin và thong kê thông tin nhằmhỗ trợ các thành viên trong cùng một dự án theo dõi các lỗi xảy ra cho dự án nhất định.Vì thế mà trong luận văn nay chúng tôi muốn xây dựng nên một cơ sở tri thức mang tính
chất tong quát hơn, các lỗi thu thập được từ cdc dự án phan mềm sau một quá trình phân
tích, đánh giá sẽ hình thành nên một cơ sở tri thức có thể chia sẻ và hỗ trợ cho tất cả các
dự án hiện tại cũng như trong tương lai.
‘http://kms-technology.com*http://www.atlassian.com/software/jira/overview/bug-tracking*http://www.bugzilla.org/
“http://www.gasymphony.com/gtrace-overview.html
Trang 181.4 Phương pháp nghiên cứu
Khảo sát hiện trạng chất lượng của các dự án phần mềm thông qua việc thu tập dữ liệu vềlỗi xảy ra trong tất cả các giai đoạn phát triển của một số dự án trong một số công ty phát
trién phân mềm.
Phân tích và phân loại lỗi dựa trên phương pháp ODC (Orthogonal Defect Classification)
của IBM [7] Lý do lựa chọn sử dụng phương pháp nay là vì nó thé hiện được mối quanhệ nguyên nhân và hệ quả khi phân loại lỗi trong qui trình phát triển phần mềm, từ đó tacó thé dé ra các phương án dé có thé sửa chữa, giảm thiểu và thậm chí là có thé phòngtránh được các lỗi có thể xảy ra trong quá trình phát triển phan mềm Cho đến nay có rấtnhiều phương pháp và nghiên cứu về phân loại lỗi nhưng phần lớn đều không thể hiệnđược môi quan hệ nguyên nhân và hệ quả như phương pháp ODC
Dựa trên các kết qua phân tích từ phương pháp ODC, phân tích nguyên nhân của các lỗibăng d6 thị xương cá [4] cùng các hệ quả của nó (cause-effect relationship) Cũng từ đó,
đề xuât các phương án đê xuat xử lí với các lôi tương ứng.
Dựa trên các thông tin có được về lỗi sau bước phân tích và đánh giá trên, xây dựng nênmột cơ sở tri thức về lỗi sử dụng một công cụ chính của web ngữ nghĩa đó là ontology.Luận văn xây dựng nên một ontology về các lỗi trong quá trình phát triển phan mém baogom cac thanh phan có quan hệ với nhau về mặt ngữ nghĩa, sau đó dùng một cơ sở dữliệu với các mối quan hệ để hiện thực ontology va đồng thời cũng là một kho lưu trữ dữliệu của cơ sở tri thức Tiếp theo đó là việc hiện thực một ứng dụng web lién kết với cosở dữ liệu thong qua ngôn ngữ truy van dữ liệu SQL, nham hỗ trợ một cơ chế duyệt vàtìm kiếm để người sử dụng có thể truy cập cơ sở tri thức đó
Có thé thử nghiệm áp dụng sự hỗ trợ của cơ sở tri thức trong phạm vi cua | dự án nhỏtrong công ty KMS, sau đó đánh giá về kha năng hỗ trợ của nó trong việc giảm số lượnglỗi hay giảm thời gian và công sức để giải quyết các lỗi trong dự án như thế nào
1.5 Các công trình nghiên cứu liên quanTrong tài liệu tham khảo số [4] ,một nghiên cứu của Sakthi Kumaresh và R Baskaran vớitựa dé là “Defect Analysis and Prevention for Software Process Quality Improvement”,tác giả đã tập trung vào phân tích tat cả các lỗi thu thập được từ 5 dự án phần mềm dựatrên cấp bậc phân loại đầu tiên của phương pháp ODC, dựa vào đó đi tìm nguyên nhânchính gây ra lỗi, từ đó dé ra các ý tưởng để phòng tránh để lỗi sẽ không xảy ra trong các
Trang 19dự án tiếp theo Ngoài ra, bài nghiên cứu còn trình bày việc ứng dụng các ý tưởng phòngtránh lỗi nêu ra đã làm giảm số lượng các lỗi tương ứng trong các dự án được đưa ra thửnghiệm như thế nào.
Sakthi Kumaresh và R Baskaran đã thu thập thông tin về lỗi từ 5 dự án được đưa vào
nghiên cứu, sau đó tính toán các sô liệu sau:
- Số lượng dong code (KLOC)— Số lượng lỗi
- Số lượng thời gian tính theo đơn vi giờ mà tất cả nhân viên trong dự án phải
bỏ ra trong toàn bộ dự án
— Sau đó tính ra tỉ lệ số lỗi trên số lượng dòng code gọi là mật độ lỗi (defect
density):
Mật độ lỗi = Số lượng lỗi / (số lượng dòng code — 1)
Tiếp theo đó, bài nghiên cứu phân tích tất cả các lỗi thu thập được dựa trên cấp bậc phânloại đầu tiên của phương pháp ODC đó là phân loại lỗi dựa trên các giai đoạn phát triển
của dự án:
— Giai đoạn phân tích yêu cầu (Requirement)—~ Giai đoạn thiết kế (Design)
— Giai đoạn lập trình (Code)
— Giai đoạn thiết kế giao diện (GUI—_ Đoạn viết tài liệu hướng dẫn sử dụng (Documentation)Sau đó là bước phân tích nguyên nhân lỗi dựa trên đồ thị xương cá va dé ra các ý tưởng
phòng tránh lỗi
Kê đên đó là bước thử nghiệm đánh giá việc ứng dụng các ý tưởng phòng tránh lôi vàomột sô dự án tương tự 5 dự án đã đưa ra nghiên cứu, sau đó thu thập thông tin về lôi mộtlân nữa và tính toán lại các con sô trên như: tân suât lôi, sô lượng lôi, sô lượng dòngcode, sô lượng thời gian bỏ ra cho dự án và so sánh với năm dự án ban đầu đê thây
Trang 20được tác dụng và ý nghĩa của các ý tưởng phòng tránh lỗi (defect prevention) đôi với việc
nâng cao chât lượng của dự án phần mêm.
Qua nghiên cứu trên ta rút ra được việc phân tích và nghiên cứu lỗi không những giúp
nâng cao chất lượng dự án mà còn giúp cho các thành viên trong dự án phần mềm họchỏi được kinh nghiệm từ các lỗi và các sai lầm từ của các thành viên thuộc dự án khác, từđó rút kinh nghiệm và có những phương án phù hợp dé phòng tránh lỗi Việc phòng tránh
được các lỗi hoặc phát hiện sớm các lỗi trong dự án và kip thời có phương án sữa chữa
phù hợp không những sẽ tiết kiệm được rất nhiều thời gian và công sức cho dự án mà còngóp phan đáng ké vào việc làm tăng chất lượng của dự án
Tuy nhiên, bài nghiên cứu trên chỉ thực thi phương pháp ODC ở cấp bậc đơn giản nhất đểphân loại các lỗi, bài nghiên cứu cũng đã nêu ra hướng phát triển mới đó là phân loại lỗithông qua các cấp độ tiếp theo của phương pháp ODC như tác động của lỗi (DefectImpact), nguồn gốc kích hoạt lỗi (Defect Trigger) dé hiểu rõ, hiểu sâu hơn về lỗi xảy ra
trong tat cả các giai đoạn phat triên cua dự án.
Tài liệu số 5 (“Software Defect Association Mining and Defect Correction Effort
Prediction’’) trình bay một phương pháp dựa trên kĩ thuật khai thác dữ liệu (data mining)
để đưa ra các dự đoán về mối liên hệ giữa các lỗi và nỗ lực tương ứng phải bỏ ra để sữa
chữa chung Nói tóm lại là dé trả lời cho những câu hỏi sau:
—_ Với những lôi đang xảy ra trong một dự án phân mêm thi có những lỗi nàokhác có khả năng lớn cũng đang dién ra hoặc sẽ xuât hiện Ví dụ: nêu loia vàloib xuât hiện thì có thê dự đoán được răng ldic cũng sẽ xuât hiện sau đó.— Đề sửa các lôiđã xảy ra thì sẽ tôn bao nhiêu thời gian và no lực tương ứng
Công trình nghiên cứu này nhằm hỗ trợ các lập trình viên trong việc phát hiện ra lỗi vàgiúp cho các nhà quản lí phân công nhân lực trong dự án cho quá trình kiểm thử sảnphẩm một cách hiểu quả hơn Các nhà nghiên cứu đã ứng dụng phương pháp mà họ đềnghị vào một số lượng lớn các dữ liệu về lỗi được cung cấp bởi SEL (NASA/GSFCSoftware Engineering Laboratory — nơi lưu trữ và truy vấn dit liệu về công nghệ phanmêm cho tổ chức NASA Goddard Space Flight Center) được thu thập từ 200 dự án trong
vòng hơn 15 năm Kết quả thu được cho thay với các dự đoán dựa trên mối liên hệ của lỗiđộ chính xác đạt được của sự dự đoán là rất cao, 95.98% và tỉ lệ dự đoán sai là rất thấp,
2.84% Tương tự như thế, độ chính xác của việc dự đoán nỗ lực bỏ ra để sửa chữa lỗicũng rất cao, 94.69% Bên cạnh đó, tác giả còn so sánh phương pháp dự đoán nỗ lực bỏ
Trang 21- Mô hình dự đoán dựa trên số đo độ phức tạp và kích thước (Prediction Modelusing size and complexity metrics) là một mô hình dự đoán lỗi được sử dụngpho bién nhat hién nay No dựa trên sỐ lượng các dòng code (LOC) của dự ánvà mô hình đo độ phức tạp được phát triển bởi McCabe.
— Mô hình dựa trên Machine Learning (Machine Learning Based Models) bao
gôm một số mô hình sau:o Mô hình xác suất dự đoán lỗi dựa trên Bayesian Belief Network (The
Probabilistic Model for Defect Prediction using Bayesian BeliefNetwork)
o Mô hình dự đoán dựa trên thuật toán di truyền (Defect Prediction
Models Based on Genetic Algorithms)
o Mô hình xác suất dự đoán lỗi dựa trên mạng thần kinh nhân
tao(Software Defect Prediction Models using Artificial NeuralNetwork)
- Mô hình dự báo dựa trên tần suấtlỗi (Defect Density Prediction Model)
o Mô hình hóa chất lượng xây dựng dự án để dự báo tan suatldi
(Constructive Quality Modeling for Defect Density Prediction)
o Mô hình dự đoán lỗi dựa trên 6 tiêu chí (Defect Prediction Model based
on Six Sigma Metrics)
Nhìn chung thi ngày nay các nghiên cứu chủ yếu phân tích sofware lỗi theo 2 hướng đó làphân loại (classification) và dự báo (prediction) nhằm xây dựng nên các mô hình (model)mô tả được các lỗi trọng yếu thường xảy ra và dự đoán được xu hướng các lỗi có khảnăng sẽ xảy ra trong tương lai từ đó dé ra các phương pháp để ngăn chặn sự xảy ra củacác lỗi (defect prevention) [3] [4] [5] [6] Tất cả các phân tích đó giúp cho lập trình viên
có thê phát hiện ra các lôi có khả năng xảy ra và giúp cho người quản lí dự án có thê đánh
Trang 22giá và nam bat được chất lượng của dự án, từ đó phân công nguồn lực để kiểm tra, pháthiện và sửa lỗi một cách phù hợp Nhìnchung lại thì tất cả các nỗ lực đó không nằm ngoàimục tiêu là nâng cao chất lượng trong hoạt động cũng như trong quản lí của một dự án
phần mêm.
Qua quá trình tìm hiểu các công trình nghiên cứu trước đó như đã trình bảy ở trên, luậnvăn chọn công trình nằm trong tài liệu số [4] đã được trình bày trong phần đầu tiên của
danh mục này, các công trình nghiên cứu liên quan, làm định hướng cho nghiên cứu của
mình Như đã trình bày, bài nghiên cứu trên chỉ thực thi phương pháp ODC ở cấp bậcđơn giản nhất dé phân loại các lỗi, dé hiểu rõ, hiểu sâu hơn về lỗi xảy ra trong tat cả cácgiai đoạn phát triển của dự án, chúng ta phải phân loại lỗi thông qua các cấp độ tiếp theocủa phương pháp ODC như nguồn gốc kích hoạt lỗi, tác động lỗi Đó cũng là van đề màluận văn đặt ra và tiếp tục phát triển
Trang 232.1.2 Mô hình phân loại lỗi ODC
Trước khi có mô hình ODC thi đã ton tại hai kĩ thuật khác thường được sử dung dé phântích dữ liệu về lỗi thu thập được từ các dự án, đó là Mô hình Thống kê Lỗi (Statistical
Defect Modeling) và Phương pháp Phân tích Thông thường (Casual Anaiysis)[7] Trong
đó, Mô hình Thống kê Lỗisử dụng phương pháp thống kê dé phân tích lỗi băng cách xemmỗi lỗi như là một mẫu thử lay ngẫu nhiên trong một tổ hợp được đưa vào mô hình thốngkê, còn Phương Pháp Phân Tích Thông Thường thì xem mỗi lỗi xảy ra là duy nhất và tìmra nguyên nhân của từng lỗi một Cả hai phương pháp này hiện nay đều không được sửdụng pho biến bởi vìđối với phương pháp thứ nhất thì các kết quả có được chỉ dựa trêncác số liệu thống kê trên số lượng các lỗi, như thế không đủ để cải thiện qui trình pháttriển dự án, trong khi đó đối với phương pháp thứ hai thì việc phân tích từng lỗi cụ thé vatìm nguyên nhân của nó rất tốn thời gian và chi phí, đó là chưa kế đến kết quả thu đượctừ các phương pháp này rất khó có thể mở rộng trong tương lai
ODC (Orthogonal Defect Classification) [7] do IBM phát triển vào những năm 1990sbởi Ram Chillarege ODC là một phương pháp dé phân loại và phân tích lỗi trong tất cảcác giai đoạn phát triển của một dự án phan mém.ODC phan loai lỗi dựa trên cách thứcsửa chữa lỗivà phân tích lỗi qua từng giai đoạn giai đoạn phát triển của một sản phẩmphan mềm ODC cung cấp một phương pháp đo lường để có thé rút ra được các đặc tính
Trang 24quan trọng của lỗi và cho phép ta phân tích được nguyên nhân của lỗi dựa trên mỗi quanhệ nguyên nhân và hệ quả ODC dựa trên một giả thuyết rằng trong suốt vòng đời pháttriển của dự án thì mỗi giai đoạn sẽ xuất hiện các loại lỗi khác nhau và néu quá nhiều lỗiở giai đoạn khác xuất hiện ở giai đoạn này là biểu hiện những van dé bất bình thường sé
gây ra khó khăn cho dự án.
Phương pháp ODC mô tả sự phân bồ của các loại lỗi trong các giai đoạn phát triển của dựán nhằm thé hiện sự phát triển của các loại lỗi trong qui trình phát triển phần mềm, như
Number of Defects
design code function system
test testHinh 2-1: M6 hinh m6 ta su phan bồ của các lỗi qua các giai đoạn phát triển của dự án [7]
Ngoài ra phương pháp ODC còn đưa ra được các nhóm phân loại lỗi (defect
cafegorres)không chồng chéo, nhập nhăng và hoàn toàn độc lập với nhau Bên cạnh đóODC cũng xác định một tập nhỏ các thuộc tinh của lỗi (defect attributes) dé cung capmột phương tiện dé đo lường các mối quan hệ của lỗi bao gồm:
e Kiểulỗi (Defect Type): đánh giá đặc điểm của lỗidựa trên nhữngsự thay đổi dé sửa
chữa chúng.
Trang 25ODC chia lỗi thành 8 loại khác nhau, bao gôm:
Giao diện (Interface): lỗi xảy ra là kết quả của những van dé về giao tiếp giữa các
thành phân của hệ thống, các hệ thông con, các m6-dun, hệ điều hành hoặc là các
thiết bị cài đặt nên cân phải có sự thay đổi ví dụ như sử dụng các điều khiến
(control blocks), các chỉ gọi (call statement), sử dụng bộ nhớ chia se (sharedmemory)
Chức năng (Function):lỗi xảy ra do hiện thực thiếu sót hoặc không đúng cácchức năng quan trọng của phan mêm như giao diện giao tiếp với người dùng, giaodiện của sản phẩm, cách giao tiếp với các câu trúc phan cứng, cau trúc dữ liệu củahệ thống
Xây Dựng/Đóng goi/Két hợp (Build/Package/Merge): cáclỗi gặp phải trong quitrình xây dựng hệ thống và nguyên nhân gây ra xuất phát từ thư viện hệ thống,việc quản lí sự thay đổi hoặc sự kiểm soát phiên bản được liệt kê vào phân loại
này.Gan giá tri (Assignment): lỗi xảy ra do kết quả của việc một gia tri bi gan sai
hoặc thậm chí không duoc gan gì cả Luu ý răng nêu việc sữa chữa một lỗi mà đòi
hỏi phải sữa chữa một loạt các lỗi gán giá trị thì lỗi đó có khả năng thuộc phân loại
Algorithm.
Tài liệu (Documentation): các lỗi xảy ra thuộc phân loại này là kết quả củanhững lỗi sai liên quan đến tài liệu như tài liệu hướng dẫn cho người sử dụng mô
tả sai, tài liệu hướng dẫn cài đặt không đúng, các chú thích trong code sai Chú ý
là không nên nhâm lẫn loại lỗi này với lỗi hoặc thiếu sót trong các tài liệu yêu câuhoặc thiết kế bởi vì nó rất có thể là một lỗi thuộc Function hoặc Interface
Kiểm tra (Checking): lỗi xảy ra là kết quả của các sai sót trong quá trình kiểm tra
hoặc xác nhận các thông sô dữ liệu Lưu ý răng nêu việc sữa chữa một lôi mà đòi
Trang 26đữ liệu.
e Thdi gian đông bộ/Song song (Timing/Serialization): lỗi xảy ra là kết quả củacác sai sót về mặt thời gian của toàn bộ hệ thông hay các hệ thông con, mô-đun,phân mém, phan cứng hoặclà kết quả của việc sử dụng không đúng các quitrình song song (serialization) để kiểm soát việc truy cập để chia sẻ cùng một tài
nguyên.
Như ta thay ở trên, các phân loại lỗi cũng chính làngữ cảnh mà lỗi xuất hiện va có thédựa vào đó để sữa chữa lỗi đó nên phương pháp phân loại này có thể sử dụng để áp dụngcho bất cứ một dự án phân mêm nào, không quan tâm đến dự án đó phát triển sản phẩmnào hay sử dụng qui trình nào.Thông thường thi tat cả các phân loại lỗi trên đều xuất hiệnở mỗi giai đoạn phát triển của dự án trải dài trong suốt vòng đời phát triển một sản phẩmphânmêm.Tuy nhiên mỗi phân loại lỗi cũng có mỗi liên hệ với một giai đoạn phát triểncụ thé nao đó, nó sẽ là lỗi thường xuyên gap phải nhất trong giai đoạn đó và khi phát triểndự án ở giai đoạn đó người phát triển dự án phải hết sức chú ý đến nó Ví dụ nhìn vàohình 2-1 ta thay, phân loại Function xuat hiện nhiêu nhất ở giai đoạn thiết kế (Design) vàphân loại Timing/Serialization xuất hiện nhiều nhất ở giai đoạn kiểm thử (Testing)
Dựa vào môi quan hệ cua phan loại lôi và các giai đoạn phat triên cua dự án ta sé thayđược tiên độ phát triên của phân mém Gia sử như nêu một dự án đã bước sang giai đoạnTesting ma van còn rat nhiêu lôithuộc phân loại Function thì dự án đó thực chat van cònở trong giai đoạn Design hay Coding mà thôi.
Trang 27132.1.4 Kích hoạt lỗi (Defect Trigger)
Kích hoạt lỗi được phân làm 3 loại, bao gồm:e Kích hoạt trong quá trình kiểm tra và đánh giá (Review & Inspection Triggers)e Kích hoạt trong quá trình kiểm thử các đơn vị thành phân và các tính năng (Unit &
Function Test Triggers)
e Kích hoạt trong quá trình kiếm thử hệ thống và các thành phan khác của phanmêm (System & Field Test Triggers)
Phân loại lỗi dựa trên nguôn gốc kích hoạt lỗi của phương pháp ODC là phân loại dựa
trên nguyên nhân và các tương tác dân đên lôi.2.1.5 Tác động của lỗi (Defect Impact)
Tác động của lỗi thể hiện tác động của lỗi lên sự thoả mãn của khách hàng Đối với lỗiphát hiện trước khi sản phẩm được đem ra sử dụng thì tác động của lỗi bao gôm thông tinvề sự ảnh hưởng của lỗi lên các thao tác của người sử dung dau cuôi dẫn đến các lỗi cácSal sót của phân mềm Đối với các lỗi được người sử dụng thực sự nêu ra trong quá trinhsử dụng phân mém thì nó lại thé hiện sự tác động thực sự của lỗi lên người sử dụng Sau
đây là các loại tác động lỗi do phương pháp ODC xác định:
— Khả năng đáp ứng(Capabiliny)
- Mức độ dễ dang cho người sử dung (Usability)
— Hiệu suất làm việc (Performance)
- Độ tin cay (Reliability)
— Khả năng mà hệ thông có thé cài đặt và đưa vào sử dụng Unstallibility)
— Khả năng bao trì (Maintainability)
- Mức độ hỗ trợ của tài liệu hướng dẫn (Documentation)
- Khả năng nâng cap (Migration)—_ Tiêu chuẩn (Standards)
— Tính toàn vẹn và mức độ bảo mật Untegrity/Security)Tuy nhiên phương pháp ODC không giới hạn chỉ trong 3 thuộc tính trên, đó chỉ là 3
thuộc tính được dé nghị là nên được sử dụng Bên cạnh đó, còn tùy vào phương pháp tiếpcận mà người sử dụng có thé linh hoạt lựa chọn các thuộc tính thông thường của lỗi như:
giai đoạn mà lôi xuât hiện (phase found), mức độ trầm trong (severity), nơi xuât hiện
Trang 2814loi(defect source) miên là các thuộc tính đó phù hợp với điêu kiện cân và đủ cuaphương pháp ODC:
e Điêu kiện cân: phân loại lỗi dựa trên ngữ nghĩa, sự xuất hiện của nó trong suốtquá trình phát triển của sản phẩm
e Điêu kiện đủ: tập hop tat cả các giá trị của thuộc tính lỗi phải hình thành một tậphợp trải dài suốt qui trình phát triển của phan mém
2.2 Tri thức và cơ sở tri thức2.2.1 Tri thức
“Tri thức là một sự kết hợp của các kinh nghiệm, giá trị, thông tin theo ngữ cảnh vànhững hiểu biết từ các chuyên gia, từ đó cung cập một khuôn khổ dé đánh giá và kết hợp
thành thong tin và kinh nghiệm mới.” (Agresti, 2000){ 1 |Tri thức là các thông tin, các tài liệu, các cơ sở lý luận, các kỹ năng khác nhau, đạt được
bởi một tô chức hay một cá nhân thông qua các trải nghiệm thực tế hay thông qua sự giáoduc dao tao, các hiểu biết về lý thuyết hay thực tế về một đối tượng, một van dé nào đó.Tri thức là những gi đã biết, đã được hiểu biết trong một lĩnh vực cụ thé hay trong tổngthể các lĩnh vực Tri thức là các cơ sở, các thông tin, tài liệu, các hiểu biết hoặc những thứtương tự có được băng kinh nghiệm thực tế trong những tình huông, hoàn cảnh cu thé.Tuy nhiên không có một định nghĩa chính xác nào vệ tri thức hiện nay được mọi người
chấp nhận, có thể bao quát được toàn bộ, vẫn còn nhiêu học thuyết, các lý luận khác nhau
về tri thức (theo Wikipedia’)
> http://en.wikipedia.org/wiki/Knowledge
Trang 29Create
Use Capture
Access Organize
Hình 2-2 : Chu ki hình thành cua tri thức
Tri thức và kinh nghiệm đóng rat quan trong đối với tat cả những người làm trong ngànhcông nghệ phần mềm, đó yếu tổ tiên quyétdé họ có thé nâng cao giá trị thị trường củamình Như chúng ta thấy trongHình 2-2-2, con người tạo ra tri thức bằng chính khả năngcủa ho (create), sau đó lưu lại như là một báo cáo dưới bat kì hình thức nao, văn bantruyền thống hoặc dưới dạng số hóa (capture) Tuy nhiên, việc lưu lại tri thức thôi cũngchưa đủ cho đến khi nó được phân loại một cách có tô chức và chỉnh sửa theo một nhucầu sử dụng nào đó (organize) Việc phân loại theo chỉ mục (indexing) cũng được sửdụng dé các con người có thé dé dàng truy cập va sử dụng tri thức đã được quản lí đó(access) Cuối cùng, tri thức phải được chia sẻ, sửdụng và sửa chữa bởi những người sử
dụng nó (use), lúc đó tri thức lại quay trở lại giai đoạn khởi tạo và vòng tròn đó cứ lặp đi
lặp lại như thế [1]Có 3 cấp độ trong quá trình tạo nên tri thức bao gồm: dữ liệu, thông tin và tri thức [2]
Trang 30thông tin Nó không chỉ chứa thông tin mà còn bao hàm mối quan hệ giữa các
thông tin, phân loại thông tin, siêu dữ liệu (dữ liệu của dữ liệu, ví dụ như người tạora thông tin đó).
— Kinh nghiệm là tri thức đã được ứng dụng.Tri thức là có giá tri, nhưng khó quản lý Đặc biệt, chỉ công nghệ không thôi thì không
thé quản lý tri thức trực tiếp Tri thức không thé được lưu trữ, nhưng chúng ta có thé lưutrữ thông tin về tri thức Nhân tổ con người là cần thiết dé tạo ra tri thức và chuyển thôngtin vào tri thức Tri thức mới có thể được tạo ra bởi những kinh nghiệm, quan sát, và rútra kết luận hợp lý
http:/ /www.infogineering.net/data-information-knowledge.htm
Trang 31172.2.2 Đặc tính của tri thức:
Có 2 loại tri thức, đó là tri thức r6 ràng và tri thức ngâm dinh[2]:— Tri thức rõ ràng là tri thức được hệ thống hóa, tri thức đã được biểu hiện ra bên ngoài
Nó tương ứng với những thông tin và kỹ năng mà nhân viên có thé dé dàng trao đối vàlập tài liệu, chăng hạn như quy trình, biểu mẫu, dữ liệu
— Tri thức ngầm định là tri thức mà mỗi cá nhân đạt được thông qua kinh nghiệm, trithức này khó được diễn tả rõ ràng, nó chỉ mang tính chất cá nhân vì đôi khi tri thức đó
phụ thuộc vào niêm tin và quan diém cua môi cá nhân.
Chu kỳ phát triển của tri thức định nghĩa các giai đoạn của tri thức trong tổ chức.Tổ chứccần phải có chiến lược quản lý tri thức để tích hợp vào các giai đoạn tri thức trong tổchức một cách có hệ thống Các giai đoạn đó là:
— Tạo ra tri thức: Các thành viên của tổ chức phát triển tri thức thông qua học tập, cảitiền, đôi mới, sáng tạo hoặc đem tri thức từ ngoài vào công ty
— Năm bắt và tiếp thu tri thức: Các thành viên năm bắt và tiếp thu thông tin qua các
đây là phần quan trọng nhất của chu kỳ.Quản lý tri thức nhăm mục đích để làm cho trithức có san bất cứ khi nào nó là cần thiết
2.2.3 Quan lí tri thức“Quản lý tri thức là một quá trình thu nhận, tô chức, chia sẻ và sử dụng thông tin trongmột tổ chức.” (Rumizen,2002) [8]
“Quản lý tri thức là chiến lược được phát triển trong công ty dé đảm bảo tri thức đếnđúng người va đúng thời điểm, giúp các cá nhân chia sẻ và sử dung thông tin dé cải thiệncác hoạt động trong tô chức.” (O'Dell & Grayson, 1998) [8]
Trang 32“Quan lý tri thức bao gsm một loạt các phương pháp quản lí được sử dụng bởi các tổchức để xác dinh,tao ra, thé hiện và phân phối các tri thức nâng cao nhận thức, tái sửdụng và học tập trong tổ chức.” (theo Wikipedia’)
Như vậy tri thức được xác định là một tài sản quan trọng và quí giá nhất của bất cứ mộttổ chức nao và đóng một vai trò quan trọng nhất đối với sự thành công của tô chức trong
giai đoạn hiện này Và quản lí tri thức chính là cách thức mà tri thức từ kinh nghiệm được
thu thập lại, sửa chữa và phân loại một cách có tô chức sao cho các nhân viên trong tổ
chức đó có thê truy cập và sử dụng có hiệu quả.2.2.4 Quản lí tri thức trong lĩnh vực sản xuất phần mémTrong lĩnh vực sản xuất phan mém thi viéc quan lí tri thức sao cho hiệu qua luôn là một
dé tài gây ra nhiều tranh luận nhất Qui trình phát triển phần mềm trải qua rất nhiều giaiđoạn: từ giai đoạn thu thập yêu cầu từ khách hang (requirement) cho đến những giai đoạnsau đó như thiết kế (design), lập trình (coding), kiểm thử (testing), triển khai(deployment) và bao trì nang cap (maintenace) Tat ca cdc san pham được tạo ra trong
suốt các quá trình này đều được quản lí và lưu trữ lại một cách có hệ thongstr dung két
hợp với các kinh nghiệm của các cá nhân như là một nguồn tri thức dé phát triển sảnphẩm phần mềm một cách có hiệu quả nhất Chia khóa cho sự thành công của một tổchức chính là chất lượng của tri thức được áp dụng cho các qui trình hoạt động của tổ
chức đó.
Tuy nhiên, một thách thức lớn nhất mà các tô chức trong lĩnh vực sản xuất phan mềmphải đối mặt đó chính là sự phát triển rất nhanh chóng của các sáng kiến cũng như là trithức trong lĩnh vực này và họ phải tự xây dựng cho minh một môi trường để bắt KỊp sựphát triển đó, bên cạnh đó các nhân viên trong dự án phát triển phần mềm lai cần sự hỗ
trợ tri thức một cách nhanh chóng, kip thời và hiệu qua nhất trong một lịch trình dự án
hết sức chặt chẽ Chính việc quản lí tri thức trong tổ chức là một câu trả lời nhu cau bứcthiết này [8] Quản lí tri thức kết hợp các công cụ và công nghệ cung cấp sự hỗ trợ trongviệc thu thập, truy xuất, tái sử dụng và phố biến tri thức, tạo ra lợi ích cho tổ chức và cácthành viên trong tô chức đó Với việc sử dụng quản lí tri thức trong quan lí phần mềm,
“http://en.wikipedia.ors/wiki/Knowledse management
Trang 33các cá nhân trong tô chức có thé chia sẻ kinh nghiệm, tri thức với nhau, tạo điều kiệnthuận lợi cho việc áp dụng và chuyển giao các phương pháp, kĩ thuật và công nghệ mớigiữa các phòng ban, các dự án khác nhau hoặc thậm chí là giữa các đối tác Việc thực thimột hệ thống quản lí tri thức thành công phải bao g6m3 khía cạnh quan trọng Khia cạnhđầu tiên nhẫn mạnh về việc thành lập một nên văn hóa chia sẻ và cộng tác trong tô chức.Khia cạnh thứ hai nhẫn mạnh việc trao đổi kiến thức giữa các nhân viên Khía cạnh thứba và cuối cùng là cần tạo ra một nơi lưu trữ của tổ chức dé chứa đựng, trao đối và chia
sẻ các tri thức liên quan.
2.2.5 Cơ sở tri thức
Cơ sở tri thức (Knowledge base) là một loại cơ sở dữ liệu đặc biệt dành riêng cho việc
quản lí tri thức Một cơ sở tri thức là một kho lưu trữ thông tin cung cấp một phương tiệndé thông tin có thé được thu thập, tô chức và chia sẻ, tìm kiếm và sử dụng Cơ sở tri thứccó thé tồn tại đưới 2 dạng: một là dưới dạng máy tính có thể đọc được (Machine-readableknowledge base), hai là hướng đến hỗ trợ việc sử dụng tri thức của con người (Human-
readable knowledge base) (Wikipedia®):
- Machine-readable knowledge base lưu trữ tri thức dưới dạng máy tính có thé docđược, thường được sử dụng cho mục đích suy diễn và lập luận tự động Cơ sở tri thứclúc này bao gồm một tập hợp các dữ liệu dưới hình thức các qui tắc, luật lệ nhằm môtả và biểu diễn tri thức Ontology có thể được sử dụng trong trường hợp này để mô tảcau trúc của dữ liệu được lưu trữ bao gom các thực thé va các mối quan hệ ngữ nghĩacủa chúng Cơ sở tri thức dạng này có thé được sử dụng kết hợp với trí tuệ nhân tạo vídụ như tạo nên một phan của các hệ thông chuyên gia (expert system) chuyên biệt chomột lĩnh vực cụ thé nào đó như hệ thống pháp luật hải quan hoặc hệ thống quan lí toathuốc , ngoài ra còn được sử dụng bởi web ngữ nghĩa (Semantic Web)
— Human-readable knowledge base được thiết kế chuyên biệt dành cho người sử dung déhọ có thé truy xuất và sử dụng tri thức chứa trong đó Nó có thé được sử dụng để hỗtrợ cho các bộ phận hỗ trợ khách hàng của các tô chức, doanh nghiệp hoặc là để chia
sẻ tri thức giữa các nhân viên trong cùng một tô chức Trong trường hợp nay, co sở tri
Shttp://en.wikipedia.org/wiki/Knowledge_base
Trang 34thức có thể được sử dụng để lưu trữ thông tin hỗ trợ xử lí sự cố, bài báo, tài liệu,
hướng dẫn sử dung hay là những giải dap cho các câu hỏi thường gặp Thong
thường thì một công cụ tìm kiếm sẽ được hiện thực để hỗ trợ người dùng tim kiếm cácthông tin mà họ đang cần
Tác dụng và ưu điểm lớn nhất của cơ sở tri thức là nó cho phép nhiều người sử dụng cóthé đóng góp một phan vào sự phát triển và lớn mạnh giúp cho cơ sở tri thức thêm phanphong phú và hiệu quả Cũng bởi vì nó có sự tham gia của nhiều đối tượng với những cáinhìn từ những góc độ khác nhau như người phát triển (đeveloper) người hỗ trợ kĩ thuật(tech support) và người sử dụng đầu cuối (end user) nên những người sử dụng cơ sở trithức có thé khám phá, nhìn nhận va năm bắt được tri thức dưới các khía cạnh khác nhau,từ đó có thể tìm ra được một giải pháp của chính họ.”
Tuy nhiên cũng vì vậy mà cơ sở tri thức có một nhược điểm là nó bao gồm các thông tinvới các phong cách viết khác nhau, mức độ hiểu biết khác nhau của người đóng góp dẫnđến một sự rời rac và không chuân mực Vì thế mà người dùng không phải lúc nào cũngtìm thấy được thông tin hữu ích mà họ đang tìm kiếm Đó là nhược điểm lớn nhất của cơ
Sở tri thức Vi vậy cơ sở tri thức phải luôn cân có sự hồ trợ của đội ngũ bao trì.Hai đặc tính quan trong nhat của cơ sở tri thức bao gôm:
1 Kha năng tiép can là tinh năng quyét định một co sở tri thức có thể được sử dụng
rộng rãi hay không Một cơ sở tri thức cần hỗ trợ người dùng tìm kiếm thông tinmột cách hiệu quả và nhanh chóng nhất vì vậy mà các tuy chọn của nó cần đượctrình bày rõ ràng và đơn giản nhất Vì vậy nên hạn chế tối thiểu việc lưu trữ cácthông tin không liên quan để cơ sở tri thức có thể chỉ sinh ra các thông tin hết sứcrõ ràng và thiết thực cho người sử dụng
2 Khả năng mở rộng là tính năng quan trọng nhất của một cơ sở tri thức Khi xâydựng một cơ sở tri thức cần quan tâm nhất đến khả năng quan trọng nay, co sở trithức cần được thiết kế để có thể dễ dàng kết hợp với các lượng thông tin mới đểnó có thé lớn lên và giàu có theo thời gian bởi vì thông tin cũng như của con ngườiluôn luôn phát triển và thay đổi không ngừng
“http:/www.ehow.com/list_6038788_knowledge-base-advantases-disadvantages.html
Trang 35212.3 Giới thiệu về ontology
2.3.1 Khái niệm“Trong ngành khoa học máy tính và công nghệ thông tin, ontology biểu diễn tri thức dướidạng một tập hợp các khái niệm trong một miền tri thức nào đó (domain knowledge) vàcác mỗi quan hệ giữa các khái niệm đó Nó có thé sử dụng trong việc mô hình hóa mộtmiễn tri thức nào đó và hỗ trợ lý luận về mặt thực thể.” (Wikipedia'°)
Trong các tài liệu về trí tuệ nhân tạo có rất nhiều định nghĩa về ontology trong đó cónhững định nghĩa mâu thuẫn với nhau tuy nhiên một khái niệm thường thấy nhất của
ontology là một m6 tả cụ thê của các khái niệm trong một lĩnh vực nao đó bao gôm:— Lớp (classes) hay còn được gọi là khái niệm (concepts)
— Thuộc tính (properties) m6 tả các đặc tính và khía cạnh khác nhau cua mỗi lớp,mỗi lớp thường chứa nhiều thuộc tính khác nhau
— Các ràng buộc của thuộc tính (restriction), mỗi thuộc tính có các ràng buộc của
chúng về giá trị hay các mỗi quan hệ ràng buộc lẫn nhau— Các thực thé (instances): các giá trị cụ thé của mỗi lớpMột ontology kết hợp với một tập hợp các thực thể của các lớp chứa trong ontology đó sẽtạo nên một cơ sở tri thức Trong thực thế việc xây dung ontology là bước khởi đầu choviệc xây dựng một cơ sở tri thức Ontology mô hình hoá và biểu diễn cấu trúc của co sở
tri thức.
Lớp là trọng tâm của hầu hết các ontology, lớp mô tả các khái niệm trong một miễn trithức nao đó Vi dụ: một lớp Rượu Vang (Wine) đại diện cho tất cả các loại rượu vang.Mỗi loại rượu vang cụ thé là một thực thé của lớp Rượu Vang như : Rượu Vang Đà Lạt,Rượu Vang Bodeaux của Pháp Một lớp có thé có các lớp con nhằm biếu diễn cac kháiniệm cụ thể hơn lớp cha của chúng Ví dụ ta có thể chia lớp Rượu Vang ra làm ba lớpkhác nhau: Rượu Vang Đỏ, Rượu Vang trang và Rượu Vang Hong
Oh ttp:/ /en.wikipedia.org/wiki/Ontology
Trang 3622Các thuộc tính mô tả các đặc tính khác nhau của các lớp và các thực thê của chúng ví dụlớp Rượu Vang có chứa các thuộc tính như: nơi sản xuât, hương vi, kiêu dáng, lượng
đường, thành phân
Trên thực tế, việc xác định một ontology bao gồm:— Xác định các lớp của chúng
- Sắp xếp các lớp theo các mối quan hệ phân cấp cha — con
— Xác định các thưoọc tính của từng lớp và những gia trị cho phép của chúng
— Điền các giá tri cu thé vào các thuộc tính của mỗi lớp để tạo nên các thực thé của
lớp
Cũng từ đó chúng ta có thể tạo ra một cơ sở tri thức bằng cách tạo nên các thực thể củanhững lớp thông qua việc điền các giá trị thông tin cụ thể vào các thuộc tính mà không
phá vỡ các môi quan hệ ràng buộc giữa chúng.
2.3.2 Tại sao phải xây dung Ontology?
Ontology xác định một bộ từ vựng chung, một tiêng nói chung cho các nhà nghiên cứunhững ai muôn chia sẻ thông tin với nhau trong cùng một lĩnh vực nào đó Nó bao gôm
một định nghĩa về các khái niệm và các mối liên hệ ngữ nghĩa giữa chúng |!
Nói tóm lại mục đích của việc xây dựng ontology đó là:
— Chia sẻ những hiểu biết chung về cau trúc thông tin giữa con người với nhau hoặcgiữa các công ty phần mềm
- Cho phép tái sử dụng miễn tri thức trong một lĩnh vực cụ thé nao đó- Cụ thể hoá một giả định về một miễn tri thức
— Phân tích và đánh giá một miễn tri thứcChia sẻ những hiểu biết chung về cau trúc thông tin giữa con người với nhau hoặc giữacác công ty phần mềm với nhau chính là mục đích thông dụng thường thấy nhất của việcxây dựng một ontology Ví dụ, giả sử các trang web khác nhau cần cung cấp những thôngtin về y té hoac cung cap dịch vụ thương mai điện tử trong lĩnh vực y tế Nếu các trang
web này chia sẻ và xuât bản các ontology cơ bản giông nhau vê các miên tri thức khác
Ị 'http:/ /protege.stanford.edu/publications/ontology_development/ontology101-noy-mcguinness.html
Trang 37nhau trong lĩnh vực y tế thì một công ty phần mém nào đó có thé viết một phần mém cóthé trích xuất thông tin và tong hợp thông tin từ các trang web khác nhau, từ đó có thé sửdụng các thông tin tổng hợp được để trả lời các truy vẫn của người sử dụng hoặc là có thểsử dụng những thông tin đó làm đầu vào cho những ứng dụng khác
Cho pháp tái sử dụng miễn tri thức cũng là một trong những động lực thúc đây VIỆCnghiên cứu ontology trong thời gian gần đây Ví dụ, mô hình cho nhiều lĩnh vực khácnhau đều cần biểu diễn khái niêm về thời gian ví dụ khoảng thời gian, thời điểm, các biệnpháp đo lường tương đối về thời gian Nếu có một nhóm nghiên cứu phát triểnontology về thời gian một cách chi tiết thì những người khác chỉ đơn giản là có thé tái sửdung cho miễn tri thức của họ Ngoài ra néu chúng ta cần xây dựng một ontology lớn, cóthé tích hợp các ontology sẵn có trong các miễn con là thành phan của một miền tri thức
lớn.Ontology có thê cụ thê hoa một giả định vê một miên tri thức bởi vì những mô tả cụ thêtường minh của chúng vê miên tri thức nào đó băng ngôn ngữ tự nhiên giúp cho nhữngngười mới tìm hiệu hoặc chưa từng biệt về miền tri thức đó có thê dê dàng năm bat được
dễ dàng ý nghĩa của các khái niệm trong đó
Thông thường người ta phát triển ontology để làm tiền đề cho những múc đích khác chứkhông phải chỉ riêng mình nó Phát triển ontolology để xác định một tập hợp các dữ liệuvà cau trúc của chúng dé sử dung cho các chương trình khác Ví dụ như phương pháp giải
quyết vấn đề (problem-solving method), ứng dụng độc lập miền (domain-independent
application), các công ty phần mềm thường sử dung ontology cũng như các co sở tri thứcđược xây dựng từ chúng như là dữ liệu đầu vao.Vi dụ ontology về rượu va thức ăn có thé
được sử dụng trong việc các ứng dụng khác nhau hỗ trợ việc quản lí nhà hàng như một
ứng dụng tạo ra các đề xuất rượu vang cho thực đơn trong ngày hoặc một ứng dụng trảlời các truy vấn cho người phục vụ hoặc khách hàng
Trang 38d Databases
Ontologies Declare structure :
= KnowledgeProvide bases
Domain
description
Domain-Software et aiaagents Problem-
solving
methods
Hình 2-4 So đồ thé hiện mục đích của việc xây dựng ontology
2.3.3 Phương pháp xây dung Ontology
Quy trình phát triển Ontology là một quy trình gồm nhiều bước, tuy nhiên vẫn chưa cómột phương pháp chuẩn hóa nào để phát triển các ontology Quy trình được áp dụngtương đối phố biến hiện nay là quy trình phát triển gồm 7 bước do Stanford Center forBiomedical Informatics Research đưa ra (đây là nhóm phát triển phần mềm Protégé đểtrình dién và soạn thao Ontology)"
Bước 1:Xdc định lĩnh vực và phạm vi cua Ontology
Trong giai đoạn này cần xác định mục đích của việc xây dung ontology là gi? Phục vuđối tượng nào? Ontology sắp xây dựng cần có đặc điểm gi, liên quan đến lĩnh vực, phạm
vi nao Quá trình khai thác, quan lý và bao trì ontology được thực hiện ra sao?Bước 2: Xem xét việc su dung lại các ontology có săn
'“http:/ /protege.stanford.edu/publications/ontology_development/ontology101-noy-mcguinness.html
Trang 39Cau trúc của một Ontology bao gồm 3 tang: tầng trừu tượng (Abstract), tầng miền xácđịnh (Domain) va tang mở rong (Extension) Trong đó tầng trừu tượng có tính tái sử dụngrất cao, tầng miền xác định có thé tái sử dụng trong một lĩnh vực nhất định Cộng đồngOntology cũng đang lớn mạnh và có rất nhiều Ontology đã được tạo ra, với tâm huyếtcủa nhiều chuyên gia Do đó trước khi bắt đầu xây dựng ontology, cần xét đến khả năngsử dụng lại các ontology đã có Nếu có thé sử dụng lại một phan các ontology đã có, chiphí bỏ ra cho quá trình xây dựng ontology sẽ giảm đi rất nhiều
Bước 3: Liệt kê các thuát ngữ quan trong
Ontology được xây dựng trên cơ sở các khái niệm trong một lĩnh vực cụ thể, vì vậy khixây dung ontology cần bat đầu từ các thuật ngữ chuyên ngành để xây dựng thành các lớptrong ontology tương ứng Tat nhiên không phải thuật ngữ nào cũng đưa vào ontology, vìchưa chắc đã định vị được cho thuật ngữ đó Do đó cần phải liệt kê các thuật ngữ, để xácđịnh ngữ nghĩa cho các thuật ngữ đó, cũng như cân nhac về phạm vi của ontology Việcliệt kê các thuật ngữ còn cho thay được phan nào tổng quan về các khái niệm trong lĩnhvực đó, giúp cho các bước tiếp theo được thuận lợi
Bước 4: Xác định các lớp và phân cấp của các lớpCông việc xác định các lớp không chỉ đơn giản là tiến hành tìm hiểu về ngữ nghĩa củacác thuật ngữ đã có để có được các mô tả cho thuật ngữ đó, mà còn phải định vị cho cáclớp mới, loại bỏ ra khỏi ontology nếu năm ngoài phạm vi của ontology hay hợp nhất vớicác lớp đã có nếu có nhiều thuật ngữ có ngữ nghĩa như nhau (đồng nghĩa, hay đa ngônngữ) Ngoài ra không phải thuật ngữ nào cũng mang tính chất như một lớp
Một công việc cân phải tiên hành song song với việc xác định các lớp là xác định phân
cấp của các lớp đó Việc này giúp định vị các lớp dễ dàng hơn.Có một số phương pháp tiếp cận trong việc xác định phân cấp của các lớp:- Phương pháp từ trên xuống (top-down): bat đầu với định nghĩa của các lớp tổng quát
nhất trong lĩnh vực và sau đó chuyên biệt hóa các khái niệm đó Ví dụ: Trong
Ontology về quản lý nhân sự, ta bat đầu với lớp Người, sau đó chuyên biệt hóa lớpNgười đó bang cách tạo ra các lớp con của lớp Người như : Kỹ sư, Công nhân, Bácsỹ Lớp Kỹ sư cũng có thé chuyên biệt hóa bang cách tạo ra các lớp con như Kỹ su
CNTT, Kỹ sư điện, Kỹ su cơ khí,
Trang 40- Phương pháp từ dưới lên (bottom-up): bắt đầu với định nghĩa của các lớp cụ thé nhất,như các lá trong cây phân cấp Sau đó gộp các lớp đó lại thành các khái tổng quáthơn Ví dụ: ta bắt đầu với việc định nghĩa các lớp như: nhân viên lễ tân, nhân viên vệ
sinh, nhân viên kỹ thuật Sau đó tạo ra một lớp chung hơn cho các lớp đó là lớp nhânviên.
- Phương pháp kết hợp: kết hợp giữa phương pháp từ trên xuống va từ dưới lên: bắt đầutừ định nghĩa các lớp dễ thấy trước và sau đó tổng quát hóa và chuyên biệt hóa cáclớp đó một cách thích hợp Ví dụ ta bắt đầu với lớp nhân viên trước, là thuật ngữ haygặp nhất trong quản lý nhân sự Sau đó chúng ta có thể chuyên biệt hóa thành các lớpcon: nhân viên lễ tân, nhân viên vệ sinh, hoặc tong quát hóa lên thành lớp Người
Bước 5: Xác định các thuộc tinh
Để xác định thuộc tính cho các lớp, ta quay trở lại danh sách các thuật ngữ đã liệt kêđược Hầu hết các thuật ngữ còn lại (sau khi đã xác định lớp) là thuộc tính của các lớp đó
Với mỗi thuộc tính tìm được, ta phải xác định xem nó mồ tả cho lớp nào Các thuộc tính
đó sẽ trở thành thuộc tính của các lớp xác định Ví dụ lớp Người có các thuộc tính sau:
Ho, Tên, Ngày sinh, Gidi tính, Nghề nghiệp Dia chỉ, Điện thoai, Bước 6: Xác định giới hạn của các thuộc tính (lực lượng, kiểu giá tri).Các thuộc tính có thé có nhiều khía cạnh khác nhau: như kiểu giá trị, các giá trị cho phép,số các thuộc tính (lực lượng), và các đặc trưng khác mà giá tri của thuộc tính có thé nhận.Ví dụ: “Năm sinh” của một “nhân viên” chỉ có duy nhất và là số nguyên, có thể nhận giátrị từ 1948 đến 1990 Cần phải xác định các ràng buộc cho một thuộc tính càng chặt chẽcàng tốt, dé tránh trường hợp nhập dữ liệu sai, dẫn đến đồ vỡ của các ứng dụng sử dụng
Ontology này.
Bước 7: Tạo các thé hiện/thực thé
Bước cuôi cùng là tạo ra các thê hiện của các lớp trong sự phan cap Việc tạo thê hiện cho
một lớp là quá trình điền các thông tin vào các thuộc tính của lớp đó
2.3.4 OWL — Web Ontology Language
Trong phạm vi của môi trường web, ontology là các khái niệm cu thé về thông tin web va
các môi quan hệ giữa chúng.