Lecture Software engineering (7/e): Chapter 20 – Ian Sommerville

In this chapter, the learning objectives are: To explain how fault tolerance and fault avoidance contribute to the development of dependable systems, to describe characteristics of dependable software processes, to introduce programming techniques for fault avoidance, to describe fault tolerance mechanisms and their use of diversity and redundancy. | Critical systems development Objectives To explain how fault tolerance and fault avoidance contribute to the development of dependable systems To describe characteristics of dependable software processes To introduce programming techniques for fault avoidance To describe fault tolerance mechanisms and their use of diversity and redundancy Topics covered Dependable processes Dependable programming Fault tolerance Fault tolerant architectures Software dependability In general, software customers expect all software to be dependable. However, for non-critical applications, they may be willing to accept some system failures. Some applications, however, have very high dependability requirements and special software engineering techniques may be used to achieve this. Dependability achievement Fault avoidance The system is developed in such a way that human error is avoided and thus system faults are minimised. The development process is organised so that faults in the system are detected . | Critical systems development Objectives To explain how fault tolerance and fault avoidance contribute to the development of dependable systems To describe characteristics of dependable software processes To introduce programming techniques for fault avoidance To describe fault tolerance mechanisms and their use of diversity and redundancy Topics covered Dependable processes Dependable programming Fault tolerance Fault tolerant architectures Software dependability In general, software customers expect all software to be dependable. However, for non-critical applications, they may be willing to accept some system failures. Some applications, however, have very high dependability requirements and special software engineering techniques may be used to achieve this. Dependability achievement Fault avoidance The system is developed in such a way that human error is avoided and thus system faults are minimised. The development process is organised so that faults in the system are detected and repaired before delivery to the customer. Fault detection Verification and validation techniques are used to discover and remove faults in a system before it is deployed. Fault tolerance The system is designed so that faults in the delivered software do not result in system failure. Diversity and redundancy Redundancy Keep more than 1 version of a critical component available so that if one fails then a backup is available. Diversity Provide the same functionality in different ways so that they will not fail in the same way. However, adding diversity and redundancy adds complexity and this can increase the chances of error. Some engineers advocate simplicity and extensive V & V is a more effective route to software dependability. Diversity and redundancy examples Redundancy. Where availability is critical (. in e-commerce systems), companies normally keep backup servers and switch to these automatically if failure occurs. Diversity. To provide resilience against external attacks,

Không thể tạo bản xem trước, hãy bấm tải xuống
TÀI LIỆU MỚI ĐĂNG
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.