Obstacle Driven Development Extending V-model Development 2 ©odd.enterprises 22/02/2015
Jul 22, 2015
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
22/02/2015 ©odd.enterprises 5
Test Driven Development 1
Test Driven Development inspired testing for a V-model.
• Obstacle Driven Development helps define tests and extend TDD principles
Development of ODD began with the question
• Where do the tests come from?
22/02/2015 ©odd.enterprises 6
Write Test
Write Code
Refactor
Test Driven Development 2
Using ODD gives a sequence similar to traffic lights.
• Red light used for unverified and unvalidated elements
• Amber light now used when tests are created and code written
• Green light used when the tests have been passed
22/02/2015 ©odd.enterprises 7
Obstacle Driven Development 1
Tests used 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
• Adapted and used throughout development
22/02/2015 ©odd.enterprises 8
Verify Solution
Solution for Obstacle
ValidateSolution
Obstacle
Obstacle Driven Development 2
Obstacle Driven Development is used to find solutions to obstacles.
An obstacle is broken into four stages of development when using ODD.
• Analysis
• Specification
• Solution
• Production
22/02/2015 ©odd.enterprises 9
Verify Solution
Solution for Obstacle
ValidateSolution
Obstacle
Obstacle Driven Development 3
The ODD Process is expressed using four stages in sequence.
The diagram is simplified to demonstrate a basic ODD process.
• Analysis
• Specification
• Solution
• Production
22/02/2015 ©odd.enterprises 10
Specification
Solution
Production
Analysis
Obstacle Driven Development 4
Verification and validation are applied to link stages and provide feedback.
• Verification is ensuring a product is built in the right way
• Validation is ensuring a product is built right
• Creating and solving tests give verification and validation
22/02/2015 ©odd.enterprises 11
International Organisation for Standardisation
Standards and processes provided for requirements, specifications, guidelines or characteristics.
• Used to ensure products, services and components are fit for purpose
• Reduce costs of development by minimising waste and errors
• ODD designed to be compatible and implement standards
22/02/2015 ©odd.enterprises 12
V-model
V-models are commonly used in engineering to create designs and fulfil requirements.
• V-models form the basic framework for ODD
• Often used for safety critical design processes
• Numerous V-models have been created, some inspired by TDD
22/02/2015 ©odd.enterprises 13
ISO V-model
V-model used to apply ISO standards for software development.
• Model links levels of elements with validation
• Testing for levels up to and including vehicle tests
• Testing is used as feedback and ensures each level is verified
22/02/2015 ©odd.enterprises 14
V-model Comparison
When comparing a V-model to problem and solution domains it can be observed that:
• a V-model does not adequately cover the problem domain
• verification and validation processes are late in a project
• specification not used to maximum effect
22/02/2015 ©odd.enterprises 15
Test Driven Development V-model
A V-model used in conjunction with Test Driven Development.
• Generates tests which a system is required to pass
• Tests generated from elements of a previous stage
• Design is used to create tests for a system
22/02/2015 ©odd.enterprises 16
Extending a Specification 1
• Traditional Problem and Solution Space
• Extended Specification
17©odd.enterprises22/02/2015
Extending a Specification 2
Extending a specification allows V-model development combined with Test Driven Development.
• V-model compatible with Safety Integrity Levels from the ISO
• TDD processes used for V&V of a specification
• Specification used to create tests
22/02/2015 ©odd.enterprises 18
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 from passing a test
• Interface between problem and solution is extended
22/02/2015 ©odd.enterprises 19
ODD Production
Product and future development is linked continuously through a Production stage.
• Ensures Solution is produced with assured and controlled quality
• Links with Analysis to ensure feedback
• Resulting product situations are analysed for requirements
22/02/2015 ©odd.enterprises 20
ODD M-model 1
Adding a production stage to development results in an M-model.
• Development process is linked from start to finish, and beyond
• Verification and validation between stages is performed
• Tests are ran with additions and editions
22/02/2015 ©odd.enterprises 21
ODD M-model 2
Checkpoints of each stage are added and linked horizontally.
• Checkpoints adapted from a requirements analysis spiral
• Prototype should fulfil identified requirements
• Product should behave as described in documents
22/02/2015 ©odd.enterprises 22
ODD Checkpoints 1
Checkpoints are defined to provide expected outputs from each stage.
• Requirements found from Analysis
• Documents described from Specification
• Prototype integrated from Solution
• Product assembled by Production
22/02/2015 ©odd.enterprises 23
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
22/02/2015 ©odd.enterprises 24
Verification and Validation 1
Verification and validation occurs between stages with appropriate adaptions.
For ODD verification and validation processes concern the questions:
• Verification
Is it built in the right way?
• Validation
Is it built right?
22/02/2015 ©odd.enterprises 26
Verification and Validation 2
Verification and validation processes for the stages.
• Specification
– Verification and validation (of behaviours)
• Solution
– Testing and design
• Production
– Quality assurance and control
• Analysis
– Utilisation and elicitation 22/02/2015 ©odd.enterprises 27
M-Model Comparison
ODD model uses four separate stages linked through unit testing.
• Verification and validation appropriate to each stage
• Extends traditional problem and solution domain model
• Unit testing processes used to link stages
22/02/2015 ©odd.enterprises 28
ODD Process
A traffic light system has been developed for use with ODD.
• Begin each stage with a red light.
• Amber lights are obtained when tests are created for next stage
• Green light is for when tests are passed and next stage linked
22/02/2015 ©odd.enterprises 29
Linear and Nonlinear 1
ODD comprises linear development stages with V & V to create a nonlinear process.
• If no errors then development proceeds through stages
• Error is detected and cause is identified and resolved through feedback
22/02/2015 ©odd.enterprises 30
Linear and Nonlinear 2
Snakes and ladders has similar properties to an ODD process.
If ODD is thought of in a similar way then
• ladders are passing tests which allow progress and link stages
• snakes are failing tests which halt progress and/or force regression
22/02/2015 ©odd.enterprises 31
Integration
Ascending slopes use integrate lowest levels of elements into the highest.
• Hazards are found from combining individual situations
• Processing of hazards finds and prioritises requirements
• System integrates individual components from material level
22/02/2015 ©odd.enterprises 32
Decomposition
Descending slopes use decompose highest level elements into the lowest.
• Decomposition allows for system tests and production assurance at a high level
Note information flow for can be reversed for fault finding.22/02/2015 ©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
22/02/2015 ©odd.enterprises 34
Feedback Processes
Validation of each stage is a feedback process where tests are passed from a previous stage.
• Validation
• Design
• Quality control
• Elicitation
22/02/2015 ©odd.enterprises 35
Information Flow
Flow of information can proceed in several directions due to unit tests.
• Integration, decomposition, feedback and feedforward
• Information flows through each stage with integration or decomposition
• Stages are linked by tests which give feedback and feedforward processes
22/02/2015 ©odd.enterprises 36
Further Information and Questions
• Website
• Presentations
22/02/2015 ©odd.enterprises 39
Legal Stuff
ReferencesTest 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
DisclaimerThe 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.
22/02/2015 ©odd.enterprises 40