How to Use Project Control 1.0
Testing First?
12/09/2017 ©odd.enterprises 2
Answering a question before its asked is like creating a solution before a test.
Project Control Model
Solution, Create Test, Create Solution and Test Solution replace traditional control theory boxes.
• Solution replaces Plant
• Test Solution replaces Sensor
12/09/2017 ©odd.enterprises 3
Project Control Model
Feedforward and Feedback paths are replaced with Create Test and Solution.
• Create Solution replaces Feedback Controller
• Create Test replaces Feedforward Controller
12/09/2017 ©odd.enterprises 4
Project Control Model
Project Control is based on Control Theory.
• Input, Error, Output and Feedback are used
• Boolean algebra signals are used
12/09/2017 ©odd.enterprises 5
PC Inputs and Outputs
Input to model is an obstacle to be solved and output is Solution.
• Solution has testing applied to create feedback
• Difference between input and output is the error
12/09/2017 ©odd.enterprises 6
PC Boolean Logic 1
Boolean algebra drives the model.
• Each obstacle and solution are assigned 2 bits
• 1st bit indicates whether a test has been created
• 2nd bit is for a solution
12/09/2017 ©odd.enterprises 7
PC Boolean Logic 2
Boolean logic provides indication of progress.
• 00 for no test or solution
• 01 for a solution with no test
• 10 for a test with no solution
• 11 for a test with solution
12/09/2017 ©odd.enterprises 8
Input to Model = 11
Identified obstacles are input to the model as 2 bits.
• Input for each Obstacle is 11
• Extend as necessary for any number of Obstacles
12/09/2017 ©odd.enterprises 9
Feedback Path = 00
Feedback path indicates the status of a test and solution.
• No test or solution created:
𝐹𝑒𝑒𝑑𝑏𝑎𝑐𝑘 = 00
12/09/2017 ©odd.enterprises 10
Input – Feedback = 11 – 00 = 11
Feedback is taken from the Input using bitwise subtraction.
• Actions are determined by Error; as with control theory
• Difference between Input and Output determines actions
12/09/2017 ©odd.enterprises 11
Error = 11
Error drives creation of Tests and Solutions.
• 0 / 1 for created / not created
• 1st bit indicates if we need to create a solution
• 2nd bit indicates if we need to create a solution
12/09/2017 ©odd.enterprises 12
Error Triggers Test and Solution Creation
Error = 11; therefore we must create a Test and Solution.
• We follow the Feedforwards path first and create test
• We do not create a Solution yet
12/09/2017 ©odd.enterprises 13
Test is Created First
Test created first to ensure we know the objective of a Solution.
• Creating a test first helps influence creation of Solution
• Running test with no solution ensures test can fail
12/09/2017 ©odd.enterprises 14
Run Test to Ensure it Fails
It is possible that a test can be incorrect and always return a pass.
• Watching a test fail ensures it can fail
• If a test returns a pass without a solution then it is incorrect
12/09/2017 ©odd.enterprises 15
Input – Feedback = 11 – 10 = 01
Once a test can fail then feedback loop signal becomes 10.
• We now repeat and find the difference between Input and Output.
• Error signal is now equal to 01.
12/09/2017 ©odd.enterprises 16
Error = 01
Error = 01; we have a Test and can now create a Solution.
• Create Solution replaces feedback controller
• Solution is designed according to Test
12/09/2017 ©odd.enterprises 17
Error Triggers Solution Creation
Error = 01; Test has been created and signals Create Solution.
• We have created a Test and know objective of Solution
• Solution designed according to Test
12/09/2017 ©odd.enterprises 18
Solution is Created
Once Solution is created; it is Tested to create Feedback path.
• Solution is tested at earliest possible opportunity
• Once Solution is tested feedback path is complete
12/09/2017 ©odd.enterprises 19
Solution Passes Test
Solution passes Test and the Feedback loop is complete.
• Solution passes Test and output from Test Solution = 11
• If Solution doesn’t pass Test then output = 10
12/09/2017 ©odd.enterprises 20
Input – Feedback = 11 – 11 = 00
Feedback path is complete and we can find Error signal.
• Bitwise subtraction gives Error = 00
• Fully tested Solution has been created
12/09/2017 ©odd.enterprises 21
Error = 00
We have created a Test and Solution and
• Error = 00
• Error signal no longer drives the model
• No further need to create Test or Solution
12/09/2017 ©odd.enterprises 22
Solution is Tested
Solution has been created according to a test and tested.
• No further development necessary
12/09/2017 ©odd.enterprises 23
No Further Development
Error signal = 00 and indicates now further development is necessary.
• Bitwise subtraction of Feedback cancels out Input
• No input to Create Test or Create Solution
12/09/2017 ©odd.enterprises 24
Solution Created According to Test
Solution created according to solve the obstacle and we can move to next stage.
• Creating tests provide Verification
• Creating Solution to pas tests provides Validation
12/09/2017 ©odd.enterprises 25
Repetition for Each Obstacle
We repeat the same method for each obstacle required to be solved.
12/09/2017 ©odd.enterprises 26
Number of Obstacles = 𝑛
Number of obstacles to be solved is denoted by 𝑛.
• Bit length of signals are extended
• Number of bits used = 𝑛 ∗ 𝑑
• Each signal in the model will be equal to 𝑛 bits
12/09/2017 ©odd.enterprises 27
Substitute for Number of Obstacles
If you have 4 obstacles then 𝑛 = 4 and 𝑛𝑑 =8 bits.
• 4 bits for the tests
• 4 bits for the solutions
• You can create all the tests first
• You can proceed test then solution, etc
12/09/2017 ©odd.enterprises 28
Repeat Previous Steps for 𝑛 Obstacles
How you proceed is up to you.
• You can create all the tests first
OR
• You can proceed test then solution, and repeat
OR
• Use a combination of steps
12/09/2017 ©odd.enterprises 29
Repeat until Obstacles are Solved
We repeat the method until all obstacles have a test and solution.
• When Error signal becomes all 0’s we stop development
• Same method is used for all stages, levels and system divisions
12/09/2017 ©odd.enterprises 30
Models Exponential Complexity
Other engineering methods become less effective with time and complexity.
• Complexity increases of creating solutions increases exponentially
𝐶𝑜𝑚𝑝𝑙𝑒𝑥𝑖𝑡𝑦 = 2𝑛
12/09/2017 ©odd.enterprises 31
Repeat for each Level and Stage
Each stage is created using the same principle of a test and solution.
• Early stages will simply test theoretical ideas
• Early stages ensure we have identified what to create
12/09/2017 ©odd.enterprises 32
Full Method for Project Control
We create Obstacles for the next stages and integrate or decompose as necessary.
• When we finish we have made every attempt to achieve success through identifying failure
12/09/2017 ©odd.enterprises 33
Further Information and Questions
Website
Presentations
12/09/2017 ©odd.enterprises 34
Legal Stuff
ReferencesTest Driven Development for Embedded C
James Grenning, 2011
Test Driven Development
http://en.wikipedia.org/wiki/Test-driven development
Behaviour Driven Development
http://en.wikipedia.org/wiki/Behavior-driven development
Unit Testing
http://en.wikipedia.org/wiki/Unit testing
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.
12/09/2017 ©odd.enterprises 35