Công nghệ phần mềm chuong 8

15 34 0
Công nghệ phần mềm chuong 8

Đ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

Bài giảng - Kỹ thuật tin cậy Phần Chủ đề bảo vệ  Sự thừa đa dạng  Các phương pháp để đạt khoan dung lỗi  Các trình đáng tin cậy  Cách sử dụng quy trình đáng tin cậy dẫn đến hệ thống đáng tin cậy  Kiến trúc hệ thống đáng tin cậy  Các mẫu kiến trúc tính chịu lỗi phần mềm  Lập trình bền vững  Hướng dẫn lập trình để tránh lỗi Độ tin cậy phần mềm  Nói chung, khách hàng phần mềm mong đợi tất phần mềm đáng tin cậy Tuy nhiên, ứng dụng khơng quan trọng, họ sẵn sàng chấp nhận số lỗi hệ thống  Một số ứng dụng (hệ thống quan trọng) có yêu cầu độ tin cậy cao kỹ thuật công nghệ phần mềm đặc biệt sử dụng để đạt điều  Hệ thống y tế  Viễn thông hệ thống điện  Hệ thống không gian vũ trụ Thành tựu đáng tin cậy  Tránh lỗi  Hệ thống phát triển theo cách mà tránh lỗi người lỗi hệ thống giảm thiểu  Quá trình phát triển tổ chức để lỗi hệ thống phát sửa chữa trước giao hàng cho khách hàng  Phát lỗi  Các kỹ thuật xác minh xác nhận sử dụng để phát loại bỏ lỗi hệ thống trước triển khai  Khả chịu lỗi  Hệ thống thiết kế cho lỗi phần mềm phân phối không dẫn đến lỗi hệ thống Chi phí gia tăng việc loại bỏ lỗi dư Hệ thống quy định  Nhiều hệ thống quan trọng hệ thống quy định, có nghĩa việc sử dụng chúng phải chấp thuận nhà điều tiết bên trước hệ thống vào hoạt động    Hệ thống hạt nhân Hệ thống kiểm sốt khơng lưu Các thiết bị y tế  Một trường hợp an toàn đáng tin cậy phải chấp thuận quan quản lý Do đó, việc phát triển hệ thống quan trọng phải tạo chứng thuyết phục nhà quản lý hệ thống đáng tin cậy, an toàn an toàn Đa dạng dư thừa  Dư  Giữ nhiều phiên thành phần quan trọng có sẵn để thất bại sau lưu có sẵn  Đa dạng  Cung cấp chức tương tự theo cách khác để họ không thất bại cách  Tuy nhiên, việc bổ sung tính đa dạng dư thừa cho thấy phức tạp điều làm tăng hội sai sót  Một số kỹ sư ủng hộ tính đơn giản V & V rộng lớn tuyến đường hiệu để đảm bảo tính tin cậy phần mềm Đa dạng Và ví dụ dự phòng  Dư Nơi sẵn có quan trọng (ví dụ hệ thống thương mại điện tử), công ty thường giữ máy chủ lưu chuyển sang tự động thất bại xảy  Đa dạng Để cung cấp khả chống lại cơng bên ngồi, máy chủ khác triển khai cách sử dụng hệ điều hành khác (ví dụ Windows Linux) Đa dạng trình thừa  Các hoạt động trình, chẳng hạn xác nhận hợp lệ, không nên phụ thuộc vào cách tiếp cận đơn lẻ, chẳng hạn kiểm tra, để xác nhận tính hợp lệ hệ thống  Thay vào đó, nhiều hoạt động khác trình bổ sung lẫn cho phép kiểm tra chéo giúp tránh lỗi q trình, dẫn đến lỗi phần mềm Các trình đáng tin cậy  Để đảm bảo số lỗi phần mềm tối thiểu, điều quan trọng phải có quy trình phần mềm xác định rõ ràng, lặp lại  Một trình lặp lại xác định rõ ràng q trình khơng phụ thuộc hoàn toàn vào kỹ cá nhân; thay ban hành người khác  Các nhà quản lý sử dụng thông tin quy trình để kiểm tra xem có thực hành kỹ thuật phần mềm tốt hay không  Để phát lỗi, rõ ràng hoạt động trình nên bao gồm nỗ lực đáng kể dành cho việc xác minh xác nhận Các thuộc tính q trình đáng tin cậy Đặc tính trình Sự miêu tả Tài liệu Quá trình cần có mơ hình quy trình xác định đưa hoạt động quy trình tài liệu sản xuất hoạt động Tiêu chuẩn hoá Một tiêu chuẩn phát triển phần mềm toàn diện bao gồm sản xuất phần mềm tài liệu nên có sẵn Auditable Q trình cần hiểu rõ người ngồi người tham gia q trình, người kiểm tra xem tiêu chuẩn quy trình tuân thủ đưa gợi ý để cải tiến quy trình Phong phú Quá trình nên bao gồm hoạt động xác minh xác nhận dự phòng thừa đa dạng Mạnh mẽ Q trình phục hồi từ thất bại hoạt động trình Các hoạt động xác nhận  Đánh giá yêu cầu  Quản lý yêu cầu  Đặc điểm thức  xây dựng mơ hình hệ thống  Thiết kế kiểm tra mã  Phân tích tĩnh  Lập kế hoạch kiểm tra quản lý Quản lý thay đổi, thảo luận Chương 25, cần thiết Khả chịu lỗi  Trong tình nguy kịch, hệ thống phần mềm phải Chịu lỗi   Khả chịu lỗi cần thiết có yêu cầu tính khả dụng cao mà chi phí hỏng hóc hệ thống cao  Khả chịu lỗi có nghĩa hệ thống tiếp tục hoạt động bất chấp thất bại phần mềm  Ngay hệ thống chứng minh phù hợp với đặc điểm kỹ thuật nó, phải chịu lỗi có lỗi kỹ thuật xác nhận khơng xác Kiến trúc hệ thống đáng tin cậy  Kiến trúc hệ thống đáng tin cậy sử dụng trường hợp cần phải có khả chịu lỗi Các kiến trúc nói chung dựa thừa đa dạng  dụng: Ví dụ tình kiến trúc đáng tin cậy sử  Hệ thống kiểm soát chuyến bay, nơi mà thất bại hệ thống đe doạ đến an toàn hành khách  Các hệ thống lò phản ứng mà thất bại hệ thống điều khiển dẫn đến tình trạng khẩn cấp hóa học hạt nhân  Hệ thống viễn thơng, nơi có nhu cầu sử dụng 24/7 Hệ thống bảo vệ  Một hệ thống chuyên biệt liên quan đến số hệ thống kiểm sốt khác thực hành động khẩn cấp xảy cố  sáng màu đỏ  Hệ thống để dừng chuyến tàu qua ánh Hệ thống để đóng lò phản ứng nhiệt độ / áp suất cao  trường Hệ thống bảo vệ độc lập giám sát hệ thống kiểm soát mơi  Nếu vấn đề phát hiện, lệnh để thực hành động khẩn cấp để tắt hệ thống tránh thảm hoạ Kiến trúc hệ thống bảo vệ Chức hệ thống bảo vệ  Các hệ thống bảo vệ dư thừa chúng bao gồm khả giám sát điều khiển nhân phần phần mềm điều khiển  Các hệ thống bảo vệ nên đa dạng sử dụng công nghệ khác từ phần mềm điều khiển  Chúng đơn giản hệ thống điều khiển tốn nhiều cơng sức để kiểm chứng đảm bảo độ tin cậy  Mục tiêu để đảm bảo có xác suất thấp thất bại nhu cầu cho hệ thống bảo vệ Kiến trúc tự giám sát  Kiến trúc đa kênh, nơi hệ thống theo dõi hoạt động riêng thực hành động phát không quán  Cùng tính tốn thực kênh kết so sánh Nếu kết giống hệt sản xuất lúc giả định hệ thống hoạt động xác  Nếu kết khác nhau, sau thất bại giả định lỗi ngoại lệ nêu Kiến trúc tự giám sát Hệ thống tự giám sát  Phần cứng kênh phải đa dạng cố phần cứng chung khơng dẫn đến kênh có kết  Phần mềm kênh phải đa dạng, không lỗi phần mềm tương tự ảnh hưởng đến kênh  Nếu cần có tính sẵn sàng cao, bạn sử dụng nhiều hệ thống tự kiểm tra song song  Đây cách tiếp cận sử dụng dòng máy bay Airbus cho hệ thống kiểm soát bay họ Kiến trúc hệ thống điều khiển chuyến bay Airbus Thảo luận kiến trúc Airbus  Airbus FCS có máy tính riêng biệt, máy chạy phần mềm điều khiển  Sử dụng rộng rãi thực đa dạng  Các hệ thống sử dụng xử lý khác từ hệ thống thứ cấp  Các hệ thống trung học sử dụng chipset từ nhà sản xuất khác  Phần mềm hệ thống thứ cấp phức tạp so với hệ thống - cung cấp chức quan trọng  Phần mềm kênh phát triển ngơn ngữ lập trình khác nhóm khác  Các ngơn ngữ lập trình khác sử dụng hệ thống sơ cấp trung học Những điểm  Khả tin cậy chương trình đạt cách tránh sai sót, cách phát loại bỏ lỗi trước triển khai hệ thống, bao gồm sở chịu lỗi  Việc sử dụng thừa đa dạng phần cứng, trình phần mềm hệ thống phần mềm điều cần thiết cho phát triển hệ thống đáng tin cậy  Việc sử dụng quy trình xác định rõ ràng, lặp lại cần thiết lỗi hệ thống phải giảm thiểu  Kiến trúc hệ thống đáng tin cậy kiến trúc hệ thống thiết kế cho khả chịu lỗi Các kiểu kiến trúc hỗ trợ khả chịu lỗi bao gồm hệ thống bảo vệ, kiến trúc tự giám sát lập trình phiên N Bài giảng - Kỹ thuật tin cậy Phần N-phiên chương trình  Nhiều phiên hệ thống phần mềm thực tính tốn lúc Cần có số lượng máy tính lẻ, ví dụ  Kết so sánh cách sử dụng hệ thống bỏ phiếu kết phần lớn coi kết xác  Phương pháp tiếp cận có nguồn gốc từ khái niệm thừa thừa ba mô đun, sử dụng hệ thống phần cứng Dung sai lỗi phần cứng  Phụ thuộc vào dự phòng thừa ba (modular redundancy thừa mơ đun - TMR)  Có ba thành phần trùng lặp giống nhận đầu vào có kết đầu so sánh  Nếu đầu khác nhau, bỏ qua hư hỏng thành phần giả định  Dựa vào hầu hết lỗi lỗi thành phần lỗi thiết kế xác suất thấp cố đồng thời thành phần Thừa ba mơ đun N-phiên chương trình N-phiên chương trình  Các phiên hệ thống khác thiết kế thực nhóm khác Người ta giả định có xác suất thấp họ mắc phải sai lầm tương tự Các thuật tốn sử dụng nên khơng khác  Có số chứng thực nghiệm cho thấy nhóm thường giải thích sai thơng số kỹ thuật theo cách chọn thuật toán tương tự hệ thống họ Đa dạng phần mềm  Cách tiếp cận để khoan dung lỗi phần mềm phụ thuộc vào đa dạng phần mềm giả định cài đặt khác đặc tả phần mềm thất bại theo cách khác  Người ta cho việc triển khai (a) độc lập (b) không bao gồm lỗi phổ biến  Các chiến lược để đạt đa dạng  Ngơn ngữ lập trình khác  Các phương pháp công cụ thiết kế khác  Mô tả rõ ràng thuật toán khác Vấn đề với đa dạng thiết kế  Các đội khơng có văn hố đa dạng nên họ có xu hướng giải vấn đề theo cách tương tự  Lỗi đặc trưng  Các đội khác có sai lầm tương tự Một số phần q trình thực khó khăn nhiều so với người khác tất nhóm có xu hướng mắc sai lầm nơi;  Lỗi kỹ thuật;  Nếu có lỗi đặc tả điều phản ánh tất thực;  Điều giải đến mức độ cách sử dụng nhiều đại diện đặc điểm kỹ thuật Phụ thuộc hàm  Cả hai phương pháp tiếp cận phần mềm dự phòng dễ bị lỗi kỹ thuật Nếu đặc điểm kỹ thuật khơng xác, hệ thống thất bại  Đây vấn đề phần cứng đặc tả phần mềm thường phức tạp chi tiết kỹ thuật phần cứng khó kiểm chứng  Điều giải số trường hợp cách phát triển đặc tả phần mềm riêng biệt từ đặc tả người dùng Cải tiến thực tế  Về nguyên tắc, đa dạng độc lập đạt được, lập trình đa lập trình dẫn đến cải tiến đáng kể độ tin cậy tính sẵn có  Trong thực tế, cải tiến quan sát quan trọng cách tiếp cận dường dẫn đến cải thiện độ tin cậy đến lần  Câu hỏi then chốt liệu cải tiến có xứng đáng với chi phí phát triển đáng kể cho chương trình đa ngơn ngữ hay khơng Lập trình bền vững  Thực tiễn lập kế hoạch tốt áp dụng để giúp giảm tỷ lệ mắc lỗi chương trình  Những hoạt động lập trình hỗ trợ  Tránh lỗi  Phát lỗi  Khả chịu lỗi Hướng dẫn thực hành tốt cho lập trình tin cậy Hướng dẫn lập trình vững vàng Giới hạn khả hiển thị thơng tin chương trình Kiểm tra tất yếu tố đầu vào cho hiệu lực Cung cấp trình xử lý cho tất ngoại lệ Giảm thiểu việc sử dụng cấu trúc dễ bị lỗi Cung cấp khả khởi động lại Kiểm tra mảng giới hạn Bao gồm hết thời gian chờ gọi thành phần bên Đặt tên cho tất số thể giá trị thực Kiểm sốt khả hiển thị thơng tin chương trình  Các thành phần chương trình nên phép truy cập liệu mà họ cần để thực  Điều có nghĩa tình cờ tham nhũng phần chương trình nhà nước thành phần  Bạn kiểm sốt khả hiển thị cách sử dụng kiểu liệu trừu tượng mà phần liệu riêng tư bạn cho phép truy cập vào liệu thông qua hoạt động xác định trước get () put () Kiểm tra tất yếu tố đầu vào cho hiệu lực  Tất chương trình lấy đầu vào từ môi trường họ đưa giả định đầu vào  Tuy nhiên, đặc điểm chương trình xác định phải làm đầu vào khơng phù hợp với giả định  Do đó, nhiều chương trình hoạt động khơng thể đốn trước xuất với đầu vào bất thường đơi mối đe dọa an ninh hệ thống  Do đó, bạn ln phải kiểm tra đầu vào trước xử lý dựa giả định đầu vào Kiểm tra tính hợp lệ  Kiểm tra phạm vi  chưa  Kiểm tra xem đầu vào có nằm phạm vi biết hay Kiểm tra kích thước  Kiểm tra xem đầu vào khơng vượt q kích thước tối đa, ví dụ: 40 ký tự cho tên  Kiểm tra đại diện  Kiểm tra xem đầu vào không bao gồm ký tự phần biểu diễn ví dụ tên khơng bao gồm chữ số  Kiểm tra hợp lý  Sử dụng thơng tin đầu vào để kiểm tra xem có hợp lý khơng phải giá trị cực đoan Cung cấp trình xử lý cho tất ngoại lệ  Một ngoại lệ chương trình lỗi số Sự kiện bất ngờ điện  Các cấu trúc xử lý ngoại lệ cho phép Các kiện xử lý mà không cần Kiểm tra trạng thái liên tục để phát ngoại lệ  Sử dụng cấu trúc điều khiển bình thường để phát Ngoại lệ cần nhiều báo cáo bổ sung Thêm vào chương trình Điều làm tăng thêm đáng kể Chi phí có khả bị lỗi Xử lý ngoại lệ Xử lý ngoại lệ  Ba chiến lược xử lý ngoại lệ  Tín hiệu đến thành phần gọi mà ngoại lệ xảy cung cấp thông tin loại ngoại lệ  Thực số chế biến thay để chế biến mà xảy ngoại lệ Điều xảy trình xử lý ngoại lệ có đủ thơng tin để phục hồi từ vấn đề phát sinh  Kiểm soát hệ thống hỗ trợ chạy để xử lý ngoại lệ  Xử lý ngoại lệ chế để cung cấp số khoan dung lỗi Hạn chế tối đa việc sử dụng cấu trúc dễ bị lỗi - Các lỗi chương trình thường hậu lỗi người lập trình viên theo dõi mối quan hệ phần khác hệ thống  Đây trầm trọng cấu trúc dễ bị lỗi ngơn ngữ lập trình mà vốn phức tạp séc t don 'cho sai lầm họ làm  Vì vậy, lập trình, bạn nên cố gắng tránh giảm thiểu việc sử dụng cấu trúc dễ bị lỗi Cấu trúc dễ bị lỗi  (Goto) báo cáo chi nhánh không điều kiện  số phẩy động  hợp So sánh  Chưa rõ ràng Sự khơng xác dẫn đến khơng lệ Con trỏ  Con trỏ đề cập đến khu vực nhớ sai bị hỏng liệu Bí danh làm cho chương trình khó hiểu Và thay đổi  Cấp phát nhớ động - bi ế n Động   Phân bổ thời gian chạy gây lỗi tràn nhớ song song (lập trình luồng)  Có thể dẫn đến lỗi thời gian tinh vi không lường trước Tương tác trình song song  lập trình đệ quy  Sai sót đệ quy gây lỗi tràn nhớ chương trình ngăn xếp đầy lên  Ngắt gây hoạt động quan trọng chấm dứt Và làm cho chương trình khó hiểu  lập trình kế thừa  Mã khơng địa hóa Điều dẫn đến hành vi bất ngờ thay đổi thực vấn đề hiểu biết mã  có tên khác Nhau Tham chiếu tới biến  Sử dụng nhiều tên để tham khảo biến trạng thái   mảng  Mảng không giới hạn Lỗi tràn đệm xảy không kiểm tra ràng buộc Mặc định xử lý đầu vào  Một hành động đầu vào xảy đầu vào  Điều gây vấn đề hành động mặc định để chuyển điều khiển nơi khác chương trình Trong đầu vào khơng xác khơng xác kích hoạt chương trình thất bại Cung cấp khả khởi động lại - hệ thống tồn  Đối với hệ thống liên quan đến giao dịch dài tương tác người dùng, bạn phải cung cấp khả khởi động lại cho phép hệ thống khởi động lại sau thất bại mà không cần phải làm lại tất thứ mà họ làm  Khởi động lại tùy thuộc vào loại hệ thống  Giữ hình thức để người dùng khơng phải điền họ lần có vấn đề  Lưu trạng thái định kỳ khởi động lại từ trạng thái lưu Kiểm tra mảng mảng - kiểm tra biên dịch mảng  Trong số ngôn ngữ lập trình, chẳng hạn C, xác định vị trí nhớ bên ngồi phạm vi cho phép khai báo mảng  Điều dẫn đến 'đệm giáp' lỗ hổng tiếng nơi kẻ công viết mã thực thi vào nhớ cách cố ý văn yếu tố hàng đầu mảng  Nếu ngôn ngữ bạn không bao gồm kiểm tra ràng buộc, bạn nên luôn kiểm tra xem truy cập mảng giới hạn mảng Bao gồm hết thời gian chờ gọi thành phần bên ngoài- sử dụng chế  Trong hệ thống phân phối, thất bại máy tính từ xa 'im lặng' để chương trình mong đợi dịch vụ từ máy tính khơng nhận dịch vụ dấu hiệu cho thấy có thất bại  Để tránh điều này, bạn nên luôn bao gồm timeouts tất gọi đến thành phần bên  Sau khoảng thời gian xác định trơi qua mà khơng có phản hồi, hệ thống bạn sau giả định thất bại thực hành động yêu cầu để phục hồi từ việc Đặt tên tất đại diện cho giá trị giới thực - sử dụng tên ý nghĩa  Luôn cung cấp số phản ánh giá trị thực tế (chẳng hạn thuế suất) thay sử dụng giá trị số chúng ln đề cập đến chúng theo tên  Bạn có khả mắc sai lầm gõ sai giá trị bạn sử dụng tên giá trị  Điều có nghĩa thay đổi 'hằng' (chắc chắn, họ không thực ổn định), sau bạn cần thực thay đổi chỗ chương trình bạn Những điểm  Đa dạng phần mềm khó đạt thực tế khơng thể đảm bảo phiên phần mềm thật độc lập  Chương trình đáng tin cậy dựa vào bao gồm dự phòng chương trình để kiểm tra tính hợp lệ đầu vào giá trị biến chương trình  Một số cấu trúc lập trình kỹ thuật, chẳng hạn báo cáo goto, trỏ, đệ quy, thừa kế dấu chấm động số, vốn dễ bị lỗi Bạn nên cố tránh cấu trúc phát triển hệ thống đáng tin cậy ... thuật toán tương tự hệ thống họ Đa dạng phần mềm  Cách tiếp cận để khoan dung lỗi phần mềm phụ thuộc vào đa dạng phần mềm giả định cài đặt khác đặc tả phần mềm thất bại theo cách khác  Người ta... dư thừa chúng bao gồm khả giám sát điều khiển nhân phần phần mềm điều khiển  Các hệ thống bảo vệ nên đa dạng sử dụng công nghệ khác từ phần mềm điều khiển  Chúng đơn giản hệ thống điều khiển... trúc tự giám sát Hệ thống tự giám sát  Phần cứng kênh phải đa dạng cố phần cứng chung khơng dẫn đến kênh có kết  Phần mềm kênh phải đa dạng, không lỗi phần mềm tương tự ảnh hưởng đến kênh  Nếu

Ngày đăng: 21/02/2020, 22:34

Tài liệu cùng người dùng

Tài liệu liên quan