Phần mềm
v Phần mềm ngày càng có ảnh hưởng lớn đến
mọi mặt của cuộc sống
§  Điều khiển quy trình (oil, gas, water, )
§  Giao thông vận tải (điều khiển không lưu, )
§  Chăm sóc y tế (quản lý bệnh nhân, điều khiển thiết bị,
 )
§  Tài chính (giao dịch tự động, bảo mật ngân hàng, )
§  Phòng thủ (điều khiển vũ khí, tên lửa, )
§  Sản xuất (lắp ráp, )
v Lỗi phần mềm không những thiệt hại về
tiền của mà còn thiệt hại về cả tính mạng
con người!
              
                                            
                                
            
 
            
                 40 trang
40 trang | 
Chia sẻ: phuongt97 | Lượt xem: 701 | Lượt tải: 0 
              
            Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Đặc tả hình thức - Chương 1: Tổng quan - Nguyễn Thị Minh Tuyền, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LOGO 
Đặc tả hình thức 
Nguyễn Thị Minh Tuyền 
Tổng quan 
Nguyễn Thị Minh Tuyền 1 
Đặc tả hình thức 
Phần mềm 
v Phần mềm ngày càng có ảnh hưởng lớn đến 
mọi mặt của cuộc sống 
§  Điều khiển quy trình (oil, gas, water, ) 
§  Giao thông vận tải (điều khiển không lưu, ) 
§  Chăm sóc y tế (quản lý bệnh nhân, điều khiển thiết bị, 
) 
§  Tài chính (giao dịch tự động, bảo mật ngân hàng, ) 
§  Phòng thủ (điều khiển vũ khí, tên lửa, ) 
§  Sản xuất (lắp ráp, ) 
v Lỗi phần mềm không những thiệt hại về 
tiền của mà còn thiệt hại về cả tính mạng 
con người! 
2 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Thiệt hại về tiền của do lỗi phần mềm 
v Hàng nghìn $ cho mỗi phút hệ thống sản 
xuất ngừng hoạt động. 
v Mất một lượng lớn tiền của và trí tuệ đầu 
tư cho việc sửa lỗi 
§  Vụ nổ Ariane 5. 
v Những thất bại về kinh doanh thương mại 
do lỗi phần mềm 
§  Ashton-Tate dBase. 
3 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Lỗi phần mềm gây thiệt hại về tính mạng 
Những vấn đề tiềm tàng dễ thấy: 
v Phần mềm được dùng để điều khiển nhà 
máy điện hạt nhân. 
v Những hệ thống điều khiển không lưu. 
v Điều khiển phóng tàu vũ trụ. 
v Phần mềm nhúng trong xe hơi. 
v Một số ví dụ nổi tiếng: 
§  Các lỗi trong máy bức xạ (radiation) Therac-25. 
§  Lỗi khi phóng tên lửa Patriot (1991). 
4 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Lỗi hệ thống phần mềm 
Những lỗi nhỏ có thể gây nên thảm họa 
v Vụ nổ Ariane 5 (1996) 
v  Lỗi phóng tên lửa chặn Patriot (1991) 
v Mars Climate Orbiter (1999) 
v London Ambulance Dispatch System 
v Denver Airport Luggage Handling System 
v Lỗi FDIV ở Intel Pentium (1994) 
v  
5 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Mars Climate Orbiter 
6 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Nguyên nhân và thiệt hại 
v Lỗi trong việc chuyển đổi đơn vị 
§  Thay vì dùng đơn vị Newtons thì lại dùng pounds 
v 125 triệu đô la 
7 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Ariane 5 
8 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Nguyên nhân và thiệt hại 
v Chuyển đổi từ số floating-point 64 bit 
thành giá trị nguyên có dấu 16 bit. 
v Thiệt hại 500 triệu đô la. 
9 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Lỗi phóng tên lửa Patriot 
10 Nguyễn Thị Minh Tuyền 
Nguồn :  
Đặc tả hình thức 
Nguyên nhân và Thiệt hại 
v Do sự tính toán không chính xác thời gian 
khởi động vì lỗi tính toán số học trên máy 
tính. 
v Đơn vị thời gian được tính bằng 1/10 giây 
§  Số 1/10 không được biểu diễn chính xác bằng số 
thực. 
v Chết 28 người, > 90 người bị thương 
11 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 12 Nguyễn Thị Minh Tuyền 
Hours Seconds Calculated Time (sec) Inaccuracy (sec) 
Approx. shift in 
Range Gate 
(meters) 
0 0 0 0 0 
1 3600 3599.9966 .0034 7 
8 28800 8799.9725 .0025 55 
20(a) 72000 71999.9313 .0687 137 
48 172800 172799.8352 .1648 330 
72 259200 259199.7528 .2472 494 
100(b) 360000 359999.6667 .3433 687 !
Đặc tả hình thức 13 Nguyễn Thị Minh Tuyền 
Tính toán chính xác 
Đặc tả hình thức 14 Nguyễn Thị Minh Tuyền 
Sau 8h hoạt động, sai số 20% 
Đặc tả hình thức 15 Nguyễn Thị Minh Tuyền 
Sau 100h hoạt động 
Đặc tả hình thức 
Sau khi tốt nghiệp ra trường bạn sẽ : 
v Đa số : xây dựng phần mềm. 
v Có thể bạn sẽ tham gia phát triển những hệ 
thống trong các lĩnh vực vừa được đề cập ở 
trên. 
v Giả sử rằng tầm quan trọng của phần mềm 
tăng lên: 
§  Bạn có thể phải chịu trách nhiệm các lỗi phần mềm. 
§  Công việc của bạn có thể phụ thuộc vào khả năng của 
bạn để tạo ra những hệ thống đáng tin cậy. 
Thử thách nào gặp phải khi phát triển 
phần mềm có độ tin cậy cao? 
16 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Đạt được độ tin cậy trong công nghệ 
Một số chiến lược nổi tiếng để đạt được độ 
tin cậy trong các lĩnh vực công nghệ: 
v Ước lượng/tính toán chính xác. 
v Dư thừa phần cứng (“làm cho nó mạnh 
hơn so với mức cần thiết”) 
v Thiết kế mạnh (robust design). 
v Tách biệt rõ ràng các hệ thống con. 
v Thiết kế dựa vào các pattern đã được 
khẳng định là hoạt động tốt. 
17 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Tại sao những điều đó không hoạt động 
với phần mềm? 
v  Hệ thống phần mềm tính toán những hàm không liên 
tục. 
v  Sự dư thừa không hỗ trợ trong việc giảm đi các lỗi phần 
mềm. 
v  Việc phát triển phần mềm dư thừa chỉ chỉ khả thi trong 
một số trường hợp. 
v  Không có sự tách biệt về vật lý hay mô hình của các hệ 
thống con. 
v  Lỗi cục bộ có thể ảnh hưởng đến toàn bộ hệ thống. 
v  Thiết kế phần mềm có độ phức tạp về mặt logic rất cao. 
v  Hầu hết các kỹ sư phần mềm không được đào tạo về 
tính chính xác(correctness). 
v  Tính hiệu quả về mặt chi phí quan trọng hơn độ tin cậy. 
v  Những thực tế về thiết kế phần mềm có độ tin cậy cao 
đang ở trạng thái nửa vời. 
18 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Làm thế nào để đảm bảo tính chính xác 
của phần mềm? 
Inspection. Để nhiều người xem chương trình và 
thảo luận. 
v  Ưu điểm: giảm được các lỗi khó thấy trong hệ thống. 
v  Nhược điểm: không có cơ sở hình thức, không rõ ràng. 
Testing. Chạy chương trình với các đầu vào mẫu và 
quan sát kết quả đầu ra. 
v  Ưu điểm: chương trình được chỉ ra là nó hoạt động tốt trong 
một số trường hợp. 
v  Nhược điểm: 
§  Có thể chỉ ra sự có mặt của lỗi, nhưng không chỉ ra được sự vắng 
mặt của chúng. 
§  Làm thế nào để kiểm tra những trường hợp không mong đợi, hiếm 
gặp? 
§  Kiểm thử không thể bao phủ tất cả các trường hợp. 
§  Kiểm thử là “lao động chân tay”, do đó sẽ tốn kém. 
19 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Ví dụ về kiểm thử 
v Một chương trình sắp xếp: 
 public static Integer [] sort ( Integer [] a) { 
 ... 
 } 
v Kiểm thử hàm sort(): 
§  sort({3, 2, 5}) == {2, 3, 5} ✓ 
§  sort({}) == {} ✓ 
§  sort({17}) == {17} ✓
20 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Kiểm định hình thức 
(Formal verification) 
v Bổ sung cho kiểm thử phần mềm 
v Kiểm định hình thức theo kiểu chứng minh 
định lý (Theorem Proving) 
Định lý: 
Chương trình soft() chính xác khi: 
v Với bất kỳ một mảng nguyên không rỗng a, hàm 
sort(a) trả về một mảng nguyên đã được sắp 
xếp, và mảng mới này là một hoán vị của a. 
v Phương pháp này khác với toán học: 
§  Biểu diễn định lý trên dưới dạng logic 
§  Chứng minh định lý đó với sự hỗ trợ của một automated 
reasoner. 
21 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Phương pháp hình thức (Formal Method) 
v Là phương pháp xây dựng phần mềm dựa 
vào việc xem xét chương trình và việc thực 
thi của nó dưới dạng những đối tượng toán 
học và áp dụng các kỹ thuật toán học để đặc 
tả và phân tích các thuộc tính (property) và 
các hành vi (behavior) của các đối tượng. 
v Ưu điểm: 
§  Tăng độ tin cậy và tính chính xác của chương trình. 
§  Đặc biệt là những hệ thống cần độ an toàn cao. 
22 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Phương pháp hình thức 
v Phương pháp hình thức liên quan đến 
hai mô tả khác nhau của cùng một hệ 
thống. 
§  Mô tả trừu tượng S, gọi là đặc tả (specification) 
§  Mô tả chi tiết hơn I, gọi là cài đặt (implementation) 
v Kiểm định (verification): 
§  Cho S và I, chứng tỏ rằng I là một cài đặt chính xác 
của S 
§  Hay tổng quát hơn, S và I tương thích với nhau. 
23 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Phương pháp hình thức 
v Hai framework ngôn ngữ: 
§  Đặc tả được biểu diễn bằng ngôn ngữ đặc tả, thường 
được biểu diễn dưới hình thức logic hoặc khai báo 
tương đương. 
§  Cài đặt sử dụng ngôn ngữ lập trình. 
v Một Framework ngôn ngữ duy nhất: 
§  S và I được biểu diễn sử dụng cùng một ngôn ngữ. 
§  Khi đó, ta sẽ nói về việc thiết lập refinement, 
abstraction, equivalence,  
§  Framework này hỗ trợ quy trình phát triển nhiều 
bước 
24 Nguyễn Thị Minh Tuyền 
S1 ! S2 ! ...! Sn = I
Đặc tả hình thức 
Phương pháp hình thức 
v Là các phương pháp chính xác được dùng trong 
việc phát triển và thiết kế hệ thống. 
v Sử dụng logic toán học và biểu tượng (symbol) 
=> hình thức (formal). 
v Tăng độ tin cậy của một hệ thống. 
v Hai khía cạnh 
§  Đặc tả hệ thống 
§  Cài đặt hệ thống 
v Có thể tạo ra mô hình hình thức (formal model) 
cho cả hai khía cạnh trên và sử dụng công cụ để 
chứng minh (prove) về mặt cơ chế rằng 
§  mô hình thực thi hình thức của cài đặt thỏa mãn các yêu cầu hình 
thức của đặc tả. 
25 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Phương pháp hình thức 
v Hỗ trợ cho các phương pháp phân tích và 
thiết kế khác. 
v Là phương pháp tốt để tìm ra lỗi phần 
mềm (trong mã nguồn và trong đặc tả). 
v Giảm thời gian phát triển (và kiểm thử). 
v Có thể đảm bảo một số thuộc tính của mô 
hình hệ thống hình thức. 
v Chứng minh tự động sẽ là phương pháp lý 
tưởng. 
v Theorem prover 
26 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Phương pháp hình thức và kiểm thử 
v Chạy hệ thống với đầu vào chọn sẵn và quan sát 
hành vi của nó 
§  Chọn ngẫu nhiên 
§  Chọn thông minh (bằng tay: tốn kém) 
§  Chọn tự động (cần đặt tả hình thức) 
v Những đầu vào khác thì thế nào? (test 
coverage) 
v Quan sát thì thế nào? (test oracle) 
Các thách thức có thể được xác định bởi các 
phương pháp hình thức 
27 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Đặc tả: hệ thống nên làm gì? 
v Các thuộc tính đơn giản 
§  Các thuộc tính an toàn 
Những gì xấu sẽ không bao giờ xảy ra 
§  Những thuộc tính “sống động” 
Những gì tốt sẽ xảy ra sau cùng 
§  Các thuộc tính phi chức năng 
Thời gian thực, bộ nhớ, khả năng sử dụng,  
v Đặc tả hành vi “đầy đủ” 
§  Kiểm tra tính tương đương (Equivalence check) 
§  Lọc (Refinement) 
§  Tính nhất quán về dữ liệu 
§   
28 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Điểm chính của phương pháp hình thức 
v Để chỉ ra tính chính xác (correctness) của toàn 
bộ hệ thống (Tính chính xác là gì? Luôn luôn đi 
kèm các thuộc tính cụ thể). 
v Để thay thế cho kiểm thử (Các phương pháp hình 
thức chạy trên mã nguồn, hay có thể trên byte 
code). 
v Để thay thế cho những thực tế về thiết kế. 
29 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Lợi ích của việc sử dụng phương 
pháp hình thức 
v  Buộc người phát triển phải nghĩ về các vấn đề một 
cách có hệ thống. 
v  Cải thiện chất lượng đặc tả, thậm chí không kiểm thử 
hình thức. 
v  Đưa đến việc thiết kế tốt hơn và việc phát hiện sớm 
các sai sót và tính không đồng nhất. 
v  Cung cấp một tham chiếu chính xác (reference) để 
kiểm tra yêu cầu. 
v  Cung cấp tài liệu trong đội ngũ phát triển. 
v  Định hướng cho các pha phát triển tiếp theo. 
v  Cung cấp nền tảng cho việc tái sử dụng thông qua 
việc khớp đặc tả. 
v  Có thể thay thế nhiều test case. 
v  Tạo điều kiện cho việc phát sinh test case tự động. 
30 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Đặc tả hình thức 
v Là cách diễn tả 
§  sử dụng một số ngôn ngữ hình thức và 
§  tại một mức trừu tượng nào đó của một tập các thuộc tính 
 mà hệ thống phải thoả mãn. 
v Ngôn ngữ hình thức: 
§  Cú pháp có thể được xử lý một cách máy móc và được kiểm tra. 
§  Ngữ nghĩa được định nghĩa chặt chẽ sử dụng phương tiện toán học. 
v Trừu tượng: 
§  Trên mức mã nguồn. 
§  Có thể có vài mức. 
v Thuộc tính: 
§  Được biểu diễn dưới dạng logic hình thức. 
§  Có ngữ nghĩa rõ ràng. 
v Sự thoả mãn: 
§  Được quyết định một cách máy móc 
31 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
v Hình thức hóa đặc tả hệ thống là khó! 
32 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Khó khăn khi tạo ra các mô hình hình thức 
33 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Khó khăn khi tạo ra các mô hình hình thức 
34 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
v Việc chứng minh các thuộc tính của hệ 
thống có thể là một thử thách. 
35 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Lịch sử 
v  Những năm 80, kiểm định phần mềm được xem như “chết”. 
§  Ít tự động, người lập trình phải nỗ lực “bằng chân tay” quá nhiều. 
§  Chỉ có một số ít chương trình ví dụ có thể chạy được. 
v  Những năm 90, kiểm tra mô hình (model checkers) thành 
công. 
§  Kiểm tra một cách đầy đủ và tự động hoàn toàn các mô hình (trạng thái hữu hạn). 
§  Kiểm định phần cứng và các giao thức giao tiếp. 
v  Từ cuối những năm 90, mối quan tâm về kiểm định phần 
mềm tăng lên. 
§  Chứng minh/kiểm tra mô hình những phần quan trọng của phần mềm. 
v  Những ứng dụng mới như proof-carrying-code (PCC). 
§  Đặt mã máy (machine code) cùng với proof và chứng minh rằng mã máy đó thỏa 
mãn một số thuộc tính về bảo mật/an toàn. 
v  Những vấn đề mới chẳng hạn xem xét về vấn đề bảo mật. 
Phương pháp hình thức là chủ để “hot” trong nghiên cứu cũng như 
trong công nghiệp 
36 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Ngôn ngữ và hệ thống 
Các ngôn ngữ đặc tả 
v  Ngôn ngữ tổng quát: VDM (Vienna Development Method), Z, ASM 
(Abstract State Machines), OCL (Object Constraint Language for 
UML), . . . 
v  Ngôn ngữ gắn với ngôn ngữ lập trình: SPARK (Ada), Larch/C++, JML 
v  (Java), Spec#(C#), ACSL (C), . . . 
v  Algebraic/axiomatic: OBJ, ACT One, Larch, CASL, . . . 
v  Concurrent: Unity, Estelle, Lotos, TLA, . . . 
v  Mobile: pi-Calculus, . . . 
Kiểm tra mô hình (Model Checker) 
v  Spin, SMV, BLAST, Bandera, SLAM, VeriSoft, . . . 
Hỗ trợ việc chứng minh (Proving Assistant) 
v  PVS, HOL, Isabelle, Coq, Theorema, . . . 
Môi trường kiểm định 
v  Edinburgh Concurrency Workbench, STeP (Stanford Temporal Prover), 
KIV (Karlsruhe Interactive Verifier), JIVE (Java Interactive Verification 
Environment), LOOP, Krakatoa/Why, KeY, Mobius, . . . 
37 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Pp hình thức trong công nghiệp 
v Đường metro 14 ở Paris 
§  Dự án Méteor. 
§  Hoàn toàn tự động. 
§  Phần quan trọng về độ an toàn của hệ thống này 
được phát triển và thẩm định sử dụng B-Method. 
§  Tìm ra được rất nhiều lỗi trong quá trình chứng minh. 
v Airport shuttle ở sân bay Roissy 
Charles de Gaulle (Paris) 
§  B-Method. 
v Hệ thống tàu lửa ở Đan Mạch 
§  Sử dụng phương pháp hình thức RAISE để mô hình 
hóa hệ thống kiểm tra những thuộc tính về an toàn. 
v  
v  
38 Nguyễn Thị Minh Tuyền 
Đặc tả hình thức 
Tổng kết 
v Phần mềm ngày càng phổ biến và phức tạp. 
v Các kỹ thuật phát triển hiện tại là không đầy 
đủ. 
v Phương pháp hình thức 
§  Không phải là “phương thuốc chữa bách bệnh” nhưng ngày 
càng cần thiết. 
§  Ngày càng được ứng dụng nhiều trong thực tế. 
§  Thời gian phát triển phần mềm ngắn hơn. 
§  Tăng chất lượng sản phẩm. 
v Trong môn này, chúng ta sẽ học vài phương 
pháp hình thức khác nhau, cho các giai đoạn 
phát triển phần mềm khác nhau. 
39 Nguyễn Thị Minh Tuyền 
LOGO 
            Các file đính kèm theo tài liệu này:
 bai_giang_dac_ta_hinh_thuc_chuong_1_tong_quan_nguyen_thi_min.pdf bai_giang_dac_ta_hinh_thuc_chuong_1_tong_quan_nguyen_thi_min.pdf