Mục tiêuhì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 đặc tả giao diện mô hình để đặc tả hành vi â... Sự thừa nhận của các phương pháp hình thức Các phương
Trang 1Chương 6 Đặc tả hình thức
Trang 2Mục tiêu
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
đặc tả giao diện
mô hình để đặc tả hành vi
â
Trang 3Các chủ đề chính
Trang 5Sự 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
• 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;
Trang 6Sử dụng các phương pháp hình thức
giảm bớt các sai sót trong các hệ thống.
phương pháp này là trong công nghệ các hệ thống quan trọng.
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ử
Trang 8Architectural design specificationFormal High-leveldesign
Trang 9Đặc tả trong qui trình phần mềm
System requirements specification
Formal specification
High-level design
User requirements
definition
System modelling Architecturaldesign
ê
Trang 10Sử dụng đặc tả hình thức
tả hệ thống ngay từ những pha ban đầu của qui trình phát triển phần mềm.
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.
thể được phát hiện và được giải quyết.
Trang 11Các chi phí khi sử dụng phương
pháp đặc tả hình thức
pháp đặc tả hình thức sẽ thay đổi so với phương pháp thông thường
hơn và do đó phải chi phí nhiều hơn trong thời gian đầu;
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
Trang 12Chi phí phát triển bằng đặc tả hình thức
Specification
Specification
Design and implementation
Design and implementation
Validation
Validation Cost
Trang 14Ngôn ngữ đặc tả hình thức
Trang 15Đặc tả giao diện
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
triển độc lập các hệ thống con khác nhau
dữ liệu trừu tượng hoặc các lớp đối tượng
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
Trang 16Các giao diện hệ thống con
Interface objects
Sub-system
A
Sub-system
B
Trang 17Cấu trúc của một đặc tả đại số
sort< name >
impor ts < LIST OF SPECIFICATION NAMES >
Informal descr iption of the sort and its oper ations Oper
ation signatures setting out the names and the types of
the parameters to the operations defined over the sort
A xioms defining the operations over the sort
< SPECIFICATION NAME >
Trang 19Đặc tả đại số cho hệ thống
phát triển theo cách có hệ thống như sau
Trang 20Đặ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ả.
hoạt động đánh giá cho từng hoạt động xây dựng.
Trang 21Đặc tả LIST
Head (Create) = Undefined exception (empty list) Head (Cons (L, v)) = if L = Create then v else Head (L)
sort List imports INTEGER Defines a list where elements are added at the end and removed from the front T he oper ations are Create , which br ings an empty list into e xistence , Cons , which creates a new list with an added member, Leng th, which ev aluates the list siz e , Head, which evaluates the front element of the list, and T ail, which creates a list by remo 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
LIST ( Elem )
Trang 22Đệ qui trong các đặc tả
else Cons (Tail (L), v).
• 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]
Trang 23Đặc tả giao diện trong các hệ thống quan trọng
ở những không phận (sector) có quản lý
bay nhưng vì lý do an toàn chúng phải bay cách xa nhau
chiều thẳng đứng là 300 m
bay được hướng dẫn đi vào vùng trời được kiểm
Trang 24Đối tượng sector
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;
độ 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ó;
Trang 25Các hoạt động sơ đẳng
đơn giản cho việc đặc tả
hoạt động sơ đẳng hơn
• 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
Trang 26Đặc tả Sector(1)
sort Sector impor ts I NTE GER, BOOLEAN Enter - adds an aircraft to the sector if safety conditions are satisfed
Leave - removes an aircraft from the sector
Move - moves an aircraft from one height to another if safe to do so
Lookup - Finds the height of an aircraft in the sector
Create - creates an empty sector
Put - adds an aircraft to a sector with no constraint checks
In-space - checks if an aircraft is already in a sector
Occupied - checks if a specified height is available
Enter (Sector, Call-sign, Height) Sector Leave (Sector, Call-sign) Sector
Move (Sector, Call-sign, Height) Sector Lookup (Sector, Call-sign) Height
SECTOR
Trang 27if CS = CS1 then S else Put (Leave (S, CS), CS1, H1) Move (S, CS, H) =
if S = Create then Create exception (No aircraft in sector) elsif not In-space (S, CS) then S exception (Aircraft not in sector) elsif Occupied (S, H) then S exception (Height conflict)
else Put (Leave (S, CS), CS, H) NO-HEIGHT is a constant indicating that a valid height cannot be returned Lookup (Create, CS) = NO -HEIGHT exception (Aircraft not in sector)
Move - moves an aircraft from one height to another if safe to do so Lookup - Finds the height of an aircraft in the sector
Create - creates an empty sector Put - adds an aircraft to a sector with no constraint checks In-space - checks if an aircraft is already in a sector
Occupied - checks if a specified height is available Enter (Sector , Call-sign, Height) Sector
Leave (Sector , Call-sign) Sector Move (Sector , Call-sign, Height) Sector Lookup (Sector, Call-sign) Height Create Sector
Put (Sector, Call-sign, Height) Sector In-space (Sector , Call-sign) Boolean Occupied (Sector , Height) Boolean SECTOR
Trang 28Hướng dẫn đặc tả
để đặc tả các hoạt động khác.
Create và Put và sử dụng chúng để tiến hành các kiểm tra trong những định nghĩa của các hoạt động khác.
của không phận phải được kiểm tra để đảm
Trang 29Đặc tả hành vi
động của đối tượng độc lập với trạng thái của đối tượng
hệ thống và định nghĩa các hoạt động dưới dạng những thay đổi đối để chuyển tới trạng thái đó
Trang 30Các điểm chìa khoá
thuật đặc tả hình thức
bỏ những băn khoăn, nghi hoặc trong một đặc tả
yêu cầu hệ thống ngay từ giai đoạn đầu Sửa chữa các sai sót ở giai đoạn này sẽ đỡ tốn kém hơn sửa chữa hệ thống sau khi đã chuyển giao
triển các hệ thống quan trọng và phát triển các tiêu
Trang 31Các điểm chìa khoá
diện khi các giao diện này được định nghĩa như một tập hợp các lớp đối tượng
hệ thống bằng cách sử dụng các tập hợp và các hàm Kỹ thuật này làm đơn giản hoá một số kiểu đặc
tả hành vi