agile 개발방법과모델기반설계 - kr.mathworks.com · agile development –key principles...

37
1 © 2015 The MathWorks, Inc. Agile 개발 방법과 모델기반 설계 이영준

Upload: others

Post on 15-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

1© 2015 The MathWorks, Inc.

Agile 개발방법과모델기반설계

이영준

Page 2: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

2

Agenda

▪ Agile Values and Typical Workflow

▪ Model-Based Design (MBD)

▪ Agile Development with MBD

▪ Scrum with MBD

Page 3: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

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: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

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: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

5

1-4

Weeks

Typical agile development workflow

Page 6: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

6

Model-Based Design

Page 7: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

7

Models Understanding==

Page 8: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

8

Page 9: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

9

Simulation Physical Prototyping

Page 10: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

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: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

11

Systematic use of models throughout the development process

Model-Based Design

Page 12: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

12

Systematic use of models throughout the development process

Model-Based Design

Page 13: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

13

Systematic use of models throughout the development process

Model-Based Design

Page 14: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

14

Systematic use of models throughout the development process

Model-Based Design

Page 15: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

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: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

16

Agile Development with MBD

Page 17: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

17

Agile Development – Key Principles

Customer satisfaction by

rapid delivery of useful

software

Picture Source: http://www.softwareplant.com/scrum/

Page 18: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

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: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

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: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

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: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

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: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

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: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

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: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

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: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

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: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

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: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

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: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

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: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

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: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

30

Scrum with MBD

Page 31: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

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: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

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: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

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: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

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: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

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: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

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: Agile 개발방법과모델기반설계 - kr.mathworks.com · Agile Development –Key Principles Customer satisfaction by rapid delivery of useful software Welcome changing requirements,

37

Questions?