1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Đặc tả hình thức: Chương 1 - Nguyễn Thị Minh Tuyền

40 7 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đặc tả hình thức
Tác giả Nguyễn Thị Minh Tuyền
Trường học Trường Đại Học
Chuyên ngành Đặc tả hình thức
Thể loại Bài giảng
Định dạng
Số trang 40
Dung lượng 0,95 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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,...

Trang 1

LOGO

Đặc tả hình thức

Nguyễn Thị Minh Tuyền

Tổng quan

Trang 2

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!

Trang 3

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

Trang 4

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)

Trang 5

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  

Trang 6

Mars Climate Orbiter

Trang 7

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

Trang 8

Ariane 5

Trang 9

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

Trang 10

Lỗi phóng tên lửa Patriot

Nguồn : http://sydney.edu.au/

Trang 11

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

Trang 12

Hours Seconds Calculated Time (sec) Inaccuracy (sec) Approx shift in Range Gate

Trang 13

Tính toán chính xác

Trang 14

Sau 8h hoạt động, sai số 20%

Trang 15

Sau 100h hoạt động

Trang 16

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?

Trang 17

Đạ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

Trang 18

Tại sao những điều đó không hoạt động

tính chính xác(correctness)

đang ở trạng thái nửa vời

Trang 19

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

§   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

Trang 21

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

Trang 22

Phương pháp hình thức (Formal Method)

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

§   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

Trang 23

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

Trang 24

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

S1 ! S2 ! ! Sn = I

Trang 25

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)

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ả

Trang 26

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

Trang 28

§  Các thuộc tính phi chức năng

Thời gian thực, bộ nhớ, khả năng sử dụng, …

Trang 29

Đ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

Trang 30

Lợi ích của việc sử dụng phương

kiểm tra yêu cầu

việc khớp đặc tả

Trang 31

§   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

Trang 32

v   Hình thức hóa đặc tả hệ thống là khó!

Trang 33

Khó khăn khi tạo ra các mô hình hình thức

Trang 34

Khó khăn khi tạo ra các mô hình hình thức

Trang 35

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

Trang 36

Lịch sử

v  Những năm 80, kiểm định phần mềm được xem như “chết”

v  Những năm 90, kiểm tra mô hình (model checkers) thành công

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.

v  Những ứng dụng mới như proof-carrying-code (PCC)

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

Trang 37

Ngôn ngữ và hệ thống

Các ngôn ngữ đặc tả

(Abstract State Machines), OCL (Object Constraint Language for

UML),

Kiểm tra mô hình (Model Checker)

Hỗ trợ việc chứng minh (Proving Assistant)

Môi trường kiểm định

KIV (Karlsruhe Interactive Verifier), JIVE (Java Interactive Verification

Environment), LOOP, Krakatoa/Why, KeY, Mobius,

Trang 38

Đặ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

Trang 39

§   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

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

Trang 40

LOGO

Ngày đăng: 08/05/2021, 13:14

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm