« Home « Kết quả tìm kiếm

Phương pháp sinh mô hình tự động cho phần mềm dựa trên thành phần


Tóm tắt Xem thử

- Phương pháp sinh mô hình tự động cho phần mềm dựa trên thành phần.
- Nêu bật được bối cảnh, tính cấp thiết của việc sinh mô hình tự động cho phần mềm dựa trên thành phần, từ đó đặt bài toán là sinh mô hình một cách tự động cho các thành phần phần mềm mà đã có được các đặc tả hình thức của chúng dưới dạng những biểu thức chính quy các chuỗi hành động của thành phần phần mềm..
- Trình bày được phương pháp đặc tả hình thức cho thành phần phần mềm sử dụng hệ chuyển trạng thái được gán nhãn và hệ thống ôtômát hữu hạn.
- Trình bày được các khái niệm cơ bản như hệ chuyển trạng thái an toàn, trạng thái an toàn, trạng thái lỗi…Trình bày tóm tắt một số phương pháp sinh mô hình tự động cho thành phần phần mềm hiện nay và bối cảnh của chúng.
- Các phương pháp sinh mô hình đó là phương pháp sinh mô hình tự động dựa trên thuật toán học tăng cường L* và phương pháp sinh mô hình tự động dựa trên thuật toán Thompson.
- Đề xuất được một phương pháp sinh mô hình tự động cho thành phần phần mềm dựa trên thuật toán CNNFA với đầu vào là một biểu thức chính quy các chuỗi hành động của thành phần phần mềm...
- Công nghệ phần mềm.
- Thành phần phần mềm.
- Mô hình tự động.
- Trong ngành công nghiệp phần mềm hiện đại, ngày càng nhiều công ty, tổ chức tham gia phát triển một phần mềm dưới nhiều hình thức như gia công, mua thành phần, thư viện của đối tác phát triển thứ ba.
- Các thành phần khác như giao diện, những thuật toán khó, các thư viện hỗ trợ lập trình với các hệ thống lớn có sẵn có thể được mua từ các hãng cung cấp thành phần như DevExpress 1.
- 1 Đây là tên của một công ty phần mềm có website là: http://www.devexpress.com/..
- Những phần mềm được phát triển như vậy gọi là phần mềm dựa trên thành phần..
- Với những phần mềm dựa trên thành phần, đặc biệt là những phần mềm có cả các thành phần do bản thân công ty tự viết và những thành phần khác được mua từ bên phát triển thứ ba thì vấn đề khó khăn nhất trong quá trình phát triển là làm sao để đảm bảo tính đúng đắn của hệ thống, làm sao để các thành phần có thể cộng tác với nhau được trong môi trường của hệ thống.
- Đối với các thành phần được phát triển bởi bên thứ ba thì ta không có mã nguồn mà chỉ có được tài liệu của thành phần.
- Đối với các thành phần công ty tự thiết kế và phát triển thì làm sao để đảm bảo là thành phần thỏa mãn thiết kế.
- Để làm được việc đó, ta thường dùng phương pháp kiểm chứng mô hình (model checking) và kiểm thử dựa trên mô hình (model-based testing) để đảm bảo tính đúng đắn của phần mềm.
- Nhưng điểm cốt lõi của hai phương pháp kiểm chứng mô hình và kiểm thử dựa trên mô hình là phải có mô hình của thành phần phần mềm đó..
- Ngoài ra, các thành phần phần mềm đều được tiến hóa theo thời gian, việc kiểm thử lại toàn bộ thành phần đó và những phần của hệ thống có sử dụng nó là công việc rất tốn kém về thời gian và công sức.
- Vì vậy, việc tự động hóa các công việc liên quan đến kiểm thử càng đóng vai trò to lớn mà trung tâm của việc tự động này là việc sinh mô hình một cách tự động cho thành phần phần mềm mỗi khi cần thiết..
- Hiện nay, có nhiều hướng nghiên cứu liên quan đến việc sinh mô hình cho phần mềm hướng thành phần đã được đề xuất bởi nhiều tác giả.
- Một hướng là tập trung vào nghiên cứu các phương pháp sinh mô hình cho thành phần phần mềm.
- Với cách tiếp cận này, ta có thể kể đến các phương pháp sinh mô hình được đề cập trong và [13].
- Trong [6], các tác giả đã đặt ngữ cảnh là xây dựng mô hình cho thành phần phần mềm được cho dưới dạng một hộp đen và ta có thể thử nghiệm thực thi các hành động trên nó để có thể xây dựng được một tập các chuỗi hành động của thành phần phần mềm.
- Sau đó, tập các chuỗi hành động của thành phần phần mềm thu được có thể được coi là một biểu thức chính quy đặc tả hành vi của thành phần phần mềm, các tác giả sau đó đã sử dụng thuật toán Thompson để sinh mô hình cho thành phần phần mềm được cho bởi biểu thức chính quy đó.
- Phương pháp này bị giới hạn bởi độ dài tối đa của chuỗi các hành động có thể thử nghiệm trên thành phần phần mềm..
- EFSM mô hình hóa sự tương tác giữa các giá trị dữ liệu và thành phần phần mềm bằng cách ghi chú lên các cạnh của ôtômát hữu hạn đó với các điều kiện trên các giá trị dữ liệu.
- 2 Đây là tên của một công ty phần mềm có website là: http://independentsoft.de/..
- cạnh rất quan trọng của phần mềm.
- Đó là mô hình hóa các lời gọi hàm trong quan hệ với các tham số của nó.
- Phương pháp này dựa vào một phần mềm gọi là phần mềm giám sát để có thể sinh ra được các chuỗi tương tác mà được dùng như là đầu vào của nó.
- Nghiên cứu [12] giới thiệu một tập tích hợp các chương trình phân tích, chuyển đổi thành phần gọi là Bandera mà tự động trích xuất mô hình cho chương trình phần mềm dựa trên mã nguồn.
- Trong nghiên cứu này, Bandera lấy mã nguồn Java như là đầu vào để sinh mô hình dưới dạng đầu vào cho một số công cụ khác.
- Ngoài ra, Bandera cũng tham chiếu trở lại mã nguồn ban đầu với mô hình đã được sinh ra.
- Phương pháp này rõ ràng là phụ thuộc vào mã nguồn của phần mềm cần phân tích.
- Do đó, đối với các phần mềm hướng thành phần không có mã nguồn của một số thành phần mua từ bên phát triển thứ ba thì phương pháp này rất khó khả thi.
- Nghiên cứu [13] giới thiệu một công cụ gọi là Bandera Environment Generator (BEG).
- Công cụ này tự động hóa việc sinh mô hình môi trường để cung cấp một dạng hạn chế của việc kiểm chứng mô hình các mô đun của chương trình Java.
- Công cụ này sinh mô hình cho đơn vị chương trình Java dựa trên một số giả định về môi trường được cung cấp bởi người dùng.
- Mô hình đã được sinh ra có thể được dùng trong việc phân tích ảnh hưởng của môi trường lên đơn vị trong phương pháp kiểm chứng mô hình.
- Đây là một vấn đề rất thách thức trong thực tế phát triển phần mềm vì hệ thống phần mềm luôn phải chạy trên một sự kết hợp của rất nhiều hệ thống khác như hệ điều hành, các hệ thống khác,v.v.
- Người dùng, thậm chí cả người thiết kế phần mềm cũng khó có thể nhận biết được những thông tin đầy đủ về môi trường trong thời gian làm thiết kế hệ thống..
- Một hướng tiếp cận khác là sinh mô hình trong khi thực hiện kiểm chứng mô hình hay trong khi thực hiện kiểm thử dựa trên mô hình và [15].
- Trong [5], các tác giả đã sử dụng thuật toán học L* để học đặc tả của một thành phần phần mềm thông qua một biểu thức chính quy để sinh ra mô hình cho thành phần đó.
- Biểu thức chính quy đó là kết quả của khâu thiết kế, có thể được sinh ra từ từ biểu đồ tuần tự theo phương pháp được đề cập trong [5].
- Tuy phương pháp này sinh được mô hình cho thành phần phần mềm, nhưng sử dụng nhiều thời gian và bộ nhớ.
- Đặc biệt là phương pháp này bị giới hạn bởi độ dài tối đa của một chuỗi hành vi của phần mềm.
- Do đó, phương pháp này rất khó áp dụng được trong thực tế.
- Trong nghiên cứu này, nhiều chiến lược được trình bày để kiểm chứng phần mềm từ khi chúng ta chưa có mô hình.
- Mô hình được sinh ra trong các lần lặp kiểm chứng phần mềm.
- Nghiên cứu [15] trình bày một phương pháp sinh mô hình thành phần phần mềm trong quá trình thành phần đó tiến hóa.
- Những mô hình này được sinh ra sử dụng các mô hình chưa đúng hiện có dựa vào các kỹ thuật kiểm thử hộp đen và học máy..
- Tuy nhiên, phương pháp này sinh mô hình cho toàn bộ phần mềm.
- Với những phần mềm lớn thì phương pháp này có thể dẫn đến sự bùng nổ trạng thái của mô hình.
- Với cách tiếp cận này, những mô hình được sinh ra như là một phần của quá trình khác như.
- kiểm thử hộp đen, kiểm chứng mô hình.
- Luận văn này tập trung vào việc chỉ sinh mô hình cho thành phần phần mềm.
- Bằng cách này, chúng ta tập trung vào việc có được mô hình bằng một cách thực tế hơn như từ biểu đồ tuần tự [5].
- Những mô hình này sau đó có thể được dùng như là đầu vào cho các phương pháp khác như kiểm chứng mô hình, kiểm thử dựa trên mô hình..
- Như vậy, về khía cạnh khoa học và thực tiễn, việc sinh mô hình cho thành phần phần mềm mềm một cách tự động đều đóng vai trò then chốt và to lớn cho hàng loạt các vấn đề sau đó như kiểm thử dựa trên mô hình, kiểm chứng mô hình, tiến hóa phần mềm..
- Đó chính là lý do tại sao tôi lựa chọn đề tài “Phương pháp sinh mô hình tự động cho phần mềm dựa trên thành phần” 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 sinh mô hình chính xác đặc tả cho hành vi của phần mềm dựa trên thành phần một cách tự động làm cơ sở cho việc kiểm chứng mô hình, kiểm thử dựa trên mô hình và tiến hóa phần mềm nhằm nâng cao chất lượng phần mềm và giảm thiểu chi phí kiểm thử trong công nghiệp phần mềm hiện đại.
- Đề tài này đặt giả thiết rằng thành phần phần mềm sẽ được sinh mô hình đã được đặc tả bằng một biểu thức chính quy các hành vi của nó.
- Đặc tả này có thể có được trong quá trình thiết kế, từ biểu đồ tuần tự hoặc là đặc tả của thành phần phần mềm ta nhận được của bên thứ ba khi mua thư viện, thành phần phần mềm của họ.
- Từ mô hình của các thành phần phần mềm đã được sinh ra, ta có thể sinh được mô hình cho toàn bộ phần mềm..
- Chương này mô tả các phương pháp đặc tả hình thức cho thành phần phần mềm, các khái niệm về thành phần phần mềm, đặc tả hình thức cho 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.
- Một số phương pháp sinh mô hình tự động hiện nay cho phần mềm dựa trên thành phần được giới thiệu trong chương 3.
- Chương này trình bày tóm tắt hai phương phương pháp sinh mô hình tự động cho thành phần phần mềm hiện nay.
- Phương pháp thứ nhất là sinh mô hình tự động bằng việc áp dụng thuật toán học L* [2], [5].
- Phương pháp thứ hai là sinh mô hình tự động cho thành phần phần mềm sử dụng thuật toán Thompson [3], [6]..
- Chương 3 cũng đưa ra phân tích về một số hạn chế của hai phương pháp này.
- Chương 4 nghiên cứu một phương pháp khác để sinh mô hình tự động cho thành phần phần mềm sử dụng thuật toán CNNFA [4], [9].
- Phương pháp này sinh tự động mô hình chính xác đặc tả cho hành vi của một thành phần phần mềm được cho bởi biểu thức chính quy.
- hình đã được sinh ra bằng phương pháp CNNFA ở trên.
- Chương 5 giới thiệu về công cụ thực nghiệm và kết quả thực nghiệm của các phương pháp sinh mô hình tự động được trình bày trong chương 3 và chương 4