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,37 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ĐẶCTẢUMLVỚIOCLSANGĐẶCTẢ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 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Chử Kim Cường CHUYỂN ĐỔIĐẶCTẢUMLVỚIOCLSANGĐẶCTẢ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 bộ hướng dẫn: ThS. Vũ Diệu Hương Cán bộ đồng hướng dẫn:TS. Đặng Văn Hưng HÀ NỘI - 2010 LỜI CẢM ƠN Lời đầu tiên em xin gửi lời cảm ơn chân thành, và lòng biết ơn sâu sắc tới cô giáo Vũ Diệu Hương cùng thầy Đặng Văn Hưng đã hướng dẫn tận tình cho em trong suốt quá trình làm khóa luận tốt nghiệp. Em cũng xin gửi lời cám ơn tới các thầy, cô trong 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 và luôn luôn tạo điều kiện cho chúng em học tập trong quá trình học và đặc biệt trong 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ệ, những người bạn luôn chia sẻ và giúp đỡ tôi trong suốt quá trình học tập. Hà Nội, ngày tháng năm 2010 Sinh Viên Chử Kim Cường TÓM TẮT NỘI DUNG UML là ngôn ngữ mô hình hóa thống nhất, biểu diễn các đối tượng thực bằng các ký hiệu trực quan. Một mô hình UML gồm nhiều biểu đồ thể hiện các khía cạnh khác nhau của hệ thống. OCL được sử dụng để mô tả các ràng buộc cho các đối tượng của mô hình UML. Một cách để kiểm tra sự đúng đắn của mô hình UML là chuyển đổi mô hình UMLsangđặctảAlloy và sử dụng công cụ Alloy Analyzer để phân tích tự động. Khóa luận này giới thiệu về UML, OCL, Alloy và tập trung trình bày cách thức chuyển đổi mô hình UMLsangAlloy để thực hiện phân tích các yếu tố mô hình. Hệ thống quản lý các tài khoản và giao dịch ATM được sử dụng để minh họa phương pháp đã trình bày. 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 1 Chương 1 . Tổng quan UML và OCL 2 1.1 Ngôn ngữ mô hình hóa thống nhất - UML 2 1.1.1 Mục đích của UML 2 1.1.2 Miền ứng dụng của UML 2 1.1.3 Hệ thống biểu đồ trong UML 3 1.1.4 Biểu đồ lớp 3 1.2 OCL – Object Constraint Language 5 1.2.1 Biểu diễn đặctảOCL 6 1.2.2 ĐặctảOCL trên biểu đồ lớp 7 1.2.3 Kiểu tập hợp và các phép toán trên tập hợp 10 1.2.4 Biểu thức lặp trên tập hợp 12 1.3 Kết luận 13 Chương 2 . Giới thiệu Alloy và công cụ Alloy Analyzer 13 2.1 Khái quát về 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 sự kiện - fact 15 2.2.3 Khai báo mệnh đề và chức năng – predicate & fuction 16 2.2.4 Khai báo khẳng định - assertion 16 2.2.5 Lệnh trong 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ụ đặctảAlloy 18 Chương 3 . Chuyển đổi biểu đồ lớp vớiđặctảOCLsang mô hình Alloy 20 3.1 Chuyển biểu đồ lớp UMLvới các liên kết phức tạp sang biểu đồ lớp UMLvới các liên kết đơn giản 22 3.1.1 Quan hệ nhị phân với các 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 và tạo thành sang quan hệ nhị phân 28 3.1.4 Chuyển các thành phần của lớp sangAlloy 29 3.1.5 Chuyển các 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 đề khi chuyển đổi 35 3.3 Kết luận 36 Chương 4 . Kiểm tra đặctả hệ thống quản lý các tài khoản và các giao dịch trên máy ATM 37 4.1 Yêu cầu của hệ thống 37 4.1.1 Yêu cầu chức năng 37 4.1.2 Ràng buộc cho hệ thống 37 4.2 Thiết kế cơ sở dữ liệu 38 4.2.1 Biểu đồ lớp 38 4.2.2 Các ràng buộc được mô tả bằng OCL 38 4.3 Chuyển đổi mô hình thiết kế sangAlloy 39 Kết luận 42 TÀI LIỆU THAM KHẢO 43 DANH MỤC BẢNG BIỂU Bảng 1. Kiểu dữ liệu tập hợp trong OCL 11 Bảng 2. Phép toán trên tập hợp OCL 11 Bảng 3. Biểu thức lặp trên tập hợp OCL 12 Bảng 4. Chuyển đặctảOCL của lớp Student sangAlloy 24 Bảng 5. Quy tắc chuyển quan hệ tổng quát hóa sang quan hệ nhị phân 26 Bảng 6. Quy tắc chuyển OCLsangAlloy – [4] 33 DANH MỤC HÌNH VẼ Hình 1. Biểu diễn đặctảOCL trên biểu đồ lớp[5] 6 Hình 2. Công cụ Alloy Analyzer 18 Hình 3. Kết quả thực thi mô hình Alloy 20 Hình 4. Kết quả thực thi mệnh đề "thêm” 20 Hình 5. Mô hình chuyển đổi biểu đồ lớp vớiđặctảOCLsang mô hình Alloy 22 Hình 6. Chuyển quan hệ nhị phân với lượng từ[3] 23 Hình 7. Ví dụ chuyển quan hệ nhị phân với lượng từ 24 Hình 8. ĐặctảAlloy lớp Student 25 Hình 9. 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 đổiOCLsangAlloy 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 và đặctảOCL 32 Hình 13. Biểu đồ lớp hệ thống ATM[8] 38 Hình 14. Ràng buộc OCL của hệ thống 38 Hình 15. ĐặctảAlloy của lớp ATM 39 Hình 16. ĐặctảAlloy của lớp Account 40 Hình 17. Ràng buộc cho hệ thống ATM 41 1 Mở Đầu UML[1] là ngôn ngữ được sử dụng phổ biến nhất trong ngành công nghiệp phần mềm vì tính dễ hiểu, trực quan và dễ thể hiện bằng công cụ. Trong những năm gần đây, OCL[5] được phát triển với mục đích là ngôn ngữ mô tả các ràng buộc cho các yếu tố mô hình UML[1] để mô hình UML[1] có ngữ nghĩa chặt chẽ hơn. Cho đến nay, để kiểm tra các ràng buộc của mô hình UML[1], chúng ta phải chuyển đặctả UML[1] sangđặctả bằng các ngôn ngữ có tính hình thức hóa cao hơn như là Z, B, OWL, Alloy[2] Alloy[2] đã được phát triển khá hoàn thiện cả về ngôn ngữ và công cụ phân tích tự động. Chúng ta có thể chuyển đổi mô hình UML[1] vớiđặctả OCL[5] sang mô hình Alloy[2] và sử dụng công cụ phân tích Alloy Analyzer để phân tích các 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đặctả UML[1] và OCL[5] sangđặctả Alloy[2] và xây dựng công cụ chuyển đổi tự động. Có thể kể đến công cụ UML2ALLOY[7]. Tuy nhiên, vẫn còn nhiều hạn chế trong việc nghiên cứu lý thuyết chuyển đổiđặctả UML[1] với OCL[5] sangđặctả Alloy[2] ví dụ như việc chuyển đổi quan hệ tam phân (hoặc lớn hơn quan hệ tam phân) giữa các lớp trong biểu đồ lớp sangđặctả Alloy[2]. Khóa luận này tập trung vào tìm hiểu các quy tắc chuyển đổi các yếu tố mô hình UML[1] sang mô hình Alloy[2] đã được đề xuất trong các nghiên cứu khác và có đề xuất một số quy tắc chuyển đổi mới cho một số trường hợp đặc biệt. Khóa luận cũng thực hiện một ví dụ minh họa là “hệ thống quản lý các tài khoản và các giao dịch trên máy ATM”. Kết cấu của khóa luận như sau: Chương 1: Tổng quan UML và OCL Chương 2: Giới thiệu Alloy và công cụ phân tích Alloy Analyzer Chương 3: Chuyển đổi biểu đồ lớp UMLvớiđặctảOCLsangAlloy Chương4: Bài toán minh họa 2 Chương 1 . Tổng quan UML và OCL 1.1 Ngôn ngữ mô hình hóa thống nhất - UML UML[1] là ngôn ngữ mô hình hóa thống nhất với các ký hiệu trực quan, được các phương pháp hướng đối tượng sử dụng để thể hiện và miêu tả các thiết kế của hệ thống. Nó là một ngôn ngữ để đặc tả, trực quan hóa, xây dựng và làm tài liệu cho nhiều đối tượng khác nhau. UML[1] có thể làm công cụ giao tiếp giữa người dùng, nhà phân tích, nhà thiết kế và nhà phát triển phần mềm. 1.1.1 Mục đích của UML Mô hình hóa hệ thống sử dụng các khái niệm hướng đối tượng. Thiết lập một kết nối từ nhận thức của con người đến các sự việc cần mô hình hóa. Giải quyết vấn đề về mức độ thừa kế trong các hệ thống phức tạp, có nhiều ràng buộc khác nhau. Tạo một ngôn ngữ mô hình hóa có thể sử dụng được bởi người và máy. 1.1.2 Miền ứng dụng của UML UML[1] có thể được sử dụng trong nhiều giai đoạn từ phát triển, thiết kế, thực hiện và 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ý những khoảng dữ liệu lớn có quan hệ phức tạp, mà chúng được lưu trữ trong các cơ sở dữ liệu quan hệ hay hướng đối tượng. Hệ thống kỹ thuật (Technical system): Xử lý và điều khiển các thiết bị viễn thông, hệ thống quân sự hay quá trình công nghiệp. Đây là loại thiết bị phải xử lý các giao tiếp đặc biệt, không có giao giao diện chuẩn và thường là các hệ thống thời gian thực. Hệ thống nhúng (Embeded system): Thực hiện trên các thiết bị phần cứng trên ô tô, thiết bị di động Điều này được thực hiện 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ố trên một số máy cho phép truyền dữ liệu từ nơi này đến nơi khác một cách dễ dàng. Chúng đòi hỏi các cơ chế liên lạc đồng bộ để bảo đảm toàn vẹn dữ liệu. Thường được xây dựng trên một số kỹ thuật hướng đối tượng như CORBA, COM/DCOM. Hệ thống giao dịch (Bussiness system): Mô tả mục đích, tài nguyên, các quy tắc và công việc kinh doanh. Phần mềm hệ thống (System software): Định nghĩa cơ sở hạ tầng kỹ thuật cho phần mềm khác sử dụng chẳng hạn như hệ điều hành, cơ sở dữ liệu, [...]... lớp vi phạm các ràng buộc OCL[ 5] Như vậy, với những kiến thức đã tìm hiểu về biểu đồ lớp UML[ 1], đặctả OCL[ 5] cho biểu đồ lớp, Alloy[ 2] và công cụ Alloy Analyzer Chúng ta cũng đã làm rõ sự cần thiết chuyển đổi biểu đồ lớp UML[ 1] vớiđặctả OCL[ 5] sang Alloy[ 2] Khi tiến hành chuyển đổi chúng ta sẽ chuyển các yếu tố của mô hình UML[ 1] sang các yếu tố tương ứng trong mô hình Alloy[ 2] để đảm bảo tương... chuyển đổi 21 Hình 5 Mô hình chuyển đổi biểu đồ lớp vớiđặctảOCLsang mô hình Alloy Mô hình chuyển đổi sẽ có các bước: Bước thứ nhất : Chuyển biểu đồ lớp UML[ 1] với các liên kết phức tạp (kết tập, hợp thành, tổng quát hóa, ) sang biểu đồ lớp với các liên kết đơn giản hơn Bước thứ hai : Chuyển biểu đồ lớp UML[ 1] nhận được từ bước thứ nhất sang mô hình Alloy[ 2] Bước thứ ba : Chuyển các đặctả OCL[ 5] sang. .. thực hệ thống ứng vớiđặctả UML[ 1] với OCL[ 5] ? Trong phần sau chúng ta đi xem xét ngôn ngữ ràng buộc đối tượng OCL[ 5] đặctả những ràng buộc cho một mô hình UML[ 1] và cụ thể sẽ tập trung vào vấn đề đặctả ràng buộc cho biểu đồ lớp 1.2 OCL – Object Constraint Language Trong quá trình phát triển phần mềm người ta nhận ra rằng, chỉ với hệ thống ký hiệu trực quan trong UML[ 1] không thể đặc tả được hết các... biểu thức OCL[ 5] được viết trên các tài liệu Người xem có thể tham chiếu từ các biểu đồ UML[ 1] đến tài liệu này Trong thực tế thì cả 2 cách trên được sử dụng đồng thời với nhau Hình 1 Biểu diễn đặc tả OCL trên biểu đồ lớp[5] 6 1.2.2 Đặc tả OCL trên biểu đồ lớp 1.2.2.1 Khai báo ngữ cảnh OCL[ 5] là một ngôn ngữ hình thức, chúng được biểu diễn dưới dạng biểu thức.Biểu thức OCL[ 5] dùng để đặc tả cho UML[ 1]... gia liên kết của 2 lớp nữa Dưới đây chúng ta sẽ chuyển vế phải của Hình 9 sang biểu diễn Alloy[ 2] Ở đây mỗi một lớp chuyển thành một ký hiệu trong Alloy[ 2], các ràng buộc OCL[ 5] chuyển tương ứng thành các biểu thức logic Alloy[ 2] Bảng 4 Chuyển đặc tả OCL của lớp Student sangAlloy UML[ 1] và đặctảOCL Biểu diễn Alloy class Student sig Student class Teacher sig Teacher Student->forAll(s | s.study->size... biểu đồ lớp vớiđặctảOCLsang mô hình Alloy 20 Phần trước chúng ta đã biết Alloy[ 2] là một ngôn ngữ mô hình hóa dựa trên logic vị từ bậc nhất Alloy[ 2] cung cấp các khai báo trừu tượng, các khai báo thừa kế Cả UML[ 1] và Alloy[ 2] đều làm việc trên tư tưởng hướng đối tượng Do đó việc chuyển đổi giữa Alloy[ 2] và biểu đồ lớp UML[ 1] là có thể và đảm bảo ý nghĩa được bảo toản Ngoài ra, Alloy[ 2] cũng rất... bên trong mô hình lớp Đặctả bất biến kiểu cho mẫu – stereotypes Mô tả tiền điều kiện và hậu điều kiện trong các phương thức Đặctả các ràng buộc của thuộc tính lớp, các phương thức 1.2.1 Biểu diễn đặctảOCL Cách thức thứ nhất : Biểu diễn các biểu thức OCL[ 5] ngay trên biểu đồ UML[ 1] Hình 1 là một ví dụ cho cách biểu diễn này Cách thức thứ hai : Biểu diễn các biểu thức đặctả OCL[ 5] bằng tài liệu Lúc... thế, OCL[ 5] được xây dựng và phát triển với mục đích bổ sung cho các đặctả UML[ 1] trở nên rõ ràng và chính xác hơn Và OCL[ 5] trở thành chuẩn ngôn ngữ đặctả cho các biểu đồ trong UML[ 1] trong thực tế Trong phần này chúng ta quan tâm chủ yếu tới cách thức biểu diễn đặctả OCL[ 5] trên biểu đồ lớp, tập trung vào biểu diễn các ngữ cảnh, các bất biến, tiền điều kiện, hậu điều kiện cho phương thức OCL được... thể cho mô hình Một giải pháp là chuyển đổi mô hình UML[ 1] sang mô hình Alloy[ 2] để có thể kiểm tra và sinh thể hiện từ đặctả mô hình tự động bằng công cụ Alloy Analyzer[6] Chương 2, em sẽ trình bày khái quát về Alloy[ 2], công cụ Alloy Analyzer[6] Chương 2 Giới thiệu Alloy và công cụ Alloy Analyzer 13 2.1 Khái quát về Alloy Lịch sử hình thành, phát triển: Alloy[ 2] được đưa ra và phát triển tại học... tả OCL[ 5] sang ràng buộc Alloy[ 2] Sau khi thực hiện bước thứ ba, lúc này chúng ta có thể sử dụng kết quả của bước này thông qua công cụ Alloy Analyzer[6] để đưa ra các thể hiện mô hình 3.1 Chuyển biểu đồ lớp UMLvới các liên kết phức tạp sang biểu đồ lớp UMLvới các liên kết đơn giản Mục đích của việc chuyển đổi biểu đồ lớp với các liên kết phức tạp sang biểu đồ lớp UML[ 1] với các liên kết đơn giản . chuyển đổi đặc tả UML[ 1] với OCL[ 5] sang đặc tả Alloy[ 2] ví dụ như việc chuyển đổi quan hệ tam phân (hoặc lớn hơn quan hệ tam phân) giữa các lớp trong biểu đồ lớp sang đặc tả Alloy[ 2]. Khóa luận. trong 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 . Chuyển đổi biểu đồ lớp với đặc tả OCL sang mô hình Alloy. cấu của khóa luận như sau: Chương 1: Tổng quan UML và OCL Chương 2: Giới thiệu Alloy và 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: