Tính an toàn

Một phần của tài liệu Các nguyên lý và kỹ thuật kiểm chứng chất lượng phần mềm (Trang 35 - 40)

5. Phương pháp nghiên cứu

2.4.2Tính an toàn

Như chúng ta đã thấy ở trên, các bất biến có thểđược xem như các thuộc tính trạng thái và có thể được kiểm tra bằng việc xem xét các trạng thái có thể đạt đến được. Tuy nhiên, một số thuộc tính an toàn có thể áp đặt các yêu cầu về phân đoạn đường đi hữu hạn, và không thểđược xác minh bằng cách chỉ xem xét các trạng thái

có thểđạt đến. Để hiểu rõ điều này, xem xét ví dụ của một máy rút tiền, cũng được biết đến như là một máy rút tiền tự động (ATM: Automated Teller Machine). Một yêu cầu tự nhiên là số tiền đó chỉ có thểđược rút khỏi máy rút tiền mỗi khi xác thực được người sỡ hữu (PIN) được cung cấp. Thuộc tính này là không bất biến, vì nó không phải là một thuộc tính trạng thái. Tuy nhiên, xem xét đó là một thuộc tính an toàn, như bất kỳ hành vi vi phạm vô hạn nào yêu cầu có một tiền tố hữu hạn là “bad”, ví dụ, trong đó tiền được rút ra mà trước đó không cần phải cấp mã PIN.

Về mặt hình thức, thuộc tính an toàn P là được xác định như một tính chất LT

trên AP mà bất kỳ tiền tố vô hạn σ nơi P không nắm giữ chứa đựng một tiền tố tồi (bad prefix). Tiếp sau là tiền tố hữu hạn σ nơi mà các điều tồi đã xảy ra, và do đó không có tiền tố vô hạn mà bắt đầu với σ đáp ứng P.

Định nghĩa 2.3.: Safety Properties, bad Prefixes (Thuộc tính an toàn, tiền tố

tồi)

Một thuộc tính LT Psafetrên AP được gọi là thuộc tính an toàn nếu với tất cả

af (2 ) \AP s e P ϖ σ∈ , tồn tại một tiền tố hữu hạn σ của σ mà ( ) ’ AP { 2 | safe

P I σ ∈ ω σ là một tiền tố hữu hạn của σ’}= ∅

Bất kỳ tiền tố hữu hạn σ nào được gọi là một tiền tố tồi - bad prefix vớiPsafe. Một tiền tố tồi tối thiểu với Psafe biểu thị một tiền tố tồi σ cho Psafe mà không có tiền tố thích hợp của σ là một tiền tố tồi cho Psafe. Nói cách khác, tiền tố tồi tối thiểu là các tiền tố tồi mà chiều dài tối thiểu. Tập tất cả các tiền tố tồi cho Psafe được biểu thị qua BadPref P( )safe , tập các tiền tố tồi tối thiểu được biểu thị qua

( safe)

MinBadPref P .

Đầu tiên chúng ta hãy quan sát một bất biến bất kỳ nào cũng là một thuộc tính an toàn. Với các mệnh đề công thức Φ trên AP và bất biến Pinv của nó, mọi tiền tố hữu hạn của form 0 1 ( )2AP

n

tồi tối thiểu cho Pinv. Hai ví dụ sau đây minh họa rằng có các thuộc tính an toàn mà không bất biến.

Ví dụ: A Safety Property for a Traffic Light (Một thuộc tính an toàn cho đèn giao thông)

Chúng ta giả sử một đặc tả của một đèn giao thông với ba giai đoạn thông thường là “red”, “green”, và “yellow”. Yêu cầu rằng mỗi giai đoạn red sẽ được đặt trước bởi một giai đoạn yellow là thuộc tính an toàn nhưng không bất biến. Điều này được thể hiện ở sau.

Đặt red, yellowgreencác mệnh đề nguyên tử. Bằng trực giác, chúng phục vụ cho việc đánh dấu các trạng thái mô tả giai đoạn red (yellow hay green).

Thuộc tính “luôn luôn có ít nhất một đèn sáng” được mô tả bởi:

0 1

{σ = A A. . . |AjAP Aj≠ ∅}.

Các tiền tố tồi là các tiền tố hữu hạn mà chứa đựng Ø. Một tiền tố tồi tối thiểu kết thúc với Ø.

Thuộc tính “không bao giờ có trường hợp mà hai đèn được bật lên cùng lúc” được mô tả bởi:

0 1

{σ = A A . . . |AjAPAj ≤1}.

Tiền tố tồi cho thuộc tính là các tiền tố chứa đựng các tập như

{red green red green, },{ , },... Tiền tố tồi tối thiểu kết thúc với bộ như vậy.

Giờ chúng ta đặt AP' {= red yellow, }. Thuộc tính “giai đoạn red phải được đứng ngay trước bởi giai đoạn yellow” được mô tả bằng tập các tiền tố vô hạn

0 1...

A A

σ = với Ai∈{red yellow i. }∀ ≥0, ta có: (adsbygoogle = window.adsbygoogle || []).push({});

1 kéo theo i>0 và yellow

i i

redAA

Tiền tố tồi là các tiền tố hữu hạn mà vi phạm điều kiện này. Một ví dụ của tiền tố tồi mà là tối thiểu là: ØØ{ }red v à Ø{ }red .

Các tiền tố tồi sau đây không phải là tối thiểu:

{yellow yellow red red Ø red}{ }{ }{ } { }vì nó có tiền tố thích hợp {yellow yellow red red}{ }{ }{ } cũng là tiền tố tồi.

Thuộc tính an toàn yêu cầu cho dấu vết hữu hạn được chính thức phát biểu trong Bổđề sau:

Bổ đề 2.1: Satisfaction Relation for Safety Properties (Mối quan hệ thỏa mãn cho thuộc tính an toàn).

Với Hệ thống chuyển đổi TS không có các trạng thái cuối và thuộc tính an toàn Psafe.

safe

TS P¨ bnếu và chỉ nếu Tracesfin( )TS IBadPref P( )safe =Ø

Chứng minh:

“if”: chứng minh dựa theo sự mâu thuẫn. Đặt Tracefin( )TS IBadPref P( )safe =Ø

và giả thiết rằng TS¨ Psafeb . Do TS¨ Psafeb , thì trace( )π ∉Psafe với một sốđường đi π trong TS. Như vậy, traces( )π bắt đầu với một tiền tố tồi σ cho Psafe. Nhưng,

( ) ( )

fin safe

Traces TS BadPref P

σ∈ I . Mâu thuẫn.

only if”: bởi sự mâu thuẫn. Đặt TS P¨ safeb và giả thiết rằng

af ( ) ( ) lim fin s e x Traces TS BadPref P σ →∞ ∈ I . Dấu vết hữu hạn σ = A A1... nTracesfin(TS) có thể mở rộng tới dấu vết vô hạn σ = …A1 A A An n+1 n+2…∈ Traces TS( ). Khi đó, σ∉Psafe, và do đó TS¨ Psafeb . Mâu thuẫn.

Ta kết luận phần này với một đặc tính thay thế của thuộc tính an toàn bằng bao đóng của chúng.

Định nghĩa 2.4. Prefix and Closure (Tiền tố và bao đóng)

Với dấu vết ( )2AP ω σ∈ , đặt pref ( )σ biểu thị tập các tiền tố hữu hạn của σ ( ) { 2( )AP | pref σ = ∈ ω σ là một tiền tố hữu hạn của σ}. Nghĩa là, nếu σ =A A0 1…thì pref ( )σ ={ε, , ,A A A A A A0 0 1 0 1 2, …}là một tập vô hạn các tiền tố hữu hạn. Với thuộc tính P trên AP: ( ) ( ) p pref P =Uσ∈ pref σ

( ) { 2( )AP | ( ) ( )}

closure P = σ∈ ω pref σ ⊆pref P

Chẳng hạn như, với dấu vết vô hạn σ=ABABAB…(với A B, ⊆AP), ta có

( ) { , , , , }

pref σ = ε A AB ABA ABAB… mà bằng các ngôn ngữ thông thường được đưa ra bởi các biểu thức chính quy(AB) (* A+ε).

Bao đóng của một thuộc tính LT P là tập các dấu vết vô hạn của các tiền tố hữu hạn cũng là tiền tố của P. Nói cách khác, các dấu vết vô hạn trong bao đóng của

P không có một tiền tố nào mà không phải là một tiền tố của chính P. Như chúng ta thấy dưới đây, bao đóng là một khái niệm chính trong sự biểu thị tính an toàn và tính sống còn. (adsbygoogle = window.adsbygoogle || []).push({});

Bổ đề 2.2. Alternative Characterization of Safety Properties (thay thế đặc tả

của thuộc tính an toàn)

Đặt P là một thuộc tính LT trên AP. Thì, P là một thuộc tính an toàn nếu và chỉ nếu closure P( )=P

Chứng minh:

If”: Ta hãy giả thiết rằng closure P( )=P. Để chứng tỏ rằng P là một thuộc tính an toàn, ta lấy một phần tử σ∈( )2AP ω\ P và chứng tỏ rằng σ bắt đầu với một tiền tố tồi cho P. Khi σ∉P closure P¨ b ( ) tồn tại một tiền tố hữu hạn σ của σ với

( )

pref P

σ∉ . Theo định nghĩa của pref P( ), không tiền tố nào trong số các tiền tố

( )

' 2AP ω

σ ∈ mà σ∈pref( ')σ thuộc P. Do đó, σ là một tiền tố tồi cho P, và theo định nghĩa, P là một thuộc tính an toàn.

only if”: Ta hãy giả thiết rằng P là một thuộc tính an toàn. Ta phải chứng tỏ rằng P closure P= ( ). Sự bao hàm P closure P⊆ ( ) đúng cho tất cả các thuộc tính LT. Vẫn còn để cho thấy rằng closure P( )⊆P. Ta làm vậy bởi sự mâu thuẫn. Ta hãy giả thiết rằng có một vài σ =A A1 2...∈closure P P( ) \ . Khi P là một thuộc tính an toàn và

P

Với σ∈closure P( ), ta có σ∈pref( )σ ⊆ pref P( ). Do đó, tồn tại một tiền tố ' P σ ∈ có dạng 1 1 2 ' ... n n n bad prefix A A B B σ = + + … 123

Điều này mâu thuẫn với thực tế rằng P là một thuộc tính an toàn.

Một phần của tài liệu Các nguyên lý và kỹ thuật kiểm chứng chất lượng phần mềm (Trang 35 - 40)