Nghiên cứuphươngpháp xây dựngtựđộng
mô hình
Lê Bá Cường
Trường Đại học Công nghệ
Luận văn Thạc sĩ ngành: Công nghệ phần mềm; Mã số: 60 48 10
Người hướng dẫn: TS. Phạm Ngọc Hùng
Năm bảo vệ: 2011
Abstract: Mô tả các phươngpháp hình thức cho đặc tả phần mềm, các khái niệm về
thành phần phần mềm, đặc tả thành phần phần mềm, máy hữu hạn trạng thái, hệ
chuyển trạng thái được gán nhãn và ôtômát hữu hạn trạng thái. Nghiên cứuphương
pháp xây dựngtựđộngmô hình mô tả chính xác hành vi của một thành phần phần
mềm. Qua đó đề xuất giải pháp cho việc xâydựngmô hình thành phần phần mềm.
Đưa ra kết quả thực nghiệm: công cụ sinh mô hình của một thành phần phần mềm và ý
nghĩa công cụ xâydựngmô hình.
Keywords: Công nghệ thông tin; Mô hình tự động; Công nghệ phần mềm
Content
Công nghệ phần mềm hướng thành phần đang được xem như là một phươngpháp hiệu
quả cho phát triển phần mềm. Với công nghệ này, chúng ta có thể giảm thiểu thời gian và
công sức trong khi vẫn đảm bảo được chất lượng phần mềm. Công nghệ hướng thành phần
giúp cho việc xâydựng cũng như tiến hóa phần mềm rất nhanh chóng bằng việc tái sử dụng
và tích hợp các thành phần phần mềm. Các ứng dụng được xâydựng bằng cách tích hợp các
thành phần độc lập cùng tương tác với nhau. Các thành phần này có thể được xâydựng nên
bởi nhà phát triển phần mềm hoặc bởi bên thứ ba.
Một trong những vấn đề cấp thiết và khó khăn nhất của công nghệ hướng thành phần
là làm thế nào để đảm bảo rằng các thành phần phần mềm có thể cộng tác được với nhau để
đạt được mục tiêu của hệ thống. Giải pháp phổ biến hiện nay để giải quyết vấn đề này là áp
dụng các phươngpháp kiểm thử hoặc kiểm chứng mô hình [7]. Trong công nghiệp, các
phương pháp kiểm thử đang được áp dụng phổ biến nhất nhằm đảm bảo tính đúng đắn của
phần mềm. Tuy nhiên, các ca kiểm thử thường vẫn được sinh thủ công nên rất tốn công sức và
tính bao phủ của chúng không cao. Kiểm thử tựđộng đang được xem là giải pháp tiềm năng
để giải quyết vấn đề này. Bên cạnh đó, các phươngpháp kiểm chứng mô hình [7] hứa hẹn sẽ
là cách tiếp cận hiệu quả nhằm chứng minh tính đúng đắn của phần mềm.
Để áp dụng các phươngpháp kiểm chứng mô hình và các phươngpháp kiểm thử tự
động, chúng ta phải xâydựngmô hình mô tả chính xác hành vi của hệ thống . Các
2
nghiên cứu hiện nay về kiểm chứng mô hình và kiểm thử tựđộng đều giả thiết rằng mô hình
của hệ thống là sẵn có và đúng đắn. Trên thực tế, việc xâydựngmô hình của hệ thống là công
việc khó khăn và tiềm ẩn nhiều lỗi. Hơn nữa, cho dù mô hình của hệ thống đã sẵn có và đúng
đắn thì nó chưa chắc đã là mô hình đúng đắn khi phần mềm được tiến hóa với việc thêm bớt
một số hành vi của hệ thống. Một khó khăn nữa của việc xâydựngmô hình của hệ thống là
trong trường hợp các thành phần phần mềm được phát triển bởi bên thứ ba vì khi đó chúng ta
không có mã nguồn và tài liệu đầy đủ và nếu có thì cũng rất khó hiểu.
Như vậy, bài toán xâydựngmô hình mô tả chính xác hành vi của hệ thống không
những có ý nghĩa rất to lớn trong việc kiểm chứng mô hình và kiểm thử tựđộng mà còn có
giá trị thực tiễn cao và được nhiều người quan tâm. Do đó, tôi quyết định chọn đề tài “Nghiên
cứu phươngpháp xây dựngmô hình tự động” cho nghiêncứu của mình.
Đề tài này nhằm mục đích nghiên cứuphươngpháp xây dựngmô hình tựđộngmô tả
chính xác hành vi của hệ thống, làm cơ sở cho việc áp dụng các kỹ thuật kiểm chứng mô hình
và kiểm thử tựđộng nhằm góp phần nâng cao chất lượng phần mềm.
Nội dung của luận văn được trình bày trong bốn chương và phần kết luận.
Chương 1 giới thiệu về đề tài. Chương này trình bày các ngữ cảnh, những lý do chọn
đề tài, mục tiêu của đề tài và cấu trúc của luận văn.
Chương 2 trình bày các khái niệm cơ bản phục vụ cho đề tài. Chương này mô tả các
phương pháp hình thức cho đặc tả phần mềm, các khái niệm về thành phần phần mềm và đặc
tả thành phần phần mềm, máy hữu hạn trạng thái, hệ chuyển trạng thái được gán nhãn, ôtômát
hữu hạn trạng thái và các khái niệm liên quan.
Chương 3 nghiên cứuphươngpháp xây dựngtựđộngmô hình mô tả chính xác hành
vi của một thành phần phần mềm. Trong chương này, chúng tôi đề xuất hai giải pháp cho việc
xây dựngmô hình thành phần phần mềm. Giải pháp thứ nhất là xâydựngmô hình sử dụng
thuật toán học L
*
. Đây là phươngpháp học lặp đi lặp lại để xâydựngmô hình ứng viên tương
ứng với thành phần phần mềm C. Ở mỗi bước lặp, chúng ta sẽ kiểm tra tính tương thích giữa
mô hình ứng viên với thành phần C và cập nhật lại mô hình ứng viên nếu không tương thích.
Giải pháp thứ hai là xâydựngmô hình sử dụng thuật toán Thompson [11]. Phươngpháp này
xây dựng ôtômát hữu hạn như một mô hình mô tả chính xác hành vi của thành phần phần
mềm C tương đương với biểu thức chính quy sinh tập dẫn xuất trên C.
Chương 4 giới thiệu về kết quả thực nghiệm. Chương này trình bày những kết quả đạt
được, công cụ sinh mô hình của một thành phần phần mềm và áp dụng cho một số ví dụ cụ
thể.
Cuối cùng là phần kết luận, định hướng mở rộng và tài liệu tham khảo.
References
Tiếng việt
3
[1] Nguyễn Văn Ba (2002), Ngôn ngữ hình thức, NXB Khoa học và kỹ
thuật, Hà Nội.
[2] Đoàn Văn Ban (2007), Ôtômát và ngôn ngữ hình thức, Đại học Thái
Nguyên.
[3] Đỗ Đức Giáo (2004), Toán rời rạc, NXB đại học QGHN.
[4] Đặng Huy Ruận (2002), Lý thuyết ngôn ngữ hình thức và ôtômát, NXB
Đại học QGHN.
Tiếng Anh
[5] A.Nerode (1958), "Linear Automaton Transformations", Proc. of the
American Mathemat-ical Society, no. 9, pp. 541 – 544.
[6] D.Angluin (Nov.1987), "Learning regular set from queries and counter
examples", Information and Computation.
[7] E. M. Clarke, O. Grumberg, and D. Peled (1999), "Model Checking",
The MIT Press.
[8] M.P.Vasilevskii (Aug. 1973), "Failure Diagnosis of Automata",
Kibernetika, no. 4, pp. 98 – 108.
[9] P.N.Hung (2009), An assumption regeneration tool for modular
verification of evolving component–based software,
http://www.coltech.vnu.edu.vn/~hungpn/AGTool/.
[10] P.N.Hung (2009), Assume-Guarantee verification of Evolving
component based software.
[11] Ken Thompson (June. 1968), "Regular expression search algorithm",
Communications of the ACM 11(6), pp. 419–422,
http://doi.acm.org/10.1145/363347.363387.
[12] R.L.Rivest and R.E.Schapire (Apr. 1993), "Inference of finite automata
using homing sequences", Information and Computation.
[13] T. S. Chow (May 1978), "Testing software design modeled by finite-
state machine", IEEE Transactions on Software Engineering, vol. 4, no. 3, pp. 178–187.
. Nghiên
cứu phương pháp xây dựng mô hình tự động cho nghiên cứu của mình.
Đề tài này nhằm mục đích nghiên cứu phương pháp xây dựng mô hình tự động mô. thái. Nghiên cứu phương
pháp xây dựng tự động mô hình mô tả chính xác hành vi của một thành phần phần
mềm. Qua đó đề xuất giải pháp cho việc xây dựng mô