Ngôn ngữ mô hình hóa UML

Một phần của tài liệu Kiểm chứng đặt tả uml cho tác tử phần mềm (Trang 26)

UML (Unified Modeling Language) là ngôn ngữ mô hình hóa đư ợc sử dụng để

biểu diễn, đặc tả và xây dựng các thành phần của hệ thống phần mềm. Nó là một chuẩn của tổ chức OMG (Object management Group) [11]. UML giúp người sử dụng mô tảđược các tài liệu đặc tả yêu cầu, tài liệu phân tích và tài liệu thiết kếứng dụng. Hiện nay, nó được dùng để mô tả hình hóa gần như toàn bộ các hệ thống phần mềm từ

nhỏ tới lớn, từđơn giản tới phức tạp trên thế giới.

UML sử dụng một hệ thống ký hiệu thống nhất để biểu diễn các phần tử mô hình. Tập các phần tử mô hình tạo nên các biểu đồ UML. Có nhiều loại biểu đồUML như:

biểu đồ ca sử dụng, biểu đồ lớp, biểu đồ tuần tự, biểu đồ trạng thái, biểu đồ hoạt

động… Ởđây tôi chỉ trình bày hai loại biểu đồđược sử dụng làm đầu vào cho nghiên cứu của tôi; đó là: biểu đồ trạng thái (State Diagram) và biểu đồ trình tự (Sequence Diagram).

3.1.2 Biểu đồ trng thái (State Diagram)

Biểu đồ trạng thái là một sự bổ sung cho lời miêu tả biểu đồ lớp. Nó mô tả chu kỳ tồn tại của đối tương từ khi sinh ra đến khi bị phá hủy. Nó chỉ ra tất cả các trạng

thái mà đối tượng của lớp này có thể có, các hành vi của đối tượng và những sự kiện

tác động làm thay đổi trạng thái. Ví dụ:

Hình 3.1: Biểu đồ trạng thái thực hiện hóa đơn

Một trạng thái có thể có ba phần sau:

19

- State variables (các biến trạng thái – không bắt buộc): đây là những thuộc tính của lớp được thể hiện qua biểu đồ trạng thái

- Activities (sự kiện – không bắt buộc): Đây là phần dành cho hoạt động nơi mà các sự kiện và hành động và liệt kê. Có ba loại sự kiện chuẩn hóa có thểđược sử dụng cho hành động:

o Entry:Xác định các hành động tạo trạng thái.

o Exit:Xác định các hành động khi rời bỏ trạng thái.

o Do: Xác định các hành động cần phải thực hiện trong trạng thái. Sự kiện là nguyên nhân của chuyển trạng thái. Một sự kiện có thể kích hoạt một hoặc nhiều hành động bởi một tác nhân. Trong UML, có các kiểu sư kiện:

- Change events: Xuất hiện khi điều kiện thỏa mãn.

- Signal events: Chỉ ra việc nhận một tín hiệu ngoài từ một đối tượng sang

đối tượng khác.

- Call events: Chỉ ra việc nhận một lời gọi hàm bởi một đối tượng hoặc tác nhân.

- Time events:Đánh dấu việc chuyển trạng thái sau một khoảng thời gian.

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

Biểu đồ trình tự minh họa các đối tượng tương tác với nhau ra sao. Chúng tập trung vào các chuỗi thông điệp, có nghĩa là các thông điệp gửi và nhận giữa một loạt

các đối tượng như thế nào. Biểu đồ tuần tự có hai trục: trục dọc chỉ thời gian, trục nằm ngang chỉ ra một tập các đối tượng. Ví dụ:

Hình 3.2: Biểu đồ tuần tự rút tiền từ máy ATM

Một biểu đồ tuần tự cũng nêu bật sựtương tác giữa các đối tượng trong một kịch bản – một tương tác sẽ xảy ra tại một thời điểm nào đó trong quá trình thực thi hệ

20 Biểu đồ tuần tự gồm hai thành phần chính:

- Các đối tượng.

- Các thông điệp trao đổi giữa các đối tượng.

3.2 XML (eXtensible Markup Language) 3.2.1 Cơ bản v XML 3.2.1 Cơ bản v XML

XML kết hợp những ưu điểm của các ngôn ngữtrước đó (sự đơn giản của HTML và cấu trúc mô tả tài liệu của SGML), có khảnăng mô tả nhiều loại dữ liệu khác nhau với mục đích là đơn giản hóa việc chia sẻ dữ liệu giữa các hệ thống khác nhau, đặc biệt là các hệ thống được kết nối với Internet. XML là ngôn ngữ đánh dấu với mục

đích chung cho W3C đề nghị [6].

XML là một ngôn ngữ đánh dấu, nó gần giống với HTML (Hypertext markup Language). Nó cung cấp một phương tiện dùng văn bản để mô tả thông tin và áp dụng một cấu trúc kiểu cây cho thông tin đó. Mọi thông tin đều hiển thị dưới dạng văn bản (text), chen giữa các thẻ đánh dấu (markup) với nhiệm vụ ký hiệu sự phân chia thông tin thành một cấu trúc có thứ bậc của các dữ liệu ký tự [6].

Nội dung của một tài liệu XML gồm hai phần chính:

- Nội dung chính: Hệ thống các thẻ đánh dấu tương ứng với các thông tin cần biểu diễn và có một node gốc.

- Nội dung phụ: Bổ sung thông tin cho tài liệu XML, một số thẻ phụ:

o Thẻ khai báo tham số: <?xml Ten1=“Giatri1”… ? >

Một số tham số thường dùng như: tham số version (phiên bản chỉ định của XML), tham số encoding (cách mã hóa các ký tự), tham số

standalone (liên kết với tài liệu xml khác).

o Thẻ chỉ thị xử lý: Mô tả một số thông tin cho tài liệu XML nhưng có

ý nghĩa riêng đối với một vài công cụ xử lý nào đó. C ấu trúc: <? Bo_Xu_Ly_Du_Lieu >

Ví dụ: <?xml-stylesheet type=“text/css” href=“a.css” ?>

Định dạng thể hiện tài liệu XML với “chương trình đ ịnh dạng” theo ngôn ngữCSS được lưu trữ bên trong tệp tin a.css. Thẻ này có ý nghĩa với một số trình duyệt như IE5, Netscape.

21 Cấu trúc: <-- Nội dung ghi chú -->

o Thẻ CDATA: Yêu cầu các bộ phân tích tài liệu XML bỏ qua không phân tích vào nội dung bên trong của thẻ này. Mục đích chính của thẻ

này là cho phép sử dụng trực tiếp bên trong thẻ một số ký hiệu không

được phép sử dụng bên ngoài. Ví dụ các ký tự ‘<’, ‘>’. Cấu trúc: <![CDATA [Nội dung]]>.

o Thẻ khai báo thực thể: cho phép tài liệu XML tham chiếu đến một tập hợp các giá trị đã chuẩn bị trước dưới dạng một tên gợi nhớ (tên thực thể).

Khai báo: <!DOCTYPE Ten_goc[ Khai báo thực thể tên X Khai báo thực thể tên Y]

o Thẻ khai báo cấu trúc.

Các thẻXML không được định nghĩa trước trong cú pháp XML, người sử dụng có thể tự định nghĩa theo các thẻ theo ý thích khi sử dụng XML. XML sử dụng DTD hoặc XML schema để mô tả dữ liệu. XML biểu diễn dữ liệu bằng cách sử dụng các thành phần XML, trong đó chứa một trong các thành phần sau đây:

- Thẻ bắt đầu: Chứa tên của thành phần.

- XML attributes: Các thuộc tính, mỗi thuộc tính có tên và giá trị

- Nội dung: Có thể chứa một đoạn văn bản hoặc thuộc tính, cũng có th ể

chứa cả hai.

- Thẻ kết thúc, giống với tên của thẻ bắt đầu. Ví dụ về một tài liệu XML:

<?xml

XML đã trở thành một công cụ rất mạnh và đơn giản để lưu trữ dữ liệu trên các file. Nó cho phép bạn lưu trữ dữ liệu theo mẫu và có thể truy xuất được bằng các ứng

version="1.0" encoding="UTF-8"?> <edge type="directed ">

<from id="n1"/> <to id="n2"/> </edge>

<comment> An edge of one graph</comment>

Có 6 thành phần XML trong tài liệu này. Đầu tiên là chỉ thị xử lý, Phần tửedge

chứa thuộc tính có tên là type và giá trị là directed. Phần tửedge chứa hai phần tử con là fromto chúng có hai thuộc tính là id. Phần tử comment chứa nội dung là một

22

dụng khác nhau, nhưng nó không thể tạo ra dữ liệu. Bằng cách sử dụng các API như

DOM, SAX, bạn có thể truy xuất dữ liệu từ một tài liệu XML rất dễ dàng.

3.2.2 XML DOM 3.2.2.1 DOM 3.2.2.1 DOM

“The W3C Document Object Model (DOM) is a platform and language-neutral

interfacethat allows programs and scripts to dynamically access and update the content, structure, and style of a document”

DOM gồm ba phần riêng biệt:

- Core DOM:Định nghĩa các đối tượng chuẩn cho các tài liệu có cấu trúc. - XML DOM:Định nghĩa tập hợp các đối tượng chuẩn cho tài liệu XML - HTML DOM:Định nghĩa tập các đối tượng chuẩn cho tài liệu HTML.

3.2.2.2 XML DOM

XML DOM định nghĩa các đối tượng và thuộc tính của tất cả các thẻ của tài liệu

XML và các phương thức (giao diện) để truy xuất chúng. Nó là một chuẩn để truy xuất, thêm, xóa, sửa các thẻ XML.

Trong DOM, mọi thứ trong tài liệu đều là nút (node):

- Toàn bộ tài liệu là một nút tài liệu (document node) – cây node

o Một cây gồm nhiều node.

o Node cao nhất gọi là root.

o Mỗi node, trừroot ra có chính xác một node cha.

o Một node có nhiều node con.

o Node lá là node không có node con. - Mọi thẻ XML là một nút thẻ (element node). - Text trong các thẻ XML là nút text (text node). - Mọi thuộc tính là nút thuộc tính (attribute node). - Ghi chú là nút ghi chú (comment node).

3.2.2.3 XML DOM Parser

Để đọc, cập nhật và thao tác trên một tài liệu XML ta cần một XML Parser. Có nhiều XML Parserđược hỗ trợ trong hầu hết các ngôn ngữ (Java, .Net…). Parser nạp tài liệu XML vào trong bộ nhớ của máy tính và được xem dưới dạng cây node. Sau đó

23

Hình 3.3: XML DOM Parser

3.2.2.4 XML DOM API

Cung cấp các phương thức xử lý tài liệu XML. Trong XML DOM API có rất nhiều phương thức để có thể thao tác với tài liệu XML, ở đây tôi xin chỉ ra một số phương thức thường sử dụng nhất để thao tác với tài liệu XML:

- Duyệt node:

o ParentNode: Lấy node cha của node hiện tại

o ChildNodes: Lấy các node con của node hiện tại

o firstChild: Lấy nodecon đầu tiên của node hiện tại

o lastChild: Lấy node con cuối cùng của node hiện tại

o nextSibling: Lấy node kết tiếp node hiện tại.

o previousSibling: Lấy nodetrước node hiện tại. - Thao tác trên các node:

o getElementsByTagName(String tagname): Trả về một tập các node có thuộc tính tên là: tagname.

o getElementById(String id): Trả về một node có thuộc tính id là: id

o setAttribute(String name, String value): Đặt thuộc tính cho node với tên thuộc tính là name, giá trị là value.

o getAttribute(String name): lấy giá trị của thuộc tính có tên là name

o removeChild: Xóa node con của node hiện tại

24

o replaceChild: Thay thế node con của node hiện tại bằng một node

mới.

o createNode:Dùng để tạo ra tất cả các loại node.

o createElement: = createNode với loại element node.

o createTextNode: = createNode với loại text node

o createAttribute: = createNode với loại attribute node.

o nodeCha.appendChild: thêm vào phần tử cuối cùng của danh sách các node con của nodeCha.

o nodeCha.insertBefore: thêm node mới vào trước node nào đó trong

danh sách node con của nodeCha.

3.3 XMI (XML Metadata Interchange)

XMI là một chuẩn OMG cho việc trao đổi siêu dữ liệu (metadata) giữa các công cụ, các kho dữ liệu và các ứng dụng. Nó là một chuẩn cho phép người dùng mô tảđối

tượng bằng cách sử dụng XML. Nó làm việc dựa trên các chuẩn như W3C XML,

OMG UML và MOF [14].

Mặc dù XML có rất nhiều ưu điểm, nhưng vẫn có một khoảng cách nhất định giữa XML với các đối tượng (objects). XML định nghĩa các phần tử XML, các thuộc tính, không phải là đối tượng. Nó không cung cấp các đặc điểm của hướng đối tượng

như đa thừa kế và nó không chứa mô hình đối tượng. Tồn tại nhiều cách khác nhau để lưu trữ dữ liệu XML và nếu sử dụng các công cụkhác nhau đểlưu trữ XML thì sẽ gây

ra khó khăn trong việc trao đổi dữ liệu. Khi ta lưu trữ đối tượng bằng XML cũng vậy, nếu đối tượng được lưu trữ khác nhau trong XML thì rất khó khăn đểtrao đổi giữa các công cụ. Tuy nhiên, XMI ra chính là cầu nối liền khoảng cách giữa đối tượng và XML. Nó cung cấp một chuẩn để tạo ra một ánh xạ từ một đối tượng được định nghĩa bằng

25

Hình 3.4: Sử dụng XMI trao đổi thông tin giữa các công cụ khác nhau.

XMI được xây dựng dựa trên XML, vì vậy chúng ta hoàn toàn có thể sử dụng các API chuẩn thao tác với XML như DOM, SAX để thao tác với tài liệu XMI. Trong nghiên cứu của tôi, tôi sử dụng DOM XML cho ngôn ngữJava để thao tác với tài liệu XMI.

3.4 AUML (Agent UML)

Trước khi đi vào tìm hiểu về AUML, tôi xin giới thiệu qua một số khái niệm cơ

bản về tác tử phần mềm (agent) và phần mềm hướng tác tử để ta có một cái nhìn tổng quan nhất về một phần mềm hướng tác tử.

3.4.1 Tác t phn mm là gì?

Theo từđiển Heritage của Mỹ: “Agent là một đối tượng mà có ảnh hưởng hay có khảnăng và có quyền tác động hay đại diện cho một đối tượng khác”.

Theo Ressel và Norvig: “Một agent có thể được xét tới bởi khảnăng nhận thức về môi trườn nó đang tồn tại qua bộ cảm biến (sensor) và khả năng tác động lên môi

trường đó qua cơ quan phản ứng (effector)”.

Theo Pattie Maes: “Agent tự chủ là các hệ tính toán tồn tại trong môi trường

động phức tạp, tri giác và hành động tự chủ trong môi trường này, qua đó hình dung

được nhiệm vụ hoặc mục đích của mình”.

Theo như các định nghĩa trên thì agent có thể là hệ thống phần cứng (điều nhiệt, tàu vũ trụ, xe tự hành…) hoặc phần mềm (kiểm tra thư, Antivirus, …) Ởđây ta đi vào

26

Tác tử phần mềm là một chương trình máy tính tồn tại trong môi trường nhất

định, tự động hành động phản ứng lại sựthay đổi của môi trường nhằm đáp ứng mục

tiêu đã được thiết kếtrướcất như:

- Antonomy (Tính tự chủ): Một agent có khả năng kiểm soát hành vi của mình độc lập với các thực thể khác.

- Reactivity (Tính phản xạ): Agent có khảnăng phản ứng lại các tác động từmôi trường theo một cơ chếnào đó.

- Pro-activeness (Tính chủ động): Agent không chỉ phản ứng lại môi

trường, chúng có thểhành động có mục đích và chủ động để tranh thủ thời

cơ đạt được mục đích đó. Từ một mục tiêu, agent có khảnăng xác định các

hành động cần thiết và nó thực hiện một cách linh hoạt các hành vi đó để đạt được mục tiêu đề ra.

- Social Ability (Tính cộng đồng):Agent có thểtương tác với những agent

khác hay con người để hoàn thành công việc riêng của mình hay trợ giúp các agent khác trong những hoạt động nào đó.

Dựa vào mức độ thông minh, tính di động hay số lượng agent, người ta phân

agent ra một số loại như: agent cộng tác, agent giao diện, agent di dộng, agent thông tin, agent phản xạ, agent thông minh.

3.4.2 Phn mềm hướng Agent

Công nghệ phần mềm hướng Agent phân rã bài toán thành nhiều thành phần

tương tác và tự trị (agents) mà có các mục tiêu cụ thể để đạt tới. Phần mềm hướng

agent là một phương pháp luận mới hỗ trợ cách tiếp cận được công nghệ hóa: phân tích và thiết kế hệ thống.

- Phân tích hướng agent: Cũng giống như các phương pháp phân tích hệ

thống khác, phân tích hướng agent cũng bắt đầu từ việc định nghĩa các yêu

cầu và mục đích của hệ thống. Các mục đích toàn thể của ứng dụng được phân rã thành những mục tiêu con, nhỏhơn; cho tới khi nào có thể quản lý

được chúng. Việc phân tích hướng agent phải nhận ra được nhiệm vụ của một agent.

- Thiết kế phần mềm hướng agent: Mỗi agent trong hệ thống được giao cho một hoặc một số nhiệm vụ riêng biệt. Các agent phải nắm được đầy đủ

trách nhiệm đối với việc hoàn thành các nhiệm vụ được giao. Các nhiệm vụ cộng đồng biểu diễn các chức năng toàn cục của hệ thống agent.

27

Phát triển phần mềm hướng agent dựa vào các hệ đa agent – là một cộng đồng các agent, nơi mà tương tác qua lại giữa các agent và với môi trường của chúng tạo ra một hành vi toàn thể, hữu ích. Một hệđa agent bao gồm các thành phần:

- Các agentđược xem như là các cá thể.

Một phần của tài liệu Kiểm chứng đặt tả uml cho tác tử phần mềm (Trang 26)

Tải bản đầy đủ (PDF)

(93 trang)