Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 51 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
51
Dung lượng
2,38 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Chử Kim Cường CHUYỂN ĐỔI ĐẶC TẢ UML VỚI OCL SANG ĐẶC TẢ ALLOY KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Cơng nghệ thơng tin HÀ NỘI - 2010 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Chử Kim Cường CHUYỂN ĐỔI ĐẶC TẢ UML VỚI OCL SANG ĐẶC TẢ ALLOY KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Cơng nghệ thơng tin Cán hướng dẫn: ThS Vũ Diệu Hương Cán đồng hướng dẫn:TS Đặng Văn Hưng HÀ NỘI - 2010 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com LỜI CẢM ƠN Lời em xin gửi lời cảm ơn chân thành, lịng biết ơn sâu sắc tới giáo Vũ Diệu Hương thầy Đặng Văn Hưng hướng dẫn tận tình cho em suốt trình làm khóa luận tốt nghiệp Em xin gửi lời cám ơn tới thầy, cô khoa Công nghệ thông tin-Trường Đại Học Công Nghệ - ĐHQGHN Các thầy, cô dạy bảo luôn tạo điều kiện cho chúng em học tập trình học đặc biệt thời gian làm khóa luận tốt nghiệp Cuối cùng, xin gửi lời cảm ơn tới tập thể sinh viên lớp K51CC trường Đại Học Công Nghệ, người bạn chia sẻ giúp đỡ suốt trình học tập Hà Nội, ngày tháng năm 2010 Sinh Viên Chử Kim Cường LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com TÓM TẮT NỘI DUNG UML ngơn ngữ mơ hình hóa thống nhất, biểu diễn đối tượng thực ký hiệu trực quan Một mơ hình UML gồm nhiều biểu đồ thể khía cạnh khác hệ thống OCL sử dụng để mô tả ràng buộc cho đối tượng mơ hình UML Một cách để kiểm tra đắn mơ hình UML chuyển đổi mơ hình UML sang đặc tả Alloy sử dụng cơng cụ Alloy Analyzer để phân tích tự động Khóa luận giới thiệu UML, OCL, Alloy tập trung trình bày cách thức chuyển đổi mơ hình UML sang Alloy để thực phân tích yếu tố mơ hình Hệ thống quản lý tài khoản giao dịch ATM sử dụng để minh họa phương pháp trình bày LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Mục lục LỜI CẢM ƠN i TÓM TẮT NỘI DUNG ii DANH MỤC BẢNG BIỂU v DANH MỤC HÌNH VẼ vi Mở Đầu Chương 1.1 Tổng quan UML OCL Ngơn ngữ mơ hình hóa thống - UML 1.1.1 Mục đích UML 1.1.2 Miền ứng dụng UML 1.1.3 Hệ thống biểu đồ UML 1.1.4 Biểu đồ lớp 1.2 OCL – Object Constraint Language 1.2.1 Biểu diễn đặc tả OCL 1.2.2 Đặc tả OCL biểu đồ lớp 1.2.3 Kiểu tập hợp phép toán tập hợp 10 1.2.4 Biểu thức lặp tập hợp 12 1.3 Kết luận 13 Chương Giới thiệu Alloy công cụ Alloy Analyzer 13 2.1 Khái quát Alloy 14 2.2 Mô hình Alloy 14 2.2.1 Khai báo ký hiệu - signature 14 2.2.2 Khai báo kiện - fact 15 2.2.3 Khai báo mệnh đề chức – predicate & fuction 16 2.2.4 Khai báo khẳng định - assertion 16 2.2.5 Lệnh Alloy 16 2.2.6 Khai báo mô đun 17 2.2.7 Thực thi mơ hình Alloy 17 2.3 Công cụ Alloy Analyzer 17 2.4 Ví dụ đặc tả Alloy 18 Chương 3.1 giản Chuyển đổi biểu đồ lớp với đặc tả OCL sang mơ hình Alloy 20 Chuyển biểu đồ lớp UML với liên kết phức tạp sang biểu đồ lớp UML với liên kết đơn 22 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 3.1.1 Quan hệ nhị phân với lượng từ 23 3.1.2 Chuyển quan hệ tổng quát hóa sang quan hệ nhị phân 25 3.1.3 Chuyển quan hệ kết tập tạo thành sang quan hệ nhị phân 28 3.1.4 Chuyển thành phần lớp sang Alloy 29 3.1.5 Chuyển ràng buộc bất biến, tiền điều kiện hậu điều kiện OCL 32 3.2 Những vấn đề chuyển đổi 35 3.3 Kết luận 36 Chương 4.1 Kiểm tra đặc tả hệ thống quản lý tài khoản giao dịch máy ATM 37 Yêu cầu hệ thống 37 4.1.1 Yêu cầu chức 37 4.1.2 Ràng buộc cho hệ thống 37 4.2 Thiết kế sở liệu 38 4.2.1 Biểu đồ lớp 38 4.2.2 Các ràng buộc mô tả OCL 38 4.3 Chuyển đổi mơ hình thiết kế sang Alloy 39 Kết luận 42 TÀI LIỆU THAM KHẢO 43 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com DANH MỤC BẢNG BIỂU Bảng Kiểu liệu tập hợp OCL 11 Bảng Phép toán tập hợp OCL 11 Bảng Biểu thức lặp tập hợp OCL 12 Bảng Chuyển đặc tả OCL lớp Student sang Alloy 24 Bảng Quy tắc chuyển quan hệ tổng quát hóa sang quan hệ nhị phân 26 Bảng Quy tắc chuyển OCL sang Alloy – [4] 33 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com DANH MỤC HÌNH VẼ Hình Biểu diễn đặc tả OCL biểu đồ lớp[5] Hình Cơng cụ Alloy Analyzer 18 Hình Kết thực thi mơ hình Alloy 20 Hình Kết thực thi mệnh đề "thêm” 20 Hình Mơ hình chuyển đổi biểu đồ lớp với đặc tả OCL sang mơ hình Alloy 22 Hình Chuyển quan hệ nhị phân với lượng từ[3] 23 Hình Ví dụ chuyển quan hệ nhị phân với lượng từ 24 Hình Đặc tả Alloy lớp Student 25 Hình Chuyển quan hệ tổng quát hóa sang quan hệ nhị phân[3] 25 Hình 10 Ví dụ mơ hình chuyển đổi OCL sang Alloy 26 Hình 11 Chuyển lớp sang ký hiệu 29 Hình 12 Lớp với thuộc tính, phương thức đặc tả OCL 32 Hình 13 Biểu đồ lớp hệ thống ATM[8] 38 Hình 14 Ràng buộc OCL hệ thống 38 Hình 15 Đặc tả Alloy lớp ATM 39 Hình 16 Đặc tả Alloy lớp Account 40 Hình 17 Ràng buộc cho hệ thống ATM 41 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Mở Đầu UML[1] ngôn ngữ sử dụng phổ biến ngành cơng nghiệp phần mềm tính dễ hiểu, trực quan dễ thể công cụ Trong năm gần đây, OCL[5] phát triển với mục đích ngôn ngữ mô tả ràng buộc cho yếu tố mơ hình UML[1] để mơ hình UML[1] có ngữ nghĩa chặt chẽ Cho đến nay, để kiểm tra ràng buộc mơ hình UML[1], phải chuyển đặc tả UML[1] sang đặc tả ngơn ngữ có tính hình thức hóa cao Z, B, OWL, Alloy[2] Alloy[2] phát triển hồn thiện ngơn ngữ cơng cụ phân tích tự động Chúng ta chuyển đổi mơ hình UML[1] với đặc tả OCL[5] sang mơ hình Alloy[2] sử dụng cơng cụ phân tích Alloy Analyzer để phân tích yếu tố mơ hình Hiện nay, có nhiều nhóm tham gia nghiên cứu lý thuyết chuyển đổi đặc tả UML[1] OCL[5] sang đặc tả Alloy[2] xây dựng công cụ chuyển đổi tự động Có thể kể đến cơng cụ UML2ALLOY[7] Tuy nhiên, nhiều hạn chế việc nghiên cứu lý thuyết chuyển đổi đặc tả UML[1] với OCL[5] sang đặc tả Alloy[2] ví dụ việc chuyển đổi quan hệ tam phân (hoặc lớn quan hệ tam phân) lớp biểu đồ lớp sang đặc tả Alloy[2] Khóa luận tập trung vào tìm hiểu quy tắc chuyển đổi yếu tố mơ hình UML[1] sang mơ hình Alloy[2] đề xuất nghiên cứu khác có đề xuất số quy tắc chuyển đổi cho số trường hợp đặc biệt Khóa luận thực ví dụ minh họa “hệ thống quản lý tài khoản giao dịch máy ATM” Kết cấu khóa luận sau: Chương 1: Tổng quan UML OCL Chương 2: Giới thiệu Alloy cơng cụ phân tích Alloy Analyzer Chương 3: Chuyển đổi biểu đồ lớp UML với đặc tả OCL sang Alloy Chương4: Bài toán minh họa LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương Tổng quan UML OCL 1.1 Ngôn ngữ mô hình hóa thống - UML UML[1] ngơn ngữ mơ hình hóa thống với ký hiệu trực quan, phương pháp hướng đối tượng sử dụng để thể miêu tả thiết kế hệ thống Nó ngơn ngữ để đặc tả, trực quan hóa, xây dựng làm tài liệu cho nhiều đối tượng khác UML[1] làm cơng cụ giao tiếp người dùng, nhà phân tích, nhà thiết kế nhà phát triển phần mềm 1.1.1 Mục đích UML Mơ hình hóa hệ thống sử dụng khái niệm hướng đối tượng Thiết lập kết nối từ nhận thức người đến việc cần mơ hình hóa Giải vấn đề mức độ thừa kế hệ thống phức tạp, có nhiều ràng buộc khác Tạo ngơn ngữ mơ hình hóa sử dụng người máy 1.1.2 Miền ứng dụng UML UML[1] sử dụng nhiều giai đoạn từ phát triển, thiết kế, thực bảo trì Hệ thống thơng tin (Infomation system) : Cất giữ, lấy, biến đổi thông tin cho người sử dụng Xử lý khoảng liệu lớn có quan hệ phức tạp, mà chúng lưu trữ sở liệu quan hệ hay hướng đối tượng Hệ thống kỹ thuật (Technical system): Xử lý điều khiển thiết bị viễn thông, hệ thống qn hay q trình cơng nghiệp Đây loại thiết bị phải xử lý giao tiếp đặc biệt, khơng có giao giao diện chuẩn thường hệ thống thời gian thực Hệ thống nhúng (Embeded system): Thực thiết bị phần cứng ô tô, thiết bị di động Điều thực với lập trình mức thấp với hỗ trợ thời gian thực Hệ thống phân bố (Distributed system): Được phân bố số máy cho phép truyền liệu từ nơi đến nơi khác cách dễ dàng Chúng đòi hỏi chế liên lạc đồng để bảo đảm toàn vẹn liệu Thường xây dựng số kỹ thuật hướng đối tượng CORBA, COM/DCOM Hệ thống giao dịch (Bussiness system): Mơ tả mục đích, tài ngun, quy tắc công việc kinh doanh Phần mềm hệ thống (System software): Định nghĩa sở hạ tầng kỹ thuật cho phần mềm khác sử dụng chẳng hạn hệ điều hành, sở liệu, LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Ràng buộc cho toàn thể fact {all a: A | some p: P | p fact {all a: A | some p: P | p in a.rp} in a.rp} Ràng buộc cho phận fact {all p: P | some a: A | p in a.rp} Ràng buộc chia sẻ phận fact {all p: P | some a,a’: A | p in a.rp and p in a’.rp implies a = a’ } 3.1.4 Chuyển thành phần lớp sang Alloy Trong phần 3.1.1, 3.1.2 3.1.3 xem xét đưa cách thức để biểu diễn quan hệ lớp biểu đồ lớp UML[1] sang biểu diễn Alloy[2], nhiên biểu đồ lớp chứa lớp mô tả mức khái niệm, lớp khơng có thuộc tính, phương thức Trong phần đưa cách thức chuyển thành phần lớp sang biểu diễn Alloy[2] Ngoài đưa cách thức chuyển kiểu enum sang biểu diễn Alloy[2] Lớp Mỗi lớp khai báo thành ký hiệu Alloy[2], lớp ảo chuyển thành ký hiệu ảo Tên lớp chuyển thành tên ký hiệu tương ứng Hình 11 Chuyển lớp sang ký hiệu Cú pháp biểu diễn ký hiệu : Bắt đầu với từ khóa sig (giống bắt đầu với từ khóa class), tiếp đến tên class tương ứng lớp UML[1] Biểu diễn class Student tương ứng với biểu diễn 29 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Các thuộc tính lớp thành trường khai báo cặp “{}” Thuộc tính lớp Sau chuyển lớp sang ký hiệu, tiếp đến chuyển thuộc tính lớp thành trường ký hiệu cặp “{}” ký hiệu tương ứng Mỗi thuộc tính lớp biểu diễn biểu đồ UML[1] với cú pháp tên_thuộc _tính : kiểu_dữ_liệu Tương đương Alloy[2] là: tên_trường (chính tên thuộc tính lớp) : kiểu_dữ_ liệu Các trường Alloy[2] phân cách dấu phẩy “,” Trong Alloy[2], hộ trợ số kiểu liệu nguyên thủy Do vậy, kiểu liệu thuộc tính khơng nằm kiểu liệu hỗ trợ Alloy[2] phải tự định nghĩa kiểu liệu cách chuyển kiểu liệu thành khai báo ký hiệu Lớp với thuộc tính Ví dụ hình vẽ lớp Student có thuộc tính birthday có kiểu liệu Date khơng hộ trợ Alloy[2] phải định nghĩa kiểu liệu sig Date {day : Int,mont : Int, year : Int} Các trường phân cách dấu phẩy Và biểu diễn lớp Student Alloy[2] đơn giản sau : sig Student {birthDay : Date} 30 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phương thức lớp Trong biểu diễn lớp UML[1], phương thức biểu diễn với cú pháp : Kiểu_Trả_về Kiểu_biến2] {} Tên_Phương_thức [biến_1 : Kiểu_của_biến1, biến 2: Kiểu trả kiểu void, kiểu đó, danh sách tham biến tùy chọn tức tồn phương thức khơng có danh sách tham biến Đến có cách lựa chọn, lựa chọn thứ phương thức không trả kết (trả kiểu void) chuyển thành khai báo mệnh đề Alloy[2], lựa chọn thứ hai chuyển phương thức thành khai báo chức Alloy[2] Với lựa chọn tên phương thức chuyển thành tên mệnh đề chức tùy theo lựa chọn Danh sách tham biến kiểu chúng chuyển thành danh sách tham biến mệnh đề chức tùy theo cách lựa chọn Như đề cập phần trước, Alloy[2] cung cấp số kiểu liệu integer , với kiểu biến danh sách tham biến không nằm kiểu Alloy[2] cần khai báo kiểu biến ký hiệu Giả sử có class A với phương thức khai báo void operation (para1 : Type1, para2 : Type2) Trong phần trước đề cấp cách chuyển lớp thành ký hiệu, thuộc tính thành khai báo trường ký hiệu tương ứng, nhiên vấn đề khai báo ký hiệu khơng có khai báo mệnh đề hay chức năng, tất khai báo nằm ngồi ký hiệu Do khai báo mệnh đề hay chức phải rõ ký hiệu Với phương thức operation chuyển sau: void operation (para1 : Type1, para2 : Type2) {}-> pred A::operation[para1: Type1, para2 : Type2] {} Đối với phương thức có kết trả typeReturn operation(para1 : Type1, para2 : Type2){} -> 31 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com fun A::operation[para1 : Type1, para2 : Type2]:typeReturn {} Ví dụ : Cho lớp Student với đặc tả Hình 12 Lớp với thuộc tính, phương thức đặc tả OCL Biểu diễn lớp tương ứng Alloy : 3.1.5 Chuyển ràng buộc bất biến, tiền điều kiện hậu điều kiện OCL Sự khác biệt OCL[5] Alloy[2] không cho phép chuyển đổi chúng cách hoàn toàn Do đề cập tới số khía cạnh chuyển đổi từ OCL[5] sang Alloy[2] Bảng sau mô tả phép chuyển Các ký hiệu viết tắt col : Biểu diễn tập hợp – collection OCL 32 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com v : Biến – varable (v) biểu thức T : Biểu diễn kiểu biến be : Biểu diễn biểu thức Boolean e : Biểu diễn biểu thức Bảng Quy tắc chuyển OCL sang Alloy – [4] OCL Alloy col ->forAll(v : T | be) all Tr(v) : Tr(col) | Tr(be) col -> exists(v : T | be) some Tr(v) : Tr(col) | Tr(be) e1 and e2 Tr(e1) && Tr(e2) not e !Tr(e) col -> size() #Tr(col) col -> includes(v : T) Tr(v) in Tr(col) col -> excludes(v : T) Tr(v) ! in Tr(col) col1 -> includesAll(col2) Tr(col2) in Tr(col1) col1 -> excludesAll(col2) Tr(col2) ! in Tr(col1) col -> including(v :T) Tr(col) + Tr(v) col -> excluding(v: T) Tr(col) – Tr(v) col ->isEmpty() no ( col) col ->notEmpty() some (col) if condition then e1 else e2 Tr(condition) =>Tr(e1) else Tr(e2) e.oclIsUndefined #Tr(e) = e -> oclKindOf(v : T) Tr(v) in Tr(e) col1 -> union(col2) Tr(col1) + Tr(col2) col1 -> intersection(col2) Tr(col1) & Tr(col2) 33 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com col1 ->product(col2) Tr(col1) -> Tr(col2) col->sum() sum Tr(col) Ràng buộc OCL[5] đặc tả biểu đồ UML[1] đề cập tới vấn đề Vấn đề thứ chuyển đặc tả bất biến OCL[5] sang biểu thức logic Alloy[2] vấn đề thứ hai chuyển đặc tả tiền điều kiện hậu điều kiện phương thức sang biểu thức logic Alloy[2] Bất biến Mỗi bất biến đặc tả OCL[5] hiểu ràng buộc cho thể đối tượng khai báo ngữ cảnh cụ thể Do chuyển bất biến thành biểu thức ràng buộc Alloy[2] nằm kiện, rõ đối tượng chịu ràng buộc kiện Ví dụ với đặc tả lớp Student khai báo thuộc tính years (sinh viên năm thứ mấy), giả sử có ràng buộc sinh viên phải sinh viên năm thứ 1, Lớp với thuộc tính phương thức Biến seft thể đối tượng Student Do kiện phải đối tượng Student Do bất biến viết thành biểu thức logic Alloy[2] sau: fact {all s : Student | int s.years >=1 and int s.years =1 and int s.years ràng buộc hậu điều kiện post < 10 operation(pre : T) pre operation(pre : T, post : T’) {pre > & post < 10} Tuy việc chuyển biểu thức hậu điều kiện tương đối phức tạp Do chuyển đổi biểu thức tiền điều kiện 3.2 Những vấn đề chuyển đổi Mặc dù UML[1] Alloy[2] thiết kế để mơ tả mơ hình hướng đối tượng, nhiên UML[1] Alloy[2] có số điểm khác biệt cách tiếp cận số khái niệm hướng đối tượng ví dụ cách tiếp cận vấn đề thừa kế, ghi đè ảnh hưởng tới việc chuyển đổi mơ hình UML[1] sang Alloy[2] Vấn đề thừa kế[4] Cả UML[1] Alloy[2] cung cấp khái niệm thừa kế Trong UML[1], lớp thừa kế từ nhiều lớp UML[1] sử dụng khái niệm “redefine” để thể thuộc tính phương thức bị ghi đè lớp Trong đó, ký hiệu Alloy[2] kế thừa từ ký hiệu khác thành phần ký hiệu tập ký hiệu cha ký hiệu khơng thể khai báo trường có tên trùng với tên trường có lớp cha tức việc ghi đè trực tiếp Alloy[2] không cho phép Không gian tên[4] Mọi thành phần mô hình UML[1] định nghĩa khơng gian tên Ví dụ như, lớp mơ hình UML[1] đặt khơng gian tên gói thuộc tính lớp đặt khơng gian tên lớp thuộc Trong đó, thành phần Alloy[2] thuộc khơng gian tên mơ đun Ví dụ đặc tả UML[1] có định nghĩa :”Tập hợp tên thuộc tính tên lớp khơng cần thiết phải tách rời” Nhưng Alloy[2], tên ký hiệu có tách rời với tên trường Chính chuyển đổi phải chắn tên tạo cho thành phần Alloy[2] không gian tên mô-đun Kiểu định nghĩa trước[4] Đặc tả UML[1] định nghĩa trước số kiểu liệu nguyên thủy (String, Real, Integer ) 35 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Trong đó, Alloy[2] có hệ thống kiểu đơn giản kiểu Integer kiểu liệu nguyên thủy định nghĩa trước Ví dụ kiểu liệu String đinh nghĩa trước UML[1] không đinh nghĩa Alloy[2], cách tiếp cận cho vấn đề khai báo ký hiệu kiểu String mô hình Kết tập tạo thành[4] Trong UML[1] kết tập tạo thành dạng đặc biệt liên hệ hai lớp Alloy[2] không hỗ trợ trực tiếp hai kiểu quan hệ kết tập tạo thành Đây khó khăn chuyển đổi biểu đồ lớp với quan hệ kết tập tạo thành Alloy[2] Trong khóa luận em có đưa cách thức chuyển đổi hai quan hệ sang đặc tả Alloy[2] phần chương Mơ hình tĩnh mơ hình động[4] Mơ hình Alloy[2] mơ hình tĩnh Một mơ hình Alloy[2] định nghĩa thể hệ thống thỏa mãn ràng buộc Bản thân Alloy[2] khơng chứa đựng khái niệm trạng thái hệ thống Trong UML[1] sử dụng khái niệm tĩnh để biểu diễn quan hệ cấu trúc thành phần hệ thống thông qua ràng buộc, đặc tả phương thức với thêm vào điều kiện tiền điều kiện hậu điều kiện phương thức Một mơ hình hệ thống tĩnh thời điểm thơng qua giá trị đối tượng, thuộc tính liên kết thành phần mơ hình hệ thống Một giải pháp cho vấn đề sử dụng mẫu mơ hình động Alloy[2] để giải vấn đề Với cách mô tả giá trị tiền điều kiện phương thức trạng thái đầu mô tả giá trị hậu điều kiện phương thức trạng thái 3.3 Kết luận Như vậy, chương 3, em trình bày mơ hình chuyển đổi, quy tắc chuyển đổi yếu tố mơ hình UML[1] sang yếu tố mơ hình Alloy[2] quy tắc chuyển OCL[5] sang Alloy[2] Cụ thể quy tắc chuyển đổi lớp, thành phần lớp sang đặc tả Alloy[2], thể liên kết nhị phân, quan hệ kết tập, tạo thành, tổng quát hóa biểu diễn biểu đồ lớp UML[1] sang biểu diễn Alloy[2] cách đưa thêm ràng buộc Alloy[2] logic Bên cạnh đó, chương đề cập tới vấn đề hạn chế chuyển đổi từ mơ hình UML[1] sang mơ hình Alloy[2], có hạn chế khách quan có yếu tố chủ quan người Trong chương 4, em trình bày tốn minh họa áp dụng cho quy tắc chuyển đổi mà nêu chương 36 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương Kiểm tra đặc tả hệ thống quản lý tài khoản giao dịch máy ATM 4.1 Yêu cầu hệ thống 4.1.1 Yêu cầu chức Hệ thống ATM cung cấp chức sau: Cho phép thao tác với tài khoản : thêm, xóa, sửa tài khoản Cho phép thực chức giao dịch: Rút tiền, gửi tiền, xem thông tin tài khoản 4.1.2 Ràng buộc cho hệ thống Hệ thống ATM đòi hỏi ràng buộc sau: Một máy ATM có yếu tố sau: hình, bàn phím, khe rút tiền Tất tài khoản nằm sở liệu ngân hàng Một tài khoản cụ thể lưu trữ sở liệu ngân hàng, tức không tồn sở liệu ngân hàng lưu trữ thông tin tài khoản cụ thể Tại thời điểm, có giao dịch diễn Hai tài khoản khác mã pin mã cá nhân phải khác Mọi tài khoản cụ thể có thơng số : tổng số tiền số tiền sử dụng Tổng số tiền tài khoản luôn lớn số tiền sử dụng Tổng số tiền tài khoản nhỏ số dư tài khoản phải có 37 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 4.2 Thiết kế sở liệu 4.2.1 Biểu đồ lớp Hình 13 Biểu đồ lớp hệ thống ATM[8] 4.2.2 Các ràng buộc mơ tả OCL Hình 14 Ràng buộc OCL hệ thống 38 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình 14 mơ tả ràng buộc OCL[5] bên trái tương đương đặc tả Alloy[2] bên phải Ràng buộc OCL[5] mô tả ràng buộc cho quan hệ tạo thành lớp Account lớ BankDatabase 4.3 Chuyển đổi mơ hình thiết kế sang Alloy Lớp ATM: Chuyển đổi lớp ATM sang đặc tả Alloy Hình 15 Đặc tả Alloy lớp ATM Lớp ATM chuyển thành khai báo ký hiệu Alloy, thuộc tính lớp ATM chuyển thành trường nằm ký hiệu ATM Alloy Đối với kiểu thuộc tính lớp ATM : Với kiểu liệu Alloy hỗ trỡ integer tất các kiểu liệu thuộc tính khác khai báo thành ký hiệu Trong biểu đồ lớp, lớp ATM tham chiếu tới lớp BankDatabase, Screen, Keypad phần thuộc tính ATM có thuộc tính có kiểu kiểu lớp nêu Chúng ta quan sát số quan hệ ATM BankDatabase, Screen, Keypad Bản số biểu diễn thành khai báo hạn định cho trường, thấy ký hiệu ATM hạn định cho trường 39 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Lớp ATM có phương thức Ba phương thức chuyển hoàn toàn thành mệnh đề - predicate Danh sách tham biến phương thức biểu đồ lớp mang nguyên vẹn thành danh sách tham biến mệnh đề Alloy Tương tự lớp khác Lớp Account: Chuyển đổi đặc tả lớp Account sang biểu diễn Alloy Hình 16 Đặc tả Alloy lớp Account Đặc tả ràng buộc hệ thống Alloy Đối với thể Account avaiableBalance totalBalance >5 phải thỏa mãn totalBalance lớn Ngoài ra, với thể Account phải thỏa mãn : Khơng Account trùng mã pin accountNumber 40 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình 17 Ràng buộc cho hệ thống ATM Kết thực thi mơ hình 41 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kết luận Trong trình thực đề tài Khóa luận tốt nghiệp, em tìm hiểu ngơn ngữ UML[1], OCL[5] công cụ hỗ trợ đặc tả UML[1] Em tìm hiểu phương pháp để kiểm tra yếu tố mơ hình UML[1] tập trung vào phương pháp chuyển đổi mô hình UML[1] sang đặc tả Alloy[2] để sử dụng cơng cụ Alloy Analyzer việc phân tích tự động yếu tố mơ hình Em đặc tả “hệ thống quản lý tài khoản giao dịch ” để minh họa cho phương pháp Qua q trình thực khóa luận, em nắm cách thức đặc tả hệ thống ngôn ngữ UML[1], OCL[5], Alloy[2] phương pháp để kiểm tra yếu tố mơ hình Trong nắm rõ cách thức chuyển đổi biểu đồ lớp UML[1] sang mô hình Alloy[2] Trong điều kiện xây dựng hồn chỉnh sở lý thuyết chuyển đổi từ đặc tả biểu đồ lớp UML[1] sang Alloy[2], xây dựng công cụ tự động chuyển biểu đồ lớp UML[1] sang Alloy[2] Alloy[2] hỗ trợ kiểm tra mối quan hệ làm mịn đặc tả Alloy[2] Khả Alloy[2] sử dụng để kiểm tra mối quan hệ làm mịn đặc tả UML[1] Tuy nhiên thời gian khả có hạn, em chưa thực ví dụ minh họa cho khả Em thực thời gian tới với việc hoàn thiện quy tắc chuyển đổi từ mơ hình UML[1] sang mơ hình Alloy[2] với trường hợp phức tạp 42 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com TÀI LIỆU THAM KHẢO Tài liệu tham khảo tiếng Việt [1]TS Dương Kiều Hoa – Tơn Thất An – Phân tích thiết kế hệ thống thông tin theo UML Tài liệu tham khảo tiếng Anh [2] Daniel Jackson – Software Abstractions: Logic, Language, and Analysis – The Mit Press Cambridge, Massachussets London England, 2006 [3]Martin Gogolla, Mark Richters – Expressing UML Class Diagrams Properties with OCL – University of Bremen, FB 3, Computer Science Department , Germany [4]Kyriakos Anastasakis – UML2Alloy Reference manual – The University of Birmingham School of Computer Science [5]Object Management Group – Object Constraint Language Version 2.2 [6]http://alloy.mit.edu [7] http://www.cs.bham.ac.uk/~bxb/UML2Alloy/index.php [8]Deitel – How to program C++ sixth edition chapter 13 43 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... chuyển đổi đặc tả UML[ 1] OCL[ 5] sang đặc tả Alloy[ 2] xây dựng cơng cụ chuyển đổi tự động Có thể kể đến cơng cụ UML2 ALLOY[ 7] Tuy nhiên, cịn nhiều hạn chế việc nghiên cứu lý thuyết chuyển đổi đặc. .. mơ hình chuyển đổi, quy tắc chuyển đổi yếu tố mơ hình UML[ 1] sang yếu tố mơ hình Alloy[ 2] quy tắc chuyển OCL[ 5] sang Alloy[ 2] Cụ thể quy tắc chuyển đổi lớp, thành phần lớp sang đặc tả Alloy[ 2],... buộc OCL[ 5] Như vậy, với kiến thức tìm hiểu biểu đồ lớp UML[ 1], đặc tả OCL[ 5] cho biểu đồ lớp, Alloy[ 2] công cụ Alloy Analyzer Chúng ta làm rõ cần thiết chuyển đổi biểu đồ lớp UML[ 1] với đặc tả OCL[ 5]