how agile is model-based-design agile 개발 방법과 모델 기반 설계
TRANSCRIPT
![Page 1: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/1.jpg)
1© 2015 The MathWorks, Inc.
Agile 개발방법과모델기반설계
이영준
![Page 2: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/2.jpg)
2
Agenda
▪ Agile Values and Typical Workflow
▪ Model-Based Design (MBD)
▪ Agile Development with MBD
▪ Scrum with MBD
![Page 3: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/3.jpg)
3
Agile Values
“While there is value in the items on the right, we value the items on the left more.”
“While there is value in the items on the right, we value the items on the left more.”
- The Agile Manifesto, 2001- The Agile Manifesto, 2001
![Page 4: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/4.jpg)
4
Agile: Values, Principles and Practices
Agile is a mindset defined by values, guided by principles and manifested through many different practices.
Agile practitioners select practices based on their needs.
~ Agile Practice Guide (PMI® and Agile Alliance®)
Agile is a mindset defined by values, guided by principles and manifested through many different practices.
Agile practitioners select practices based on their needs.
~ Agile Practice Guide (PMI® and Agile Alliance®)
![Page 5: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/5.jpg)
5
1-4
Weeks
Typical agile development workflow
![Page 6: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/6.jpg)
6
Model-Based Design
![Page 7: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/7.jpg)
7
Models Understanding==
![Page 8: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/8.jpg)
8
![Page 9: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/9.jpg)
9
Simulation Physical Prototyping
![Page 10: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/10.jpg)
10
Simulation is key to Level 4-5 autonomy
Knowns Unknowns
Critical situations are in the long-tail*Simulation helps achieve this improbable task
*Source: Center for Artificial Intelligence, Saarland University
![Page 11: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/11.jpg)
11
Systematic use of models throughout the development process
Model-Based Design
![Page 12: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/12.jpg)
12
Systematic use of models throughout the development process
Model-Based Design
![Page 13: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/13.jpg)
13
Systematic use of models throughout the development process
Model-Based Design
![Page 14: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/14.jpg)
14
Systematic use of models throughout the development process
Model-Based Design
![Page 15: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/15.jpg)
15
Model-Based Design
TE
ST
& V
ER
IFIC
AT
ION
INTEGRATION
IMPLEMENTATION
ANALYSIS • SPECIFICATION • DESIGN
REQUIREMENT
DOCUMENTS
RESEARCH
ACTIVITIES
ModelModel
EnvironmentEnvironment
Physical
Components
Physical
Components
AlgorithmsAlgorithms
ArchitectureArchitecture
ConstraintsConstraints
FPGA ASIC
Structured
Text
Structured
TextVHDL, VerilogVHDL, VerilogC, C++C, C++
PLC PACMCU DSP
Test CasesTest Cases
Test CasesTest Cases
Continuous Test
and Verification
• Detect errors early in development
• Reduce use of physical prototypes
• Reuse tests throughout development process
Automatic Code Generation
• Eliminate errors from hand-coding
• Regenerate easily for different targets
Executable Specification
• Unambiguous – easy to understand
• Systems engineering - modeling whole
system including environment
• Sharing of models to improve
communication and collaboration
• Early validation and test development
Multi-domain Design
• Model algorithms and environment
• Perform integration testing at model level
before implementation
![Page 16: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/16.jpg)
16
Agile Development with MBD
![Page 17: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/17.jpg)
17
Agile Development – Key Principles
Customer satisfaction by
rapid delivery of useful
software
Picture Source: http://www.softwareplant.com/scrum/
![Page 18: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/18.jpg)
18
Principle: Customer satisfaction by rapid delivery of useful software
• Simulation allows customer
evaluation of functional
behavior early and often.
• Useful software can be
delivered throughout the
project via code generation.
Validate
functions
![Page 19: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/19.jpg)
19
Agile Development – Key Principles
Customer satisfaction by
rapid delivery of useful
software
Welcome changing requirements,
even late in development
Picture Source: http://www.softwareplant.com/scrum/
![Page 20: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/20.jpg)
20
Principle: Welcome changing requirements, even late in
development
• Requirements traceability supports impact analysis of affected model components.
• Dynamic/executable models allow for rapid evaluation of requirementschanges.
• Regression testing of simulation-based tests can be automated to confirm new design meets existing requirements.
Do you
meet the
“definition
of done”?
![Page 21: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/21.jpg)
21
Agile Development – Key Principles
Customer satisfaction by
rapid delivery of useful
software
Welcome changing requirements,
even late in development
Working software is the
principal measure of progress
Picture Source: http://www.softwareplant.com/scrum/
![Page 22: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/22.jpg)
22
Principle: Working software is the principal measure of progress
• Functional designs can be evaluated
continuously via executable models.
• Code generation supports rapid software
deliveries, rapid prototyping and HIL test
![Page 23: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/23.jpg)
23
Agile Development – Key Principles
Customer satisfaction by
rapid delivery of useful
software
Welcome changing requirements,
even late in development
Working software is the
principal measure of progress
Continuous attention to technical
excellence and good design
Picture Source: http://www.softwareplant.com/scrum/
![Page 24: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/24.jpg)
24
Principle: Continuous attention to technical excellence and good design
• Continuous development and
testing in an executable modeling
environment allows for – “build a
little / test a little” workflows.
Where are you!
…still coding?
Work on your
functionality, not
on your code
![Page 25: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/25.jpg)
25
Agile Development – Key Principles
Customer satisfaction by
rapid delivery of useful
software
Welcome changing requirements,
even late in development
Working software is the
principal measure of progress
Continuous attention to technical
excellence and good design
Simplicity
Picture Source: http://www.softwareplant.com/scrum/
![Page 26: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/26.jpg)
26
Principle: Simplicity—the art of maximizing the amount of
work not done—is essential
• Model-Based Design supports identification
of bugs where they are introduced and
“cheaper” to fix.
• Reduces rework (design and test).
0%
10%
20%
30%
40%
50%
60%
RQMT DSGN CODE/UT V&V
Pe
rce
nt
of
Bu
gs F
ou
nd
Number of bugs found shifts to earlier in development phase
MBD
SEI - industry average
![Page 27: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/27.jpg)
27
Agile Development – Key Principles
Customer satisfaction by
rapid delivery of useful
software
Welcome changing requirements,
even late in development
Working software is the
principal measure of progress
Continuous attention to technical
excellence and good design
Simplicity
Self-organizing teams
At regular intervals,
the team reflects on how
to become more effective
Picture Source: http://www.softwareplant.com/scrum/
![Page 28: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/28.jpg)
28
Principle: At regular intervals, the team reflects on how to become more
effective, then tunes and adjusts its behavior accordingly
• Collect metrics from models to
measure and improve process
e.g. test coverage, model metrics
• Flexible tool suite supports wide
variety of workflows and
development processes.
• Open APIs.
![Page 29: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/29.jpg)
29
Agile Development – Key Principles
Customer satisfaction by
rapid delivery of useful
software
Welcome changing requirements,
even late in development
Close, daily cooperation between
business people and developers
Working software is the
principal measure of progress
Continuous attention to technical
excellence and good design
Simplicity
Self-organizing teams
At regular intervals,
the team reflects on how
to become more effective
![Page 30: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/30.jpg)
30
Scrum with MBD
![Page 31: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/31.jpg)
31
BACKLOGDEFINITION
OF READYDELIVERY
DEFINITION
OF DONE
Simulate
Generate code
Integrate
Model-Based Design
• Executable Specifications from Models
• Design with Simulation
• Implementation with Automatic Code
Generation
• Continuous Test and Verification
Develop
Test
Integrate
Develop/Design
Verify
Evolved System Requirements
Generate code
![Page 32: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/32.jpg)
32
BACKLOGDEFINITION
OF READYDELIVERY
DEFINITION
OF DONE
Evolved System Requirements Simulate
Generate code
Model-Based Design
• Executable Specifications from Models
• Design with Simulation
• Implementation with Automatic Code
Generation
• Continuous Test and Verification
Test
Integrate external code
MIL – Modeling only
Evaluate/Decide
Validation
Develop/Design plant
and algorithm models
Integrate
subsystems
Verify design
choices
![Page 33: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/33.jpg)
33
BACKLOGDEFINITION
OF READYDELIVERY
DEFINITION
OF DONE
Simulate
Model-Based Design
• Executable Specifications from Models
• Design with Simulation
• Implementation with Automatic Code
Generation
• Continuous Test and Verification
Test
Integrate external code
HIL Verification
Evolved System Requirements
Develop/Design
plant model
Generate code
of plant modelIntegrate candidate
with HIL system
Verify candidate
implementation
against
simulated plant
![Page 34: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/34.jpg)
34
BACKLOGDEFINITION
OF READYDELIVERY
DEFINITION
OF DONE
Simulate
Generate code
of algorithm to
prototype board
Integrate with
real system
Model-Based Design
• Executable Specifications from Models
• Design with Simulation
• Implementation with Automatic Code
Generation
• Continuous Test and Verification
Develop/Design
algorithm
Test
Rapid prototyping
Verify prototype
against real
plant
Evolved System Requirements
Integrate external code
![Page 35: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/35.jpg)
35
Integrated Agile System Development
through Rapid Development Iterations
Deploy
Design
Integrate
Implement
Evaluate
Software
Components
Subsystems
Algorithm
Plant
External Code
Models (Components,
Subsystems, System)
Algorithm
Plant Model
System Architecture
Desktop CPU: MIL, SIL
Target CPU: PIL
Prototyping RT CPU: RCP, HIL
Production EC: HIL, OTRP
Controller Plant
MIL, SIL, PIL Virtual Virtual
RCP Virtual RT Real
OTRP Real Real
HIL Real Virtual RT
Automatic
Code
Generation
![Page 36: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/36.jpg)
36
Mechanical-centric Model-centric Software-centric
Who will be successful in the future?
Comprehensive models
Simulation based testing
Generate code and automate verification
Comprehensive models
Simulation based testing
Generate code and automate verification
![Page 37: How Agile is Model-Based-Design Agile 개발 방법과 모델 기반 설계](https://reader031.vdocuments.mx/reader031/viewer/2022021522/620a6b816ee23c2264201238/html5/thumbnails/37.jpg)
37
Questions?