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

Luận văn phương pháp kiểm chứng tính Đúng Đắn của các biểu Đồ tuần tự uml 2 0

61 2 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Phương pháp kiểm chứng tính Đúng Đắn của các biểu Đồ tuần tự UML 2.0
Tác giả Trần Quốc Nam
Người hướng dẫn TS. Trịnh Thanh Bình, TS. Phạm Ngọc Hưng
Trường học Trường Đại học Công nghệ, Đại học QGHN
Chuyên ngành Công nghệ Thông tin
Thể loại Luận văn thạc sĩ
Năm xuất bản 2015
Thành phố Hà Nội
Định dạng
Số trang 61
Dung lượng 676,25 KB

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

Nội dung

Cách tiếp cận này không thế hiện được tính hướng, đổi tượng vên có biểu đồ tuần tự là sự tương tác giữa cáo đối lượng với nhau, gửi và nhận các loại thông điệp, các điểm xuất phát và đi

Trang 1

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

TRAN QUOC NAM

PHU ONG PHAP KIEM CHUNG TINH DUNG DAN

CUA CAC BIEU BO TUAN TU UML 2.0

Ngành: Công nghệ thông tin Chuyên ngành: Kỹ thuật phần mềm

Mã Số: 6048 01 03

LUẬN VĂN THẠC SĨ

Ngành: Công nghệ Thông tin

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS TRỊNH THANH BÌNH

DONG HUGNG DAN: TS PHAM NGOC HUNG

Hà nội 2015

Trang 2

MỤC LỤC

MỤC LỤC LH HH HH HH teerereerdieraeE LỜI CẢM ƠN iii

LOI CAM BOAN osescsceccssseccsssissesssnssianssttansseessetiassetiseestnsseiiaesimsstiasoneareesseeinad¥ DANH MỤC THUẬT NGỮ VIẾT TÁT -cce, HH HHehreokuoŸ, DANH MỤC HÌNH VỀ v1

I910 i0 cm .ÁẶIAa Chương 1: Giới thiệu - - - i

Chương 3: Phương pháp phân tích biểu dé tan tu nhằm xây dựng các mô hình đặc tả 3

2.1 Biểu đỗ tuần tụ UMI.2.0 - 3

2.2 Phương pháp phân lích đối lượng của biểu đồ tuần tự thành các khói đơn 11 2.3 Phương pháp sinh ôtêmat vào/ra từ các khối đơn của biểu đồ tuân tự 14 2.3.1 Trường hợp khói đơn không chia phân đoạn nao - - 16

2.3.2 Trường hợp khối đơn chứa một phân đoạn Option 16 2.3.3 Trường hợp khỏi don clita mét phan doan Allernalive 18 2.3.4 Trường hợp khỏi đơn chứa một phân đoạn T.oop - 19 2.3.5 Trường hợp khải đơn chứa một phân đoạn Irealc - - 2L 2.3.6 Trường hợp khểi đơn chứa một phân đoạn Parallel 2 2.3.7 Trường hợp khểi đơn chúa một phân đoạn Strict - - 23

2.3.8 Trường hợp khỏi đơn chứa một phân đoạn Critical 21 2.3.9 Trường hợp khỏi đơn chứa một phân đoạn Cansider 25

2.3.10 Trường hợp khối don chứa một phân đoạn Ignofe 27

2.1 Phương pháp xây dựng ôtômat vào/ra cho đối tượng của biểu đồ tuân tự 28

Chương 3: Công cụ sinh ôtômat vàora từ biểu đồ tuần tự ¬

Trang 3

3.2 Thực nghiệm " ¬— `ˆ

3.3.3 Bài toán máy thanh toán ở siêu thị ¬

4.2 Áp dựng phương pháp kiểm chứng với trường hợp bái toàn dặt chỗ 48

Trang 4

in

LOI CAM ON

Trước tiên tôi xin đành lời cảm on chân thành và sâu sắc đến hai thây giáo, TS Trịnh Thanh Bình va TS Pham Ngoc Hing — những người đã hướng đân, khuyến khích, chỉ bảo và tạo cho tôi những điều kiện tốt nhật từ khi bắt đầu cho tới khi hoàn thành công việc của mình

Tôi xin đành lời câm ơn chân thành tới các thấy cô giáo khoa Công nghệ thông tin, trường Đại học Công nghệ, ĐH QGHN dã tận tình dào tạo, cung cắp cho tỏi những kiển thức võ củng quý giá và đã tạo điều kiện tốt nhất cho tôi trong suốt quá trình học

iập, nghiên cứu tại trường

Đẳng thời tôi xin chân thành cảm ơn những người thân trong gia đình cùng toàn

thể bạn bẻ dã luôn giúp dỡ, dộng viên tôi trong những lúc gặp phải khó khăn trong việc học tập vả nghiên cửu chương trình thạc sĩ tại Dại học Công nghệ, DII QGITN.

Trang 5

Tôi xin cam đoan rằng luận văn thạc sĩ công nghệ thông tín “Thương pháp kiếm chứng lính đúng din của gác biểu đỏ tuần tự UML, 2.0” là công trình nghiên cứu của

riêng tôi, không sao chép lại của người khác Trong toàn bộ nội dưng của luận văn,

những điển đã được trình bảy hoặc là của chính cá nhân tôi hoặc là được tống hợp từ nhiều nguồn tải liệu Tất cả các nguồn tải liệu tham khảo déu có xuất xứ rõ rang va hop phap

Tôi xin hoán toàn chịu trách nhiệm và chịu mọi hình thức ký luật theo quy định

cho lời cam đoạn này

Hà Nội, ngày tháng năm 2015

Trân Quốc Nam

Trang 6

DANH MỤC THUẬT NGỮ VIẾT TẢ

1 DEA Deterministic Finite Automata | Ôtômat hữu hạn trạng thái

2 1O AAutemata Input/Output Autamata Ôtômat vào/ra

Trang 7

Hinh 2.1 Phan đoạn Leop - - 4

Hình 2.2 Phan doan Alt 4 THình 2.3 Phân đoạn Par và ví dự thử tự thực hiện ~ - 5

THinh 2.5 Phan doan Break 6 Tinh 2.6 Phan doan 5eq 7 Tink 3.7 Phân đoạn Striet ~ - §

Hình 2.9 Phân đoạn onsider so c2 sec cv crreerree "

1lình 2.10 Phân đoạn CTitlcal cành hHeereeeririeee.Ð Linh 2.11 Phân đoạn Neg on eeererrrrerrrdrrrrriererrareo TÚ Tink 2.12 Phân đoạn /ÀsseTf eset LO

Linh 2.13, Khéi don gém một phân đoạn opt so sessrssssseo, TT Hình 2.14 Khối don không chứa phân đoạn và ôtômát cho đối tượng, User LÓ Hình 2.15, Khéi don chỉ chứa một phân doan Option va dtémat cho déi tugng User 17 Hình 2.16 Khối dơn chỉ chứa một phân doan Aliemative va Stémat cho déi tugng

Trang 8

Hình 4.1.4 Đầu ra của công cụ với khối Loop dơn giản sreeesesi 35 Hình 4.2.1 Biểu đỗ tuân tự xứ lý đặt chở oooc5ccccccrrrercee sects SG Hinh 4.2.2, Đầu ra mơng muốn cho dối tượng Oder ¬ Hình 4.2.3, Đầu ra mong muốn cho dối tượng Tieket -ˆ Hình 4.2.4 Đầu ra mong muốn cho dối tượng /Aeootit Xe.) THình 4.2.5 Biểu đồ tuần tự máy thanh toán ở siêu thị 40 Tình 4.2.6, Đầu ra mong rốn cho đối tượng Cuatomer - 42 Tình 4.2.7 Đầu ra mong muốn cho đối tong Cashier 43 Tình 4.2.8, Đầu ra mong muốn cho dối lượng Card Proccssor — Hình 4.2.9, Đầu ra mong muốn cho dối tong Cash Register Xaessreesu.41

Trang 9

DANH MUC BANG Bang 5 1 Mô phỏng kiếm chứng thuộc tỉnh P với bài toán đặt chỗ 49

Trang 10

Chương 1: Giới thiệu

Dam bao chất lượng là một van đề quan trọng và tiêu tổn chỉ phí cao trong quả trinh phát triển phần mềm Tự động hóa quá trình đảm bảo chất lượng là tiêu chí hướng tới của các doanh nghiệp nhằm giảm di chú phí phát triển ngay từ khâu thiết kế, Ngoài ra, đổi với những sán phẩm có yêu câu chất lượng cao như hệ thống điều khiển máy bay,

tau ga, kỹ thuật quan su, y té v-v nha đầu tư sẽ yêu cảu áp dụng các phương pháp hình

thức nhằm đâm bão tính đúng din của thiết kế trước khi triển khai Giải pháp phố biến nhật hiện nay dé giải quyết vấn đề trên là áp dụng các phương pháp kiểm chứng mô

hình để tự động hóa quá trình kiểm chứng tính đúng đẳn của thiết kế [2], [6], [9] Đề

áp dụng những phương pháp này, tá cần phải xây dụng các mô hình đặc tả chính xác thành vị của hệ thông cần kiểm chứng [4], [10], [11] Tuy nhiên, xây đựng mô hình cho

các hệ thông phẩn mềm là một công việc khó khăn vã Hiểm ấn nhiều lỗi Các nghiên cứu hiện tại hầu hết giả sử các mô hình này da c va ding đắn Trong thực tế, giả dịnh này rất khó để hiện thực, nhất là từ phía các công ty phát triển phần mềm Liạn chế trên

lả một trong những nguyên rhên chính đân đến các phương pháp nảy khó áp dụng trong thực tế

Để giải quyết vẫn đề nêu trên, một trong những hướng tiếp cận lả sử dụng dẫu vào

cho các phương pháp kiếm chứng từ biêu đỗ thiết kế LML Việc đưa ra phương pháp

mô hình hóa biéu dé UML, & đây là biếu đồ trần tự ƯML 2.0, giúp cho việc áp dung các phương pháp kiểm chứng mô hình hoàn toàn có thể trực hiện được trong thực tổ Nghiên cứu hiện tại được để cập trong [3] tập trung xây dựng một ôtômat cho cả biểu

để tuần tự Thương phúp này chỉ đầm bảo được các thuộc lính an toàn (safely properties) [7], kiém tra cac hanh vi mét cach tuân tự theo thời gian Cách tiếp cận này

không thế hiện được tính hướng, đổi tượng vên có biểu đồ tuần tự là sự tương tác giữa

cáo đối lượng với nhau, gửi và nhận các loại thông điệp, các điểm xuất phát và điểm đến của chúng, đặc biệt dối với các hệ thông tương tranh Vi vậy một cách khảc ta cân bóc tách xây đựng ôtômat thế hiện hành vi của từng đổi tượng trong mỗi quan hệ với các dỗi tượng khác từ đó ta có lành vĩ của hệ thông,

Một cách tiếp cân để giải quyết vân đề trên được để xuất trong [S] Y tưởng chính

của phương pháp nảy là xây dụng một ôtômat vào/ra (InpuVOutput Automata YO

Trang 11

Automata) [8] cho mỗi dối tượng của biểu dỏ tuân tự Ôtômat vàofra là sự mở rộng cửa ôtômat hữu hạn trạng thái (Deterministic Finite Automata - DFA) [1] Các trạng thai trong ôtômat vàora biểu dién các ánh xạ tỉ hành vi tới các đổi tượng trong biểu

đồ tuân tự Hảm chuyển trạng thái được biểu diễn bởi ảnh xạ hai ngôi (điều kiện, hành

vi) thé hiện sự tương tác giữa các đối tượng [5] Luận văn tập trung vào xây đựng thuật loắn và công cụ hiện thục hỏa việc xây dựng ôiômat vào#a cho các đối lượng

trong biểu đỗ tuần tự Các mô hinh ôtômat vào/ra này củng với việc dưa vào các thuộc tính sẽ là đâu vảo cho các công cụ kiểm chứng hỗ trợ ôtômat vảo/ra nhắm kiếm chứng

tinh đúng đân của thiết kế

Phần còn lại của luận văn được cầu trúc như sau Phương pháp sinh mô hình cha các dối tượng của biểu dỗ tuản tự UML2.0 dược giới thiệu trong chương 2 Chương, này trình bảy phương pháp bóc tách đối tượng của biên đồ tuân tự thành các khối đơn, tiếp đó là phương pháp sinh ôlörsaL vào#a từ các khói đơn của biểu để tuàn tự và cuối cùng là phương pháp ghép nổi các ôtômat vào/ra được sinh ra từ cáo khối đơn để được một ôiômat cho cả đổi tượng, Chương 3 giới thiệu về công cụ thực nghiệm và kết quả thực nghiệm của phương pháp sinh ôtômat vào/ra cho các dối tượng của biểu dễ tuân

nghiên củu phương pháp mô phỏng sự tương tác giữa các ôtômat vào/ra từ các đổi

tượng, qua đó kiếm chứng tính đúng đắn của biếu đồ tuần tự đối với thuộc tính yêu câu Kết luận và định hướng phát triển cho luận văn được trinh bày Irong chương 5

Trang 12

3

Chương 2: Phương pháp phân tích biểu đồ tuần tự nhằm xây dựng các mô hình đặc tả

Dể áp dụng các phương pháp kiểm chứng tự động dựa trên mô hình, việc đầu

tiên cần làm là xây đựng các mô hình đặc tả thiết kẻ của phần mẻm, ở đây là biểu đồ

tuân tự ỨMI,2.0 Đầu vào của bài toán là biểu đỗ luận tự UUMI.3.0, tà cần xây dựng, thuật toán để chuyển đổi các đối tượng của biểu đồ tuần tự thành các ôtômat vàoZra [8]

Y tưởng dễ giải quyết vân dễ trên là bóc từng dối tượng của biểu dò tuần tự thành: một tập các khổi đơn (biểu đổ tuân tự và khối đơn được để cập ở mục 2.1) Sau đó, thuật Loán chuyển đổi được xây dựng để chuyển từng khối đơn đó thành các ôiômal vào/ra, Cuỗi củng, luận văn xây dựng thuật toán để phép nối các ôtômat có được thành một ôlômaL tương ứng với đối Lượng của biêu đồ tuân tự Chỉ tiết các thuật toán được

mô tả trong 3 mục từ 2.2 đến 2.4

2.1 Biển đô tuẦn tự UML2.0

Biéu dé tuan tu (Sequence Diagram — SD) thể hiện tương lắc giữa các thực thể của hệ thống theo thứ tự trình tự mà các tương tác này xây ra 8D nhân mạnh sự tương, táo giữa các đổi tượng và chỉ ra sự tương tác là khía cạnh quan trọng nhất Biểu đồ tuần Iự UMI2.0 đưa vào sự kết hợp giữa oác phân đoạn (combined fragment), cho phép thực hiện các tương tác phức tạp Thành phần chính của biểu dễ tuân tự gồm: Đải tượng, Thông điệp và Phân đoạn

Ti tượng được biểu điễn bằng hai phản: phần tiêu để khai báo đối tượng va chu

kỳ sắng, các đối lượng tương tác với nhau thông qua các thông điệp Thời gian các đối tượng tên tại được biểu diễn bằng đường đứt nét, chủ kỷ sống biểu diễn bằng đường nét đổi

'Thông điệp được biêu điển ở đạng đường mũi tên từ chư kỳ sống của đổi tượng,

gửi đến đối lượng nhận Cac mili lên này được sắp xếp theo trình tự thời gian từ trên xuống Có ba loại thông điệp: Thông điệp đồng bộ (nét hẻn), thông điệp phân hỏi (nét dit), thang điệp đệ quy (gọi tới chính đối tương)

Trang 13

Phân doạn dùng dễ biểu diễn các luồng diễu khiển phức tạp Mỗi phản doan co một từ khĩa và cĩ một hoặc nhiêu đoạn con (gọi là các tốn hạng tương tác — interaction operands) Tương ứng với câu trúc điều khiến trong các ngơn ngữ lập trinh như lặp, rẽ nhánh, song song chủng ta cĩ 12 phân đoạn khác nhau với các nhân tương, ung loop, alt, par, v.v [12]

Phân đoạn lap (Loop): chi ra rang phan doan kết hợp biếu điễn một vịng lặp

Tốn hạng lắp sẽ được lặp đi lặp lại một số lần Điều kiện cĩ thể gồm một cân dưới (minint), một cận trên (maxint) va mot biéu thie Boolean Sau minint lin lap, biéu thức được kiểm tra, chừng nào biếu thức cịn đúng và số lần lặp cịn nhỏ hơn hoặc tbằng maxint thì vịng lấp vẫn tiếp tục Hình 3.1 ruiêu tâ phân đoạn lòp sau khi lặp hếL

Š lần, nêu diễu kiện size < 0 dúng thi dừng lặp, việc kiểm tra này cịn thực hiện chững, nào số lẫn lặp cịn <= 10

[balance >0]

Hình 2.2 Phân đoạn Alt

Phân đoạn lea chon day di (Alternative): Phan đoạn aÌt được biếu điễn với

khung cĩ Liêu để “alU”, sử dụng dé chỉ ra sự lựa chơn loại trừ làn nữtau giữa bai hai nhiều chuối thơng điệp Phân đoạn cĩ thê cho lai hoặc nhiều điều kiện gắn liên với

Trang 14

5 toán hạng khác nhau củng một lúc, nhưng chỉ cỏ một toán hang sẽ thực hiện tai thoi

gian chạy Minh họa của phân đoạn alt trong hình 2.2, neu điêu kiện balance > 0 thỏa

mãn thì thông điệp aecept() được gửi, ngược lại th thông điệp rejectQ) được gửi

Hình 2.3 Phân đoạn Par vả ví dụ thứ tự thực hiện

Trang 15

Phân đoạn song song (Parallel): Phần đoạn par được biểu điễn với khung cỏ tiêu

dé “par”, phân đoạn par chỉ ra rằng các toản hạng trong phân đoạn kết hợp có thể

được thực thi song song với nhau Các sự kiên trong các toán hạng khác nhau có thẻ đan xen vào nhau theo bắt cứ cách nào, miễn là thứ tự của các sự kiện trong mỗi toán hang được bảo toản Minh hoạ của phân đoạn par trong hình 2.3, thứ tự thực hiện việc gửi thông điệp searchGoogle() (14) phải trước readResult() (2), searchBing() (1b) phai

trước readResultQ (3), searehYahoo() (1e) phải trước readResult() (4) còn thứ tự thực

hiện giữa các toán hạng khác nhau có thể đan xen (1a— 1b — 2 hoặc 1b ~ 1a ~ 3)

Hình 2.4 Phan doan Opt

#hân đoạn lụa chọn liếng đấy; 8 (Option): Bhin doamopt oliirering phân đoạn

kết hợp biểu điển một sự lựa chọn hảnh vi Trong phân đoạn chỉ cô một toán hạng,

toán hạng nây có thể được thực thì hoạ Không được thực thí tủy vao điều kiện Toán

tir opt gan giồng với toán tử alt, chỉ có điều trong opt chỉ cỏ một toán hạng duy nhất

Minh họa của phân đoạn opt trong hinh 2.4 nếu điều kiện No error thỏa mãn thi thông

digp post_comment() được gửi đi

Trang 16

4

Phân doạn ngắt (Break): Phan dean break chí ra rằng khi diều kiện của toản tử tương tác break đúng thì toán hạng trong phân đoạn kết hop break sẽ được thực thi thay cho phân còn lại của phan doan trong tac (Interaction Fragment) bao gói bên ngoài Phân đoạn break thường được dùng kết hợp với phân đoạn loop Minh họa của phân đoạn break trong hình 2.5 Vòng lặp loop gũi thông điệp addQ 10 lân nêu gặp

điều kiện y > 0 thôa mã sẽ gửi thông điệp save() và chấm dit

Phân đoạn tuần tự yêu (Weak Sequencing): Phan doan Weak Sequencing

va rằng phân đoạn kết hợp biểu diễn một trình tự yếu giữa các hành v¡ của các toán hang Trình tụ yếu được định nghĩa bởi tập các vết với các đặc tính như sau

Hình 2.6 Phân doạn Seq

-_ Thứ tự của các sự kiện (EventOecurenees) trong mỗi một toán hạng được đuy

Hình 2.6 mồ tả phân đoạn 3eq tìm kiểm bằng Google song song với Bing va TYshoo, tuy thiên phái tim bing Bing trude khi tim bằng Yahoe

Phan doan tuan te ngdt (Strict Sequencing): Phân đoạn Strict Sequencing chỉ ra

xầng phân đoạn kết hợp biểu diễn một trình tự ngặt giữa các hành vi của các toán bụng,

Trang 17

Minh họa của phân đoạn strict trong hình 2.7 phải tìm kiểm bằng Google rồi toi Bing

va sau do la Yahoo,

Hinh 2.7 Phan doan Strict

Hinh 2.8 Phan doan Ignore

Phân đoạn từ chối (Ienore): Phân đoạn Tgnore chỉ ra rằng cỏ một số kiêu thông

điệp không được hiển thị trong phân đoạn kết hợp nảy Các kiêu thông điệp nảy cỏ thể

bị coi là vô nghĩa và bị mặc nhiên bỏ qua Minh họa của phan doan ignore trong hình

28 Thông điệp get và set sẽ không được hiển thị trong phân đoạn nay

Phân đoạn lưu ý (Consider): Phan doan consider chi ra rang nhimg thong điệp

nên được lưu ý trong phân đoạn kết hợp này Diéu này tương đương với việc định nghĩa mọi thông điệp khác là bị bỏ qua Minh họa của phân đoạn consider trong hình

29 Chỉ có thông điệp add và remove được xét tới trong phân đoạn, các thông điệp

khác được định nghĩa sẽ bị bỏ qua.

Trang 18

Hinh 2.10 Phin doan Critical

Phân đoạn vùng then chất (Critical Region): Thin doan Critical Region là phân đoạn kết hợp biểu chiến một vúng then chốt (critical region) Một vùng thơn chốt nghữa 1à các vết trang vùng này không thé bj dan xen béi các sự kiện (TiventOccurenoe) khác (tên các đối tượng bị phủ bởi vùng nảy) Minh họa của phân đoạn critical trong tình 2.10 Thông điệp gọi 911 từ khi Operator nhan được và chuyển tiếp tới Emergency là không thể bị đan xen

Phân đoạn phú định (Negafive): Phần doan Negative chi ra ring phan đoạn kết hợp biểu điễn các vết (traces) duoc dink nghĩa là không hợp lê Minh họa của phân

Trang 19

đoạn negative trong hình 2.11 Khi cửa (Door) đang khóa (Lock) thi thông điệp mở

cửa (Open) sẽ không hợp lệ cho tới khi 16 nau xong (phan doan loop Cooking)

Hinh 2.12 Phan doan Assert

Phân đoạn khẳng định (Assertion): Phân đoạn assert chỉ ra rằng phan đoạn kết

hợp biểu điễn các vết hợp lẽ Toán tử assert thường được sử dụng củng với ignore hoặc consider Minh hoa của phân đoạn assert trong hình 2.12: Khoi assert chi chap

Trang 20

thanh cac khoi don

Van dé đầu tiên được xét đến để giải quyết bải toàn phương pháp bóc tách các đổi tượng của biếu đỗ hiản tự thánh các khối đen Các khối đơn được sinh ra sẽ là đầu vào cho việc chuyên đối sang ôlômat vàoárn được trình bay ở mục 2.3 Phương pháp

đề xuất yêu cầu thiết kế được biểu diễn bới biểu đỏ tuần tự của các thành phần đưới dang xan Một công cụ đã được luận văn phát triển để phân tích xrui đầu vào và tách thành các khói dơn của biểu đỗ tuần tự Cầu trúc xmi đầu vào của thuật toán dược quy định như sau

- _ Cặp thé bao ngoài cùng lá <Sequencs> vá </Sequence>

Trang 21

“Objeet”

- _ Tiếp theo là Event hoặc Erapment

- Hwen: ổm trường ¡d, type= event, narne=“tên message” vả eventLype=

“send” hay “receive”

- Fragment: Gm trudng id, type — ‘combined frament’, operator (operator 66

giả trị là alt, loop, par, v.v.)

- Operand: Bat buée phải nằm trong Fragment va ngay sau khai bao thé fragment, bao gồm id, type “operator” (nếu là phân đoạn Cơnsider hoặc Ignore thi operand nim ngay sau khai bao <constraint valu

- Constraint: Gém mong value, tnvong nay clita tén cdc message cach nhau béi diấu cách, ví du: <coustraint valuc “gel set”> Thế này đặt giữa 2 thé fragment

va operand, được dùng để khai bao cdc message bi loai bé trong fragment Tgnore hoặc các message cân giữ lại trong fragment Consider

- Event nim trong sequence hoặc tong operand, không nằm trực tiếp trong

fragment

Thuật toán 2.1 Phân tích biểu đồ tuần tự thành các khối đơn

Đầu vào: Biểu đồ tuần tự biểu diễn dưới dạng tệp xmi

Đầu ra: Danh sách các đổi tượng của biểu đồ tuần tự được biểu diễn dưới dang danh sách các khối đơn

1 : create síack, singleFragmentSiack

2 : create array sđObjectList, operandList, eventList and singleFragmentList

$ : For all element in xmi file do

4: ifmeet open tag then

11: if stack is not nuff then

12: create new event with fragment id and add ta eventtist; belong to the

Operand on the top of stack if stack is not null

13: create new singieFragment and push to singleFragmentStack

14: endif

15: create new fragment with singlefragment on top of singleFragmentStack and

push to stack

Trang 22

27: else if meet close tag then

28: if element is Operand then

34: add fragment to singleFragment on top of singleFragmentStack

35: if singleFragmentStack has more than 4 item then

36: SingleFragment = singleFrogmentStack.pop;

37: add singleFragment to singleFragmentlist

38: end if

39: else if element is Object then

40: singleFragment = singleFragmentStack pop;

41: add singleFragment to singleFragmentlist

42: add singleFragmenttist to object

43: add abject to sdObjectlist

element tir tép xmi dẫu vào Nếu gặp element là thẻ mớ, thuật toán kiểm tra xem đó là thé ndo và tạo đữ liệu cho phù hợp Có 5 loại thẻ có thể gặp la Object (dong 6), Fragment (đông 10), Operand (dang 17), Evenr (đồng 20) và Camstraimr (dòng, 23) Ủng voi thé ð/ect, thuật toán tạo đổi tượng sửngleFragment và dây vào singleFragmentStack (dang, 8) déng thời tạo đôi tượng abject (dong 7) Néu gặp thé

mé Fragment, stack sẽ được kiềm Ira xem có phan Lử hay không (đồng 11) Nếu có,

Trang 23

thuật toàn tạo một event giá với ¡d giống nlur cua fragment, thuéc operand ở dinh stack

và đưa vào evenfList (dòng 12), đồng thời tạo đối tượng sữigÏelragment và đây vào

singleFragmentStack (dong 13) Sau đỏ, thuật toan khéi tac médt fragment thudc

xingleFragrment ö đính singleFragmemtStack và đưa vào stack (dòng 15) Nếu gặp thế

mở (2perand, thuật toàn khởi tạo đối tượng operand và đưa vào sfack (dòng 18) Nếu

gap thé md Aveni, thual toan tao dit tong event va dua vao evenilist, event udy st thude operand trén dinh stack néu stack khéng réng, ho&e khéng thude operand nao nêu ngược lại (dong 21) Nếu gặp thé mé Consiramt, thuat toan tac constraint cho fragment @iu tiên tên duh slack (ding 23) Trong trudng hợp gặp thể đồng, thuật toán sẽ kiểm ta the dong do 14 gi dé xi ly Co 3 trong hop thé dong có thể gặp la Operand, Fragment va Objeer Trường hợp gặp thê đông Operand, opezmd được đua khối định stack, dank diu thude fragment & trén dink síadk lúc này và đưa vào opeandl.ist (dong 29, 30, 31) Tradug hop gap thé dong Fragment, fragment duge lay

ra khéi dinh siack va duge dua vio singlelragment 6 dinh singlelragmentStack (dòng 33, 34) Sau do, singleFragmentStack duoc kiểm tra xem có nhiều hơn 1 phan

tử hay không (dòng 35) Nếu đúng, singelzagmem được lấy ra khối xinglaFragmeniStack và đưa vào singlaFragmeniList (đòng 36, 37) Trường hợp gặp thé déng Object, singleMragment duge lay ra khối singleFragmeniStack và dựa vào singleFragmentList (dong 40, 41), sau 46 singleFragmentlist duge dua vao object va

object diac dura vao objectList (déng 42, 43) Sau khi kết thúc doc tệp xmi, ta được

object] ist uong img với các đôi tượng của Biểu đỗ tuân lự ban dẫu Mỗi phân tử trong, objectList 14 mét danh séch cdc singleFragment tuong ứng được bóc tách từ đổi tượng

Trang 24

15

Đầu vào của thuật toán là các khối dơn của biểu dỗ tuần tự dược mô tả bằng một

6 sau SD = CL, FG, OP, C, num, frag), trong đó:

- Bld tap cdc sykién B =#”U #°,

- F'la tap cac sw kign nhan,

F° là tập các sự kiên gửi,

#G là tập các phân đoạn, trường hợp khối đơn, FG chứa nhiều nhất 1 phần tứ,

OP là tập các Operand,

€ lá tập các điều kiên C fey, 62, ¢3 on},

num là danh sách cáo số thứ tự của event từ Ú đến n, và

frag la mét hàm chuyến từ E đến E

Dau ra của thuật toán là một ôtômat vào/ra tương ứng được mô tâ bằng một bộ

sâu Ó = (Q, XI” , 3”, ổ, dụ, F), trong do

ic luật chuyển Ô(q, < cu£ >>) — th,

qo la trang thai khởi dẫu, và

U= {fụ, f, , fn} 1A tap cdc trang thai két thie

Otémat vao/ra diu ra được xây dựng béi cac quy tie nhw sau[5]

Sd lượng các trạng thái trong Stémat chinh bing só lượng sự kiện rong SD

1Q) = [El va Q= fo, de quÌ

- Tp các điều kiện cúa ötômat tương ứng, là tập diễu kiện của SD: C = {c| e 6 C}

- 'Tập các sự kiện của ôtômaat tương ứng, là tập sự kiện của SD: H = [e e€ H} Tập các kí tự vào của ôtômat được xảo định bởi công thức

Trang 25

2.3.1 Trường hợp khối đơn không chúa phân đoạn nào

'Trường hợp đầu tiền được xét đến là khối đơn của biểu đồ tuần tự không chứa một phân đoạn nào [S] Sau khi có E = {e| e € B} và C = {o| e € C}, tập cáo trạng thái kết thúc F được xác định F = {q„} Tập các luật chuyên 6 được xáo định bởi thuật toán

quy tắc chuyển trạng thái Ï = <ep>- với j= LH (dòng 2, 3)

1Hình 2.14 đưa ra ví dụ cho khối đơn không chứa phân đoạn nảo và ötômat được chuyến đổi cho đối tượng USer

=] [ee

T

input name

(input nara - `Nmpunhena/” _ “Neavaecnmar

2.3.2 Trưởng hợp khối đơn chứa một phân đoạn Option

Trường hợp thứ bai là khối đơn cũa biểu đồ tuần tự chứa duy nhất một phân đoạn

Option [5], Sau khi co E - {c| ¢ €B} va C — fof c EC}, tập các trạng thái kết thúc F

Trang 26

17

được xác định bởi quy tắc E— ‡qu} U {q | c¡ € FG mổ c¡¡ € FG and cạ E FG} Tập

các luật chuyển 6 dược xác dịnh bởi thuật toàn 2.3

Thuật toán 2.3: Thuật toán xác định tập các luật chuyển ổ cho ôtômat vào/ra từ khối đơn chỉ

chứa phân đoạn Option

1 :For ¡ from (to /Eƒ-† do

event du tiên của phân đoạn, cụ thể j +1 và event œ¡ Iuộc FG déng thei event ey

không thuộc FŒ (dòng 7) †a có Š, = <e,ø> Trường hợp 3, nên điều kiện của FŒ không thóa mãn dẫn tới FG không được thực thi hay j = ¿+|/*Œ'+! và event e; không, thuộc FG dồng thời event e¡ thuộc FG (dòng 10) ta có ð} >, Sau vong, lap với i,

Trang 27

Hình 2.15 dưa ra vị dụ cho khỏi dơn chỉ chứa một phân doạn Option va dtémat được chuyển đổi của đối tượng User

2.3.3 Trường hợp khối đơn chứa một phân đoạn Alternative

Trường hợp thứ ba là khói đơn của biểu đỏ tuần tự chứa duy nhất một phân đoạn Alternative [5] Sau khi 06 = fe| e 6 E} và C= {o| c € C}, tập cáo trạng thái kết thúc

# được xác định bởi công thức E = {qu} U {q: e¡ € opxu and eụ¡ € op¿ and e„ E FG} Tập các luật chuyển ổ được xác định bởi thuật toán 2.4

Trang 28

15) Sau vong lập với i, ta dược ö là biểu diễn của tập các quy tắc chuyển trạng thải

trong ôtômat vào/ra,

2.3.4 Trường hợp khi dơn chứa một phân doạn I.sop

Trường hợp thứ tư là khôi đơn của biển đề tuần tự chứa đuy nhất một phân đoạn

Loop [5] Sau khi có B — {ej eE E) và Ở — {c| c€ C}, tập các rạng thái kết thúc F

được xác định bởi công thức F — {qn} U {qg | eị @ FG and 64) € FG and e, € FG} Tap

các luật chuyển ở được xác định bởi thuật toản 2.5

Trang 29

tiên thuộc EŒ hay j — 11T và evenL eị thuộc FŒ đồng thời event gị¡ không thuộc FŒ

(đồng 6) ta có quy tắc chuyển BỆ = <e, e/> Trường hợp 3, vòng loop được thỏa mãn diều kiện lập sau ít nhất 1 lần chạy hay j = i-|#Œ|+7và event e; thuộc FƠ dòng thời

event gj không thuộc FG (dòng 18) la có quy lắc chuyên 6 <ec ø> Trường hợp 4,

vòng lặp không được chạy hay j= ¿1 EỚ| | 7 vở event ø¡ không thuộc FG đồng thời event sy¡ thuộc TƠ (đồng 14) ta có quy tắc chuyển BÍ = <ø,> Sau vòng lặp với i, ta

được B là biểu điển của tập các quy tắc chuyển trạng thái trong ôtômaL vào#a của khối

đơn chỉ chứa một phản doạn Loop

Trang 30

31

Hình 2.17 dưa ra vi dụ cho khối don chỉ chứa một phan doan Loop va étémat được chuyển đổi của đối tượng User

2.3.5 Trường hợp khối đơn chứa một phân đoạn Break

Trường hợp thứ năm là khỏi dơn của biểu đỏ tuần tự chứa duy nhất một phân đoạn Break [5], Sau khi co Li = {e| e € L} và C= {el c € C}, tập các trạng thái kết thúc

# được xác định bởi công thức

È= 1qa} U {q | ( ENG and en, €1'G and e, € G) or (ø;¡ € LƠ and s¡¡ € FG)}

Tập các luật chuyển 8 được xác định bởi thuật toán 2.6

hợp 1, nếu j - i+1 và event œị và event e,+ cùng thuộc EŒ hoặc cùng không thuộc FŒ

(dòng 3), ta có quy tắc chuyển BỆ= <ø> Trường hợp 2, nên e¡ là event đầu tiên thuộc

Tổ hay j — 111 và event e¡ thuộc FŒ đồng thời evenl eịị không thuộc FG (dong 6) ta

có quy tắc chuyến ðj—<eø/> (đòng 7) Trường hợp 3, phân đoạn Break không được

chay hay js #+|FG|+1; ÿ <n và cvenL ei không thuộc FŒ đồng thời svent cị¡; thuộc

FG (déng 10) ta có quy tắc chuyến 8ƒ = <e;> (đồng 11) San vòng lắp với ¡, ta được Š

Ngày đăng: 21/05/2025, 19:54

HÌNH ẢNH LIÊN QUAN

Hình  2.3.  Phân  đoạn  Par  vả  ví  dụ  thứ  tự  thực  hiện. - Luận văn phương pháp kiểm chứng tính Đúng Đắn của các biểu Đồ tuần tự uml 2 0
nh 2.3. Phân đoạn Par vả ví dụ thứ tự thực hiện (Trang 14)
Hình  2.5.  Phân  đoạn  Break - Luận văn phương pháp kiểm chứng tính Đúng Đắn của các biểu Đồ tuần tự uml 2 0
nh 2.5. Phân đoạn Break (Trang 15)
Hình  2.4.  Phan  doan  Opt - Luận văn phương pháp kiểm chứng tính Đúng Đắn của các biểu Đồ tuần tự uml 2 0
nh 2.4. Phan doan Opt (Trang 15)
Hình  2.6.  Phân  doạn  Seq - Luận văn phương pháp kiểm chứng tính Đúng Đắn của các biểu Đồ tuần tự uml 2 0
nh 2.6. Phân doạn Seq (Trang 16)
Hình  2  11.  Phân  đoạn  Neg - Luận văn phương pháp kiểm chứng tính Đúng Đắn của các biểu Đồ tuần tự uml 2 0
nh 2 11. Phân đoạn Neg (Trang 19)
Hình  3.13,  khỏi  chí  clrửa  một  phân  doạn  Opt  bao  thông  digp  b,  c;  théng  digp  a,  d  vẫn - Luận văn phương pháp kiểm chứng tính Đúng Đắn của các biểu Đồ tuần tự uml 2 0
nh 3.13, khỏi chí clrửa một phân doạn Opt bao thông digp b, c; théng digp a, d vẫn (Trang 20)
Hình  2.16  Khối  đơn  chỉ  chứa  một  phân  đoạn  Alternative  và  đtômat  cho  đổi  tượng, - Luận văn phương pháp kiểm chứng tính Đúng Đắn của các biểu Đồ tuần tự uml 2 0
nh 2.16 Khối đơn chỉ chứa một phân đoạn Alternative và đtômat cho đổi tượng, (Trang 28)
Hình  2.18.  Khối  dơn  chỉ  chứa  một  phân  doạn  Break  và  ôtômat  cho  đổi  tượng  User - Luận văn phương pháp kiểm chứng tính Đúng Đắn của các biểu Đồ tuần tự uml 2 0
nh 2.18. Khối dơn chỉ chứa một phân doạn Break và ôtômat cho đổi tượng User (Trang 31)
Hình  2.21.  Khối  đơn  chỉ  chứa  mội  phân  đoạn  Conaider  và  ôtômat  cho  đối  tượng  User - Luận văn phương pháp kiểm chứng tính Đúng Đắn của các biểu Đồ tuần tự uml 2 0
nh 2.21. Khối đơn chỉ chứa mội phân đoạn Conaider và ôtômat cho đối tượng User (Trang 35)
Hình  41.1.  Kiến  trúc  của  công  cụ - Luận văn phương pháp kiểm chứng tính Đúng Đắn của các biểu Đồ tuần tự uml 2 0
nh 41.1. Kiến trúc của công cụ (Trang 41)
Hình  4.1.3.  Khối  Loop  den  giản - Luận văn phương pháp kiểm chứng tính Đúng Đắn của các biểu Đồ tuần tự uml 2 0
nh 4.1.3. Khối Loop den giản (Trang 43)
Hình  4.2.1.  Biểu  dễ  tuần  tự  xử  lý  dặt  chỗ - Luận văn phương pháp kiểm chứng tính Đúng Đắn của các biểu Đồ tuần tự uml 2 0
nh 4.2.1. Biểu dễ tuần tự xử lý dặt chỗ (Trang 45)
Hình  4.2.5.  Biểu  đỗ  tuầu  tự  máy  thánh  toán  ở  giêu  thị - Luận văn phương pháp kiểm chứng tính Đúng Đắn của các biểu Đồ tuần tự uml 2 0
nh 4.2.5. Biểu đỗ tuầu tự máy thánh toán ở giêu thị (Trang 49)
Hình  4.3.6.  Đầu ra  mơng  muốn  cho  đổi  Lượng  Custorner - Luận văn phương pháp kiểm chứng tính Đúng Đắn của các biểu Đồ tuần tự uml 2 0
nh 4.3.6. Đầu ra mơng muốn cho đổi Lượng Custorner (Trang 51)
Bảng  5.1.  Mô  phỏng  kiểm  chứng  thuộc  tỉnh  P  với  bải  toán  dặt  chỗ. - Luận văn phương pháp kiểm chứng tính Đúng Đắn của các biểu Đồ tuần tự uml 2 0
ng 5.1. Mô phỏng kiểm chứng thuộc tỉnh P với bải toán dặt chỗ (Trang 58)

TRÍCH ĐOẠN

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