Post on 21-Jan-2016
transcript
11
Case Example of Applying BridgePoint to OO Development Training
Shohei KUKI
Ricoh Company, LTD.
22
KUKI, Shohei
• Started working as an embedded system engineer at Ricoh in 1999.
• First project was UI (User Interface) common component development, where he gained experience and skills on object-oriented software modeling.
• Has been training new engineers to improve their abilities and skills in object-oriented software modeling, as well as creating a system of skill development in object-oriented software modeling since 2003.
九鬼 昌平
33
Contents• Background
• Introductory OO Development Training
• Road to the effective training– Use BridgePoint– Lecture the concept of domain– Iteration evaluation review
• Conclusion
Case Example of Applying BridgePoint to OO Development Training
44
BackgroundHistory
Practical OO Development Training
Initial skill level of trainees
55
History1996 2001 2002
Trying to adopt MDD again
2003
Model based OO development(the differential development)
Rose was chosen as the major tool.Practical OO development
training for newly hired employees
Modeling technique was learned from SMM at the beginning.
Bridge Point was one of the proposed tools.
Bridge Point was not chosen as the major tool.
but, still automatic code generation was promising.
developed a part of printer engine controller by Bridge Point with a consultant.
MDD was not adopted. OMG began
advocating MDA.
2000 2004
Then,proposed MDD to a production side.
66
Practical OO Development Training• Purpose
– Developing software modeling engineers– Making constitution of building the quality into
software at upper process– Making a set of software as outputs
• Trainees– Newly hired employees who assigned as
software engineers
• Period– About 1 year
77
Initial skill level of trainees• Academic background
– University or master course graduates
• Programming experience– Some have development experience, some have
no knowledge of programming language example in 2004:
• Experience of OO development – Nobody has
knowledge development
C 97 % 59 %C++ 59 % 25 %Java 59 % 16 %Other language 22 % 9 %
88
Introductory OO Development Training
Positioning and purpose
Spec of Training
Spec of Subject
Development plan
Training style and System
99
Positioning and purpose
• Positioning– Initial training of “practical OO development
training”
• purpose– Aware of the fun in developing embedded
software– Aware of the base of OO thinking
1010
Spec of TrainingSubject Pathfinder※Hardware LEGO MindStormsOS legOS 0.2.5Trainees Newly hired employees who
assigned as software engineersinitial skill of trainees
Exp. of software development: about 70%
Exp. of OO development:0%
Period About 10 days※This subject is the same as the one used for UML robot contest. (requested spec is simplified)
URL of UML robot contest: http://www.otij.org/umlforum2004/robocon/ (Japanese Version Only)
1111
Spec of Subject• Pathfinder
– Self-steering vehicle– running along the line
• Proceed• Stop• Pause for 2 seconds• Detect line• Detect out-of-track
– Maintenance• Correct threshold level of sensors• Check motors
Turn the steering to theright direction when theblack color is detected
coursePathfinder
sensor
Turn the steering to theleft direction when thewhite color is detected.
1212
Development plan• Achieving functions incrementally
Basic func. Proceed, stop and detect line
Additional func. 1
Detect out-of-track (in 2002 and 2003)
Pause for 2 seconds (in 2004)
Additional func. 2
Check motors (in 2002 and 2003)
Correct threshold level of sensors (in 2004)
1313
Training style and system• Training style
– Lecture + exercise(group work)• Promote understanding by many
exercises
• Training system– lecturer
• Give lectures
– advisers• Support reviews• 2 advisers for about 3 groups
– trainees• Form a group with 4 to 6 members
1414
Road to the effective training
1515
We did various kaizenrate of achievement of total groups
year
functions2002 2003 2004
Basic func. 100% 100% 100%
Additional func. 1 80% 100% 100%
Additional func. 2 0% 80% 100%UP!
UP!
UP!
Not good progressLittle time for
analysis
Not best progress
Kaizen1: use BridgePoint
Kaizen2: Lecture the concept
of domain
Kaizen3: Iteration evaluation
review
1616
Result in 2002
• No group could achieve additional func. 2rate of achievement of total groups
year
functions2002
Basic func. 100%
Additional func. 1 80%
Additional func. 2 0%
No group could achieve additional function2 despite my efforts in preparing this function!
1717
Problem in 2002• problem
– Not good progress• Many trainees deadlocked at design and
implementation– Some trainees didn’t have experience of programming
– Little time for analysis
• cause– Mismatching between training level and trainee’s
skill level • Especially, design and implementation were difficult
for the trainees
We used Rose as development tool, with which implementation is necessary
1818
Kaizen1 in 2003: using BridgePoint• Changed development tool
– Switched from Rose to BridgePoint• With BridgePoint, design and implementation is not
necessary
1919
Result in 2003• Speed up of development
rate of achievement of total groups
• Had a lot of time for analysis
year
functions2002 2003
Basic func. 100% 100%
Additional func. 1 80% 100%
Additional func. 2 0% 80%
UP!
UP!
But some groups could not achieve additional function2
2020
Problem in 2003• problem
– Not best progress• Couldn’t separate semantics
– pathfinder and device
• Model quality varied depending on each group
• cause– Didn’t lecture the concept of domain
• Concept of domain and bridge was not understood well
– Lack of quality management• Couldn’t take hold of each group
2121
Example : mixed semantics:pathfinder:pathfinder
:motor:motor:line sensor:line sensor
:steering:steering :accelerator:accelerator
OperateStop
Steering stop notice
Start detectionStop detection On-line notice
Out-of-line noticeSensor stop notice
ForwardReversebreaking
Forwardbreaking
DriveStop
Accelerator stop notice
Motor stop notice
Motor stop notice
2222
Kaizen2 in 2004: lecture the concept of domain• Added the concept of domain lecture to
program– Increased training days, lecture and
exercisePathfinder
Timer
Device driverUI
2323
Example: separated semantics
: navigator {1,NAV}
: handle {3,HAN} : accelerator {2,ACC}
: User Interface {UI}
HAN1:change direction[direction]
HAN2:stop drivingACC1:change mode[mode]
ACC2:stop engine
NAV1:start driving
NAV3:stop driving
: pathfinder controller {4,ADM}
ADM1:go
ADM3:measurement stop
2424
Problem in 2003• problem
– Not best progress• Couldn’t separate semantics
– pathfinder and device
• Model quality varied depending on each group
• cause– Didn’t lecture the concept of domain
• Concept of domain and bridge was not understood well
– Lack of quality management• Couldn’t take hold of each group
2525
Kaizen3 in 2004: Iteration evaluation review
• Iteration evaluation review– Review for outputs in each iteration
– We can take hold of each group’s status and quality of outputs.
– Late group can increase the speed by doing some review intensively
2626
Result in 2004• All groups achieved all functions!
– Could shift the semantics
– Developed the models in excess of a certain level
rate of achievement of total groupsyear
functions2002 2003 2004
Basic func. 100% 100% 100%
Additional func. 1 80% 100% 100%
Additional func. 2 0% 80% 100%
2727
Comments from trainee• Satisfaction level
0%
20%
40%
60%
80%
100%
2002 2003 2004
Very unsatisfactory
Unsatisfactory
No opinion
Satisfactory
Very satisfactory
No data
Comment sample
Very satisfactory I learned how we should do the group work
Very satisfactory Pathfinder was a fun as a subject
Very satisfactory Now, I can understand the flow of OO development
2828
We accomplished the purpose• Aware of the fun in developing embedded
software– All groups achieved all functions
• Aware of the base of OO thinking– Focused on analysis– Could shift the semantics– Developed the models in excess of a certain level
2929
Conclusion
3030
What we learned about education• Take care of trainee’s skill level !
– Newly hired employees may not have implementation skill
• Focus OO thinking !– Take a lot of time to analyze– Beginners cannot separate semantics
• Make trainees be fun to develop software !– Rapid development
BridgePoint is an excellent tool for educationand future development
3131
Thank you for listening!
Case Example of Applying BridgePoint to OO Development Training
Shohei KUKI
Ricoh Company, LTD.