John D. McGregor C10 – Error architecture

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design-IT0207 iiI Semester
Advertisements

EECE499 Computers and Nuclear Energy Electrical and Computer Eng Howard University Dr. Charles Kim Fall 2013 Webpage:
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
SE 555 Software Requirements & Specification Beyond Requirements Based on Weigers Chapter17.
CHAPTER 9: Input / Output
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
Rensselaer Polytechnic Institute CSCI-4210 – Operating Systems CSCI-6140 – Computer Operating Systems David Goldschmidt, Ph.D.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 7: Focusing on Users and Their Tasks.
Chapter 6 Use Cases. Use Cases: –Text stories Some “actor” using system to achieve a goal –Used to discover and record requirements –Serve as input to.
Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Use Cases CS/SWE 421 Introduction to Software.
Use Cases 1. Last week  Introduction to software engineering  How is it different from traditional engineering?  Introduction to specification  Operational.
CPSC 875 John D. McGregor C10 – Physical architecture.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
Software Testing Yonsei University 2 nd Semester, 2014 Woo-Cheol Kim.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development 3.
A Use Case Primer 1. The Benefits of Use Cases  Compared to traditional methods, use cases are easy to write and to read.  Use cases force the developers.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
CPSC 871 John D. McGregor Module 4 Session 1 Architecture Analysis/Design.
John D. McGregor Class 4 – Initial decomposition
RELIABILITY ENGINEERING 28 March 2013 William W. McMillan.
The Software Development Process
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.
CPSC 875 John D. McGregor Security-2. A medical platform.
CPSC 873 John D. McGregor Session 9 Testing Vocabulary.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Use Cases CS/SWE 421 Introduction to Software.
CPSC 871 John D. McGregor Module 8 Session 1 Testing.
CPSC 873 John D. McGregor Session 6 Preparing for Architecture V & V.
UML - Development Process 1 Software Development Process Using UML.
CPSC 875 John D. McGregor Feedback Control Loop architecture Class 6.
Project Deliverables CIS 4328 – Senior Project 2 And CEN Engineering of Software 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
CPSC 372 John D. McGregor Module 8 Session 1 Testing.
Software Testing.
John D. McGregor Module 3 Session 2 Architecture Analysis/Design
OPERATING SYSTEMS CS 3502 Fall 2017
CMPE 280 Web UI Design and Development August 29 Class Meeting
Integration Testing.
John D. McGregor Session 9 Testing Vocabulary
Recall The Team Skills Analyzing the Problem (with 5 steps)
Chapter 8 – Software Testing
The Pseudocode Programming Process
Chapter 18 Software Testing Strategies
John D. McGregor Session 9 Testing Vocabulary
John D. McGregor Quality attributes
Programmable Logic Controllers (PLCs) An Overview.
John D. McGregor Session 9 Testing Vocabulary
Use Cases CS/SWE 421 Introduction to Software Engineering Dan Fleck
Testing and Test-Driven Development CSC 4700 Software Engineering
Operating Systems.
Use Cases CS/SWE 421 Introduction to Software Engineering Dan Fleck
Software testing.
Design and Implementation
John D. McGregor Session 6 Preparing for Architecture V & V
John D. McGregor Session 5 Error Modeling
John D. McGregor Design Concept C5
Exception Handling Imran Rashid CTO at ManiWeber Technologies.
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
CIS 4328 – Senior Project 2 And CEN Engineering of Software 2
Engineering Quality Software
John D. McGregor Quality attributes
Presentation transcript:

John D. McGregor C10 – Error architecture CPSC 875 John D. McGregor C10 – Error architecture

Smart Home architecture

Communication diagram for context interaction in the Smart Kitchen.

E-servant architecture

Context manager

Use case

To illustrate the interaction of the various blocks of the architecture, consider the use case drawn in Figure 7, in the event of smoke detection. The ZigBee smoke sensor (1) warns to the CM (2) that there is smoke in the kitchen. LU (3) is notified and decides to launch a user-scenario to warn to the user. UIC (4) commands the interfaces (5) in order to warn the user about the situation. After a timeout, the interfaces (6) notify to the UIC (7) that the user does not interact with them and the LU (3) decides to turn off the PLC hob and the oven (10) through the CM (9).

Architecture and process

Architecture and process - 2

Architecture and process - 3

Iterations within iterations-4 ReqSpec Verify AADL

Architecture and process - 5 ADD TSP (Team software process) Using an agile process Qualities determined up front Architecture developed just in time

What can go wrong? Error vs uncertainty Uncertainty in every measurement Object being measured expands/contracts with temperature Represent 1/3 as a decimal Eyeball a measurement using a ruler Use the error ontology to give ideas of what can go wrong Pacemaker – shocks too early, too late, …

Error ontology-1

Error ontology-2

Mitigation For hardware, redundancy is the primary mitigation for faults Want more reliability add copies For software, functional redundancy is workable but the implementations must be developed independently and this sharply increases cost Develop specific traces of error logic Usually the project has constraints on MTTR…

I/O Errors Each input field is appropriately constrained Numeric data directly from a user may need to be alpha and then converted Accept/reject input as close to the actual input field as possible Use standard libraries that check availability and readiness of devices to avoid livelock

Error Logging Every component should log errors before they are handled or propagated Reflection can be used to provide access to each component Log sufficient information to locate and fix the defect

Error propagation Execution of a fault results in an error The error value may be returned as a result OR it might be passed as a parameter to a subcomponent OR it might be handled

Context http://www.docsity.com/en/oscillating-output-components-and-techniques-for-digital-systems-solved-quiz/286006/

Something goes wrong. What is the architecture for that part of the logic? Nominal Error

Maybe go to a reduced feature set. Nominal Error

Exception handling Backs up the call chain Looks for an error handler

Things to do: Reduced feature set – don’t allow operations that could corrupt vital features Replace bad value with estimate Provide an escape route if they cannot make a valid selection. Clean up before progressing or backtracking Recurse only if you have a solid base case http://architectingusability.com/2012/06/05/designing-error-handling-for-maximum -usability-in-your-application/

Nominal behavior annex behavior_annex {** states off:initial state; on:state; on_not_engaged: state; on_engaged: state; on_engaged_steady: state; on_engaged_slowing: state; on_engaged_accelerating: state; transitions off->[]->on; on-[]->off; on-[]->on_not_engaged; on_not_engaged-[]->on_engaged; on_engaged-[]->on_not_engaged; on_not_engaged-[]->on; on_engaged-[]->on_engaged_steady; on_engaged_steady-[]->on_engaged_slowing; on_engaged_steady-[]->on_engaged_accelerating; on_engaged_accelerating-[]->on_engaged_steady; on_engaged_slowing-[]->on_engaged_steady; **};

Component Error behavior annex EMV2 {** use types error_library; use behavior error_library::stateMachine; error propagations logger_out: out propagation {BadValue, LateValue}; sensor_data_in : in propagation {NoValue, BadValue}; sensor_data_out : out propagation {NoValue, BadValue,LateValue}; flows ef0 : error source logger_out{BadValue, LateValue}; ef1 : error source sensor_data_out{LateValue}; ef2 : error path sensor_data_in{NoValue, BadValue}->sensor_data_out{LateValue}; end propagations; component error behavior events BadRead : error event; RecoverEvent: recover event; transitions t0 : Operational -[sensor_data_in{NoValue, BadValue}]-> Failed; t1 : Operational -[BadRead]-> Failed; t2 : Failed -[RecoverEvent]-> Operational; end component; **};

Composite error annex EMV2 {** use types error_library; use behavior error_library::stateMachine; composite error behavior states [radar_handler.Failed and camera_handler.Failed and gps_handler.Failed and speedometer_handler.Failed]-> Failed; [radar_handler.Failed and camera_handler.Failed]-> Failed; [radar_handler.Failed or camera_handler.Failed]-> Operational; [radar_handler.Operational and camera_handler.Operational and gps_handler.Operational and speedometer_handler.Operational]-> Operational; end composite; **};

Refinement hierarchy

Refinement hierarchy - inputs and outputs may be changed through refinement so constraints have to be propagated

Active mode

Degraded mode

As errors propagate up the call chain the message should change to be meaningful to the new audience 2 1 3

As an error is propagated a return value be certain the value is within the input constraints

Here’s what you are going to do: Revisit your error model Include error and nominal behavior. Read: Assumed: http://www.sei.cmu.edu/reports/07tn043.pdf Optional: http://hbswk.hbs.edu/item/5699.html At the bottom of the page there is a place to download “Full Working Paper Text” Submit the revised model by 11:59 PM Feb 26th