Bài giảng Đặc tả hình thức: Chương 1 cung cấp cho người học các kiến thức: Phần mềm, thiệt hại về tiền của do lỗi phần mềm, lỗi phần mềm gây thiệt hại về tính mạng, lỗi hệ thống phần mềm, phương pháp hình thức,...
LOGO Đặc tả hình thức Tổng quan Nguyễn Thị Minh Tuyền Nguyễn Thị Minh Tuyền Phần mềm v Phần mềm ngày có ảnh hưởng lớn đến mặt 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 (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 thiệt hại tiền mà cịn thiệt hại tính mạng người! Nguyễn Thị Minh Tuyền Đặc tả hình thức Thiệt hại tiền lỗi phần mềm v Hàng nghìn $ cho phút hệ thống sản xuất ngừng hoạt động v Mất lượng lớn tiền trí tuệ đầu tư cho việc sửa lỗi § Vụ nổ Ariane v Những thất bại kinh doanh thương mại lỗi phần mềm § Ashton-Tate dBase Nguyễn Thị Minh Tuyền Đặc tả hình thức Lỗi phần mềm gây thiệt hại tính mạng Những vấn đề tiềm tàng dễ thấy: v Phần mềm 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 xe v Một số ví dụ tiếng: § Các lỗi máy xạ (radiation) Therac-25 § Lỗi phóng tên lửa Patriot (1991) 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ỏ gây nên thảm họa v Vụ nổ Ariane (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 … Nguyễn Thị Minh Tuyền Đặc tả hình thức Mars Climate Orbiter Nguyễn Thị Minh Tuyền Đặc tả hình thức Nguyên nhân thiệt hại v Lỗi việc chuyển đổi đơn vị § Thay dùng đơn vị Newtons lại dùng pounds v 125 triệu la Nguyễn Thị Minh Tuyền Đặc tả hình thức Ariane Nguyễn Thị Minh Tuyền Đặc tả hình thức Nguyên nhân 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 Nguyễn Thị Minh Tuyền Đặc tả hình thức Lỗi phóng tên lửa Patriot Nguồn : http://sydney.edu.au/ Nguyễn Thị Minh Tuyền 10 Đặc tả hình thức Phương pháp hình thức v Hỗ trợ cho phương pháp phân tích thiết kế khác v Là phương pháp tốt để tìm lỗi phần mềm (trong mã nguồn đặc tả) v Giảm thời gian phát triển (và kiểm thử) v Có thể đảm bảo số thuộc tính mơ hình hệ thống hình thức v Chứng minh tự động phương pháp lý tưởng v Theorem prover Nguyễn Thị Minh Tuyền 26 Đặc tả hình thức Phương pháp hình thức kiểm thử v Chạy hệ thống với đầu vào chọn sẵn quan sát hành vi § 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 nào? (test coverage) v Quan sát nào? (test oracle) Các thách thức xác định phương pháp hình thức Nguyễn Thị Minh Tuyền 27 Đặ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 tồn Những xấu khơng xảy § Những thuộc tính “sống động” Những tốt xảy sau § Các thuộc tính phi chức Thời gian thực, nhớ, khả 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 quán liệu § … Nguyễn Thị Minh Tuyền 28 Đặc tả hình thức Điểm phương pháp hình thức v Để tính xác (correctness) tồn hệ thống (Tính xác gì? Ln ln kèm thuộc tính cụ thể) v Để thay cho kiểm thử (Các phương pháp hình thức chạy mã nguồn, hay byte code) v Để thay cho thực tế thiết kế Nguyễn Thị Minh Tuyền 29 Đặc tả hình thức Lợi ích 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ấn đề cách có hệ thống v Cải thiện chất lượng đặc tả, chí khơng kiểm thử hình thức v Đưa đến việc thiết kế tốt việc phát sớm sai sót tính khơng đồng v Cung cấp tham chiếu xác (reference) để kiểm tra yêu cầu v Cung cấp tài liệu đội ngũ phát triển v Định hướng cho pha phát triển v Cung cấp tảng cho việc tái sử dụng thông qua việc khớp đặc tả v Có thể thay nhiều test case v Tạo điều kiện cho việc phát sinh test case tự động Nguyễn Thị Minh Tuyền 30 Đặc tả hình thức Đặc tả hình thức v Là cách diễn tả § sử dụng số ngơn ngữ hình thức § mức trừu tượng tập thuộc tính mà hệ thống phải thoả mãn v Ngơn ngữ hình thức: § Cú pháp xử lý cách máy móc kiểm tra § Ngữ nghĩa đị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ạng logic hình thức § Có ngữ nghĩa rõ ràng v Sự thoả mãn: § Được định cách máy móc Nguyễn Thị Minh Tuyền 31 Đặc tả hình thức v Hình thức hóa đặc tả hệ thống khó! Nguyễn Thị Minh Tuyền 32 Đặc tả hình thức Khó khăn tạo mơ hình hình thức Nguyễn Thị Minh Tuyền 33 Đặc tả hình thức Khó khăn tạo mơ hình hình thức Nguyễn Thị Minh Tuyền 34 Đặc tả hình thức v Việc chứng minh thuộc tính hệ thống thử thách Nguyễn Thị Minh Tuyền 35 Đặc tả hình thức Lịch sử v Những năm 80, kiểm định phần mềm xem “chết” § Ít tự động, người lập trình phải nỗ lực “bằng chân tay” nhiều § Chỉ có số chương trình ví dụ chạy v Những năm 90, kiểm tra mơ hình (model checkers) thành cơng § Kiểm tra cách đầy đủ tự động hồn tồn mơ hình (trạng thái hữu hạn) § Kiểm định phần cứng giao thức giao tiếp v Từ cuối năm 90, mối quan tâm kiểm định phần mềm tăng lên § Chứng minh/kiểm tra mơ hình phần quan trọng phần mềm v Những ứng dụng proof-carrying-code (PCC) § Đặt mã máy (machine code) với proof chứng minh mã máy thỏa mãn số thuộc tính bảo mật/an tồn v Những vấn đề chẳng hạn xem xét vấn đề bảo mật Phương pháp hình thức chủ để “hot” nghiên cứu công nghiệp Nguyễn Thị Minh Tuyền 36 Đặc tả hình thức Ngơn ngữ 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, Nguyễn Thị Minh Tuyền 37 Đặc tả hình thức Pp hình thức cơng nghiệp v Đường metro 14 Paris § Dự án Méteor § Hồn tồn tự động § Phần quan trọng độ an toàn hệ thống phát triển thẩm định sử dụng B-Method § Tìm nhiều lỗi 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 thuộc tính an tồn v … Nguyễn Thị Minh Tuyền 38 Đặc tả hình thức Tổng kết v Phần mềm ngày phổ biến phức tạp v Các kỹ thuật phát triển không đầy đủ v Phương pháp hình thức § Khơng phải “phương thuốc chữa bách bệnh” ngày cần thiết § Ngày ứng dụng nhiều thực tế § Thời gian phát triển phần mềm ngắn § Tăng chất lượng sản phẩm v Trong môn này, học vài phương pháp hình thức khác nhau, cho giai đoạn phát triển phần mềm khác Nguyễn Thị Minh Tuyền 39 Đặc tả hình thức LOGO ... Tính tốn xác Nguyễn Thị Minh Tuyền 13 Đặc tả hình thức Sau 8h hoạt động, sai số 20% Nguyễn Thị Minh Tuyền 14 Đặc tả hình thức Sau 10 0h hoạt động Nguyễn Thị Minh Tuyền 15 Đặc tả hình thức Sau tốt... hình hình thức Nguyễn Thị Minh Tuyền 33 Đặc tả hình thức Khó khăn tạo mơ hình hình thức Nguyễn Thị Minh Tuyền 34 Đặc tả hình thức v Việc chứng minh thuộc tính hệ thống thử thách Nguyễn Thị Minh. .. hình thức § Có ngữ nghĩa rõ ràng v Sự thoả mãn: § Được định cách máy móc Nguyễn Thị Minh Tuyền 31 Đặc tả hình thức v? ?Hình thức hóa đặc tả hệ thống khó! Nguyễn Thị Minh Tuyền 32 Đặc tả hình