 Chapter 13 – Dependability Engineering 1 Chapter 12 Dependability and Security Specification 1.

Slides:



Advertisements
Similar presentations
Critical systems development
Advertisements

Chapter 13 – Dependability engineering
Chapter 13 – Dependability engineering Lecture 1 1Chapter 13 Dependability Engineering.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 30 Slide 1 Security Engineering 2.
Testing and Quality Assurance
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 24 Slide 1 Critical Systems Validation 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development.
Software Construction
Making Services Fault Tolerant
1 Building Reliable Web Services: Methodology, Composition, Modeling and Experiment Pat. P. W. Chan Department of Computer Science and Engineering The.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
CS CS 5150 Software Engineering Lecture 22 Reliability 2.
Critical systems development
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 30 Slide 1 Security Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Reliability on Web Services Pat Chan 31 Oct 2006.
Modified from Sommerville’s originals Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development.
Modified from Sommerville’s originals Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development.
Developing Dependable Systems CIS 376 Bruce R. Maxim UM-Dearborn.
Introduction to the new mainframe: Large-Scale Commercial Computing © Copyright IBM Corp., All rights reserved. Chapter 8: Autonomic computing.
1 Making Services Fault Tolerant Pat Chan, Michael R. Lyu Department of Computer Science and Engineering The Chinese University of Hong Kong Miroslaw Malek.
Design of SCS Architecture, Control and Fault Handling.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 10 Slide 1 Formal Specification.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 30 Slide 1 Security Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 1.
Module 1 – MIS Careers & Intro to Systems Architecture MIS5122: Enterprise Architecture for IT Auditors.
Airbus flight control system
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Figures-Chapter 13. Figure 13.1 The increasing costs of residual fault removal.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
Critical systems development. Objectives l To explain how fault tolerance and fault avoidance contribute to the development of dependable systems l To.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Slide 1 Critical Systems Specification 2.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
 Chapter 6 Architecture 1. What is Architecture?  Overall Structure of system  First Stage in Design process 2.
Ranga Rodrigo. The purpose of software engineering is to find ways of building quality software.
CS, AUHenrik Bærbak Christensen1 Fault Tolerant Architectures Lyu Chapter 14 Sommerville Chapter 20 Part II.
CSE 219 Computer Science III Program Design Principles.
1 Software Design Overview Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13.
CS CS 5150 Software Engineering Lecture 20 Reliability 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
SENG521 (Fall SENG 521 Software Reliability & Testing Fault Tolerant Software Systems: Techniques (Part 4b) Department of Electrical.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development 3.
Critical Systems Development IS301 – software Engineering Lecture #19 – M. E. Kabay, PhD, CISSP Dept of Computer Information Systems Norwich.
CprE 458/558: Real-Time Systems
Today’s Lecture Covers
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
RELIABILITY ENGINEERING 28 March 2013 William W. McMillan.
CS CS 5150 Software Engineering Lecture 20 Reliability 2.
Chapter 8 Lecture 1 Software Testing. Program testing Testing is intended to show that a program does what it is intended to do and to discover program.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development.
Slide 1 Security Engineering. Slide 2 Objectives l To introduce issues that must be considered in the specification and design of secure software l To.
Version 02U-1 Computer Security: Art and Science1 Correctness by Construction: Developing a Commercial Secure System by Anthony Hall Roderick Chapman.
CSE 8377 Software Fault Tolerance. CSE 8377 Motivation Software is becoming central to many life- critical systems Software is created by error-prone.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Week#3 Software Quality Engineering.
Chapter 11 – Reliability Engineering
CMSC 345 Defensive Programming Practices from Software Engineering 6th Edition by Ian Sommerville.
Security Engineering.
Critical systems development
Ada – 1983 History’s largest design effort
Software reliability CS 560 Lecture 15.
Software Engineering with Reusable Components
Critical Systems Development
Presentation transcript:

 Chapter 13 – Dependability Engineering 1 Chapter 12 Dependability and Security Specification 1

Dependability through Redundancy and Diversity  Redundancy – having multiple components that perform the same function  Diversity – usage of secondary components that are distinct in structure from each other Chapter 12 Dependability and Security Specification 2

Redundancy Examples  Power Supply  Disc (RAID)  Processor  Database server  Web server  DNS servers  Authentication servers Chapter 12 Dependability and Security Specification 3

Redundancy  Redundancy solves problems of failure  Redundancy does not solve problems of design  Same password authetication  Same processing of database Chapter 12 Dependability and Security Specification 4

Diversity  Separate versions of software to accomplish the same thing  Software to check output of one set of software against that of another Chapter 12 Dependability and Security Specification 5

Arguments Against Diversity  Too costly  Extra effort put into second set of software could have been applied to more validation, verification Chapter 12 Dependability and Security Specification 6

Diversity Overhead  Mechanism to compare outputs, decide on correct output Chapter 12 Dependability and Security Specification 7

Dependability and Agile Methods  Agile often considered not suitable for critical systems  Some debate exists Chapter 12 Dependability and Security Specification 8

Dependability Through Architecture  Replication  Protection System  Self Monitoring System  N-Version programming Chapter 12 Dependability and Security Specification 9

Replication  Same functionality  Repeated  Data replicated to other servers  Examples  Database server  Web server  DNS server Chapter 12 Dependability and Security Specification 10

Protection System  Control of system by one set of software  Independent monitoring of key parameters  Override capability  Only has to look at override  Example:  One system to control train at airport  Separate system shuts down car if overspeed Chapter 12 Dependability and Security Specification 11

Self Monitoring Systems  Primary system performs primary operations  Second system constantly checks primary system  Effectiveness depends on:  Diverse hardware  Diverse software  Example:Airbus (5 processors) Chapter 12 Dependability and Security Specification 12

N- Version  Multiple versions  Output selector / fault manager  Monitors results from all concurrent systems Chapter 12 Dependability and Security Specification 13

Diversity Issues  Separate teams:  No interaction between teams  Require different methodologies (oo vs functional), programming languages, tools, algorithms  Challenges  Teams may have same background, knowledge and may make the same mistakes  Requirements failures not resolved  Requirements must leave no room for question Chapter 12 Dependability and Security Specification 14

Dependability Through Processes  Requirements reviews  Requirements management  Formal Specification  System modeling – graphical  Design and program inspections  Static analysis of code  Test planning, management Chapter 12 Dependability and Security Specification 15

Dependability Through Programming  Sommerville’s summary of some key development strategies  #1 Control Visibility of Data  #2 Check All inputs for Validity  #3 Provide handlers for exception Chapter 12 Dependability and Security Specification 16

Dependability Through Programming  #4 Minimize error prone constructs  Unconditional branch  Floating point numbers  Pointers  Dynamic memory allocation  Parralelism  Recursion  Interrupts Chapter 12 Dependability and Security Specification 17

Dependability Through Programming  (Minimize error prone constructs)  Inheritance  Aliasing  Unbounded Arrays  Default input processing Chapter 12 Dependability and Security Specification 18

Dependability Through Programming  #5 Provide restart (desktop apps)  #6 Check array bounds  #7 Include timeouts when calling external components  #8 Name constants Chapter 12 Dependability and Security Specification 19