Tải bản đầy đủ (.pdf) (13 trang)

Phương pháp kiểm chứng tính đúng đắn của các biểu đồ tuần tự UML 2.0

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (309.8 KB, 13 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ

TRẦN QUỐC NAM

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ành: Công nghệ thông tin
Chuyên ngành: Kỹ thuật phần mềm
Mã Số: 60 48 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
ĐỒNG HƢỚNG DẪN: TS. PHẠM NGỌC HÙNG

Hà nội – 2015


i

MỤC LỤC
MỤC LỤC ............................................................................................................................. i
LỜI CẢM ƠN ..................................................................................................................... iii
LỜI CAM ĐOAN ................................................................................................................ iv
DANH MỤC THUẬT NGỮ VIẾT TẮT ............................................................................. v
DANH MỤC HÌNH VẼ ...................................................................................................... vi
DANH MỤC BẢNG ........................................................................................................ viii
Chương 1: Giới thiệu ............................................................................................................ 1



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ảError! Book
2.1. Biểu đồ tuần tự UML2.0 ......................................... Error! Bookmark not defined.

2.2. Phương pháp phân tích đối tượng của biểu đồ tuần tự thành các khối đơnError! Bookmark

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ựError! Bookmark not
2.3.1. Trường hợp khối đơn không chứa phân đoạn nàoError! Bookmark not defined.
2.3.2. Trường hợp khối đơn chứa một phân đoạn OptionError! Bookmark not defined.

2.3.3. Trường hợp khối đơn chứa một phân đoạn AlternativeError! Bookmark not defined.
2.3.4. Trường hợp khối đơn chứa một phân đoạn LoopError! Bookmark not defined.
2.3.5. Trường hợp khối đơn chứa một phân đoạn BreakError! Bookmark not defined.
2.3.6. Trường hợp khối đơn chứa một phân đoạn ParallelError! Bookmark not defined.
2.3.7. Trường hợp khối đơn chứa một phân đoạn StrictError! Bookmark not defined.
2.3.8. Trường hợp khối đơn chứa một phân đoạn CriticalError! Bookmark not defined.
2.3.9. Trường hợp khối đơn chứa một phân đoạn ConsiderError! Bookmark not defined.
2.3.10. Trường hợp khối đơn chứa một phân đoạn IgnoreError! Bookmark not defined.

2.4. Phương pháp xây dựng ôtômat vào/ra cho đối tượng của biểu đồ tuần tựError! Bookmark
Chương 3: Công cụ sinh ôtômat vào/ra từ biểu đồ tuần tự Error! Bookmark not defined.


ii

3.1. Giới thiệu về công cụ .............................................. Error! Bookmark not defined.
3.2. Thực nghiệm ........................................................... Error! Bookmark not defined.
3.2.1. Bài toán đặt chỗ ............................................... Error! Bookmark not defined.
3.2.2. Bài toán máy thanh toán ở siêu thị .................. Error! Bookmark not defined.
3.3. Đánh giá .................................................................. Error! Bookmark not defined.

Chương 4: Phương pháp kiểm chứng tính đúng đắn của biểu đồ tuần tự qua ôtômat
vào/ra .................................................................................. Error! Bookmark not defined.

4.1. Kiểm chứng tính đúng đắn của biểu đồ tuần tự qua ôtômat vào/raError! Bookmark not de
4.2. Áp dụng phương pháp kiểm chứng với trường hợp bài toán đặt chỗError! Bookmark not
Chương 5: KẾT LUẬN ...................................................... Error! Bookmark not defined.
TÀI LIỆU THAM KHẢO .................................................................................................... 2


iii

LỜI CẢM ƠN
Trước tiên tôi xin dành lời cảm ơn chân thành và sâu sắc đến hai thầy giáo, TS.
Trịnh Thanh Bình và TS. Phạm Ngọc Hùng – những người đã hướng dẫ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 dà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 đã tận tình đà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
tậ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è đã luôn giúp đỡ, độ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 Đại học Công nghệ, ĐH QGHN.


iv

LỜI CAM ĐOAN
Tôi xin cam đoan rằng luận văn thạc sĩ công nghệ thông tin “Phương pháp kiểm
chứng tính đúng đắn của cá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 dung của luận văn,
những điều đã đượ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 đều có xuất xứ rõ ràng và
hợp pháp.
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 đoan này.

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

Trần Quốc Nam


v

DANH MỤC THUẬT NGỮ VIẾT TẮT
Từ viết tắt

Từ đầy đủ

Ý nghĩa

1

DFA

Deterministic Finite Automata

Ôtômat hữu hạn trạng thái

2


I/O Automata

Input/Output Automata

Ôtômat vào/ra.

3

FG

Fragment

Phân đoạn

4

SD

Sequence Diagram

Biểu đồ tuần tự

5

OP

Interaction Operand

Toán hạng tương tác


STT


vi

DANH MỤC HÌNH VẼ
Hình 2.1. Phân đoạn Loop ............................................. Error! Bookmark not defined.
Hình 2.2. Phân đoạn Alt ................................................ Error! Bookmark not defined.
Hình 2.3. Phân đoạn Par và ví dụ thứ tự thực hiện........ Error! Bookmark not defined.
Hình 2.4. Phân đoạn Opt ............................................... Error! Bookmark not defined.
Hình 2.5. Phân đoạn Break ............................................ Error! Bookmark not defined.
Hình 2.6. Phân đoạn Seq ............................................... Error! Bookmark not defined.
Hình 2.7. Phân đoạn Strict ............................................. Error! Bookmark not defined.
Hình 2.8. Phân đoạn Ignore ........................................... Error! Bookmark not defined.
Hình 2.9. Phân đoạn Consider ....................................... Error! Bookmark not defined.
Hình 2.10. Phân đoạn Critical ....................................... Error! Bookmark not defined.
Hình 2.11. Phân đoạn Neg ............................................. Error! Bookmark not defined.
Hình 2.12. Phân đoạn Assert ......................................... Error! Bookmark not defined.
Hình 2.13. Khối đơn gồm một phân đoạn opt ............... Error! Bookmark not defined.
Hình 2.14. Khối đơn không chứa phân đoạn và ôtômát cho đối tượng User ........ Error!
Bookmark not defined.
Hình 2.15. Khối đơn chỉ chứa một phân đoạn Option và ôtômat cho đối tượng User
....................................................................................... Error! Bookmark not defined.
Hình 2.16. Khối đơn chỉ chứa một phân đoạn Alternative và ôtômat cho đối tượng
User ................................................................................ Error! Bookmark not defined.
Hình 2.17. Khối đơn chỉ chứa một phân đoạn Loop và ôtômat cho đối tượng User
....................................................................................... Error! Bookmark not defined.
Hình 2.18. Khối đơn chỉ chứa một phân đoạn Break và ôtômat cho đối tượng User
....................................................................................... Error! Bookmark not defined.



vii

Hình 2.19. Khối đơn chỉ chứa một phân đoạn Paraller và ôtômat cho đối tượng Admin
....................................................................................... Error! Bookmark not defined.
Hình 2.20. Khối đơn chỉ chứa một phân đoạn Strict và ôtômat cho đối tượng User
....................................................................................... Error! Bookmark not defined.
Hình 2.21. Khối đơn chỉ chứa một phân đoạn Critical và ôtômat cho đối tượng User
....................................................................................... Error! Bookmark not defined.
Hình 2.21. Khối đơn chỉ chứa một phân đoạn Consider và ôtômat cho đối tượng User
....................................................................................... Error! Bookmark not defined.
Hình 2.22. Khối đơn chỉ chứa một phân đoạn Ignore và ôtômat cho đối tượng User
....................................................................................... Error! Bookmark not defined.
Hình 4.1.1. Kiến trúc của công cụ ................................. Error! Bookmark not defined.
Hình 4.1.2. Biểu đồ lớp của công cụ ............................. Error! Bookmark not defined.
Hình 4.1.3. Khối Loop đơn giản .................................... Error! Bookmark not defined.
Hình 4.1.4. Đầu ra của công cụ với khối Loop đơn giảnError! Bookmark not defined.
Hình 4.2.1. Biểu đồ tuần tự xử lý đặt chỗ ..................... Error! Bookmark not defined.
Hình 4.2.2. Đầu ra mong muốn cho đối tượng Oder ..... Error! Bookmark not defined.
Hình 4.2.3. Đầu ra mong muốn cho đối tượng Ticket . Error! Bookmark not defined.
Hình 4.2.4. Đầu ra mong muốn cho đối tượng AccountError! Bookmark not defined.
Hình 4.2.5. Biểu đồ tuần tự máy thanh toán ở siêu thị .. Error! Bookmark not defined.
Hình 4.2.6. Đầu ra mong muốn cho đối tượng CustomerError!

Bookmark

not

defined.

Hình 4.2.7. Đầu ra mong muốn cho đối tượng Cashier Error! Bookmark not defined.
Hình 4.2.8. Đầu ra mong muốn cho đối tượng Card ProcessorError! Bookmark not
defined.
Hình 4.2.9. Đầu ra mong muốn cho đối tượng Cash RegisterError! Bookmark not
defined.


viii


ix

DANH MỤC BẢNG
Bảng 5.1. Mô phỏng kiểm chứng thuộc tính P với bài toán đặt chỗ.Error! Bookmark
not defined.


1

Chƣơng 1: Giới thiệu
Đảm bảo chất lượng là một vấn đề quan trọng và tiêu tốn chi phí cao trong quá trình
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 đi chi 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,
tàu ga, kỹ thuật quân sự, y tế v.v. nhà đầ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 đắn của thiết kế trước khi triển khai. Giải pháp phố biến
nhất hiện nay để 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, ta cần phải xây dựng các mô hình đặc tả chính xác
hành vi của hệ thống cần kiểm chứng [4], [10], [11]. Tuy nhiên, xây dự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à tiề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 đã có và đúng đắn. Trong thực tế, giả đị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. Hạn chế trên
là một trong những nguyên nhân chính dẫ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 đầu vào
cho các phương pháp kiểm chứng từ biểu đồ thiết kế UML. Việc đưa ra phương pháp
mô hình hóa biểu đồ UML, ở đây là biểu đồ tuần tự UML 2.0, giúp cho việc áp dụng
các phương pháp kiểm chứng mô hình hoàn toàn có thể thự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ự. Phương pháp này chỉ đảm bảo được các thuộc tính an toàn (safety
properties) [7], kiểm tra các hành vi một cách 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ác đối tượ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 đối với các hệ thống tương tranh. Vì vậy một cách khác ta cần
bóc tách xây dự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 đối tượng khác từ đó ta có hành vi 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 [5]. Ý tưởng chính
của phương pháp này là xây dựng một ôtômat vào/ra (Input/Output Automata – I/O


2

TÀI LIỆU THAM KHẢO
Tiếng Việt
[1]

Đỗ Đức Giáo (2011), Toán rời rạc ứng dụng trong tin học, Nhà xuất bản giáo
dục Việt Nam.
Tiếng Anh


[2]

Clarke, E. M.; Grumberg, O. & Peled, D. A. (2000), Model checking, MIT,
Cambridge, Mass.

[3]

H. M. Duong, L. K. Trinh, and P. N. Hung (2013), “An Assume-Guarantee
Model Checker for Component-Based Systems”, The 10th IEEE-RIVF
International Conference on Computing and Communication Technologies.

[4]

L. B. Cuong and P. N. Hung (2012), “A Method for Generating Models of Blackbox Components”, 4th International Conference on Knowledge and Systems
Engineering (KSE 2012), IEEE Computer Society Press, pp. 177-222.

[5]

Zhang, C. & Duan, Z. (2011), Specification and Verification of UML2.0
Sequence Diagrams Using Event Deterministic Finite Automata., in 'SSIRI
(Companion)', IEEE Computer Society, , pp. 41-46.

[6]

J. Magee and J. Kramer (1990), „Concurrency: State Models and Java

Programs‟, John Wiley and Sons.
[7]


P. N. Hung, N. V. Ha, T. Aoki and T. Katayama (2012), “On Optimization of
Minimized Assumption Generation Method for Component-based Software
Verification”, IEICE Trans. on Fundamentals, Special Issue on Software
Reliability Engineering, Vol. E95-A, No.9, pp. 1451-1460.

[8]

Lynch, N. A. & Tuttle, M. R. (1989), 'An introduction to input/output automata',
CWI Quarterly 2, 219--246.

[9]

D. Lorenzoli, L. Mariani and M. Pezz` e (2008), “Automatic generation of
software behavioral models”, ACM, Proceedings of the 30th international
conference on Software engineering, pp. 501-510.

[10] J.C. Corbett, M.B. Dwyer, J. Hatcliff, S. Laubach, C.S. Pasareanu, Robby and
Hongjun Zheng (2000), ”Bandera: extracting finite-state models from Java


3
source code”, Software Engineering, Proceedings of the 2000 International
Conference on, pp. 439-448d.
[11] O. Tkachuk, M.B. Dwyer and C.S. Pasareanu (2003), “Automated environment
generation for software model checking”, Automated Software Engineering,
Proceedings. 18th IEEE International Conference on, pp. 116-127.
[12] cand. inform. Claus-André Ohlhoff (2006). Consistent Refinement of Sequence
Diagrams in the UML 2.0. Hamburg: Christian-Albrechts-Universität zu Kiel.




×