THÔNG TIN TÀI LIỆU
ĐẠ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
ĐẠ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 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 UML
sang đặc tả 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 UML sang Alloy để 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 đặc tả OCL 6
1.2.2 Đặc tả 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ụ đặc tả Alloy 18
Chương 3 . Chuyển đổi biểu đồ lớp với đặc tả OCL sang mô hình Alloy 20
3.1 Chuyển biểu đồ lớp UML với các liên kết phức tạp sang biểu đồ lớp UML vớ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 sang Alloy 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 đặc tả 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ế sang Alloy 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 đặc tả OCL của lớp Student sang Alloy 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 OCL sang Alloy – [4] 33
DANH MỤC HÌNH VẼ
Hình 1. Biểu diễn đặc tả 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 đặc tả OCL sang 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. Đặc tả 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 đổ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 và đặ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 của hệ thống 38
Hình 15. Đặc tả Alloy của lớp ATM 39
Hình 16. Đặc tả 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
đặc tả UML[1] sang đặc tả 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 đặc tả 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 đặc tả
UML[1] và OCL[5] sang đặc tả 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 đặ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 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 UML với đặc tả OCL sang Alloy
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,
[...]... việc chuyển đổi 21 Hình 5 Mô hình chuyển đổi biểu đồ lớp với đặc tả OCL sang 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 đặc tả OCL[ 5]... 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], đặc tả 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 đặc tả 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... thực hệ thống ứng với đặc tả 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] đặc tả 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 đề đặc tả 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... 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 sang Alloy UML[ 1] và đặc tả OCL Biểu diễn Alloy class Student sig Student class Teacher sig Teacher Student->forAll(s | s.study->size... Ví dụ mô hình chuyển đổi OCL sang Alloy Chuyển vế phải của hình 12 sang biểu diễn Alloy[ 2] Mỗi lớp chuyển thành một khai báo ký hiệu trong Alloy[ 2], mỗi thuộc tính lớp chuyển thành một trường trong ký hiệu tương ứng, mỗi mút liên kết cũng chuyển thành một trường quan hệ trong ký hiệu tương ứng, các ràng buộc OCL[ 5] chuyển thành các biểu thức ràng buộc logic Alloy[ 2] Kiểu của thuộc tính chuyển thành... các đặ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 UML với các liên kết phức tạp sang biểu đồ lớp UML vớ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... làm đơn giản hơn việc chuyển đổi biểu đồ lớp UML[ 1] sang mô hình Alloy[ 2] mã vẫn đảm bảo ngữ nghĩa mô hình tương đương Thay vì chuyển đổi một biểu đồ lớp UML[ 1] với các liên kết phức tạp như quan hệ kết tập, hợp thành, tổng quát hóa chúng ta sẽ chỉ phải chuyển các biểu đồ lớp UML[ 1] với chỉ các liên kết nhị phân Trong quá trình chuyển đổi này chúng ta sẽ đưa thêm vào các biểu thức OCL[ 5] để đảm bảo sự... 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]... hiện 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ừ đặc tả 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... biểu đồ lớp với đặc tả OCL sang 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 . cứu lý thuyết chuyển đổi đặc tả
UML[ 1] và OCL[ 5] sang đặc tả Alloy[ 2] và xây dựng công cụ chuyển đổi tự động. Có thể
kể đến công cụ UML2 ALLOY[ 7]. Tuy. chế trong 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ụ như việc
chuyển đổi quan hệ tam phân (hoặc lớn hơn quan
Ngày đăng: 17/02/2014, 22:49
Xem thêm: chuyển đổi đặc tả uml với ocl sang đặc tả alloy