Obstacle Driven Development
Extending V-model Development 1.3
©odd.enterprises
01/02/2016
Obstacle Driven Development
25/01/2016 ©odd.enterprises 2
ODD Circle Model
25/01/2016 ©odd.enterprises 3
ODD Triangle Model
25/01/2016 ©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 spiral
• Agile principles
• SOLID Principles
25/01/2016 ©odd.enterprises 5
V-model
V-models are used in engineering
for requirements, designs and
testing.
• V-models give framework of
Obstacle Driven Development
• Development for safety critical
design processes
• Described by international
standards
25/01/2016 ©odd.enterprises 6
International Organisation for Standardisation
Standards and processes provided
for requirements, specifications,
guidelines or characteristics.
• Ensures products, services and
components are fit for purpose
• Sets standards required for state
of the art and markets
• ODD designed to be compatible
with international standards
25/01/2016 ©odd.enterprises 7
ISO V-model
V-model to apply ISO standards for
software development.
• Model links various levels of
development
• Testing for levels from software
up to vehicle tests
• Testing for feedback and ensures
each level is verified
25/01/2016 ©odd.enterprises 8
Test Driven Development 1
TDD is software development with
tests written before code.
• Creating tests first ensures code
is testable and tested
• Unit tests ran through test suites
for automated testing
• Allows for improved code
through error detection
25/01/2016 ©odd.enterprises 9
Write
Test
Write
Code
Refactor
Test Driven Development 2
Tests are written before the code
with TDD .
1. Test is written and ran to
observe a fail
2. Simplest code is written to pass
the test
3. Code is refactored according to
SOLID principles
4. Repeat until coding complete
25/01/2016 ©odd.enterprises 10
Write
Test
Write
Code
Refactor
Test Driven Development 3
Development of ODD began with a
question when using TDD:
• Where do the tests come from?
25/01/2016 ©odd.enterprises 11
Write
Test
Write
Code
Refactor
Test Driven Development V-model 1
V-model combined with Test Driven
Development is demonstrated.
• Helps create tests and integrate
a system
• System created according to
designs through tests
• Tests help integrate low level
code to high level
25/01/2016 ©odd.enterprises 12
Test Driven Development V-model 2
ODD extends and inverts V-models
so development stages are
separated.
• Models consist of V-models with
TDD and unit testing
• Inverted V-models allow for
separation of stages
• Inverted V-models link with V-
models through
25/01/2016 ©odd.enterprises 13
Inverted V-models
V-models are inverted to provide a
stage between Problem and
Solution domains.
• V-models help integrate a
solution
• Inverted V-models help
decompose a creation
• Testing is adapted for
decomposition of elements
25/01/2016 ©odd.enterprises 14
Extending a Specification 1
• Traditional Problem
and Solution Space
– Specification is a
small interface
• Extended
Specification
– Specification is
separate stage
15©odd.enterprises25/01/2016
Extending a Specification 2
Extending a specification allows
V-models combined with Test
Driven Development.
• V-model compatible with Safety
Integrity Levels
• TDD processes for V&V of
Specification
• Specification used to create tests
25/01/2016 ©odd.enterprises 16
Verification and Validation 1
Verification and validation between
each stage is adapted to become
two questions.
• Verification
Is it built in the right way?
• Validation
Is it built right?
26/01/2016 ©odd.enterprises 17
Verification and Validation 2
Verification and validation
processes link the stages.
• Specification
– Verification and validation (of behaviours)
• Solution
– Testing and design
• Production
– Quality assurance and control
• Analysis
– Utilisation and elicitation
27/01/2016 ©odd.enterprises 18
Problem Driven Development 1
PDD finds solutions to problems
and is an earlier model of ODD.
• Inverted V-model and V-model
combine to create N-model
– Analysis
– Specification
– Solution
• Testing between each stage is
similar to TDD
27/01/2016 ©odd.enterprises 19
Problem Driven Development 2
Tests to verify and validate code are
extended to create a new
development model.
• Applications to hardware,
software and embedded
• Links stages with tests for
verification and validation
• Suitable for students and
research projects
27/01/2016 ©odd.enterprises 20
N-model Comparison
N-model was created from
extending a V-model.
• Verification and validation
between Analysis and
Specification
– Verification by creating a test
– Validation by solving a test
• Interface between problem and
solution is extended
25/01/2016 ©odd.enterprises 21
Obstacle Driven Development 1
ODD is TDD and V-models adapted
and repeated between four stages
in sequence.
• Analysis
• Specification
• Solution
• Production
25/01/2016 ©odd.enterprises 22
Specification
Solution
Production
Analysis
Obstacle Driven Development 2
Verification and validation link
stages and provide feedback.
• Verification ensures a product is
built in the right way
• Validation ensures a product is
built right
• Creating and solving tests give
verification and validation
25/01/2016 ©odd.enterprises 23
ODD for Embedded
ODD develops software, hardware
and embedded applications.
• Stages are defined to help create
physical products
• Benefits of software, hardware
and embedded principles
• Suitable for safety critical
applications
25/01/2016 ©odd.enterprises 24
ODD Production
ODD continuously develops
products through linking a
Production stage.
• Solution produced with assured
and controlled quality
• Links with Analysis to ensure
feedback
• Product utilisation elicited for
requirements
25/01/2016 ©odd.enterprises 25
M-Model Comparison
ODD model links four separate
stages through unit testing.
• Verification and validation
appropriate to each stage
• Extends traditional problem and
solution domain
• Unit testing processes links
stages
25/01/2016 ©odd.enterprises 26
ODD Checkpoints 1
Checkpoints provide expected
outputs from each stage.
• Requirements found from Analysis
• Documents from Specification
• Prototype integrated from Solution
• Product assembled by Production
25/01/2016 ©odd.enterprises 27
ODD Checkpoints 2
Checkpoints are verified and
validated against those indicated.
• Requirements compared to
Prototype
• Prototype tested for Requirements
• Documents describe a Product
• Product documented in
Documents
25/01/2016 ©odd.enterprises 28
Integration of Analysis
Analysis integrated from events in a
situation tree to give complex
situations.
• Situations identified in bottom-
up process
• Situations are analysed to
identify hazards
• Hazards are processed into Safety
Integrity Levels (SILs)
• Requirements found from SILs
25/01/2016 ©odd.enterprises 29
Integration of Solution
Solutions integrated from materials
into components, components into
subsystems etc.
• Solutions created with bottom-
up process
• Each level is integrated into a
higher level
• Higher level tests provide
integration testing
25/01/2016 ©odd.enterprises 30
Decomposition of Specification
Specification decomposed from
high level behaviours to ensure
they are performed.
• Specifications created with top-
down process
• Each level decomposed until all
levels are specified
• Enables integration testing of a
solution
25/01/2016 ©odd.enterprises 31
Decomposition of Production
Production decomposed from high
level to assure efficiency and high
quality levels.
• Production created with a top-
down process
• Each level decomposed for
efficiency of lower levels
• Efficiency through testing of
production quality
25/01/2016 ©odd.enterprises 32
Information Flow
Flow of information proceeds in
several directions due to unit tests.
• Integration, decomposition,
feedback and feedforward
• Information flow through each
stage with integration or
decomposition
• Stages linked by tests to give
feedback and feedforward
processes
27/01/2016 ©odd.enterprises 33
Feedforward Processes
Verification of each stage is a
feedfoward process where tests are
created for a next stage.
• Verification
• Testing
• Quality assurance
• Utilisation
27/01/2016 ©odd.enterprises 34
Feedback Processes
Validation of each stage is a
feedback process where tests are
solved for an obstacle.
• Validation
• Design
• Quality control
• Elicitation
27/01/2016 ©odd.enterprises 35
ODD Flowchart
25/01/2016 ©odd.enterprises 36
ODD Continuous
Process
• Process repeats for
continuous improvement
• Further stages may be
added as needed
• Proceed clockwise through
each stage
25/01/2016 ©odd.enterprises 37
ODD Materials
ODD is explained in
further presentations.
• Obstacle Driven
Development
• ODD: Extending TDD
• ODD: Extending V-
models
• ODD: Requirements
Analysis
• ODD Is Not Agile or
Waterfall
ODD Is Not
Agile or
Waterfall
Obstacle Driven
Development
ODD:
Requirements
Analysis
ODD: Extending
a Specification
ODD: Extending
V-models
ODD:
Extending TDD
25/01/2016 ©odd.enterprises 38
Further Information and Questions
• Website
• Presentations
• Facebook
• Twitter
• Email
25/01/2016 ©odd.enterprises 39
Legal Stuff
References
Test Driven Development for Embedded C
James Grenning, 2011
International Organisation for Standardisation
http://www.iso.org/iso/home/standards.htm
Suresoft Automotive, V-model Compliant with ISO 26262
http://www.suresofttech.com/en/solution/solution/
Assessment of the ISO 26262 Standard
http://www.sae.org/events/gim/presentations/2012/qi_volpe.pdf
V-model, One Stop Testing
http://www.onestoptesting.com/sdlc-models/v-model.asp
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.
25/01/2016 ©odd.enterprises 40

ODD: Extending V-model Development 1.3

  • 1.
    Obstacle Driven Development ExtendingV-model Development 1.3 ©odd.enterprises 01/02/2016
  • 2.
  • 3.
    ODD Circle Model 25/01/2016©odd.enterprises 3
  • 4.
    ODD Triangle Model 25/01/2016©odd.enterprises 4
  • 5.
    Background Ideas of ObstacleDriven Development (ODD) are based on numerous development processes including: • ISO V-model • Test Driven Development • ISO specifications • Requirements analysis spiral • Agile principles • SOLID Principles 25/01/2016 ©odd.enterprises 5
  • 6.
    V-model V-models are usedin engineering for requirements, designs and testing. • V-models give framework of Obstacle Driven Development • Development for safety critical design processes • Described by international standards 25/01/2016 ©odd.enterprises 6
  • 7.
    International Organisation forStandardisation Standards and processes provided for requirements, specifications, guidelines or characteristics. • Ensures products, services and components are fit for purpose • Sets standards required for state of the art and markets • ODD designed to be compatible with international standards 25/01/2016 ©odd.enterprises 7
  • 8.
    ISO V-model V-model toapply ISO standards for software development. • Model links various levels of development • Testing for levels from software up to vehicle tests • Testing for feedback and ensures each level is verified 25/01/2016 ©odd.enterprises 8
  • 9.
    Test Driven Development1 TDD is software development with tests written before code. • Creating tests first ensures code is testable and tested • Unit tests ran through test suites for automated testing • Allows for improved code through error detection 25/01/2016 ©odd.enterprises 9 Write Test Write Code Refactor
  • 10.
    Test Driven Development2 Tests are written before the code with TDD . 1. Test is written and ran to observe a fail 2. Simplest code is written to pass the test 3. Code is refactored according to SOLID principles 4. Repeat until coding complete 25/01/2016 ©odd.enterprises 10 Write Test Write Code Refactor
  • 11.
    Test Driven Development3 Development of ODD began with a question when using TDD: • Where do the tests come from? 25/01/2016 ©odd.enterprises 11 Write Test Write Code Refactor
  • 12.
    Test Driven DevelopmentV-model 1 V-model combined with Test Driven Development is demonstrated. • Helps create tests and integrate a system • System created according to designs through tests • Tests help integrate low level code to high level 25/01/2016 ©odd.enterprises 12
  • 13.
    Test Driven DevelopmentV-model 2 ODD extends and inverts V-models so development stages are separated. • Models consist of V-models with TDD and unit testing • Inverted V-models allow for separation of stages • Inverted V-models link with V- models through 25/01/2016 ©odd.enterprises 13
  • 14.
    Inverted V-models V-models areinverted to provide a stage between Problem and Solution domains. • V-models help integrate a solution • Inverted V-models help decompose a creation • Testing is adapted for decomposition of elements 25/01/2016 ©odd.enterprises 14
  • 15.
    Extending a Specification1 • Traditional Problem and Solution Space – Specification is a small interface • Extended Specification – Specification is separate stage 15©odd.enterprises25/01/2016
  • 16.
    Extending a Specification2 Extending a specification allows V-models combined with Test Driven Development. • V-model compatible with Safety Integrity Levels • TDD processes for V&V of Specification • Specification used to create tests 25/01/2016 ©odd.enterprises 16
  • 17.
    Verification and Validation1 Verification and validation between each stage is adapted to become two questions. • Verification Is it built in the right way? • Validation Is it built right? 26/01/2016 ©odd.enterprises 17
  • 18.
    Verification and Validation2 Verification and validation processes link the stages. • Specification – Verification and validation (of behaviours) • Solution – Testing and design • Production – Quality assurance and control • Analysis – Utilisation and elicitation 27/01/2016 ©odd.enterprises 18
  • 19.
    Problem Driven Development1 PDD finds solutions to problems and is an earlier model of ODD. • Inverted V-model and V-model combine to create N-model – Analysis – Specification – Solution • Testing between each stage is similar to TDD 27/01/2016 ©odd.enterprises 19
  • 20.
    Problem Driven Development2 Tests to verify and validate code are extended to create a new development model. • Applications to hardware, software and embedded • Links stages with tests for verification and validation • Suitable for students and research projects 27/01/2016 ©odd.enterprises 20
  • 21.
    N-model Comparison N-model wascreated from extending a V-model. • Verification and validation between Analysis and Specification – Verification by creating a test – Validation by solving a test • Interface between problem and solution is extended 25/01/2016 ©odd.enterprises 21
  • 22.
    Obstacle Driven Development1 ODD is TDD and V-models adapted and repeated between four stages in sequence. • Analysis • Specification • Solution • Production 25/01/2016 ©odd.enterprises 22 Specification Solution Production Analysis
  • 23.
    Obstacle Driven Development2 Verification and validation link stages and provide feedback. • Verification ensures a product is built in the right way • Validation ensures a product is built right • Creating and solving tests give verification and validation 25/01/2016 ©odd.enterprises 23
  • 24.
    ODD for Embedded ODDdevelops software, hardware and embedded applications. • Stages are defined to help create physical products • Benefits of software, hardware and embedded principles • Suitable for safety critical applications 25/01/2016 ©odd.enterprises 24
  • 25.
    ODD Production ODD continuouslydevelops products through linking a Production stage. • Solution produced with assured and controlled quality • Links with Analysis to ensure feedback • Product utilisation elicited for requirements 25/01/2016 ©odd.enterprises 25
  • 26.
    M-Model Comparison ODD modellinks four separate stages through unit testing. • Verification and validation appropriate to each stage • Extends traditional problem and solution domain • Unit testing processes links stages 25/01/2016 ©odd.enterprises 26
  • 27.
    ODD Checkpoints 1 Checkpointsprovide expected outputs from each stage. • Requirements found from Analysis • Documents from Specification • Prototype integrated from Solution • Product assembled by Production 25/01/2016 ©odd.enterprises 27
  • 28.
    ODD Checkpoints 2 Checkpointsare verified and validated against those indicated. • Requirements compared to Prototype • Prototype tested for Requirements • Documents describe a Product • Product documented in Documents 25/01/2016 ©odd.enterprises 28
  • 29.
    Integration of Analysis Analysisintegrated from events in a situation tree to give complex situations. • Situations identified in bottom- up process • Situations are analysed to identify hazards • Hazards are processed into Safety Integrity Levels (SILs) • Requirements found from SILs 25/01/2016 ©odd.enterprises 29
  • 30.
    Integration of Solution Solutionsintegrated from materials into components, components into subsystems etc. • Solutions created with bottom- up process • Each level is integrated into a higher level • Higher level tests provide integration testing 25/01/2016 ©odd.enterprises 30
  • 31.
    Decomposition of Specification Specificationdecomposed from high level behaviours to ensure they are performed. • Specifications created with top- down process • Each level decomposed until all levels are specified • Enables integration testing of a solution 25/01/2016 ©odd.enterprises 31
  • 32.
    Decomposition of Production Productiondecomposed from high level to assure efficiency and high quality levels. • Production created with a top- down process • Each level decomposed for efficiency of lower levels • Efficiency through testing of production quality 25/01/2016 ©odd.enterprises 32
  • 33.
    Information Flow Flow ofinformation proceeds in several directions due to unit tests. • Integration, decomposition, feedback and feedforward • Information flow through each stage with integration or decomposition • Stages linked by tests to give feedback and feedforward processes 27/01/2016 ©odd.enterprises 33
  • 34.
    Feedforward Processes Verification ofeach stage is a feedfoward process where tests are created for a next stage. • Verification • Testing • Quality assurance • Utilisation 27/01/2016 ©odd.enterprises 34
  • 35.
    Feedback Processes Validation ofeach stage is a feedback process where tests are solved for an obstacle. • Validation • Design • Quality control • Elicitation 27/01/2016 ©odd.enterprises 35
  • 36.
  • 37.
    ODD Continuous Process • Processrepeats for continuous improvement • Further stages may be added as needed • Proceed clockwise through each stage 25/01/2016 ©odd.enterprises 37
  • 38.
    ODD Materials ODD isexplained in further presentations. • Obstacle Driven Development • ODD: Extending TDD • ODD: Extending V- models • ODD: Requirements Analysis • ODD Is Not Agile or Waterfall ODD Is Not Agile or Waterfall Obstacle Driven Development ODD: Requirements Analysis ODD: Extending a Specification ODD: Extending V-models ODD: Extending TDD 25/01/2016 ©odd.enterprises 38
  • 39.
    Further Information andQuestions • Website • Presentations • Facebook • Twitter • Email 25/01/2016 ©odd.enterprises 39
  • 40.
    Legal Stuff References Test DrivenDevelopment for Embedded C James Grenning, 2011 International Organisation for Standardisation http://www.iso.org/iso/home/standards.htm Suresoft Automotive, V-model Compliant with ISO 26262 http://www.suresofttech.com/en/solution/solution/ Assessment of the ISO 26262 Standard http://www.sae.org/events/gim/presentations/2012/qi_volpe.pdf V-model, One Stop Testing http://www.onestoptesting.com/sdlc-models/v-model.asp 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. 25/01/2016 ©odd.enterprises 40