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

Tài liệu Đề Bài: Tìm hiểu hỗ trợ của USE về định nghĩa các metamodel và các ràng buộc OCL để đảm bảo tính đúng đắn (wellformedness) của các mô hình pdf

26 632 1

Đ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

Tiêu đề Tìm hiểu hỗ trợ của USE về định nghĩa các metamodel và các ràng buộc OCL để đảm bảo tính đúng đắn (wellformedness) của các mô hình
Tác giả Nghiêm Ngọc Quyết, Nguyễn Minh Tiến
Người hướng dẫn Ts Đặng Đức Hạnh, Ts Vũ Diệu Hương
Trường học Trường Đại Học Công Nghệ - ĐHQGHN
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo cáo
Định dạng
Số trang 26
Dung lượng 1,99 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Để làm được điều đó USE sử dụng các cấu trúc của UML metamodel và các ràng buộc OCL để có thể kiểm tra tính đúng đắn của một mô hình UML.. Mô hình Modeling Trên đỉnh của kiến trúc metamo

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ -ĐHQGHN

KHOA :CNTT

BÁO CÁO

Môn học các vấn đề hiện đại của CNPM

Đề Bài: Tìm hiểu hỗ trợ của USE về định nghĩa các metamodel và các ràng buộc OCL để đảm bảo tính đúng đắn (wellformedness) của các mô hình

Trang 2

Phân công công việc:

 Nghiêm Ngọc Quyết tìm hiểu về Metamodel và hỗ trợ của USE về

metamodel

 Nguyễn Minh tiến tìm hiểu các ràng buộc OCL để đảm bảo tính đúng đắn của mô hình

Trang 3

MỤC LỤC

A, ĐẶT VẤN ĐỀ 4

B, NỘI DUNG 4

Chương 1: Tổng Quan về Metamodel và OCL 4

1.1Tổng quan về Metamodel: 4

1.1.2 Metamodel và model: 6

1.2, Tổng quan về OCL- Object Constraint Language: 8

1.2.1 OCL là gì: 8

1.2.2 Cú pháp OCL: 9

Chương 2: Hỗ trợ của USE về UML metamodel và OCL 12

(lấy UMLcore13 trong USE làm ví dụ) 12

2.1 UML metamodel: 12

2.2 các ràng buộc OCL: 18

2.3 Một số ví dụ về các ràng buộc OCL trong Metamodel: 21

Tài liệu tham khảo: 25

Trang 4

A, ĐẶT VẤN ĐỀ

UML là ngôn ngữ mô hình hóa thống nhất, biểu diễn các đối tượng bằng các kí hiệu trực quan Nhưng UML có nhược điểm là nó không thể hiện được hết các khía cạnh của hệ thống Vì vậy người ta phải dùng thêm OCL để mô tả các ràng buộc cho các đối tượng của mô hình UML

USE là một hệ thống đặc tả hệ thống thông tin Nó được sử dụng để kiểm tra tính đúng đắn của một mô hình UML bằng các ràng buộc OCL Để làm được điều đó USE sử dụng các cấu trúc của UML metamodel và các ràng buộc OCL để có thể kiểm tra tính đúng đắn của một mô hình UML Sau đây chúng e xin trình bày chủ đề :“Hỗ trợ của USE

về định nghĩa các metamodel và các ràng buộc để đảm bảo tính đúng đắn

(wellformedness) của các mô hình” Cụ thể trong bài này chúng em sẽ làm về UML metamodel(UMLcore1.3)

Trang 5

Hình 1 Mô hình Modeling Trên đỉnh của kiến trúc metamodeling là meta-metamodel Nó là một framework

và ngôn ngữ tự định nghĩa, trừu tượng để đặc tả, xây dựng và quản lý các metamodel trung lập với kỹ thuật Nó là nền tảng để xác định bất kỳ một ngôn ngữ mô hình hóa nào như UML hoặc thậm chí là bản thân chính nó Mục tiêu chính của cấu trúc bốn tầng với một meta-metamodel chung là nhằm hỗ trợ nhiều metamodel và model, nhằm cho phép khả năng mở rộng, tích hợp và quản lý model và metamodel chung

Mọi metamodel, tiêu chuẩn hoặc tùy chỉnh (do người sử dụng định nghĩa), được xác định bởi metametamodel đều được đặt trên tầng M2 Một trong số đó là UML, một ngôn ngữ mô hình đồ họa cho việc đặc tả các hệ thống phần mềm Với các UML profile, các khái niệm UML cơ bản (Class, Association, v.v.) có thể được mở rộng với những khái niệm mới (stereotype) và thích nghi với nhu cầu của một sự mô hình hóa cụ thể

Các mô hình của thế giới thực, được biểu diễn bởi các khái niệm được định nghĩa trong metamodel tương ứng tại tầng M2 (ví dụ như metamodel UML) nằm ở tầng M1 Cuối cùng, tại tầng M0, là những thứ từ thế giới thực đã được mô hình hóa trong tầng M1

Ví dụ như: MOF Class (tại tầng M3) được dùng để định nghĩa khái niệm UML Class (M2), UML Class được dùng để xác định khái niệm Person (M1), và Tom, Dick và Harry (UML Objects) biểu diễn cho thực tế (M0)

Trang 6

1.1.2 Metamodel và model:

UML bao gồm UML metamodel và UML model UML metamodel giữ chức năng định nghĩa các thành tố và cú pháp UML UML model mô tả ký hiệu các thành tố và các lược đồ dựa trên UML metamodel

Model là một mô tả hoặc một đặc tả hệ thống và môi trường của nó theo một ngữ cảnh nào đó Model thường được thể hiện kết hợp hình vẽ (drawing) và chữ (text) Text

có thể là ngôn ngữ mô hình hóa (modeling language) hoặc ngôn ngữ tự nhiên (natural language) UML model sử dụng các phần tử mô hình (phần từ cấu trúc, phần tử hành vi, phần tử nhóm gộp, phần tử chú thích)và các qui tắc liên kết các phần tử mô hình đó lại để

mô hình hóa một hệ thống UML model thường miêu tả hệ thống theo hướng đối tượng (object)

Hình 2 Định nghĩa Model [Jean Bézivin, Introduction to Model Engineering]

Meta Model định nghĩa cú pháp (syntax) và ngữ nghĩa (semantic) của Model UML metamodel cung cấp một cái nhìn chặt trẽ về cú pháp và ngữ nghĩa của UML Nó giải thích tất cả các khái niệm của UML model bằng mô hình(coi mỗi khái niệm là một class)

Ví dụ: Class Attribute, class Operation, class Association……

Hình 3 Định nghĩa Meta Model [Jean Bézivin, Introduction to Model Engineering]

Trang 7

Hình 4 Metamodel UML

 Ví dụ về một UML model và UML metamodel tương ứng:

Hình 5.UML model

Trang 8

tả UML trở nên rõ ràng và chính xác hơn Và OCL trở thành chuẩn ngôn ngữ đặc tả cho các biểu đồ trong UML trong thực tế

OCL được sử dụng để:

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

 Mô tả tiều điều kiện và hậu điều kiện cho các phương thức

 Đặc tả ràng buộc của các thuộc tính lớp và các phương thức

Trang 10

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 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:

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

 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 (trả về kết quả Boolean) Biểu thức OCL 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 (trả về kết quả Boolean) Việc đánh giá biểu thức OCL 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

Cú pháp:

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

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

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

hoặc:

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

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

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

Ví dụ :

Trang 11

context Job::increase( perCent : Integer )

pre: 0<perCent and perCent<=100 – tiền điều kiện đảm bảo percent>0 và <=100

post: salary=salary@pre*(1+perCent/100) – hậu điều kiện giá trị salary

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

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:

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ó

Trang 12

Page 12

Chương 2: Hỗ trợ của USE về UML metamodel và OCL

(lấy UMLcore13 trong USE làm ví dụ)

USE muốn kiểm tra tính đúng đắn của mô hình thì nó sẽ làm theo các bước sau:

 Chuyển mô hình UML về dạng metamodel tương ứng

 Áp dụng các ràng buộc OCL để kiểm tra tính đúng đắn của các UML metamodel thu đượcSử dụng một số thay đổi cú pháp nhỏ bằng các cú pháp USE theo các luật sau:

1 Nếu một association không có tên thì thêm tên

2 Nếu tên trùng với các từ khóa trong USE thì thêm gạch dưới

3 Thêm () khi gọi một phương thức không có tham số

4 Thay thế tất cả các lần xuất hiện tiềm ẩn của collect bằng lời gọi rõ ràng

5 Thay thế tất cả các lần xuất hiện tiềm ẩn của collection flattening bằng cách sử dụng operation flatten

6 Thay thế lần xuất hiện boolen enumeration với kiểu Boolean OCL

2.1 UML metamodel:

UMLCore bao gồm các thành tố cốt lõi và được mô tả bởi bốn mô hình là sườn (Backbone), quan hệ (Relationships), phụ thuộc (Dependencies)và Classifiers Core giới thiệu cú pháp cho mô hình hóa tĩnh, không quan tâm đến quá trình vận động và tương tác giữa các đối tượng trong thế giới thực

2.1.1 Mô hình Backbone (sườn) :

Trang 13

 Element: là một thành tố trừu tượng ở mức cao nhất, tổng quát nhất trong các

thành tố UML

 ModelElement: là thành tố được định danh trong mô hình và là tổng quát hóa cấp

cao nhất thứ 2 cho các thành tố các sau Element ModelElement là thành tố được xác định theo tên

Trang 14

Page 14

 Namespace: là tập hợp các thành tố ModelElement với điều kiện định danh của

một ModelElement trong một Namespace là duy nhất

 GeneralizableElement: là thành tố có thể tham gia vào quan hệ tổng quát hóa

Một GeneralizableElement có thể tổng quát hóa một GeneralizableElement khác

 Feature: mô tả đặc tính của một Classifier chủ yếu là tầm vực(visibility) của đặc

tính Tầm vực này xác định một đặc tính của Classifier có thể được tham chiếu đền Classifier khác hay chỉ được sử dụng bởi chính Classifier chứa đặc tính đó

 StructuralFeature: được thừa kế từ Fearture, StructuralFeature mô tả đặc tính về

mặt cấu trúc của một Classifier, mô tả cấu trúc này có thể thay đổi hay cố định qua thuộc tính changeability của StructuralFeature StructualFeature có một đặc biệt hóa là thuộc tính (Attribute)

 BehavioralFeature: Được kế thừa từ Feature và biểu diễn các đặc tính về mặt

hành vi của một Classifier đồng thời mô tả đặc tính hành vi này có ảnh hưởng lên trạng thái của Classifier hay không qua thuộc tính isQuery BehavioralFeature gồm hai đặc biệt hóa là phương thức (Operation) và Method Attribute (thuộc tính) : Attribute mô tả các giá trị mà một Classifier có thể sử dụng để thể hiện trạng thái

 Operation (phương thức) : Operation là phương thức có thể được yêu cầu từ một

Classifier chứa Operation để tác động lên Classifier này Operation có quan hệ kết hợp (association) với tham số (parameter) nghĩa là Operation sử dụng một tập tham số để khởi đầu cho việc thi hành Một Operation có thể được kế thừa từ các Operation khác

 Method (mô tả phương thức) : Method có quan hệ kết hợp với phương thức

(Operation) mô tả cụ thể cách thức thực hiện một phương thức bao gồm các quy trình và các thuật toán Method có tác động đến kết quả của phương thức

 Parameter (tham số) : Parameter là tham số có thể thay đổi, gởi và nhận Một

Parameter có thể bao gồm tên, kiểu dữ liệu và quan hệ với các thành tố khác giao tiếp với nó Parameter được sử dụng trong mô tả phương thức (Operation), mẫu (Templates)

Trang 15

Page 15

 Constraint (ràng buộc) : Constraint là các điều kiện về mặt ngữ nghĩa hay các

giới hạn cho một thành tố, có thể diễn tả ở dạng văn bản hay một biểu thức logic của một ngôn ngữ mô tả ràng buộc Ngoài việc định nghĩa thành tố ràng buộc Constraint, UML còn định nghĩa một ngôn ngữ cho mô tả ràng buộc là ngôn ngữ ràng buộc đối tượng (Object Constraint Language) Giữa các Classifier có quan hệ tổng quát hóa Do Classifier là thành tố trừu tượng nên tất cả các thành tố thừa kế Classifier đều có tính chất này

2.1.2 Mô hình Relationships (các quan hệ) :

Mô hình Relationships định nghĩa các quan hệ giữa các thành tố UML bao gồm hai loại quan hệ cơ bản là quan hệ tổng quát hóa (generalization), quan hệ kết hợp

(association)

Quan hệ tổng quát hóa (generalization) là sự liên hệ giữa hai thành tố đặc biệt hơn

và tổng quát hơn Định nghĩa quan hệ kết hợp (Association) và Classifier tham gia vào mối kết hợp (AssociationEnd)

 GeneralizationElement(phần tử tổng quát hóa): kế thừa lớp Classifier Các đối tượng thuộc lớp này tham gia vào quá trình tổng quát hóa Thành tố đặc biệt hơn

Trang 16

Page 16

gọi là thành tố con (child) và thành tố tổng quát hơn là thành tố cha (parent)

Thành tố con tham gia vào quan hệ tổng quát hóa Thành tố cha tham gia vào quan hệ tổng quát hóa

 Association: quan hệ kết hợp của các Classifier với nhau

 AssociationEnd: vai trò của từng Classifier trong một mối quan hệ

 AssociationClass: là lớp kế thừa Class, được sinh ra để làm rõ ý nghĩa của quan hệ kết hợp

2.1.3 Mô hình Classifiers (các đặc biệt hóa của classifiers) :

Mô hình Classifiers mô tả các đặc biệt hóa của Classifier bao gồm các thành tố lớp (Class), giao diện (Interface), kiều dữ liệu (DataType), nút (Node) và thành phần (Component) Component bao gồm nhiều thành ModelElement

 Class: là tập hợp các đối tượng có cùng các thuộc tính, hành động và ngữ nghĩa

 Interface: là tập các phương thức (operation) của một Classifier Mỗi Interface

cung cấp một dịch vụ của Classifier bao gồm một nhóm các operation có quan hệ với Interface đó Mỗi Classifier có thể cung cấp nhiều dịch vụ khác nhau qua các Interface khác nhau

 DataType: mô tả kiểu dữ liệu của người sử dụng

Trang 17

Page 17

 Node: là thành tố đại diện cho một tài nguyên vật lý có bộ nhớ và khả năng xử lý

tính toán

 Component: là một phần riêng biệt ở mức vật lý của hệ thống Component đóng

gói các phương thức xử lý và cung cấp tập các dịch vụ xử lý này qua một tập giao diện (interface)khác nhau Mỗi giao diện bao gồm nhiều phương thức khác nhau

để phục vụ cho một mục đích cụ thể Các phương thức có thể là các đoạn mã thi hành được, các script hay lệnh Một component thường cung cấp nhiều loại dịch

vụ khác nhau liên quan đến một đối tượng cụ thể

2.1.4 Mô hình Dependencies (các quan hệ phụ thuộc) :

 Dependency: mô tả sự phụ thuộc chức năng giữa hai thành phần cho và thành

phần nhận Thành phần cho đóng vai trò cung cấp dịch vụ cho thành phần nhận Dependency định nghĩa phụ thuộc giữa hai thành tố ModelElement nên hầu như tất cả các thành tố cụ thể thừa kế ModelElement đều có thể có quan hệ phụ thuộc

 Binding: định nghĩa quan hệ giữa một mẫu (Template) là thành phần cho của

Dependency với một thành phần được tạo từ Template đó là thành phần nhận của Dependency Binding bao gồm các đối số phù hợp với các tham số của Template

 Abstraction: mô tả mối liên hệ giữa các thành tố ở các mức trừu tượng hóa khác

nhau Ví dụ như chuyển một khái niệm ở mức phân tích sang mức thiết kế bằng quan hệ Abstraction

Trang 18

Page 18

 Permisson: cung cấp quyền hạn cho một thành tố ngoài không gian các thành tố

(Namespace) tham chiếu các thành tố khác trong Namespace Thành tố nhận là một ModelElement thành tố cho bắt buộc là một Namespace Usage là quan hệ giữa một thành tố ModelElement có sử dụng phương thức của một thành tố

 Tên của AssociationEnds và không được trùng nhau

 AssociationClass không thể được định nghĩa giữa chính nó và một cái khác

 Ngữ cảnh AssociationEnd:

 Classifier tương ứng với AssociationEnd không thể là một Interface hoặc

DataType nếu hướng của Association tới nó là kết thúc

 An Instance may not belong by composition to more than one composite Instance

 Ngữ cảnh BehavioralFeature:

 Tất cả các tham số phải có một tên duy nhất

 Các loại tham số phải nằm trong không gian tên của Classifier

 Ngữ cảnh Binding:

Ngày đăng: 15/02/2014, 16:20

HÌNH ẢNH LIÊN QUAN

Hình 1. Mô hình Modeling - Tài liệu Đề Bài: Tìm hiểu hỗ trợ của USE về định nghĩa các metamodel và các ràng buộc OCL để đảm bảo tính đúng đắn (wellformedness) của các mô hình pdf
Hình 1. Mô hình Modeling (Trang 5)
Hình 5.UML model. - Tài liệu Đề Bài: Tìm hiểu hỗ trợ của USE về định nghĩa các metamodel và các ràng buộc OCL để đảm bảo tính đúng đắn (wellformedness) của các mô hình pdf
Hình 5. UML model (Trang 7)
Hình 6.UML metamodel. - Tài liệu Đề Bài: Tìm hiểu hỗ trợ của USE về định nghĩa các metamodel và các ràng buộc OCL để đảm bảo tính đúng đắn (wellformedness) của các mô hình pdf
Hình 6. UML metamodel (Trang 8)
Hình 7. Ví dụ về OCL - Tài liệu Đề Bài: Tìm hiểu hỗ trợ của USE về định nghĩa các metamodel và các ràng buộc OCL để đảm bảo tính đúng đắn (wellformedness) của các mô hình pdf
Hình 7. Ví dụ về OCL (Trang 9)
Hình 10: Association - Tài liệu Đề Bài: Tìm hiểu hỗ trợ của USE về định nghĩa các metamodel và các ràng buộc OCL để đảm bảo tính đúng đắn (wellformedness) của các mô hình pdf
Hình 10 Association (Trang 21)
Hình 11 : UML metaclass - Tài liệu Đề Bài: Tìm hiểu hỗ trợ của USE về định nghĩa các metamodel và các ràng buộc OCL để đảm bảo tính đúng đắn (wellformedness) của các mô hình pdf
Hình 11 UML metaclass (Trang 22)
Hình 12 : Biểu đồ class diagram - Tài liệu Đề Bài: Tìm hiểu hỗ trợ của USE về định nghĩa các metamodel và các ràng buộc OCL để đảm bảo tính đúng đắn (wellformedness) của các mô hình pdf
Hình 12 Biểu đồ class diagram (Trang 23)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w