1. Trang chủ
  2. » Luận Văn - Báo Cáo

chuyển đổi đặc tả uml với ocl sang đặc tả alloy

51 426 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

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

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ố Khóa luận này tập trung vào tìm hiểu

Trang 1

ĐẠ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

Trang 2

ĐẠ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

Trang 3

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

Trang 4

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

Trang 5

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

Trang 6

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

Trang 7

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

Trang 8

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

Trang 9

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ố

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

Trang 10

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,

Trang 11

1.1.3 Hệ thống biểu đồ trong UML

Biểu đồ Use case (Use case Diagram)

Biểu đồ lớp (Class Diagram)

Biểu đồ đối tượng (Object Diagram)

Biểu đồ trạng thái (State Diagram)

Biểu đồ trình tự (Sequence Diagram)

Biểu đồ cộng tác (Collaboration Diagram)

Biểu đồ hoạt động (Activity Diagram)

Biểu đồ thành phần (Component Diagram)

Biểu đồ triển khai (Deployment Diagram)

1.1.4 Biểu đồ lớp

Một biểu đồ lớp[1] là một dạng mô hình tĩnh Một biểu đồ lớp mô tả hướng nhìn tĩnh của hệ thống bằng các khái niệm lớp và mối quan hệ của chúng với nhau Mặc dù biểu đồ lớp có những nét tương đồng với mô hình dữ liệu nhưng các lớp không chỉ thể hiện cấu trúc thông tin mà còn miêu tả hành vi Một trong những mục đích của biểu đồ lớp chính là tạo nền tảng cho các biểu đồ khác, thể hiện các khía cạnh khác của hệ thống Biểu đồ lớp được coi là biểu đồ quan trọng nhất trong một mô hình UML[1] Mô tả chính xác biểu đồ lớp là tiền đề cho việc xây dựng hệ thống chính xác

Trang 12

 Thuộc tính

Lớp có các thuộc tính miêu tả những đặc điểm của đối tượng Thuộc tính có thể có nhiều mức độ trông thấy khác nhau, miêu tả liệu thuộc tính có thể được truy xuất từ lớp khác hay không Có 3 mức độ nhìn thấy của thuộc tính : public, private, protected Mọi đặc điểm của một thực thể là những thông tin cần lưu trữ có thể chuyển thành thuộc tính của lớp miêu tả thực thể đó

 Liên kết – Association

Một liên kết là một sự nối kết giữa các lớp, mối liên quan về ngữ nghĩa giữa các đối tượng của các lớp tham gia liên kết Liên kết thường mang tính 2 chiều, có nghĩa khi một đối tượng này liên kết với đối tượng khác thì cả 2 đối tượng đều nhìn thấy nhau Một mối liên kết thể hiện bằng số lượng các đối tượng của 2 lớp có thể tham gia liên kết

Mối liên kết có thể có các vai trò - role Các vai trò được nối với mỗi lớp bao chứa quan hệ Vai trò của một lớp là chức năng mà nó đảm nhận từ góc nhìn của lớp kia Tên vai trò được ghi kèm với mũi tên chỉ từ hướng lớp chủ nhân ra, thể hiện lớp này có vai trò như thế nào đó với lớp hướng mũi tên chỉ tới

Ta có thể sử dụng mối liên hệ một chiều bằng cách thêm mũi tên vào một đầu của liên kết Mũi tên chỉ ra rằng quan hệ chỉ có thể sử dụng theo chiều mũi tên

Một liên kết được hạn định liên kết hai lớp và một yếu tố hạn định – qualifier với nhau Yếu tố hạn định là một thuộc tính hạn chế số lượng thành phần tham gia trong một mối liên kết Có thể hạn định các mối quan hệ một – nhiều hoặc nhiều – nhiều

Bên cạnh những liên kết thông thường, UML[1] còn đưa ra 1 số liên kết : Liên kết

VÀ, Liên kết HOẶC, Liên kết ĐỆ QUY, Liên kết ĐƯỢC SẮP XẾP, Liên kết TAM NGUYÊN

 Quan hệ kết tập - Aggregation

Kết tập là một trường hợp đặc biệt của liên kết Kết tập biểu thị rằng quan hệ giữa

các lớp dựa trên nền tảng nguyên tắc “một tổng thể được tạo bởi các bộ phận” Nó được

sử dụng khi chúng ta muốn tạo ra một thực thể mới bằng cách tập hợp tất cả thực thể tồn tại với nhau Quá trình ghép các bộ phận lại với nhau để tạo nên thực thể gọi là sự kết tập

Ký hiệu UML cho kết tập là đường thẳng hình thoi đặt sát lớp kết tập Mỗi thành phần tạo nên tổng thể gọi là một bộ phận Mỗi bộ phận có thể là sự kết tập khác

Trang 13

 Khái quát hóa và chuyên biệt hóa - Generalization & Specialization

Chuyên biệt hóa là quá trình tinh chế một lớp thành một lớp chuyên biệt hơn Chuyên biệt hóa bổ sung các chi tiết Đơn giản thì chúng ta coi khái quát hóa và chuyên biệt hóa chính là mối liên hệ giữa lớp cha và lớp con trong kế thừa

 Phụ thuộc và nâng cấp - Dependency & Refinment

Quan hệ phụ thuộc là một sự liên quan ngữ nghĩa giữa 2 phần tử mô hình, một mang tính chất độc lập, một mang tính chất phụ thuộc Mọi sự thay đổi từ phần tử độc lập đều ảnh hưởng tới phần tử phụ thuộc Phần tử mô hình có thể là một lớp, một gói, Quan hệ

phụ thuộc được biểu diễn bằng một đường gạch rời - dash line với mũi tên giữa các phần

tử mô hình

Nâng cấp là một quan hệ giữa hai lời miêu tả của cùng một sự việc, nhưng ở mức

độ trừu tượng hóa khác nhau Nâng cấp cũng có thể là mối quan hệ giữa một loại đối tượng và lớp thực hiện nó Quan hệ nâng cấp được biểu diễn bằng đường gạch rời với mũi tên rỗng

Biểu đồ lớp là biểu đồ quan trọng trong mô hình UML[1], biểu đồ lớp là cơ sở cho hàng loạt các biểu đồ khác Tuy nhiên, làm sao chúng ta có thể biết được biểu đồ vừa được tạo ra là tốt hay không tốt ? UML[1] với đặc tả OCL[5] có thể cung cấp ngữ pháp và ngữ nghĩa cho ta làm việc nhưng nó không cho chúng ta biết biểu đồ được tạo ra có tốt hay không Mặt khác, điều chủ chốt khi chúng ta thiết kế biểu đồ là thứ chúng ta muốn nói về hiện thực hệ thống Câu hỏi đặt ra là có cách nào thể hiện hiện 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 khía cạnh thực tế của hệ thống phần mềm Chính vì thế, OCL[5] được xây dựng và phát triển với mục đích bổ sung cho các đặc tả 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ữ đặc tả 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 đặc tả 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 sử dụng

Giống như một ngôn ngữ truy vấn

Các biểu thức OCL[5] có thể được sử dụng trong mọi mô hình UML[1] để biểu diễn giá trị Giá trị biểu diễn của nó có thể là một giá trị kiểu cơ sở hay tham chiếu tới đối tượng

Mô tả sự bất biến trong các lớp và các kiểu bên trong các mô hình lớp

Trang 14

Một bất biến trong lớp và các kiểu bên trong lớp là một ràng buộc luôn luôn đúng

Mô tả sự bất biến cho lớp và các kiểu bên trong lớp chính là xác định những ràng buộc tổng quát cho lớp và các kiểu bên trong mô hình lớp

Đặc tả 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

Đặc tả 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 đặc tả 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 đặc tả OCL[5] bằng tài liệu Lúc này, 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]

Trang 15

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] luôn luôn phải gắn liền với một đối tượng trong

mô hình UML[1] Do vậy trước khi tiến hành biểu diễn biểu thức OCL[5] chúng ta phải

khai báo ngữ cảnh mà biểu thức OCL[5] tham gia

Cú pháp khai báo một ngữ cảnh :

Khai báo một ngữ cảnh bắt đầu bằng từ khóa context và tiếp đến là tên ngữ cảnh

Ví dụ khai báo ngữ cảnh có tên là Bank: context Bank

Sử dụng “ ” để viết chú thích cho biểu thức OCL[5], nó giống như “//” trong C++

Từ khóa seft

Biểu thức OCL[5] luôn được đặt trong một ngữ cảnh cụ thể, và để chỉ ra thể hiện

của đối tượng trong ngữ cảnh đó chúng ta sử dụng từ khóa seft

1.2.2.2 Khai báo một bất biến - invariant

Một ràng buộc bất biến là một ràng buộc được liên kết tới một lớp cụ thể trong một

ngữ cảnh cụ thể Mục đích của một ràng buộc bất biến là chỉ rõ sự bất biến tại một khía cạnh nào đó của lớp Một ràng buộc bất biến chứa một biểu thức OCL[5] Biểu thức này phải đúng cho mọi thể hiện của phân loại lớp tại mọi thời điểm Chỉ khi một thể hiện thực

thi một phép toán thì không cần đánh gía biểu thức này là đúng

Cú pháp khai báo một bất biến[5]:

Khai báo một bất biến bắt đầu với từ khóa inv, tiếp đến là tên của bất biến

Ví dụ : context Company khai báo ngữ cảnh có tên là Company

inv : seft numberOfEmployees > 50 Khai báo một bất biến

Ý nghĩa : Mọi thể hiện của đối tượng Company phải thỏa mãn ràng buộc numberOfEmployees > 50 tại mọi thời điểm

Từ khóa seft tham chiếu tới thể hiện của đối tượng Company, sử dụng toán tử “.” để chỉ tới thuộc tính numberOfEmployees của đối tượng Company

1.2.2.3 Tiền điều kiện và hậu điều kiện – pre & post condition

Tiền điều kiện và hậu điều kiện là các ràng buộc liên kết tới phương thức của một phân loại lớp Mục đích của tiền điều kiện là chỉ rõ điều kiện phải có trước khi phương thức thực thi Tiền điều kiện chứa một biểu thức OCL[5] (trả về kết quả Boolean) Biểu thức OCL[5] này phải được đánh giá là đúng bất cứ khi nào phương thức bắt đầu thực thi, nhưng việc đánh giá này chỉ áp dụng cho thể hiện thực thi phương thức.Mục đích của hậu điều kiện là chỉ rõ điều kiện phải có sau khi thực thi phương thức Hậu điều kiện cũng được biểu diễn bằng một biểu thức OCL[5] (trả về kết quả Boolean) Việc đánh giá biểu

Trang 16

thức OCL[5] tại thời điểm kết thúc thực thi phương thức Bên trong ràng buộc tiền điều kiện không sử dụng toán tử @pre nhưng bên trong ràng buộc hậu điều kiện có thể sử dụng @pre để tham chiếu tới giá trị của tiền điều kiện[5]

context Person::income(d : Date) Return interger

pre preOK: d > 0 Tiền điều kiện: đảm bảo d > 0

post postOK: result > 5000 Hậu điều kiện đảm bảo trả về kết quả > 5000

1.2.2.4 Ngữ cảnh gói – package context

Một biểu đồ UML[1] thường có nhiều biểu đồ con trong đó Do vậy OCL[5] cung

cấp cho chúng ta cặp từ khóa package và endpackage để làm tăng sự rõ ràng khi nhóm

lại các khai báo các bất biến, tiền điều kiện hậu điều kiện thuộc về cùng một ngữ cảnh

nào đó trong cụm từ khóa package và endpackage

Cú pháp[5]:

package Package::SubPackage Bắt đầu bằng từ khóa package

context X inv : Khai báo các bất biến

context X ::operationName(para1 : Type1, para2: Type2, ) Return Type

pre preconditionName : Khai báo các tiền điều kiện

post postconditionName: Khai báo các hậu điều kiện

endpackage Kết thúc với từ khóa endpackage

1.2.2.5 Biểu thức body B

Biểu thức body là một biểu thức kiên kết tới một phương thức của phân loại lớp

Nó được đánh dấu tới một phương thức truy vấn Hành vi của một biểu thức OCL[5] như

Trang 17

một body phương thức phải thỏa mãn kiểu kết quả trả về của phương thức Biểu thức body có thể sử dụng lẫn với các biểu thức trong ràng buộc tiền điều kiện và hậu điều kiện

Cú pháp[5]:

context TypeName::operation(para1 : Type1, para2 : Type2 ): Return Type

body : Biểu thức OCL

Ví dụ [5]:

context Person::getCurrentSpouse(): Person

pre : seft.isMarried = true

body : seft.mariages->select(m | m.ended = false).spouse

1.2.2.6 Giá trị khởi tạo và giá trị dẫn xuất – Initial and Derived Values

Một biểu thức khởi tạo giá trị là một biểu thức được liên kết tới một thuộc tính của một phân loại lớp hoặc một mút liên kết – association End Giá trị khởi tạo thuộc tính bởi biểu thức phải phù hợp với kiểu của thuộc tính được đinh nghĩa trước đó trong phân loại lớp Tương tự, giá trị khởi tạo của một liên kết phải phù hợp với loại mút liên kết Ví dụ như, giá trị khởi tạo của mút liên kết là loại đính kèm với phân loại lớp khi số liên kết tối

đa là một, khi mút liên kết nhiều hơn một thì phải là một OrderedSet Một biểu thức dẫn xuất cũng là một biểu thức được liên kết tới một thuộc tính của một phân loại lớp hoặc là một liên kết cuối Giá trị thuộc tính dẫn xuất tạo ra bởi biểu thức OCL[5] cũng phải phù hợp với kiểu của thuộc tính được định nghĩa trước đó Khác với biểu thức khởi tạo giá tri, biểu thức dẫn xuất là một bất biến Giá trị thuộc tính, hoặc giá trị liên kết cuối luôn bằng giá trị được đánh giá trong biểu thức dẫn xuất[5]

Cú pháp[5] :

Khởi tạo giá trị thuộc tính :

context TypeName::AtributeName:Type

init : Biểu thức OCL để khởi tạo giá trị thuộc tính

Dẫn xuất giá trị mút liên kết[5]

Trang 18

Ví dụ:

context Person inv :

let income : Interger = self.job.salary->sum() in

Khai báo biểu thức let, income được khai báo kiểu interger và được khởi tạo giá trị

Và khi đó biểu thức dạng def được sử dụng bởi các biểu thức OCL[5] khác nhau

Ví dụ[5]:

context Person Khai báo ngữ cảnh mà sẽ khai báo các biểu thức def

def : income:Interger = seft.job.salary->sum()

def: hasTitle(t: String):Boolean = seft.job->exists(title = t)

Sau khi khai báo biểu thức def như trên, thì biến income sẽ được sử dụng trong

các biểu thức thuộc ngữ cảnh Person mà không cần khai báo lại

1.2.3 Kiểu tập hợp và các phép toán trên tập hợp

OCL cung cấp 4 kiểu tập hợp : Set, OrderedSet, Bag và Sequence và một tập hợp trừu tượng cho tất cả các kiểu tập hợp khác Collection

Trang 19

Bảng 1 Kiểu dữ liệu tập hợp trong OCL

Kiểu tập hợp Ý nghĩa

Set Tập bao gồm các phần tử toán học Các phần tử trong tập hợp

không được lặp lại

OrderedSet Là một Set Nhưng các phần tử được sắp xếp theo thứ tự

Bag Là một tập hợp các phần tử cho phép sự lặp lại các phần tử

Sequence Tập bao gồm các phần tử được sắp xếp, và cho phép một phần tử

được xuất hiện nhiều lần

Các phép toán trên Collection

Bảng 2 Phép toán trên tập hợp OCL

Phép toán Giá trị trả về Ý nghĩa

=(c: Collection(T)) Boolean Trả về true nếu 2 tập hợp cùng kiểu và cùng có

số lượng phần tử, thứ tự phần tử

<>(c:Collection(T)) Boolean Trả về true nếu 2 tập hợp không bằng nhau

c->size() Interger Số lượng phần tử có trong tập hợp

boolean Trả về true nếu c1 chứa tất cả phần tử c2

c->isEmpty() boolean Trả về true nếu c là tập rỗng hay số lượng

phần tử là 0

c->notEmpty() boolean Trả về true nếu số phần tử của c lớn hơn 0

c->max() Type Trả về giá trị lớn nhất của tập hợp c, với kiểu

Trang 20

là Type (kiểu dữ liệu trong tập hợp c) Chỉ dùng cho tập có kiểu Interger và Real

c->min() Type Trả về giá trị nhỏ nhất trong tập c Chỉ dùng

cho tập có kiểu Interger hoặc Real

c->sum() Type Trả về tổng các phần tử trong tập c Áp dụng

cho tập Interger và Real

c1->product(c2:

Collection(T2))

Set(Tuple(first : T1, second : T2))

Phép tích đề các giữa 2 tập hợp trả về là 1 tập hợp

c->asSet() Set(T) Loại bỏ các phần tử lặp lại trong tập hợp

c->asOrderedSet() OrderedSet(T) Trả về tập hợp OrderedSet

c->asSequence() Sequence(T) Trả về tập hợp Sequence

c->asBag() Bag(T) Trả về tập hợp Bag

c->flatten() Collection(T2) Loại bỏ các phần tử không có cùng kiểu với

kiểu dữ liệu của tập hợp

1.2.4 Biểu thức lặp trên tập hợp

Các biểu thức lặp trên Colltection cũng đúng trên Set, OrderedSet, Bag và Sequence

Bảng 3 Biểu thức lặp trên tập hợp OCL

exists select select(ex:

Trang 21

tả các ràng buộc chặt chẽ hơn cho các yếu tố mô hình UML[1] Tuy nhiên các công cụ đặc tả UML[1] với OCL[5] hiện nay không cung cấp khả năng tự đánh giá tính đúng đắn của mô hình được xây dựng ví dụ như việc kiểm tra tính đúng đắn của các ràng buộc OCL[5], hay khả năng tự sinh thể 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

Trang 22

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 viện công nghệ Massachusetts - Massachussets Instutite Techology của Mỹ Người có công đóng

góp lớn trong đó là giáo sư Daniel Jackson[6]

Alloy[2] là ngôn ngữ mô hình dựa trên logic vị từ bậc nhất Mô hình Alloy[2] chứa

các khai báo: ký hiêu- ký hiệu, sự kiện - fact,trường - field,mệnh đề- predicate, chức năng

- function Mỗi ký hiệu biểu diễn tập các nguyên tử - atoms thành phần thực thể cơ bản của Alloy[2] Mỗi trường – field thuộc về một ký hiệu biểu diễn quan hệ giữa hai hoặc nhiều ký hiệu khác Quan hệ trong Alloy[2] cũng giống như quan hệ trong cơ sở dữ liệu

là tập các bộ nguyên tử

Có rất nhiều sự tương đồng giữa Alloy[2], biểu đồ lớp UML[1] và OCL[5] Cụ thể như : Alloy[2] là ngôn ngữ mô hình hóa hướng đối tượng, Alloy[2] cũng có các quan hệ đặc trưng của hướng đối tượng như quan hệ kế thừa, thêm nữa các khai báo bắt đầu với

từ khóa sự kiện trong Alloy[2] là các ràng buộc vĩnh viễn, tức là bất cứ khi nào thực hiện

mô hình thì thể hiện của mô hình phải thỏa mãn các ràng buộc trong sự kiện, điều này rất

giống với các khai báo bất biến trong đặc tả OCL[5] đối với biểu đồ lớp, ngoài ra Alloy[2] là ngôn ngữ dựa trên logic vị từ bậc nhất do vậy nó dễ dàng biểu diễn các biểu thức ràng buộc logic, điều này giúp cho việc chuyển các đặc tả OCL[5] sang Alloy[2] được dễ dàng hơn

Alloy[2] chủ yếu được sử dụng để mô hình và phân tích các hệ thống phức tạp về mặt cấu trúc, hành vi ví dụ như các hệ thống: “name servers, network configuration protocols, acess control, telephony, scheduling, document structuring, key management, cryptography, instant messaging, railway switching, filesystem synchonization, sematic web”[6].Trong kỹ nghệ phần mềm Alloy[2] được “sử dụng chủ yếu ở giai đoạn đặc tả và phân tích và thiết kế hệ thống”[6]

2.2.1 Khai báo ký hiệu - signature

Một ký hiệu giới thiệu một tập các nguyên tử Một khai báo ký hiệu bắt đầu với từ

khóa sig:

sig A {}

Trang 23

giới thiệu một tập tên A Thực sự thì một ký hiệu thì khác một tập hợp ở điểm, trong một

ký hiệu chúng ta có thể khai báo thêm các quan hệ bên trong đó và có thể định nghĩa một

có ý nghĩa là số lượng A là m Đây là một ràng buộc cho A

Một khai báo quan hệ bên trong một ký hiệu sẽ giống như khai báo một trường của

ký hiệu đó

Một khai báo

sig A { f: e }

giới thiệu một quan hệ f trong miền A và khoảng biến thiên bị ràng buộc bởi biểu thức e

Xét về mặt ý nghĩa thì chúng ta có thể viết như sau :

f: A -> e hoặc all this : A | this.f : e

có nghĩa là nếu chúng ta có một thành phần đặc biệt là this luôn trỏ tới A thì tập hợp biểu diễn bởi this.f là một tập con của e

Bằng cách thêm vào lượng từ cho biểu thức e chúng ta có một khai báo dạng

sig A {f : m e}

khi đó this.f luôn luôn có m thành phần trong tập e

Alloy[2] cho phép chúng ta xây dựng các lớp trừu tượng bằng cách thêm từ khóa

abstract trước khai báo một ký hiệu Có thể khai báo các ký hiệu thừa kế từ lớp trừu tượng

này

2.2.2 Khai báo sự kiện - fact

Một nhóm các ràng buộc có liên hệ và luôn luôn tồn tại và được thực thi cùng

chương trình được tập hợp lại trong một sự kiện Trong một mô hình Alloy[2] có thể tồn tại nhiều sự kiện khác nhau Thứ tự các ràng buộc trong một sự kiện và thứ tự giữa các sự kiện trong mô hình Alloy[2] là không quan trọng, chúng được thực thi cùng lúc trong

chương trình

Khai báo một sự kiện với từ khóa fact Một sự kiện có thể có tên hoặc không có tên

fact [tên ] {khai báo các ràng buộc }

Một sự kiện cũng giống như một ràng buộc bất biến trong lập trình hướng đối tượng

Nó tham chiếu tới đối tượng, buộc đối tượng phải giữ các ràng buộc trong toàn bộ quá trình tồn tại của nó

Trang 24

2.2.3 Khai báo mệnh đề và chức năng – predicate & fuction

Trong mô hình Alloy[2] ngoài các ràng buộc bất biến kiểu sự kiện luôn luôn được

thực thi thì còn một số ràng buộc chỉ thực thi khi được gọi đến hoặc được sử dụng lại

trong mô hình đó chính là các ràng buộc thuộc nhóm mệnh đề - predicate và chức function

năng-Một chức năng là một biểu thức được đặt tên Nó có tham biến, số lượng tham biến

là tùy chọn Và tùy chọn có kết quả trả về hay không Chức năng trong Alloy[2] hoàn toàn có cấu trúc giống như chức năng trong các ngôn ngữ lập trình Khai báo một chức

năng bắt đầu với từ khóa func

func [tên chức năng][danh sách tham biến]: [Kiểu dữ liệu trả về]{các ràng

buộc}

Một mệnh đề là một ràng buộc được đặt tên Nó cũng có danh sách tham biến, số lượng tham biến là tùy chọn Khi một mệnh đề được gọi đến thì một biểu thức phải cung cấp cho mỗi tham biến của mệnh đề có nghĩa là ràng buộc trong mệnh đề tương ứng với mỗi tham biến sẽ được thay thế bằng một biểu thức khởi tạo Khai báo một mệnh đề bắt

đầu với từ khóa pred

pred[tên mệnh đề](danh sách tham biến) {Khai báo ràng buộc}

2.2.4 Khai báo khẳng định - assertion

Một khẳng định - assertion là một ràng buộc Một khẳng định tồn tại độc lập không phụ thuộc và các sự kiện, mệnh đề Nhóm những ràng buộc khẳng định một điều gì đó được tập hợp lại vào một khẳng định Đôi khi, trong mô hình một khẳng định dùng để kiểm tra một hoặc nhiều sự kiện Kết quả thực hiện một khẳng định sẽ cho một trong 2 kết quả là tìm ra phản ví dụ cho khẳng định bên trong khẳng định được thực thi hoặc không

tìm thấy phản ví dụ, điều này là rất có ích để kiểm tra tính toàn vẹn của mô hình Trong

mô hình có thể dùng nhiều khẳng định và các khẳng định được đặt tên Khai báo khẳng

định bắt đầu với từ khóa assert

assert [tên khẳng định] {các biểu thức ràng buộc }

2.2.5 Lệnh trong Alloy

Trong Alloy[2] khi muốn phân tích mô hình chúng ta phải viết lệnh Lệnh bắt đầu

với từ khóa run thông báo cho bộ phân tích Alloy[2] tìm kiếm thực thể của một mệnh đề xác định Lệnh bắt đầu với từ khóa check thông báo cho bộ phân tích tìm kiếm phản ví dụ cho một khẳng định xác định Trong khi đưa ra các dòng lệnh chúng ta có thể đưa thêm vào phạm vi, phạm vi sẽ giới hạn số lượng các thể hiện phải có trong một mệnh đề hoặc

là số lượng phản ví dụ

Để xác định chính xác phạm vi dòng lệnh thì cần thiết phải giới hạn cho mỗi ký hiệu Việc thực hiện giới hạn cho ký hiệu cha cũng thỏa mãn giới hạn cho ký hiệu con

Trang 25

2.2.6 Khai báo mô đun

Alloy[2] cung cấp một hệ thống mô đun đơn giản nó cho phép chia một mô đun lớn thành nhiều mô đun nhỏ hơn và cũng tiện lợi trong việc tạo ra các thư viện riêng được đinh nghĩa trước đó Mỗi mô đun tương ứng với một file Mỗi mô đun biểu diễn bằng tên đường dẫn tương ứng với tên file trong hệ thống Khai báo một mô đun bắt đầu với từ

khóa module tiếp đến là tên đường dẫn

module đường_dẫn_mô_đun

Mỗi mô đun muốn sử dụng một mô đun khác thì phải đính nó vào bằng cách sử

dụng khai báo bắt đầu bằng từ khóa import và theo sau là đường dẫn tới file

2.2.7 Thực thi mô hình Alloy

Trong phần trước chúng ta đã tìm hiểu các thành phần cơ bản của một mô hình

Alloy[2] ký hiệu, sự kiện, trường, mệnh đề trong phần này chúng ta tìm hiểu cách thực

thi mô hình tức là làm thế nào để đưa ra các thể hiện mô hình, hoặc tìm ra các thể hiện sai của mô hình

Alloy[2] cung cấp cho chúng ta công cụ phân tích tự động Alloy Analyzer, với sự giúp sức của công cụ sẽ đưa ra các thể hiện theo ý muốn của chúng ta một cách nhanh chóng và trực quan

Các thể hiện được tìm ra khi chúng ta thực thi dòng lệnh run Thể hiện của mô hình

là các cụ thể hóa của các ký hiệu với các trường - field và phải thỏa mãn các ràng buộc trong sự kiện Chỉ những ký hiệu được chỉ rõ trong sự kiện thì mới cần phải thỏa mãn sự kiện đó, điều này tương tự như từ khóa context trong OCL[5], sẽ chỉ ra đối tượng nào được chỉ ra trong ngữ cảnh- context đó thì mới cần tuân thủ các biểu thức OCL[5] được khai báo trong đó

2.3 Công cụ Alloy Analyzer

Từ phiên bản đầu tiên được phát hành kèm theo bộ phân tích Alloy Analyzer[6], đến thời điểm hiện tại Alloy[2] đang là phiên thứ 4 và kèm theo nó là bộ phân tích Alloy Analyzer[6] phiên bản thứ 4 Bộ phân tích Alloy Analyzer[6] là một công cụ mạnh mẽ sử dụng để tìm kiếm tất cả thể hiện của một mô hình được đặc tả trong mô hình Alloy[2]

Bằng cách thức chạy một mệnh đề (run mệnh đề), bộ phân tích Alloy Analyzer[6] sẽ tìm

kiếm tất cả thể hiện mô hình thỏa mãn các ràng buộc mô hình hoặc bộ phân tích Alloy

Analyzer[6] sẽ tìm các thể hiện là phản ví dụ của đặc tả mô hình khi chay lệnh check

Ngày đăng: 17/02/2014, 22:49

HÌNH ẢNH LIÊN QUAN

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 - chuyển đổi đặc tả uml với ocl sang đặc tả alloy
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 (Trang 14)
Bảng 2. Phép toán trên tập hợp OCL - chuyển đổi đặc tả uml với ocl sang đặc tả alloy
Bảng 2. Phép toán trên tập hợp OCL (Trang 19)
Hình 2. Cơng cụ Alloy Analyzer - chuyển đổi đặc tả uml với ocl sang đặc tả alloy
Hình 2. Cơng cụ Alloy Analyzer (Trang 26)
Thể hiện của mơ hình bao gồm các ký hiệu và thỏa mãn các ràng buộc trong sự kiện.  Rõ  ràng  nếu  chỉ  sử  dụng  UML[1]  thì  chúng  ta  không  thể  biểu  diễn  được  các  ràng  - chuyển đổi đặc tả uml với ocl sang đặc tả alloy
h ể hiện của mơ hình bao gồm các ký hiệu và thỏa mãn các ràng buộc trong sự kiện. Rõ ràng nếu chỉ sử dụng UML[1] thì chúng ta không thể biểu diễn được các ràng (Trang 27)
Hình 4. Kết quả thực thi mệnh đề &#34;thêm” - chuyển đổi đặc tả uml với ocl sang đặc tả alloy
Hình 4. Kết quả thực thi mệnh đề &#34;thêm” (Trang 28)
Chương 3. Chuyển đổi biểu đồ lớp với đặc tả OCL sang mơ hình Alloy - chuyển đổi đặc tả uml với ocl sang đặc tả alloy
h ương 3. Chuyển đổi biểu đồ lớp với đặc tả OCL sang mơ hình Alloy (Trang 28)
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:  - chuyển đổi đặc tả uml với ocl sang đặc tả alloy
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: (Trang 30)
Hình 6. Chuyển quan hệ nhị phân với lượng từ[3] - chuyển đổi đặc tả uml với ocl sang đặc tả alloy
Hình 6. Chuyển quan hệ nhị phân với lượng từ[3] (Trang 31)
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  - chuyển đổi đặc tả uml với ocl sang đặc tả alloy
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 (Trang 32)
Bảng 4. Chuyển đặc tả OCL của lớp Student sang Alloy - chuyển đổi đặc tả uml với ocl sang đặc tả alloy
Bảng 4. Chuyển đặc tả OCL của lớp Student sang Alloy (Trang 32)
Hình 9. Chuyển quan hệ tổng qt hóa sang quan hệ nhị phân[3] - chuyển đổi đặc tả uml với ocl sang đặc tả alloy
Hình 9. Chuyển quan hệ tổng qt hóa sang quan hệ nhị phân[3] (Trang 33)
Hình 8. Đặc tả Alloy lớp Student - chuyển đổi đặc tả uml với ocl sang đặc tả alloy
Hình 8. Đặc tả Alloy lớp Student (Trang 33)
Hình 10. Ví dụ mơ hình chuyển đổi OCL sang Alloy - chuyển đổi đặc tả uml với ocl sang đặc tả alloy
Hình 10. Ví dụ mơ hình chuyển đổi OCL sang Alloy (Trang 34)
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  qua - chuyển đổi đặc tả uml với ocl sang đặc tả alloy
huy ể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 qua (Trang 34)
Mơ hình chuyển đổi ở đây là từ quan hệ kết tập và tạo thành chuyển sang quan hệ nhị  phân  và  thêm  vào  quan  hệ  nhị  phân  các  ràng  buộc  logic  Alloy[2] - chuyển đổi đặc tả uml với ocl sang đặc tả alloy
h ình chuyển đổi ở đây là từ quan hệ kết tập và tạo thành chuyển sang quan hệ nhị phân và thêm vào quan hệ nhị phân các ràng buộc logic Alloy[2] (Trang 36)
Hình 11. Chuyển lớp sang ký hiệu - chuyển đổi đặc tả uml với ocl sang đặc tả alloy
Hình 11. Chuyển lớp sang ký hiệu (Trang 37)
3.1.4 Chuyển các thành phần của lớp sang Alloy - chuyển đổi đặc tả uml với ocl sang đặc tả alloy
3.1.4 Chuyển các thành phần của lớp sang Alloy (Trang 37)
Ví dụ trong hình vẽ trên lớp Student có thuộc tính birthday có kiểu dữ liệu Date - chuyển đổi đặc tả uml với ocl sang đặc tả alloy
d ụ trong hình vẽ trên lớp Student có thuộc tính birthday có kiểu dữ liệu Date (Trang 38)
Hình 12. Lớp với thuộc tính, phương thức và đặc tả OCL - chuyển đổi đặc tả uml với ocl sang đặc tả alloy
Hình 12. Lớp với thuộc tính, phương thức và đặc tả OCL (Trang 40)
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 - chuyển đổi đặc tả uml với ocl sang đặc tả alloy
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 (Trang 40)
Bảng 6. Quy tắc chuyển OCL sang Alloy – [4] - chuyển đổi đặc tả uml với ocl sang đặc tả alloy
Bảng 6. Quy tắc chuyển OCL sang Alloy – [4] (Trang 41)
Hình 13. Biểu đồ lớp hệ thống ATM[8] - chuyển đổi đặc tả uml với ocl sang đặc tả alloy
Hình 13. Biểu đồ lớp hệ thống ATM[8] (Trang 46)
Hình 14. Ràng buộc OCL của hệ thống - chuyển đổi đặc tả uml với ocl sang đặc tả alloy
Hình 14. Ràng buộc OCL của hệ thống (Trang 46)
Hình 14 mô tả ràng buộc OCL[5] bên trái và tương đương là đặc tả trong Alloy[2] bên phải - chuyển đổi đặc tả uml với ocl sang đặc tả alloy
Hình 14 mô tả ràng buộc OCL[5] bên trái và tương đương là đặc tả trong Alloy[2] bên phải (Trang 47)
Hình 16. Đặc tả Alloy của lớp Account Đặc tả ràng buộc hệ thống trong Alloy  - chuyển đổi đặc tả uml với ocl sang đặc tả alloy
Hình 16. Đặc tả Alloy của lớp Account Đặc tả ràng buộc hệ thống trong Alloy (Trang 48)
Kết quả thực thi mơ hình - chuyển đổi đặc tả uml với ocl sang đặc tả alloy
t quả thực thi mơ hình (Trang 49)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w