Phương pháp kiểm chứng tính nhất quán trong tái cấu

Một phần của tài liệu (LUẬN ÁN TIẾN SĨ) Một số phương pháp kiểm chứng tái cấu trúc phần mềm Luận án TS. Máy tính 624801 (Trang 82 - 90)

4.3 Phương pháp kiểm chứng sự bảo toàn hành vi trong tái cấu

4.3.2 Phương pháp kiểm chứng tính nhất quán trong tái cấu

cấu trúc mơ hình phần mềm

4.3.2.1 Mơ hình hóa hệ thống phần mềm bằng UML

Trong mục này, luận án cũng tiến hành hình thức hóa các khái niệm quan trọng đã được trình bày trong Chương2, bao gồm biểu đồ lớp, biểu đồ tuần tự (kịch bản), lớp, tiền/hậu điều kiện của phương thức. Ngoài ra, để

phục vụ cho mục tiêu kiểm chứng, luận án tiếp tục giới thiệu các khái niệm mới như phương thức của kịch bản, tiền/hậu điều kiện của kịch bản, tái cấu trúc, bảo tồn các thuộc tính tĩnh, nhất qn tồn phần trên các thuộc tính động, nhất quán bộ phận trên các thuộc tính động và khơng nhất quán.

Phương thức của kịch bản (Scenario method): là phương thức cơng khai được gọi trong q trình thực thi kịch bản.

Tiền điều kiện của kịch bản (Scenario pre-condition): là các điều kiện ràng buộc mà kịch bản phải thỏa mãntrước khi kịch bản đó được thực thi.

Hậu điều kiện của kịch bản (Scenario post-condition): là các điều kiện ràng buộc mà kịch bản phải thỏa mãn sau khi kịch bản đó được thực thi.

Dựa trên các khái niệm cơ sở trên, luận án sẽ biểu diễn một cách hình thức hóa các thành phần của mơ hình phần mềm.

Định nghĩa 4.1 (Mơ hình). Một mơ hình M được biểu diễn bởi một bộ-2 M =hCM,SMi, trong đó CM là tập hợp các lớp có trong mơ hình và SM là tập hợp các kịch bản biểu diễn hành vi của mơ hình.

Như vậy, trong Chương 4.1 này, khái niệm Mơ hình được diễn tả thơng qua hai thành phần chính (i) tập hợp các lớp và (ii) tập hợp các kịch bản. Trong đó, tập các lớp chính là các lớp có trong biểu đồ lớp của mơ hình

phần mềm, cịn tập các kịch bản chính là các biểu đồ tuần tự mơ tả các hành vi của mơ hình phần mềm.

Định nghĩa 4.2 (Lớp). Một lớp CiM ∈CM được biểu diễn bởi bộ-3 CiM = DOPC iM,AC iM,IC iM E , trong đó OPC iM là tập hợp các phương thức công khai được khai báo trong lớp, AC

iM là tập các thuộc tính cơng khai và ICiM biểu diễn các ràng buộc bất biến của lớp CiM.

Định nghĩa 4.3 (Phương thức của lớp). Một phương thức opC

iM ∈OPC

iM

được biểu diễn bởi bộ-2 opC

iM = preopCiM,postopCiM, trong đó preopCiM và postopCiM lần lượt là tiền và hậu điều kiện của phương thức opCiM.

Ở đây, preop

CiM và postop

CiM được biểu diễn bởi các công thức logic vị từ bậc 1.

Phương thức trừu tượng(abstract method)là một phương thức được khai báo mà không đi kèm các câu lệnh cài đặt bên trong nó. Các Định nghĩa 4.4 và 4.5 mơ tả cơng thức tính tốn tiền và hậu điều kiện của phương thức trừu tượng thông qua tiền/hậu điều kiện của các phương thức hiện thực hóa trong các lớp con (phương thức trừu tượng xuất hiện trong thành phần cấu tạo của mẫu thiết kế Strategy được trình bày ở Mục 2.4, Chương 2). Định nghĩa 4.4 (Tiền điều kiện của phương thức trừu tượng). Giả sử phương thức trừu tượng opei, được hiện thực hóa bởi n phương thức opei trong các lớp con CksiM của lớp trừu tượng CiM. Khi đó tiền điều kiện preopiM của phương thức trừu tượng opei được tính bằng tuyển (disjunction) của tiền điều kiện của tất cả các phương thức hiện thực opei chứa trong các lớp con CksiM.

Giả sử prei(op

ei) là các biểu thức logic vị từ biểu diễn tiền điều kiện của phương thức hiện thực opei chứa trong các lớp con, khi đó biểu thức tiền điều kiện của phương thức trừu tượng opei trong lớp CiM là preopiM = ∨ni=1prei(op

ei), trong đó opei ∈CksiM là các phương thức hiện thực hóa. Một cách tương tự, hậu điều kiện của phương thức trừu tượng được biểu diễn như sau:

Định nghĩa 4.5 (Hậu điều kiện của phương thức trừu tượng). Hậu điều kiện postopiM của phương thức opei, được hiện thực hóa bởi n phương thức opei

trong các lớp con CksiM của lớp trừu tượng CiM, tính bằng tuyển (disjunction) hậu điều kiện của tất cả các phương thức hiện thực opei chứa trong các lớp con CksiM.

Tương tự như cách tính tiền điều kiện của phương thức trong lớp trừu tượng, dễ thấy postopiM = ∨ni=1posti(op

ei).

Định nghĩa 4.1 phát biểu, hành vi của một mơ hình phần mềm được biểu diễn thơng qua các kịch bản có trong mơ hình. Luận án sử dụng khái

niệm kịch bản tương ứng với một biểu đồ tuần tự trong UML. Trong Tiểu mục 2.3.2(Chương2), biểu đồ tuần tự được mô tả với đặc trưng quan trọng là thứ tự thực hiện các thông điệp (là các phương thức trong các lớp) được gọi khi thực thi kịch bản. Bởi vậy, trong phần này, luận án định nghĩa về

khái niệm kịch bản như sau.

Định nghĩa 4.6 (Kịch bản). Một kịch bản SiM ∈ SM được biểu diễn bởi bộ-4 SiM =hCISiM,PRESiM,ESiM,POSTSiMi, trong đó CISiM ⊆CIM là tập hợp chứa các lớp tham gia vào kịch bản, PRESiM là công thức biểu diễn tiền điều kiện của kịch bản, ESiM là tập có thứ tự các phương thức công khai của các lớp được gọi đến khi thực thi kịch bản và POSTSiM là công thức biểu diễn hậu điều kiện của kịch bản.

Định nghĩa 4.7 (Phương thức của kịch bản). Một phương thức của kịch bản EkSiM ∈ESiM được biểu diễn bởi bộ-4 EkSiM =hpreEkSiM,opEkSiM,postEkSiM,ki, trong đó preEkSiM là tiền điều kiện của phương thức, opEkSiM là phương thức được gọi đến khi thực thi kịch bản, postEkSiM là hậu điều kiện của các phương thức và k là thứ tự thực hiện của phương thức opEkSiM trong kịch bản SiM.

Chú ý rằng, Định nghĩa 4.7 đề cập đến khái niệm Phương thức của kịch bản. Về bản chất, khái niệm này xuất phát từ khái niệm Phương thức của lớp (Định nghĩa 3.3, trong Chương 3 và Định nghĩa 4.3, trong Chương 4). Cả hai khái niệm này đều được có các đặc tính được đặc tả hình thức bởi các biểu thức tiền/hậu điều kiện. Tuy nhiên, bởi vì Phương thức của kịch bản tham gia vào tiến trình thực thi của kịch bản nên nó có thêm đặc trưng về thứ tự được gọi (tham số k trong Định nghĩa 4.7).

Khái niệm Kịch bản được định nghĩa trong luận án này liên quan các thành phần: (1) tập các lớp tham gia vào kịch bản; (2) tập có thứ tự các phương thức được gọi trong kịch bản; (3) tiền điều kiện của kịch bản và (4)

hậu điều kiện của kịch bản. Trước khi trình bày các định nghĩa về tiền/hậu

điều kiện của kịch bản. Luận án làm rõ một số khía cạnh sau:

– Luận án chỉ nghiên cứu các kịch bản với các lời gọi các thông điệp được thực hiện một cách tuần tự, các kịch bản chứa các yếu tố phức hợp như phân đoạn rẽ nhánh (alternative fragment), phân đoạn kết

hợp có tùy chọn (option combination fragment), phân đoạn chứa vịng

lặp (loop fragment), phân đoạn tham chiếu (reference fragment) chưa

được xem xét trong luận án này;

– Về mặt lý thuyết, một kịch bản có thể có độ dài bất kỳ (độ dài của kịch bản được tính bằng số phương thức được gọi đến khi thực thi kịch bản đó). Tuy nhiên, khơng mất tình tổng quát và để đơn giản, luận án chỉ xem xét một kịch bản có độ dài là ba (được minh họa như trong Hình 4.2, bao gồm ba phương thức của kịch bản E1,E2,E3). Đối với một phương thức của kịch bảnEk bất kỳ, thứ tự được gọi của phương thức là k, biểu thức tiền/hậu điều kiện tương ứng là preEk và postEk; – Kịch bản S được thực thi thông qua lời gọi đến các phương thức

E1,E2,E3, các phương thức này đều được đặc tả bởi các biểu thức tiền/hậu điều kiện. Bởi vậy, để kịch bản S được thực thi (tức là kịch bản S là hợp lệ (legal)). Công thức sau phải được thỏa mãn:

  

((postE1 ⇒ preE2)∧(postE2 ⇒ preE3)) =true

(postE1∧postE2 ∧postE3) = true

(4.1)

Điều kiện đầu tiên trong công thức4.1liên quan đến tiền điều kiện của kịch bản S. Thật vậy, như minh họa trong Hình 4.2 ta có tiền điều kiện của kịch bản S phải thỏa mãn tiền điều kiện preE1 của phương thức E1. Để kịch bản tiếp tục được thực thi thì postE1 của E1 phải

"đảm bảo (guarantee)" được preE2 (nói cách khác, preE1 phải được thỏa (satisfied) bởi postE1 nghĩa là cơng thức postE1 ⇒ preE2 phải có giá trị là true, trong trường hợp khơng thỏa thì kịch bản S là không hợp lệ(illegal)), tương tự như vậy đối với postE2 và preE3, và tất cả các công thức thành phần này đều phải trả về giá trị true.

Điều kiện thứ hai trong công thức 4.1 liên quan đến hậu điều kiện của kịch bản S. Điều kiện này được hiểu là hậu điều kiện của tất các

phương thức được gọi trong kịch bản không mâu thuẫn(contradiction)

nhau.

– Luận án giả sử rằng, các điều kiện trong công thức 4.1 đều được thỏa mãn. Khi đó, chúng tơi chỉ xét đến tiền điều kiện của kịch bản thông qua tiền điều kiện của phương thức được thực thi đầu tiên trong kịch bản và hậu điều kiện của kịch bản thông qua hậu điều kiện của phương thức được thực thi cuối cùng trong kịch bản.

a:ClassA E1 b:ClassB c:ClassC E2 E3 c:ClassD pre(E1) pre(E2) pre(E3) post(E1) post(E2) post(E3)

Hình 4.2: Minh họa Kịch bản S của mơ hình

Định nghĩa 4.8 (Tiền điều kiện của kịch bản). Tiền điều kiện PRESiM của kịch bản SiM được xác định bởi tiền điều kiện của phương thức đầu tiên thực thi trong kịch bản SiM.

Định nghĩa 4.9 (Hậu điều kiện của kịch bản). Hậu điều kiện POSTSiM của kịch bản SiM được xác định bởi sự kết hợp của hậu điều kiện của các phương thức được thực thi sau cùng trong kịch bản SiM.

Một tiến trình tái cấu trúc thực hiện trên mơ hình được định nghĩa như sau:

Định nghĩa 4.10 (Tái cấu trúc). Một tiến trình tái cấu trúc R sử dụng mẫu thiết kế D được biểu diễn như sau: R : M 7−−−−−−−→ MD(SUBMS) 0, trong đó M

và M0 tương ứng với các mơ hình trước và sau khi tái cấu trúc, D là tên của mẫu thiết kế được áp dụng và SUBMS ⊆ SM là tập các kịch bản bị tác động trong quá trình tái cấu trúc.

4.3.2.2 Kiểm chứng các bất biến của mơ hình

Việc áp dụng các mẫu thiết kế trong tái trúc phần mềm thường dẫn đến thay đổi các cấu trúc bên trong của mơ hình. Tuy nhiên, ln có một vài các ràng buộc bất biến của lớp cần được duy trì trong suốt tiến trình này. Chúng tơi đề xuất kiểm chứng các ràng buộc bất biến của lớp (class invariants). Trong trường hợp đặc biệt, nếu các lớp tham gia và tiến trình tái cấu trúc của mơ hình khơng bị thay đổi, điều hiển nhiên các bất biến của các lớp đó sẽ được duy trì.

Chú ý rằng, trong Chương 3 luận án đã giải quyết bài tốn kiểm chứng sự bảo tồn bất biến trong tái cấu trúc biểu đồ lớp của UML. Luận án đã tiến hành tái cấu trúc biểu đồ lớp bằng năm phép toán xung quanh mối quan hệ kế thừa. Phiên bản sau tái cấu trúc sẽ thỏa mãn các ràng buộc về bất biến khi và chỉ khi nó thỏa mãn tập luật của từng phép toán. Chương này, khái niệm về bất biến được hiểu một cách tương tự (các ràng buộc trên các thuộc tính của lớp), tuy nhiên tiến trình tái cấu trúc lại được thực hiện thơng qua việc sử dụng mẫu thiết kế Strategy. Nói cách khác, quá trình tái cấu trúc thực hiện ở Chương 3và Chương 4là hồn tồn khác nhau. Do đó, luận án vẫn tiếp tục thực hiện kiểm chứng sự bảo toàn về bất biến trong chương này.

Định nghĩa 4.11 (Bảo toàn các ràng buộc bất biến của lớp). Tiến trình tái cấu trúc trên mơ hình phần mềm được coi là bảo toàn bất biến của các lớp trên mơ hình ban đầu nếu các ràng buộc về bất biến của các lớp trên mơ hình tiến hóa tương đương logic với các ràng buộc về bất biến của các lớp trên mơ hình khởi đầu.

Một cách hình thức, chúng ta biểu diễn mệnh đề về bảo tồn các tính chất tĩnh bằng cơng thức sau. Nếu R :M 7−D(SUBMS−−−−−−→) M0 là mơ hình được tái cấu trúc, thì R được coi là bảo toàn các ràng buộc bất biến của lớp nếu: ∀CiM |CiM ∈CM ∧CiM ∈CM0 ⇒ICiM ≡ICiM0

4.3.2.3 Kiểm chứng sự bảo toàn các ràng buộc về hành vi

Yêu cầu quan trọng đối với tiến trình tái cấu trúc là sự bảo tồn các hành vi của mơ hình phần mềm. Luận án giới thiệu các định nghĩa sau sử dụng trong kiểm chứng các thành phần này như sau:

Định nghĩa 4.12 (Bảo tồn hành vi tồn phần). Một tiến trình tái cấu trúc trên mơ hình phần mềm được gọi là bảo tồn hành vi tồn phần so với mơ hình ban đầu, nếu với mỗi kịch bản trên mơ hình tiến hóa, tiền và hậu điều kiện của nó đều tương đương logic với tiền và hậu điều kiện của kịch bản tương ứng trên mơ hình khởi đầu.

Một cách hình thức hóa, cho R : M 7−D(SUBMS−−−−−−→) M0 là một tiến trình tái cấu trúc, SiM ∈SUBMS gọi là bảo toàn hành vi toàn phần, nếu PRESiM ≡

PRESiM0 ∧ POSTSiM ≡ POSTSiM0. Trong phần 4.3.2.1, chúng ta đã chỉ ra tiền và hậu điều kiện của các kịch bản được suy dẫn bởi các phương thức tham gia vào kịch bản, bởi vậy nếu PRESiM ≡ PRESiM0 ∧ POSTSiM ≡

POSTSiM0, tất cả các ràng buộc trên các thuộc tính của các kịch bản sau tái cấu trúc sẽ được bảo tồn. Nói cách khác, mơ hình sau tái cấu trúc bảo toàn tất cả các ràng buộc về tiền/hậu điều kiện của mơ hình ban đầu.

Định nghĩa 4.13 (Bảo tồn hành vi một phần). Một tiến trình tái cấu trúc mơ hình phần mềm được gọi là bảo tồn hành vi một phần so với mơ hình ban đầu, nếu với mỗi kịch bản của mơ hình tiến hóa tiền điều kiện của nó khơng thay đổi nhưng hậu điều kiện của kịch bản này chỉ thỏa mãn một phần hậu điều kiện của kịch bản tương ứng trong mơ hình khởi đầu.

Tương tự như trên, chúng ta có thể hình thức hóa tiến trình kiểm chứng sự nhất qn các ràng buộc về hành vi của mơ hình như sau. Cho R :

M 7−D(SUBMS−−−−−−→) M0 là một tiến trình tái cấu trúc, SiM ∈ SUBMS được gọi là bảo toàn hành vi một phần nếu như PRESiM ≡ PRESiM0 ∧ POSTSiM ⇒

POSTSiM0. Trong trường hợp này, nếu POSTSiM ⇒POSTSiM0, như vậy giá trị của các ràng buộc trên các kịch bản của các thuộc tính tham gia vào tiến trình tái cấu trúc vẫn nằm trong phạm vi mong muốn.

Định nghĩa 4.14 (Khơng bảo tồn hành vi). Một tiến trình tái cấu trúc mơ hình phần mềm được gọi là khơng bảo tồn hành vi nếu nó đồng thời khơng thỏa mãn các u cầu về nhất quán toàn phần hay nhất quán bộ phận trên các thuộc này.

Cho R : M 7−D(SUBMS−−−−−−→) M0 là một tiến trình tái cấu trúc, SiM ∈ SUBMS

là không nhất quán nếu SiM khơng thỏa mãn nhất qn một phần (đương nhiên nó cũng khơng thể thỏa mãn nhất quán toàn phần). Trong trường hợp này, giá trị của các ràng buộc trên các thuộc tính của kịch bản bị vi phạm sau tiến trình tái cấu trúc.

4.3.3 Phương pháp kiểm chứng tính nhất quán trong táicấu trúc chương trình phần mềm cấu trúc chương trình phần mềm

Trong Tiểu mục4.3.1, luận án đã giới thiệu quy trình kiểm chứng sự bảo tồn hành vi đối với một hệ thống phần mềm nói chung. Tiểu mục 4.3.2 đã áp dụng quy trình này đối với chế tác là mơ hình phần mềm. Trong Tiểu mục này luận án tiếp tục áp dụng phương pháp kiểm chứng sự bảo toàn hành vi đối với chế tác là bản cài đặt chương trình phần mềm, vẫn bao gồm ba bước: (1) Thực thi tiến trình tái cấu trúc đối với chương trình nguồn để có được chương trình sau tái cấu trúc, (2) Tính tốn tiền/hậu điều kiện của chương trình tái cấu trúc và (3) Kiểm tra, so sánh sự bảo toàn về ngữ nghĩa của các biểu thức tiền/hậu điều kiện của các chương trình trước và sau tái cấu trúc. Sau đây là các Định nghĩa sử dụng là cơ sở lý thuyết cho quá trình

kiểm chứng sự bảo tồn hành vi trong tái cấu trúc chương trình phần mềm. Như đã trình bày, đối tượng chính nghiên cứu sự bảo tồn hành vi trong tái cấu trúc là các kịch bản. Tại giai đoạn thiết kế, khái niệm kịch bản được coi là biểu đồ tuần tự của UML. Tại giai đoạn cài đặt, kịch bản chính là thứ

Một phần của tài liệu (LUẬN ÁN TIẾN SĨ) Một số phương pháp kiểm chứng tái cấu trúc phần mềm Luận án TS. Máy tính 624801 (Trang 82 - 90)

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

(132 trang)