15. Development Process is Evolving… Model Driven Development MDD t 1960 1970 1980 1990 2000 2010 ASM C
16. Embedded Market Forecasters Documented in “ What Do You Do When the Horse You’re Riding Drops Dead? Why Model Driven Design is Emerging as a Preferred Best Practice”, March 2007 Advantages of Model Driven Development - Proven!
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37. Manually Define a TestArchitecture (aka TestBench) for each class/SUT Develop TestCases Manually by writing code Execute Test Cases on Host (code level) Execute Test Cases on Target (code level) Code Level Testing Model Driven Testing Basic Testing Process: Code vs. Model Automatically Generate a TestArchitecture (aka TestBench) for each class/SUT
38. Basic Testing Process: Code vs. Model Automatically Generate a TestArchitecture (aka TestBench) for each class/SUT Let ATG Automatically Generate TestCases Develop TestCases Interactively Code Flow Charts Manually Define a TestArchitecture (aka TestBench) for each class/SUT Develop TestCases Manually by writing code Execute Test Cases on Host (code level) Execute Test Cases on Target (code level) Animated Sequence Diagrams Requirements Sequence Diagrams Auto Generated TestCases Code Level Testing Model Driven Testing
39. Basic Testing Process: Code vs. Model Automatically Generate a TestArchitecture (aka TestBench) for each class/SUT Let ATG Automatically Generate TestCases Develop TestCases Interactively Code Manually Define a TestArchitecture (aka TestBench) for each class/SUT Develop TestCases Manually by writing code Execute Test Cases on Host (code level) Execute Test Cases on Target (code level) Regression (Animated)Sequence Diagrams Requirements Sequence Diagrams Activity Diagrams Code Level Testing Model Driven Testing Hand written TestCases I II III IV V Auto Generated TestCases
40. Basic Testing Process: Code vs. Model Automatically Generate a TestArchitecture (aka TestBench) for each class/SUT Let ATG Automatically Generate TestCases Develop TestCases Interactively Code Activity Diagrams Manually Define a TestArchitecture (aka TestBench) for each class/SUT Develop TestCases Manually by writing code Execute Test Cases on Host (code level) Execute Test Cases on Target (code level) Execute Test Cases on Host (code/model level) Execute Test Cases on Target (code/model level) Regression Sequence Diagrams Requirements Sequence Diagrams Code Level Testing Model Driven Testing
41. Basic Testing Process: Code vs. Model Very high very early Very low; measured late Typical Requirements Coverage Models (and optionally source code) Source code Configuration managed artifacts Yes, as Sequence Diagrams No Automatic Test Case Generation Part of the Model Requires external tools Traceability to Requirements Model (defect sequence diagrams) Code and text Communicating defects Very Positive Very Negative Competitiveness Models; Easy to do; Done very early Code; Hard to do; Done late Requirement Based Testing Change configuration parameters Review and rewrite all appropriate code Porting test cases to new platform/OS Code, Flowcharts, Sequence Diagrams Scripts, code Test Case authoring Model-Driven Testing Code-Driven Testing Aspect