Chương 6. Đặc tả hình thức
Bùi Th H ng
Ch
ng 6.
c t hình th c
Trang 1
Mục tiêu
●
●
●
Giải thích lý do tại sao các kỹ thuật đặc tả hình thức
lại có thể giúp hoàn thiện các vấn đề trong các yêu
cầu hệ thống
Mô tả cách sử dụng các kỹ thuật đại số để đặc tả
â
giao diện
Mô tả cách sử dụng các kỹ thuật dựa vào mô hình
để đặc tả hành vi
Bùi Th H ng
Ch
ng 6.
c t hình th c
Trang 2
Các chủ đề chính
●
●
●
Đặc tả hình thức trong qui trình phần mềm
Đặc tả giao diện hệ thống con
Đặc tả hành vi
Bùi Th H ng
Ch
ng 6.
c t hình th c
Trang 3
Các phương pháp hình thức
●
●
●
Đặc tả hình thức là một phần của tập hợp chung
những kỹ thuật “các phương pháp hình thức”.
Nhwngx kỹ thuật này dựa vào các biểu diễn toán
học và các phân tích phần mềm.
Các phương pháp hình thức gồm
•
•
•
•
Bùi Th H ng
Đặc tả hình thức;
Phân tích và chứng minh hình thức;
Phát triển các phép biến đổi;
Kiểm chứng chương trình.
Ch
ng 6.
c t hình th c
Trang 4
Sự thừa nhận của các
phương pháp hình thức
●
Các phương pháp hình thức chưa trở thành kỹ thuật phát
triển phần mềm chủ đạo như đã được dự đoán ban đầu
•
•
•
•
Bùi Th H ng
Các kỹ thuật công nghệ phần mềm khác đã thành công trong
việc nâng cao chất lượng hệ thống. Do đó nhu cầu về các
phương pháp hình thức bị giảm sút;
Những thay đổi trên thị trường đã làm cho yếu tố đáp ứng
nhanh thị trường trở nên quan trọng hơn yếu tố phần mềm
không có lỗi. Các phương pháp hình thức không giúp giảm bớt
thời gian tung sản phẩm ra thị trường;
Phạm vi của các phương pháp hình thức bị hạn chế. Chúng
không được thiết kế tốt để đặc tả và phân tích các giao diện
người sử dụng và các tương tác;
Các phương pháp hình thức vẫn khó làm cho thích nghi với
những hệ thống lớn.
Ch
ng 6.
c t hình th c
Trang 5
Sử dụng các phương pháp hình thức
●
●
●
Bùi Th H ng
Lợi ích chính của phương pháp hình thức là giảm
bớt các sai sót trong các hệ thống.
Vì vậy, lĩnh vực ứng dụng chính của các phương
pháp này là trong công nghệ các hệ thống quan
trọng.
Trong lĩnh vực này, việc sử dụng các phương pháp
hình thức sẽ có thể giúp giảm bớt đáng kể các chi
phí vì có thể tránh được việc xây dựng ra những hệ
thống không sử dụng được.
Ch
ng 6.
c t hình th c
Trang 6
Đặc tả trong qui trình phần mềm
●
●
●
Đặc tả và thiết kế là hai qui trình không thể tách rời
nhau.
Thiết kế kiến trúc là khâu cần thiết để cấu trúc và
đặc tả qui trình.
Đặc tả hình thức được diễn tả bằng các ký hiệu toán
học với một từ vựng, cú pháp và ngữ nghĩa được
định nghĩa một cách chặt chẽ và chính xác.
Bùi Th H ng
Ch
ng 6.
c t hình th c
Trang 7
Đặc tả và thiết kế
In creasi n g con tract or i n volvem en t
Decreasi n g cl ien t in volvem en t
U ser
requ i rem en t s
defi n it ion
Syst em
requ i rem en t s
specifi cat ion
Arch i tect u ral
design
Form al
specifi cat ion
H i gh -level
design
Specifi cat ion
Desi gn
Bùi Th H ng
Ch
ng 6.
c t hình th c
Trang 8
Đặc tả trong qui trình phần mềm
Syst em
requ irem en t s
specifi cat ion
U ser
requ i rem en t s
defi n it i on
Form al
speci fi cat ion
ê
Syst em
m odell in g
Bùi Th H ng
Ch
ng 6.
c t hình th c
H igh -l evel
design
Arch it ect u ral
design
Trang 9
Sử dụng đặc tả hình thức
●
●
●
Bùi Th H ng
Đặc tả hình thức là việc cố gắng đầu tư mô tả hệ
thống ngay từ những pha ban đầu của qui trình phát
triển phần mềm.
Việc làm này sẽ giảm bớt những sai sót khi xác định
yêu cầu vì nó buộc người phát triển phải phân tích
rất chi tiết các yêu cầu.
Tính không đầy đủ và không thống nhất có thể được
phát hiện và được giải quyết.
Ch
ng 6.
c t hình th c
Trang 10
Các chi phí khi sử dụng phương
pháp đặc tả hình thức
●
Bùi Th H ng
Các chi phí của dự án khi sử dụng phương pháp
đặc tả hình thức sẽ thay đổi so với phương pháp
thông thường
• Thời gian dành cho phát triển đặc tả sẽ nhiều
hơn và do đó phải chi phí nhiều hơn trong thời
gian đầu;
• Tuy vậy, chi phí cho thực hiện và phê duyệt sẽ
giảm vì qui trình đặc tả đã giảm bớt lỗi và sự
không roc ràng trong các yêu cầu.
Ch
ng 6.
c t hình th c
Trang 11
Chi phí phát triển bằng đặc tả hình thức
Cost
Validation
Design an d
im plem en t at ion
Validation
Design an d
im plem en tat ion
Specifi cation
Specifi cat ion
Bùi Th H ng
Ch
ng 6.
c t hình th c
Trang 12
Các kỹ thuật đặc tả
●
●
Bùi Th H ng
Đặc tả đại số
• Hệ thống được đặc tả bằng các hoạt động và
các quan hệ của chúng.
Đặc tả dựa trên mô hình
• Hệ thống được đặc tả bằng một mô hình trạng
thái được xây dựng bằng các cấu trúc toán học
như các tập hợp các câu. Các hoạt động được
định nghĩa bằng cách thay đổi trạng thái của hệ
thống.
Ch
ng 6.
c t hình th c
Trang 13
Ngôn ngữ đặc tả hình thức
Bùi Th H ng
Ch
ng 6.
c t hình th c
Trang 14
Đặc tả giao diện
●
●
●
●
Bùi Th H ng
Các hệ thống lớn được phân tích thành các hệ
thống con với các giao diện giữa các hệ thống con
này được xác định một cách rõ ràng.
Đặc tả các giao diện hệ thống con cho phép phát
triển độc lập các hệ thống con khác nhau.
Các giao diện có thể được định nghĩa bằng các kiểu
dữ liệu trừu tượng hoặc các lớp đối tượng.
Cách tiếp cận đại số để đặc tả hình thức rất thích
hợp cho việc đặc tả giao diện khi cần tập trung vào
các hoạt động đã được định nghĩa trong một đối
tượng.
Ch
ng 6.
c t hình th c
Trang 15
Các giao diện hệ thống con
In t er
face
obj ect s
Su b-syst em
A
Bùi Th H ng
Ch
Su b-syst em
B
ng 6.
c t hình th c
Trang 16
Cấu trúc của một đặc tả đại số
< SPECIFICATION NAME >
sort < name >
impor
ts < LIST OF SPECIFICATION NAMES >
Informal descr
iption of the sor
t and its oper
ations
Operation signatures setting out the names and the types of
the parameters to the operations defined over the sort
Axioms defining the ations
oper over the sort
Bùi Th H ng
Ch
ng 6.
c t hình th c
Trang 17
Các thành phần của đặc tả
●
Giới thiệu
•
●
Mô tả
•
●
Định nghĩa cú pháp của các hoạt động trong giao diện và
các tham số của chúng.
Các tiên đề
•
Bùi Th H ng
Mô tả hình thức các hoạt động trên kiểu này.
Ký hiệu
•
●
Định nghĩa kiểu (tên kiểu) và khai báo các đặc tả cần
dùng khác.
Định nghĩa ngữ nghĩa của hoạt động bằng cách đưa ra
các tiên đề đặc trưng cho hành vi.
Ch
ng 6.
c t hình th c
Trang 18
Đặc tả đại số cho hệ thống
●
Các đặc tả đại số của một hệ thống được phát triển
theo cách có hệ thống như sau
• Cấu trúc đặc tả;
• Đặt tên đặc tả;
• Lựa chọn hoạt động;
• Đặc tả hình thức hoạt động;
• Định nghĩa cú pháp;
• Định nghĩa tiên đề.
Bùi Th H ng
Ch
ng 6.
c t hình th c
Trang 19
Đặc tả các hoạt động
●
●
●
Các hoạt động xây dựng. Các hoạt động tạo ra các
thực thể thuộc kiểu đang được dặc tả.
Các hoạt động đánh giá. Các hoạt động đánh giá
các thực thể thuộc kiểu đang được đặc tả.
Để đặc tả hành vi cần phải định nghĩa các hoạt động
đánh giá cho từng hoạt động xây dựng.
Bùi Th H ng
Ch
ng 6.
c t hình th c
Trang 20
Đặc tả LIST
LIST ( Elem )
sort List
imports INTEGER
Defines a list where elements are added at the end and removed
from the front.
The oper
ations are Create
, which br
ings an empty list
into existence
, Cons, which creates a new
list with an added member,
Length, whichvaluates
e
the liste,siz
Head, which
evaluates the front
element of the list, and
Tail, which creates a list
y remo
b ving the head from
its input list. Undefined represents an undefined value of type Elem.
Create→ List
Cons (List, Elem)
→ List
Head (List)→ Elem
Length (List)→ Integer
Tail (List)→ List
Head (Create) = Undefined
exception (empty list)
Head (Cons (L, v)) if
=L = Createthen v elseHead (L)
Length (Create) = 0
Length (Cons (L, v)) = Leng
th (L) + 1
Tail (Create ) = Create
Tail (Cons (L, v)) =
if L = Create
then Createelse Cons (Tail (L), v)
Bùi Th H ng
Ch
ng 6.
c t hình th c
Trang 21
Đệ qui trong các đặc tả
●
●
Các hoạt động thường được đặc tả đệ qui.
Tail (Cons (L, v)) = if L = Create then Create
else Cons (Tail (L), v).
•
•
•
•
•
•
Bùi Th H ng
Cons ([5, 7], 9) = [5, 7, 9]
Tail ([5, 7, 9]) = Tail (Cons ( [5, 7], 9)) =
Cons (Tail ([5, 7]), 9) = Cons (Tail (Cons ([5], 7)), 9) =
Cons (Cons (Tail ([5]), 7), 9) =
Cons (Cons (Tail (Cons ([], 5)), 7), 9) =
Cons (Cons ([Create], 7), 9) = Cons ([7], 9) = [7, 9]
Ch
ng 6.
c t hình th c
Trang 22
Đặc tả giao diện trong các hệ thống quan trọng
●
●
●
●
Bùi Th H ng
Chúng ta xem xét một hệ thống kiểm soát không lưu
ở những không phận (sector) có quản lý.
Trong mỗi vùng trời có thể có một số máy bay cùng
bay nhưng vì lý do an toàn chúng phải bay cách xa
nhau.
Trong ví dụ này người ta đưa ra khoảng cách theo
chiều thẳng đứng là 300 m
Hệ thống sẽ cảnh báo người kiểm soát nếu các máy
bay được hướng dẫn đi vào vùng trời được kiểm
soát mà lại vi phạm khoảng cách an toàn nói trên.
Ch
ng 6.
c t hình th c
Trang 23
Đối tượng sector
●
Bùi Th H ng
Các hoạt động quan trọng đối với đối tượng sector
là
• Enter. Thêm một máy bay vào vùng kiểm soát;
• Leave. Rút một máy bay ra khỏi vùng kiểm
soát;
• Move. Chuyển một máy bay từ độ cao này sang
độ cao khác;
• Lookup. Với định danh đã cho của một máy
bay, cho ra độ cao hiện tại của nó;
Ch
ng 6.
c t hình th c
Trang 24
Các hoạt động sơ đẳng
●
●
●
Đôi khi cần phải đưa ra một số hoạt động phụ trợ để
đơn giản cho việc đặc tả.
Các hoạt động có thể được định nghĩa từ những
hoạt động sơ đẳng hơn.
Các hoạt động sơ đẳng gồm
•
•
•
•
Bùi Th H ng
Create. Tạo ra một trường hợp của đối tượng sector;
Put. Thêm một máy bay mà không kiểm tra an toàn;
In-space. Xác định xem một máy bay đã cho có trong
vùng trời này không;
Occupied. Với một độ cao đã cho, xác định xem có một
máy bay nào nằm trong vùng 300m so với độ cao này
không.
Ch
ng 6.
c t hình th c
Trang 25