CPSC 873 John D. McGregor Session 6 Preparing for Architecture V & V.

Slides:



Advertisements
Similar presentations
KAIS T The Vision of Autonomic Computing Jeffrey O. Kephart, David M Chess IBM Watson research Center IEEE Computer, Jan 발표자 : 이승학.
Advertisements

Page 1 Building Reliable Component-based Systems Chapter 13 -Components in Real-Time Systems Chapter 13 Components in Real-Time Systems.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
1 Software Requirements Specification Lecture 14.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Romaric GUILLERM Hamid DEMMOU LAAS-CNRS Nabil SADOU SUPELEC/IETR.
Intro to Excel - Session 7.11 Tutorial 7 - Session 7.1 Developing an Excel Application.
The Software Development Life Cycle: An Overview
Software Engineering 2003 Jyrki Nummenmaa 1 REQUIREMENT SPECIFICATION Today: Requirements Specification Requirements tell us what the system should.
SE-02 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it. Requirements.
An Introduction to Software Architecture
Engineering System Design
© Copyright 2014 Rockwell Collins, Inc. All rights reserved. Resolute: An Assurance Case Language for Architecture Models Andrew Gacek, John Backes, Darren.
University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution.
CPSC 875 John D. McGregor C10 – Physical architecture.
10 Software Architecture CSCU 411 Software Engineering.
John D. McGregor Session 2 Preparing for Requirements V & V
The Systems Development Life Cycle
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
CPSC 371 John D. McGregor Session 32 This is it..
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
CMSC 345 Fall 2000 Requirements Overview. Work with customers to elicit requirements by asking questions, demonstrating similar systems, developing prototypes,
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
Chapter 3 System Performance and Models Introduction A system is the part of the real world under study. Composed of a set of entities interacting.
OHTO -01 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it.
SYSE 802 John D. McGregor Module 1 Session 2 Requirements Modeling in SysML.
03/01/20161 A MODEL FOR VARIABILITY DESIGN RATIONALE IN SPL Ismênia Galvão, Pim van den Broek & Mehmet Akşit VARI-ARCH 2010, Copenhagen,
OPERATING SYSTEMS CS 3530 Summer 2014 Systems and Models Chapter 03.
Lecture 13.  Failure mode: when team understands requirements but is unable to meet them.  To ensure that you are building the right system Continually.
Architecture Analysis and Design Language: An Overview Drew Gardner.
Basic Concepts and Definitions
CPSC 875 John D. McGregor Feedback Control Loop architecture Class 6.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
CPSC 875 John D. McGregor Reference Architectures C9.
CPSC 371 John D. McGregor Session 10 Requirements analysis methods.
CPSC 873 John D. McGregor Session 3 Requirements V & V.
SwCDR (Peer) Review 1 UCB MAVEN Particles and Fields Flight Software Critical Design Review Peter R. Harvey.
A Brief Introduction to Architectural Modeling Using AADL and Collaborative, Adaptive Cruise Control John D. McGregor Roselane S. Silva.
CpSc 875 John D. McGregor C11 - Documentation. Stock trading system trading-system-architecture- post/#prettyPhoto[slides]/7/
I&C Lab Seminar Procedure for the Software Requirements Specification for Safety Critical Systems Seo Ryong Koo Korea Advanced Institute Science.
CPSC 875 John D. McGregor C18. Partitions Requirements Need is for an e-commerce system which presents catalog item descriptions and takes orders. The.
CPSC 875 John D. McGregor Wrap-up. Ultimate goal Encapsulate uncertainty, risk, and change We analyze and measure to determine where to form modules.
CPSC 875 John D. McGregor C16.
John D. McGregor C10 – Error architecture
OPERATING SYSTEMS CS 3502 Fall 2017
Design by Contract Jim Fawcett CSE784 – Software Studio
Design by Contract Jim Fawcett CSE784 – Software Studio
John Backes, Rockwell Collins Dan DaCosta, Rockwell Collins
Architecture Concept Documents
Engine Control Systems
CPSC 875 John D. McGregor C16.
By Dr. Abdulrahman H. Altalhi
Outcome TFCS-11// February Washington DC
Designing Software for Ease of Extension and Contraction
John D. McGregor Session 8 Evaluating Architectures written in AADL
Outcome TFCS-11// February Washington DC
John D. McGregor Session 4 Requirements V & V - continued
John D. McGregor C15.1 – Process/AUTOSAR
CPSC 875 John D. McGregor C19.
John D. McGregor Session 6 Preparing for Architecture V & V
John D. McGregor Session 5 Error Modeling
An Introduction to Software Architecture
Software requirements
Software Verification, Validation, and Acceptance Testing
Lecture # 7 System Requirements
Human Computer Interaction Lecture 14 HCI in Software Process
John Backes, Rockwell Collins Dan DaCosta, Rockwell Collins
Requirements Engineering Lecture 6
Presentation transcript:

CPSC 873 John D. McGregor Session 6 Preparing for Architecture V & V

So far Idea Retire Requirements Architecture feedback Decomposition Implementation review Use cases Requirements Infrastructure Configuration management Process/ notations reconsider Scope

Decomposition

Hazards In identifying hazards there are two principal considerations: exceptional conditions within architecture elements (characterized using the EMV2 error ontology) and mismatched assumptions (mismatched assumption- guarantee contracts between systems) about their interactions. We will handle both

Add-in On the resources page there is download.zip Unzip it Copy into your copy of OSATE Be certain that you copy at the correct level

Capturing requirements We will use reqspec to capture requirements And we will use a set of languages to define verification activities These languages will make the process of V&V more robust and automated. Given we are building the cruise control for a family of vehicles We develop requirements first

Goal grammar Goal ::= goal Name ( : Title )? ( for TargetElement )? [ ( category ( )+ )? ( description Description )? ( ConstantVariable )* ( rationale String )? ( refines ( )+ )? ( conflicts with ( )+)? ( evolves ( )+)? ( dropped )? ( stakeholder ( )+ )? ( see document requirement ( )+)? ( see document ( DocReference )+ )? ( issues (String)+ )? ( ChangeUncertainty )? ] Title ::= String TargetClassifier ::= TargetElement ::= DocReference ::= URI to an element in an external document

Stakeholder goals grammar StakeholderGoals ::= stakeholder goals NestedName ( : Title )? for ( TargetClassifier | all ) ( use constants * )? [ (description Description )? (see document ( DocReference )+ )? ( ConstantVariable )* ( Goal )+ ( issues (String)+ )? ]

Specific goal stakeholder goals caccGoals for integration::cacc_rt.devices [ goal g1 : "Safety" [ description "The system shall be safe." rationale "This is a control system, whose failure affects lives. " stakeholder cacc.rs ]]

Requirement Grammar Requirement ::= requirement Name ( : Title )? ( for TargetElement )? [ ( category ( )+ )? ( description Description )? ( Variable )* ( Predicate )? ( rationale String )? ( mitigates ( )+ )? ( refines ( )+)? ( decomposes ( )+)? ( evolves ( )+)? ( dropped )? (development stakeholder ( )+ )? ( see goal ( )+)? ( see document goal ( )+)? ( see document requirement ( )+)? ( see document ( DocReference )+ )? ( issues (String)+ )? ( ChangeUncertainty )? ]

specific requirement requirement specification caccreqs for integration::cacc_rt.devices [ val MaximumSpeed = mph requirement speed_R1 : "throttle cannot exceed the maximum setting" [ description this " shall have a maximum reading that is less than or equal to maximum setting" compute actualSpeed assert value actualSpeed <= MaximumSpeed rationale "The system might exceed the maximum safe speed" mitigates "Invalid data sent by the speedometer" //category [cc] see goal caccGoals.g1 ]

System Requirements Grammar SystemRequirements ::= System requirements NestedName ( : Title )? for ( TargetClassifier | all ) ( use constants * )? [ ( description String )? (see document ( DocReference )+ )? ( Variable )* ( Requirement )* ( issues (String)+ )? ]

Organization Grammar Organization::= organization Name ( Stakeholder )+ Stakeholder ::= stakeholder Name [ ( full name String )? ( title String )? ( description String )? ( role String )? ( String )? ( phone String )? ]

Specific organization organization cacc stakeholder rs [ full name "Roselane S. Silva" ] stakeholder jdm [ full name "John D. McGregor" ]

Requirement Categories RequirementCategories ::= requirement categories [ ( RequirementCategory )+ ] RequirementCategory ::= Name ( { + } )?

Specific categories selection categories [cc acc cacc]

Variables and Constants Variable ::= ConstantVariable | ComputedVariable ConstantVariable ::= val ( Type )? Name = Value ComputedVariable ::= computed Name Type ::= constants Name [ ConstantVariable+ ]

constants Val string Logger_IP_Address= ” ” Computed_Braking_Distance real

Constants GlobalConstans ::= constants Name [ ConstantVariable+ ] Constants Minimum_Separation = 2

Traceability As we build the requirements model we have traceability in the form of references to the entity constrained by the requirement. We also have traceability via requirements categories.

Agree model checking An annex to AADL that allows the specification of guarantees and checks their correctness. annex agree {** guarantee ”dummy” : true ; **}; Inserted into an AADL component specification We need to replace dummy and true

1. insert 2. Select.impl and right click and select all levels 3. Read results

Agree example-1 system top_level features Input: in data port Base_Types::Integer; Output: out data port Base_Types::Integer; annex agree {** assume "System input range " : Input < 10; guarantee "System output range" : Output < 50; **}; end top_level;

Agree example-2 subcomponents A_sub : system A ; B_sub : system B ; C_sub : system C ; connections IN_TO_A : port Input -> A_sub.Input {Communication_Properties::Timing => immediate;}; A_TO_B : port A_sub.Output -> B_sub.Input {Communication_Properties::Timing => immediate;}; A_TO_C : port A_sub.Output -> C_sub.Input1 {Communication_Properties::Timing => immediate;}; B_TO_C : port B_sub.Output -> C_sub.Input2 {Communication_Properties::Timing => immediate;}; C_TO_Output : port C_sub.Output -> Output {Communication_Properties::Timing => immediate;}; end top_level.Impl;

Agree example-3 system A features Input: in data port Base_Types::Integer; Output: out data port Base_Types::Integer; annex agree {** assume "A input range" : Input < 20; guarantee "A output range" : Output < 2*Input; **}; end A ;

Function Failure Condition (hazard description) Phase Effect of Failure Condition on Aircraft/Cr ew Classifica tion Reference to supporting material Verification Control Thrust Engine provides no thrust Engine provides too little thrust Engine provides too much thrust Engine is slow to provide commanded thrust (increase or decrease) Engine will not shutdown when commanded Engine cannot be controlled - Loss of Engine Thrust Control (LOTC) Taxi, Takeoff, Landing, and Flight Function Hazard Analysis

AccidentSystem-Level (operational) Hazards A-1: Loss of life or serious injury due to aircraft engine A-2: Catastrophic damage to aircraft or other property due to aircraft engine H0: Ineffective thrust to maintain controlled flight or safe taxi H1: Engine provides no thrust H2: Engine provides too little thrust H3: Engine provides too much thrust H4: Engine is slow to provide thrust (increase or decrease) H5: Engine will not shutdown when commanded H6: Complete Loss of Engine Thrust Control (LOTC)

HazardsSafety Requirements H1: Engine provides no thrustSC1: Thrust must be provided at all times when commanded H2: Engine provides too little thrust H3: Engine provides too much thrust SC2: Thrust level must be provided at the commanded level. H4: Engine is slow to provide commanded thrustSC3: Engine must provide commanded thrust in xxx seconds. H5: Engine will not shutdown when commanded [The relevant safety constraints arising out of this include SC1, SC2, and SC4] H6: Engine cannot be controlled - Loss of Engine Thrust Control (LOTC) SC4: Engine must respond to all commands SC4.1: Engine must start when commanded SC4.2: Engine must shutdown when commanded

Error handling

Resolute

Example Resolute models