SlideShare a Scribd company logo
1 of 48
Download to read offline
Obstacle Driven Development
Extending a Specification 2
©odd.enterprises
26/02/2015
Obstacle Driven Development
26/02/2015 ©odd.enterprises 2
ODD Circle Model
26/02/2015 ©odd.enterprises 3
ODD Traffic Light Model
26/02/2015 ©odd.enterprises 4
Background
Ideas of Obstacle Driven Development (ODD) are based on
numerous development processes including:
• ISO V-model
• Test Driven Development
• ISO specifications
• Requirements analysis
• Agile principles
26/02/2015 ©odd.enterprises 5
Design Phases
A traditional design process has
several phases to produce a
product.
• Requirement analysis
• Preliminary design
• Detailed design
• Implementation
• Testing
• Operations
26/02/2015 ©odd.enterprises 6
Preliminary and Detailed Design
An ODD Specification is a
combination of preliminary and
detailed design.
• ODD Specification is a complete
description of how a product
should behave
• ODD Specification should contain
only descriptions, up to and
including simulations
26/02/2015 ©odd.enterprises 7
International Organisation for Standardisation 1
The International Organisation for Standardisation (ISO) specify
the minimum behaviour that is expected of products which must
conform.
By conforming to standards such as ISO a product:
• Gains access to markets
• Can be described as state of the art
• Limits legislative exposure
26/02/2015 ©odd.enterprises 8
International Organisation for Standardisation 2
The ISO have defined processes for
analysis and specifications.
Obstacle Driven Development was
created by following a summary of
ISO 26262 "Road vehicles –
Functional safety“ and has been
designed to be compatible.
• Other standards bodies such as
the IEC have similar processes.
The ten parts of ISO 26262:
1. Vocabulary
2. Management of functional safety
3. Concept phase
4. Product development at the system level
5. Product development at the hardware level
6. Product development at the software level
7. Production and operation
8. Supporting processes
9. Automotive Safety Integrity Level (ASIL)-
oriented and safety-oriented analysis
10. Guideline on ISO 26262
26/02/2015 ©odd.enterprises 9
Specification
A traditional specification is an
interface between problem and
solution domains.
• Description of design and
materials which make a product
• Specification not used in all
traditional processes
• Requirements are often used
directly
26/02/2015 ©odd.enterprises 10
Importance of a Specification
A specification can improve the
development process of a product.
• Product cost is reduced with an
improved specification process
• Using a full specification can
prevent errors from propagating
• Creating and editing a
specification is low cost
26/02/2015 ©odd.enterprises 11
ODD Specification
ODD Specifications differ from
traditional by being separated from
problem and solution domains.
• Specification contains behaviours
which cover requirements
• Fully separated from Analysis and
Solution stages
• Links stages through appropriate
unit tests
26/02/2015 ©odd.enterprises 12
V-model
V-models formed the basic ODD
structure and are often used in ISO
developments.
• V-models inspired linking of
elements for ODD
• Often used for safety critical
design processes
• Numerous V-models have been
created, some inspired by TDD
26/02/2015 ©odd.enterprises 13
Behaviours 1
Whatever is desired of a product
can be expressed by its behaviours.
A definition of a behaviour is
• how an animal or person behaves
in response to a particular
situation or stimulus.
Replacing the subject with product
• how a product behaves in
response to a particular situation
or stimulus.
26/02/2015 ©odd.enterprises 14
Behaviours 2
Separating a specification from
requirements allows for greater
freedom.
• Numerous behaviours may
satisfy a requirement
• Alternative or back up behaviours
are described and investigated
• Behaviours determined by
analysis of situations
26/02/2015 ©odd.enterprises 15
Behaviour Levels
Behaviours are described by their
relative system levels.
• High level behaviours should
describe how a product behaves
• Low level behaviours describe
how materials behave
• Decomposition allows a
deductive reasoning process
• Tests are linked to each level
26/02/2015 ©odd.enterprises 16
Decomposition
Decomposition gives a top-down
approach to the creation of a
specification and product.
• Allows effective determination of
lower level behaviours
• Unnecessary behaviours are not
described
• Allows a deductive process for
creating the specification
26/02/2015 ©odd.enterprises 17
Documents Checkpoint
An ODD product has sufficient
documentation to describe all
expected behaviours.
• Documents describe everything a
product does
• Decomposed from high level
behaviours into components
• Intended for all stakeholders
26/02/2015 ©odd.enterprises 18
ODD Specification 1
Each behaviour specified creates
tests through decomposition and
definition.
• Specified
– Used to describe a behaviour with
no other detail
• Functional
– Describes what a behaviour does
with inputs, outputs and internal
states defined
26/02/2015 ©odd.enterprises 19
ODD Specification 2
• Logical
– Describes an expected behaviour
– Expected behaviour creates
assertions for unit tests
• Procedural
– Used for feedback against situation
analysis
– Only used to ensure behaviours are
verified and validated
27/02/2015 ©odd.enterprises 20
ODD Specification 3
Specification is decomposed and
defined starting with specified
behaviour and moving to the right.
• Specified behaviour has inputs
and outputs defined to become
functional behaviour
• Logical behaviour is expected or
desired behaviour of a product
27/02/2015 ©odd.enterprises 21
Specification Creation
Behaviours are decomposed and
defined to create a specification
and unit tests.
• Decomposition of high level
behaviours into lower levels
• Definition of specified behaviours
into logical behaviours
• Creation of tests through
assertions to link a solution
22PDD, Jonathan Herring
Specified Behaviour
Specified behaviour regards what it
is expected to do for input, output
and internal states.
• No further detail
• Full specification linking all inputs
with outputs to ensure nothing is
left out
• Easy to understand, discuss,
produce and edit
26/02/2015 ©odd.enterprises 23
Functional Behaviour
Functional behaviour expands
specified behaviour by adding
input, output and internal states.
• Input, outputs and internal states
are defined with units
• Expands on basic description of a
products behaviours
• Ensures behaviours link and
combine into a complete
specification
26/02/2015 ©odd.enterprises 24
Logical Behaviour
Logical behaviour builds on
functional behaviour by adding
expectations.
• Detail is defined until expected
behaviours are described
• Allows a complete description of
a products expected behaviour
• Tests are created from assertions
of expected behaviour
27/02/2015 ©odd.enterprises 25
Modelled motor is a simple DC.
Procedural Behaviour
Procedural behaviour is a model or
simulation of a product as seen by
customers and other stakeholders.
• Ensures specification of a
product is as required by
customers and stakeholders
• Increases communication
between developers and
customers
26/02/2015 ©odd.enterprises 26
Unit Testing
Unit tests and the Single
Responsibility Theorem facilitate
the testing process.
• Every element is tested
• Each test has a single result
• Unit tests are combined to give
complex testing processes
• Green light is for when tests are
passed and previous stage linked
27/02/2015 ©odd.enterprises 27
Behaviour Driven Development 1
Behaviour Driven Development
inspired the linking of a
specification to a design solution.
• Each behaviour creates tests
• Multiple behaviours can be
solved by a single solution
• Designing according to
behaviours reduces ambiguity
27/02/2015 ©odd.enterprises 28
Behaviour Driven Development 2
Reordering the BDD sequence gives
a sequence similar to traffic lights.
• Red light now used for unverified
and unvalidated processes
• Amber light now used when tests
are created and code written
• Green light used when tests have
been passed
27/02/2015 ©odd.enterprises 29
Write
Test
Write
Code
Validate /
Refactor
Behaviour
Implementing Unit Testing 1
Any process has a result of an
output and/or change in internal
state.
• Initial stage of a specification
describes responses to situations
and stimulus
• Unit tests for output and/or
internal change of a component
• Unit tests are integrated or
decomposed as necessary
27/02/2015 ©odd.enterprises 30
Implementing Unit Testing 2
Internal states are often impossible
to observe directly and increase
importance of creating low level
unit tests.
• Unit tests combined to test
complex behaviours
• Combined unit tests are also
considered a unit test
27/02/2015 ©odd.enterprises 31
Linking Tests 1
Tests link behaviours with solutions
through testing and design.
• Solutions are designed to tests
created
• Each solution is a single aspect of
the product
• Unit testing is applied
• Test suite created
26/02/2015 ©odd.enterprises 32
Linking Tests 2
Testing and design should concern
behaviours contained in a
specification.
• Customers are involved for
utilisation and elicitation
• Each solution implements 1 or
more behaviours
• Tests suite ran for any changes or
additions
26/02/2015 ©odd.enterprises 33
Creating Tests 1
Creation of a solution from a
specification is inspired by
Behaviour Driven Development.
• Often tests can be created by
simply rewriting a behaviour
• Designing a solution according to
tests reduces debugging
• Creation of tests and designs may
continue until all behaviours are
implemented
26/02/2015 ©odd.enterprises 34
Creating Tests 2
A full test suite is created using
each behaviour contained by a
specification.
• Creating a test first ensures a
developer understands their
objective
• Design according to passing tests
reduces ambiguity
• Passing a test ensures behaviour
is implemented
26/02/2015 ©odd.enterprises 35
Solution Unit Testing
Solution Design
• Select a behaviour
• Test for solution
– Create a test to ensure a behaviour
is implemented by a solution
• Design for solution
– Pass a test to ensure a behaviour is
implemented by a solution
26/02/2015 ©odd.enterprises 36
ODD Solution Flowchart
Flow chart to explain the creation
of an ODD Solution.
1. Behaviour is selected which has
to be covered by a solution
2. Unit test is created
3. Solution is designed
4. If fail repeat Stage 3
5. Repeat Stages 1 – 4 until all
behaviours are specified
26/02/2015 ©odd.enterprises 37
ODD Combined Model
26/02/2015 ©odd.enterprises 38
The testing process is
similar throughout
ODD with adaptions
between stages.
• Each set of traffic
light demonstrates
unit testing
• Tests begin with an
element from
previous stage
Specification Unit Testing
Specification of behaviours
• Select a requirement
• Verification
– Create a test to ensure a
requirement is covered by a
behaviour
• Validation
– Pass a test ensuring a requirement
is covered by a behaviour
27/02/2015 ©odd.enterprises 39
Linking Tests 3
Each situation creates a unit test to
link analysis with specification.
• Diagrams shows various stages of
testing progress
• Once unit test is passed it
becomes green
• Tests are implemented as a suite
and ran when editing occurs
26/02/2015 ©odd.enterprises 40
Linking Tests 4
Each situation is linked to a
behaviour contained in a
specification.
• Behaviour A covers normal
operation
• Behaviour B and C cover single
failures of components
• Behaviour D covers total failure
of components
26/02/2015 ©odd.enterprises 41
Linking Tests 5
When using a waterfall type
development then analysis is
complete when all tests are passed.
• Tests run when any changes in
analysis or specification
• Ensures expected situations are
covered
• Potential for infinite situations
26/02/2015 ©odd.enterprises 42
Cross Examination 1
Failing products may result in
litigation and therefore a cross
examination of a products
behaviours is applicable.
• Identification of errors and
contradictions before solution is
designed
• Unit tests are created to verify
behaviours with validation being
a pass
26/02/2015 ©odd.enterprises 43
Does Behaviour A cover Situation A?
Cross Examination 2
Cross examination is where
behaviours are compared with
situations to find errors and
contradictions.
• Process used in development of a
specification
• Unit tests implemented between
situations and behaviours
26/02/2015 ©odd.enterprises 44
ODD Specification Flowchart
Flow chart designed to explain
creation of an ODD Specification.
1. Situation is selected which has
to be covered by a behaviour
2. Verification test is created
3. Behaviour is specified
4. If fail repeat Stage 3
5. Repeat Stages 1 – 4 until all
behaviours are specified
26/02/2015 ©odd.enterprises 45
ODD Flowchart
26/02/2015 ©odd.enterprises 46
Further Information and Questions
• Website
• Presentations
• Facebook
• Twitter
• Email
26/02/2015 ©odd.enterprises 47
Legal Stuff
References
Test Driven Development for Embedded C
James Grenning, 2011
International Organisation for Standardisation
http://www.iso.org/iso/home/standards.htm
NASA, Assurance Process for Complex Electronics
www.hq.nasa.gov/office/codeq/software/ComplexElectronics/
Assessment of the ISO 26262 Standard
http://www.sae.org/events/gim/presentations/2012/qi_volpe.pdf
Disclaimer
The ODD M-model and associated processes are provided by odd.enterprises and may be
used for any purpose whatsoever.
The names odd.enterprises and associated logos should not be used in any representation,
advertising, publicity or other manner whatsoever to endorse or promote any entity that
adopts or uses the model and/or associated processes.
odd.enterprises does not guarantee to provide support, consulting, training or assistance of
any kind with regards to the use of the model and/or processes including any updates.
You agree to indemnify odd.enterprises and its affiliates, officers, agents and employees
against any claim or demand including reasonable solicitors fees, related to your use,
reliance or adoption of the model and/or processes for any purpose whatsoever.
The model is provided by odd.enterprises “as is” and any express or implied warranties,
included but not limited to the implied warranties of merchantability and fitness for a
particular purpose are expressly disclaimed.
In no event shall odd.enterprises be liable for any damages whatsoever, including but not
limited to claims associated with the loss of data or profits, which may result from any
action in contract, negligence or other tortious claim that arises out of or in connection with
the use or performance of the model.
26/02/2015 ©odd.enterprises 48

More Related Content

What's hot

How To Manage and Mitigate Risk in Medical Device New Product Development
How To Manage and Mitigate Risk in Medical Device New Product DevelopmentHow To Manage and Mitigate Risk in Medical Device New Product Development
How To Manage and Mitigate Risk in Medical Device New Product DevelopmentGreenlight Guru
 
Medical Device Development
Medical Device DevelopmentMedical Device Development
Medical Device DevelopmentJosh Simon
 
6 Steps to Accelerate the Development Cycle | Life Science Parker Hannifin
6 Steps to Accelerate the Development Cycle | Life Science Parker Hannifin6 Steps to Accelerate the Development Cycle | Life Science Parker Hannifin
6 Steps to Accelerate the Development Cycle | Life Science Parker HannifinParker Hannifin Corporation
 
Agile testing: from Quality Assurance to Quality Assistance
Agile testing: from Quality Assurance to Quality AssistanceAgile testing: from Quality Assurance to Quality Assistance
Agile testing: from Quality Assurance to Quality AssistanceLuca Giovenzana
 
Proven Process Medical Devices, Design, Development, Testing, and Manufacture
Proven Process Medical Devices, Design, Development, Testing, and ManufactureProven Process Medical Devices, Design, Development, Testing, and Manufacture
Proven Process Medical Devices, Design, Development, Testing, and ManufactureMichael Kanis
 
Design Control Regulation Comparison
Design Control Regulation ComparisonDesign Control Regulation Comparison
Design Control Regulation Comparisonsumjoy
 
Understanding and Controlling Bioprocess Variation | Parker domnick hunter
Understanding and Controlling Bioprocess Variation | Parker domnick hunterUnderstanding and Controlling Bioprocess Variation | Parker domnick hunter
Understanding and Controlling Bioprocess Variation | Parker domnick hunterParker Hannifin Corporation
 
Engineering change management webinar april 2013
Engineering change management webinar april 2013Engineering change management webinar april 2013
Engineering change management webinar april 2013John Cachat
 
Gray areas of vda 6.3 process auditors
Gray areas of vda 6.3 process auditors Gray areas of vda 6.3 process auditors
Gray areas of vda 6.3 process auditors Kiran Walimbe
 
FDA Focus on Design Controls
FDA Focus on Design Controls FDA Focus on Design Controls
FDA Focus on Design Controls April Bright
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurancelakshmi1693
 
Concurrent Engineering – Breaking down the silos
Concurrent Engineering – Breaking down the silosConcurrent Engineering – Breaking down the silos
Concurrent Engineering – Breaking down the silosNNE
 
High Purity Water Project Presentation No Unplanned Downtime
High Purity Water Project Presentation No Unplanned DowntimeHigh Purity Water Project Presentation No Unplanned Downtime
High Purity Water Project Presentation No Unplanned DowntimeHargrove Life Sciences
 
Achieving Built-in-Quality: Actions and Implementation
Achieving Built-in-Quality: Actions and ImplementationAchieving Built-in-Quality: Actions and Implementation
Achieving Built-in-Quality: Actions and ImplementationApril Bright
 
Process auditing as per VDA 6.3
Process auditing as per VDA 6.3Process auditing as per VDA 6.3
Process auditing as per VDA 6.3Kiran Walimbe
 
Summarized presentation vda 6.3 2016 (serial production)
Summarized presentation vda 6.3 2016 (serial production)Summarized presentation vda 6.3 2016 (serial production)
Summarized presentation vda 6.3 2016 (serial production)Kiran Walimbe
 

What's hot (19)

How To Manage and Mitigate Risk in Medical Device New Product Development
How To Manage and Mitigate Risk in Medical Device New Product DevelopmentHow To Manage and Mitigate Risk in Medical Device New Product Development
How To Manage and Mitigate Risk in Medical Device New Product Development
 
Medical Device Development
Medical Device DevelopmentMedical Device Development
Medical Device Development
 
6 Steps to Accelerate the Development Cycle | Life Science Parker Hannifin
6 Steps to Accelerate the Development Cycle | Life Science Parker Hannifin6 Steps to Accelerate the Development Cycle | Life Science Parker Hannifin
6 Steps to Accelerate the Development Cycle | Life Science Parker Hannifin
 
Agile testing: from Quality Assurance to Quality Assistance
Agile testing: from Quality Assurance to Quality AssistanceAgile testing: from Quality Assurance to Quality Assistance
Agile testing: from Quality Assurance to Quality Assistance
 
Ppt en 5
Ppt en 5Ppt en 5
Ppt en 5
 
Quality Assurance Process
Quality Assurance ProcessQuality Assurance Process
Quality Assurance Process
 
Proven Process Medical Devices, Design, Development, Testing, and Manufacture
Proven Process Medical Devices, Design, Development, Testing, and ManufactureProven Process Medical Devices, Design, Development, Testing, and Manufacture
Proven Process Medical Devices, Design, Development, Testing, and Manufacture
 
Design Control Regulation Comparison
Design Control Regulation ComparisonDesign Control Regulation Comparison
Design Control Regulation Comparison
 
Understanding and Controlling Bioprocess Variation | Parker domnick hunter
Understanding and Controlling Bioprocess Variation | Parker domnick hunterUnderstanding and Controlling Bioprocess Variation | Parker domnick hunter
Understanding and Controlling Bioprocess Variation | Parker domnick hunter
 
Validation documents
Validation documentsValidation documents
Validation documents
 
Engineering change management webinar april 2013
Engineering change management webinar april 2013Engineering change management webinar april 2013
Engineering change management webinar april 2013
 
Gray areas of vda 6.3 process auditors
Gray areas of vda 6.3 process auditors Gray areas of vda 6.3 process auditors
Gray areas of vda 6.3 process auditors
 
FDA Focus on Design Controls
FDA Focus on Design Controls FDA Focus on Design Controls
FDA Focus on Design Controls
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
Concurrent Engineering – Breaking down the silos
Concurrent Engineering – Breaking down the silosConcurrent Engineering – Breaking down the silos
Concurrent Engineering – Breaking down the silos
 
High Purity Water Project Presentation No Unplanned Downtime
High Purity Water Project Presentation No Unplanned DowntimeHigh Purity Water Project Presentation No Unplanned Downtime
High Purity Water Project Presentation No Unplanned Downtime
 
Achieving Built-in-Quality: Actions and Implementation
Achieving Built-in-Quality: Actions and ImplementationAchieving Built-in-Quality: Actions and Implementation
Achieving Built-in-Quality: Actions and Implementation
 
Process auditing as per VDA 6.3
Process auditing as per VDA 6.3Process auditing as per VDA 6.3
Process auditing as per VDA 6.3
 
Summarized presentation vda 6.3 2016 (serial production)
Summarized presentation vda 6.3 2016 (serial production)Summarized presentation vda 6.3 2016 (serial production)
Summarized presentation vda 6.3 2016 (serial production)
 

Viewers also liked

Why BDD is misunderstood
Why BDD is misunderstoodWhy BDD is misunderstood
Why BDD is misunderstoodThoughtworks
 
Pair Programming Talk
Pair Programming TalkPair Programming Talk
Pair Programming Talkjlangr
 
BDD, Gherkin, Cucumber and why we need it.
BDD, Gherkin, Cucumber and why we need it.BDD, Gherkin, Cucumber and why we need it.
BDD, Gherkin, Cucumber and why we need it.AlexOsadchyy
 
Xtreme Programming
Xtreme ProgrammingXtreme Programming
Xtreme ProgrammingNoretSarted
 
Bdd: Tdd and beyond the infinite
Bdd: Tdd and beyond the infiniteBdd: Tdd and beyond the infinite
Bdd: Tdd and beyond the infiniteGiordano Scalzo
 
Business Value of Agile Testing: Using TDD, CI, CD, & DevOps
Business Value of Agile Testing: Using TDD, CI, CD, & DevOpsBusiness Value of Agile Testing: Using TDD, CI, CD, & DevOps
Business Value of Agile Testing: Using TDD, CI, CD, & DevOpsDavid Rico
 
How to be a great scrum master
How to be a great scrum masterHow to be a great scrum master
How to be a great scrum masterDaniel Shupp
 
Business Value of CI, CD, & DevOpsSec: Scaling to Billion User Systems Using ...
Business Value of CI, CD, & DevOpsSec: Scaling to Billion User Systems Using ...Business Value of CI, CD, & DevOpsSec: Scaling to Billion User Systems Using ...
Business Value of CI, CD, & DevOpsSec: Scaling to Billion User Systems Using ...David Rico
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingUtkarsh Khare
 
BDD in Action – principles, practices and real-world application
BDD in Action – principles, practices and real-world applicationBDD in Action – principles, practices and real-world application
BDD in Action – principles, practices and real-world applicationJohn Ferguson Smart Limited
 
What is a SCRUM Master
What is a SCRUM MasterWhat is a SCRUM Master
What is a SCRUM MasterJoost Mulders
 
BDD - Writing better scenario
BDD - Writing better scenarioBDD - Writing better scenario
BDD - Writing better scenarioArnauld Loyer
 

Viewers also liked (20)

TDD & BDD
TDD & BDDTDD & BDD
TDD & BDD
 
Why BDD is misunderstood
Why BDD is misunderstoodWhy BDD is misunderstood
Why BDD is misunderstood
 
Pair Programming Talk
Pair Programming TalkPair Programming Talk
Pair Programming Talk
 
BDD, Gherkin, Cucumber and why we need it.
BDD, Gherkin, Cucumber and why we need it.BDD, Gherkin, Cucumber and why we need it.
BDD, Gherkin, Cucumber and why we need it.
 
Xtreme Programming
Xtreme ProgrammingXtreme Programming
Xtreme Programming
 
XP In 10 slides
XP In 10 slidesXP In 10 slides
XP In 10 slides
 
Bdd: Tdd and beyond the infinite
Bdd: Tdd and beyond the infiniteBdd: Tdd and beyond the infinite
Bdd: Tdd and beyond the infinite
 
Testcase Preparation Checklist
Testcase Preparation ChecklistTestcase Preparation Checklist
Testcase Preparation Checklist
 
Role of scrum master
Role of scrum masterRole of scrum master
Role of scrum master
 
Devops
DevopsDevops
Devops
 
Business Value of Agile Testing: Using TDD, CI, CD, & DevOps
Business Value of Agile Testing: Using TDD, CI, CD, & DevOpsBusiness Value of Agile Testing: Using TDD, CI, CD, & DevOps
Business Value of Agile Testing: Using TDD, CI, CD, & DevOps
 
How to be a great scrum master
How to be a great scrum masterHow to be a great scrum master
How to be a great scrum master
 
Business Value of CI, CD, & DevOpsSec: Scaling to Billion User Systems Using ...
Business Value of CI, CD, & DevOpsSec: Scaling to Billion User Systems Using ...Business Value of CI, CD, & DevOpsSec: Scaling to Billion User Systems Using ...
Business Value of CI, CD, & DevOpsSec: Scaling to Billion User Systems Using ...
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
BDD in Action – principles, practices and real-world application
BDD in Action – principles, practices and real-world applicationBDD in Action – principles, practices and real-world application
BDD in Action – principles, practices and real-world application
 
What is a SCRUM Master
What is a SCRUM MasterWhat is a SCRUM Master
What is a SCRUM Master
 
BDD - Writing better scenario
BDD - Writing better scenarioBDD - Writing better scenario
BDD - Writing better scenario
 
DevOps
DevOpsDevOps
DevOps
 
Intro to DevOps
Intro to DevOpsIntro to DevOps
Intro to DevOps
 
BDD in Action - building software that matters
BDD in Action - building software that mattersBDD in Action - building software that matters
BDD in Action - building software that matters
 

Similar to ODD: Extending a Specification 1.2

ODD: Extending a Specification 1.3
ODD: Extending a Specification 1.3ODD: Extending a Specification 1.3
ODD: Extending a Specification 1.3Jonathan Herring
 
ODD: Extending V-model Development 1.3.5
ODD: Extending V-model Development 1.3.5ODD: Extending V-model Development 1.3.5
ODD: Extending V-model Development 1.3.5Jonathan Herring
 
ODD: Extending Test Driven Development 1.3
ODD: Extending Test Driven Development 1.3ODD: Extending Test Driven Development 1.3
ODD: Extending Test Driven Development 1.3Jonathan Herring
 
ODD: Extending V-model Development 1.2
ODD: Extending V-model Development 1.2ODD: Extending V-model Development 1.2
ODD: Extending V-model Development 1.2Jonathan Herring
 
ODD: Extending V-model Development 1.3
ODD: Extending V-model Development 1.3ODD: Extending V-model Development 1.3
ODD: Extending V-model Development 1.3Jonathan Herring
 
Obstacle Driven Development Stages
Obstacle Driven Development StagesObstacle Driven Development Stages
Obstacle Driven Development StagesJonathan Herring
 
ODD is not Agile or Waterfall
ODD is not Agile or WaterfallODD is not Agile or Waterfall
ODD is not Agile or WaterfallJonathan Herring
 
Obstacle Driven Development
Obstacle Driven DevelopmentObstacle Driven Development
Obstacle Driven DevelopmentJonathan Herring
 
Test planning and software's engineering
Test planning and software's engineeringTest planning and software's engineering
Test planning and software's engineeringMansiganeshJawale
 
Module-3_Design thinking in IT Industries.pdf
Module-3_Design thinking in IT Industries.pdfModule-3_Design thinking in IT Industries.pdf
Module-3_Design thinking in IT Industries.pdfvijimech408
 
Obstacle Driven Development
Obstacle Driven Development Obstacle Driven Development
Obstacle Driven Development Jonathan Herring
 
SDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSaravanan Manoharan
 
Agile for Software as a Medical Device
Agile for Software as a Medical DeviceAgile for Software as a Medical Device
Agile for Software as a Medical DeviceOrthogonal
 
Test Driven Development – What Works And What Doesn’t
Test Driven Development – What Works And What Doesn’t Test Driven Development – What Works And What Doesn’t
Test Driven Development – What Works And What Doesn’t Synerzip
 

Similar to ODD: Extending a Specification 1.2 (20)

ODD: Extending a Specification 1.3
ODD: Extending a Specification 1.3ODD: Extending a Specification 1.3
ODD: Extending a Specification 1.3
 
ODD: Extending V-model Development 1.3.5
ODD: Extending V-model Development 1.3.5ODD: Extending V-model Development 1.3.5
ODD: Extending V-model Development 1.3.5
 
ODD: Extending Test Driven Development 1.3
ODD: Extending Test Driven Development 1.3ODD: Extending Test Driven Development 1.3
ODD: Extending Test Driven Development 1.3
 
ODD: Extending V-model Development 1.2
ODD: Extending V-model Development 1.2ODD: Extending V-model Development 1.2
ODD: Extending V-model Development 1.2
 
ODD: Extending V-model Development 1.3
ODD: Extending V-model Development 1.3ODD: Extending V-model Development 1.3
ODD: Extending V-model Development 1.3
 
Obstacle Driven Development Stages
Obstacle Driven Development StagesObstacle Driven Development Stages
Obstacle Driven Development Stages
 
ODD is not Agile or Waterfall
ODD is not Agile or WaterfallODD is not Agile or Waterfall
ODD is not Agile or Waterfall
 
ODD: Extending Agile 1.3
ODD: Extending Agile 1.3ODD: Extending Agile 1.3
ODD: Extending Agile 1.3
 
ODD Testing
ODD TestingODD Testing
ODD Testing
 
ODD + Project Control 1.0
ODD + Project Control 1.0ODD + Project Control 1.0
ODD + Project Control 1.0
 
Obstacle Driven Development
Obstacle Driven DevelopmentObstacle Driven Development
Obstacle Driven Development
 
ODD Comparison
ODD ComparisonODD Comparison
ODD Comparison
 
Test planning and software's engineering
Test planning and software's engineeringTest planning and software's engineering
Test planning and software's engineering
 
Module-3_Design thinking in IT Industries.pdf
Module-3_Design thinking in IT Industries.pdfModule-3_Design thinking in IT Industries.pdf
Module-3_Design thinking in IT Industries.pdf
 
Obstacle Driven Development
Obstacle Driven Development Obstacle Driven Development
Obstacle Driven Development
 
V sdlc se
V sdlc   seV sdlc   se
V sdlc se
 
SDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSDLC - Software Development Life Cycle
SDLC - Software Development Life Cycle
 
Agile for Software as a Medical Device
Agile for Software as a Medical DeviceAgile for Software as a Medical Device
Agile for Software as a Medical Device
 
Embedded development life cycle
Embedded development life cycleEmbedded development life cycle
Embedded development life cycle
 
Test Driven Development – What Works And What Doesn’t
Test Driven Development – What Works And What Doesn’t Test Driven Development – What Works And What Doesn’t
Test Driven Development – What Works And What Doesn’t
 

More from Jonathan Herring

How to Use Project Control 1.0
How to Use Project Control 1.0How to Use Project Control 1.0
How to Use Project Control 1.0Jonathan Herring
 
ODD+PC: How to Get Stuff Right
ODD+PC: How to Get Stuff RightODD+PC: How to Get Stuff Right
ODD+PC: How to Get Stuff RightJonathan Herring
 
ODD and Project Control v0.957
ODD and Project Control v0.957ODD and Project Control v0.957
ODD and Project Control v0.957Jonathan Herring
 
Obstacle Driven Development Models
Obstacle Driven Development ModelsObstacle Driven Development Models
Obstacle Driven Development ModelsJonathan Herring
 
Obstacle Driven Development Report v0.9
Obstacle Driven Development Report v0.9Obstacle Driven Development Report v0.9
Obstacle Driven Development Report v0.9Jonathan Herring
 
ODD: Extending Requirements Analysis 1.2
ODD: Extending Requirements Analysis 1.2ODD: Extending Requirements Analysis 1.2
ODD: Extending Requirements Analysis 1.2Jonathan Herring
 

More from Jonathan Herring (11)

ODD: OODA Evolution
ODD: OODA EvolutionODD: OODA Evolution
ODD: OODA Evolution
 
How to Use Project Control 1.0
How to Use Project Control 1.0How to Use Project Control 1.0
How to Use Project Control 1.0
 
How to be Innovative
How to be InnovativeHow to be Innovative
How to be Innovative
 
ODD+PC: How to Get Stuff Right
ODD+PC: How to Get Stuff RightODD+PC: How to Get Stuff Right
ODD+PC: How to Get Stuff Right
 
ODD and Project Control v0.957
ODD and Project Control v0.957ODD and Project Control v0.957
ODD and Project Control v0.957
 
Obstacle Driven Development Models
Obstacle Driven Development ModelsObstacle Driven Development Models
Obstacle Driven Development Models
 
Obstacle Driven Development Report v0.9
Obstacle Driven Development Report v0.9Obstacle Driven Development Report v0.9
Obstacle Driven Development Report v0.9
 
ODD: Success and Failure
ODD: Success and FailureODD: Success and Failure
ODD: Success and Failure
 
ODD Definitions
ODD DefinitionsODD Definitions
ODD Definitions
 
ODD: Evolution (short)
ODD: Evolution (short)ODD: Evolution (short)
ODD: Evolution (short)
 
ODD: Extending Requirements Analysis 1.2
ODD: Extending Requirements Analysis 1.2ODD: Extending Requirements Analysis 1.2
ODD: Extending Requirements Analysis 1.2
 

Recently uploaded

power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and usesDevarapalliHaritha
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLDeelipZope
 
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfAsst.prof M.Gokilavani
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineeringmalavadedarshan25
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx959SahilShah
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learningmisbanausheenparvam
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfAsst.prof M.Gokilavani
 

Recently uploaded (20)

power system scada applications and uses
power system scada applications and usespower system scada applications and uses
power system scada applications and uses
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCL
 
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
VICTOR MAESTRE RAMIREZ - Planetary Defender on NASA's Double Asteroid Redirec...
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
Internship report on mechanical engineering
Internship report on mechanical engineeringInternship report on mechanical engineering
Internship report on mechanical engineering
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
chaitra-1.pptx fake news detection using machine learning
chaitra-1.pptx  fake news detection using machine learningchaitra-1.pptx  fake news detection using machine learning
chaitra-1.pptx fake news detection using machine learning
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
 

ODD: Extending a Specification 1.2

  • 1. Obstacle Driven Development Extending a Specification 2 ©odd.enterprises 26/02/2015
  • 3. ODD Circle Model 26/02/2015 ©odd.enterprises 3
  • 4. ODD Traffic Light Model 26/02/2015 ©odd.enterprises 4
  • 5. Background Ideas of Obstacle Driven Development (ODD) are based on numerous development processes including: • ISO V-model • Test Driven Development • ISO specifications • Requirements analysis • Agile principles 26/02/2015 ©odd.enterprises 5
  • 6. Design Phases A traditional design process has several phases to produce a product. • Requirement analysis • Preliminary design • Detailed design • Implementation • Testing • Operations 26/02/2015 ©odd.enterprises 6
  • 7. Preliminary and Detailed Design An ODD Specification is a combination of preliminary and detailed design. • ODD Specification is a complete description of how a product should behave • ODD Specification should contain only descriptions, up to and including simulations 26/02/2015 ©odd.enterprises 7
  • 8. International Organisation for Standardisation 1 The International Organisation for Standardisation (ISO) specify the minimum behaviour that is expected of products which must conform. By conforming to standards such as ISO a product: • Gains access to markets • Can be described as state of the art • Limits legislative exposure 26/02/2015 ©odd.enterprises 8
  • 9. International Organisation for Standardisation 2 The ISO have defined processes for analysis and specifications. Obstacle Driven Development was created by following a summary of ISO 26262 "Road vehicles – Functional safety“ and has been designed to be compatible. • Other standards bodies such as the IEC have similar processes. The ten parts of ISO 26262: 1. Vocabulary 2. Management of functional safety 3. Concept phase 4. Product development at the system level 5. Product development at the hardware level 6. Product development at the software level 7. Production and operation 8. Supporting processes 9. Automotive Safety Integrity Level (ASIL)- oriented and safety-oriented analysis 10. Guideline on ISO 26262 26/02/2015 ©odd.enterprises 9
  • 10. Specification A traditional specification is an interface between problem and solution domains. • Description of design and materials which make a product • Specification not used in all traditional processes • Requirements are often used directly 26/02/2015 ©odd.enterprises 10
  • 11. Importance of a Specification A specification can improve the development process of a product. • Product cost is reduced with an improved specification process • Using a full specification can prevent errors from propagating • Creating and editing a specification is low cost 26/02/2015 ©odd.enterprises 11
  • 12. ODD Specification ODD Specifications differ from traditional by being separated from problem and solution domains. • Specification contains behaviours which cover requirements • Fully separated from Analysis and Solution stages • Links stages through appropriate unit tests 26/02/2015 ©odd.enterprises 12
  • 13. V-model V-models formed the basic ODD structure and are often used in ISO developments. • V-models inspired linking of elements for ODD • Often used for safety critical design processes • Numerous V-models have been created, some inspired by TDD 26/02/2015 ©odd.enterprises 13
  • 14. Behaviours 1 Whatever is desired of a product can be expressed by its behaviours. A definition of a behaviour is • how an animal or person behaves in response to a particular situation or stimulus. Replacing the subject with product • how a product behaves in response to a particular situation or stimulus. 26/02/2015 ©odd.enterprises 14
  • 15. Behaviours 2 Separating a specification from requirements allows for greater freedom. • Numerous behaviours may satisfy a requirement • Alternative or back up behaviours are described and investigated • Behaviours determined by analysis of situations 26/02/2015 ©odd.enterprises 15
  • 16. Behaviour Levels Behaviours are described by their relative system levels. • High level behaviours should describe how a product behaves • Low level behaviours describe how materials behave • Decomposition allows a deductive reasoning process • Tests are linked to each level 26/02/2015 ©odd.enterprises 16
  • 17. Decomposition Decomposition gives a top-down approach to the creation of a specification and product. • Allows effective determination of lower level behaviours • Unnecessary behaviours are not described • Allows a deductive process for creating the specification 26/02/2015 ©odd.enterprises 17
  • 18. Documents Checkpoint An ODD product has sufficient documentation to describe all expected behaviours. • Documents describe everything a product does • Decomposed from high level behaviours into components • Intended for all stakeholders 26/02/2015 ©odd.enterprises 18
  • 19. ODD Specification 1 Each behaviour specified creates tests through decomposition and definition. • Specified – Used to describe a behaviour with no other detail • Functional – Describes what a behaviour does with inputs, outputs and internal states defined 26/02/2015 ©odd.enterprises 19
  • 20. ODD Specification 2 • Logical – Describes an expected behaviour – Expected behaviour creates assertions for unit tests • Procedural – Used for feedback against situation analysis – Only used to ensure behaviours are verified and validated 27/02/2015 ©odd.enterprises 20
  • 21. ODD Specification 3 Specification is decomposed and defined starting with specified behaviour and moving to the right. • Specified behaviour has inputs and outputs defined to become functional behaviour • Logical behaviour is expected or desired behaviour of a product 27/02/2015 ©odd.enterprises 21
  • 22. Specification Creation Behaviours are decomposed and defined to create a specification and unit tests. • Decomposition of high level behaviours into lower levels • Definition of specified behaviours into logical behaviours • Creation of tests through assertions to link a solution 22PDD, Jonathan Herring
  • 23. Specified Behaviour Specified behaviour regards what it is expected to do for input, output and internal states. • No further detail • Full specification linking all inputs with outputs to ensure nothing is left out • Easy to understand, discuss, produce and edit 26/02/2015 ©odd.enterprises 23
  • 24. Functional Behaviour Functional behaviour expands specified behaviour by adding input, output and internal states. • Input, outputs and internal states are defined with units • Expands on basic description of a products behaviours • Ensures behaviours link and combine into a complete specification 26/02/2015 ©odd.enterprises 24
  • 25. Logical Behaviour Logical behaviour builds on functional behaviour by adding expectations. • Detail is defined until expected behaviours are described • Allows a complete description of a products expected behaviour • Tests are created from assertions of expected behaviour 27/02/2015 ©odd.enterprises 25 Modelled motor is a simple DC.
  • 26. Procedural Behaviour Procedural behaviour is a model or simulation of a product as seen by customers and other stakeholders. • Ensures specification of a product is as required by customers and stakeholders • Increases communication between developers and customers 26/02/2015 ©odd.enterprises 26
  • 27. Unit Testing Unit tests and the Single Responsibility Theorem facilitate the testing process. • Every element is tested • Each test has a single result • Unit tests are combined to give complex testing processes • Green light is for when tests are passed and previous stage linked 27/02/2015 ©odd.enterprises 27
  • 28. Behaviour Driven Development 1 Behaviour Driven Development inspired the linking of a specification to a design solution. • Each behaviour creates tests • Multiple behaviours can be solved by a single solution • Designing according to behaviours reduces ambiguity 27/02/2015 ©odd.enterprises 28
  • 29. Behaviour Driven Development 2 Reordering the BDD sequence gives a sequence similar to traffic lights. • Red light now used for unverified and unvalidated processes • Amber light now used when tests are created and code written • Green light used when tests have been passed 27/02/2015 ©odd.enterprises 29 Write Test Write Code Validate / Refactor Behaviour
  • 30. Implementing Unit Testing 1 Any process has a result of an output and/or change in internal state. • Initial stage of a specification describes responses to situations and stimulus • Unit tests for output and/or internal change of a component • Unit tests are integrated or decomposed as necessary 27/02/2015 ©odd.enterprises 30
  • 31. Implementing Unit Testing 2 Internal states are often impossible to observe directly and increase importance of creating low level unit tests. • Unit tests combined to test complex behaviours • Combined unit tests are also considered a unit test 27/02/2015 ©odd.enterprises 31
  • 32. Linking Tests 1 Tests link behaviours with solutions through testing and design. • Solutions are designed to tests created • Each solution is a single aspect of the product • Unit testing is applied • Test suite created 26/02/2015 ©odd.enterprises 32
  • 33. Linking Tests 2 Testing and design should concern behaviours contained in a specification. • Customers are involved for utilisation and elicitation • Each solution implements 1 or more behaviours • Tests suite ran for any changes or additions 26/02/2015 ©odd.enterprises 33
  • 34. Creating Tests 1 Creation of a solution from a specification is inspired by Behaviour Driven Development. • Often tests can be created by simply rewriting a behaviour • Designing a solution according to tests reduces debugging • Creation of tests and designs may continue until all behaviours are implemented 26/02/2015 ©odd.enterprises 34
  • 35. Creating Tests 2 A full test suite is created using each behaviour contained by a specification. • Creating a test first ensures a developer understands their objective • Design according to passing tests reduces ambiguity • Passing a test ensures behaviour is implemented 26/02/2015 ©odd.enterprises 35
  • 36. Solution Unit Testing Solution Design • Select a behaviour • Test for solution – Create a test to ensure a behaviour is implemented by a solution • Design for solution – Pass a test to ensure a behaviour is implemented by a solution 26/02/2015 ©odd.enterprises 36
  • 37. ODD Solution Flowchart Flow chart to explain the creation of an ODD Solution. 1. Behaviour is selected which has to be covered by a solution 2. Unit test is created 3. Solution is designed 4. If fail repeat Stage 3 5. Repeat Stages 1 – 4 until all behaviours are specified 26/02/2015 ©odd.enterprises 37
  • 38. ODD Combined Model 26/02/2015 ©odd.enterprises 38 The testing process is similar throughout ODD with adaptions between stages. • Each set of traffic light demonstrates unit testing • Tests begin with an element from previous stage
  • 39. Specification Unit Testing Specification of behaviours • Select a requirement • Verification – Create a test to ensure a requirement is covered by a behaviour • Validation – Pass a test ensuring a requirement is covered by a behaviour 27/02/2015 ©odd.enterprises 39
  • 40. Linking Tests 3 Each situation creates a unit test to link analysis with specification. • Diagrams shows various stages of testing progress • Once unit test is passed it becomes green • Tests are implemented as a suite and ran when editing occurs 26/02/2015 ©odd.enterprises 40
  • 41. Linking Tests 4 Each situation is linked to a behaviour contained in a specification. • Behaviour A covers normal operation • Behaviour B and C cover single failures of components • Behaviour D covers total failure of components 26/02/2015 ©odd.enterprises 41
  • 42. Linking Tests 5 When using a waterfall type development then analysis is complete when all tests are passed. • Tests run when any changes in analysis or specification • Ensures expected situations are covered • Potential for infinite situations 26/02/2015 ©odd.enterprises 42
  • 43. Cross Examination 1 Failing products may result in litigation and therefore a cross examination of a products behaviours is applicable. • Identification of errors and contradictions before solution is designed • Unit tests are created to verify behaviours with validation being a pass 26/02/2015 ©odd.enterprises 43 Does Behaviour A cover Situation A?
  • 44. Cross Examination 2 Cross examination is where behaviours are compared with situations to find errors and contradictions. • Process used in development of a specification • Unit tests implemented between situations and behaviours 26/02/2015 ©odd.enterprises 44
  • 45. ODD Specification Flowchart Flow chart designed to explain creation of an ODD Specification. 1. Situation is selected which has to be covered by a behaviour 2. Verification test is created 3. Behaviour is specified 4. If fail repeat Stage 3 5. Repeat Stages 1 – 4 until all behaviours are specified 26/02/2015 ©odd.enterprises 45
  • 47. Further Information and Questions • Website • Presentations • Facebook • Twitter • Email 26/02/2015 ©odd.enterprises 47
  • 48. Legal Stuff References Test Driven Development for Embedded C James Grenning, 2011 International Organisation for Standardisation http://www.iso.org/iso/home/standards.htm NASA, Assurance Process for Complex Electronics www.hq.nasa.gov/office/codeq/software/ComplexElectronics/ Assessment of the ISO 26262 Standard http://www.sae.org/events/gim/presentations/2012/qi_volpe.pdf Disclaimer The ODD M-model and associated processes are provided by odd.enterprises and may be used for any purpose whatsoever. The names odd.enterprises and associated logos should not be used in any representation, advertising, publicity or other manner whatsoever to endorse or promote any entity that adopts or uses the model and/or associated processes. odd.enterprises does not guarantee to provide support, consulting, training or assistance of any kind with regards to the use of the model and/or processes including any updates. You agree to indemnify odd.enterprises and its affiliates, officers, agents and employees against any claim or demand including reasonable solicitors fees, related to your use, reliance or adoption of the model and/or processes for any purpose whatsoever. The model is provided by odd.enterprises “as is” and any express or implied warranties, included but not limited to the implied warranties of merchantability and fitness for a particular purpose are expressly disclaimed. In no event shall odd.enterprises be liable for any damages whatsoever, including but not limited to claims associated with the loss of data or profits, which may result from any action in contract, negligence or other tortious claim that arises out of or in connection with the use or performance of the model. 26/02/2015 ©odd.enterprises 48