[レポート]
株式会社 オージス総研
ビジネスプロセスソリューション部
小坂 優
Kosaka_Suguru@ogis-ri.co.jp
二上貴夫(株式会社東陽テクニカ)
平鍋健児(株式会社永和システムマネジメント)
渡辺博之(株式会社オージス総研)
渡辺政彦(CATS株式会社)
UML Forum2002、2003において、組み込みソフトウェア開発者を対象にUML を利用した開発技術の習得場として、UMLロボコン[2]という教育プログラムが実施されました。 過去2回のロボコンで約160名のエンジニアや学生が参加し、UMLの基礎から実 用までを体験しています。
このセッションは、UMLロボコンを計画し、運営に携わったエンジニアによ る実施報告となっています。
このセッションは、講演者による発表とパネルディスカッションで構成されて います。 それでは、それぞれの講演について報告します。
まず、二上さんによる、UMLロボコンを開催するまでの経緯についての講演 がおこなわれました。
多くのソフトウェア開発プロジェクトにおいて、UMLを使用したオブジェク ト指向開発が行われています。組み込みソフトウェア開発においても同様に、 オブジェクト指向による開発をおこなうプロジェクトが増えてきています。
実際の開発現場では、OJTによるオブジェクト指向開発の教育が行われてい ます。しかし、日本の組み込み開発産業のためには、多人数に対してUMLを使 用したモデリングや、開発プロセスを含めた基本的なレベルでの教育を能率的 に実施することが必要だということで始まったのが、UMLロボコンだそうです。教育をするにあたって必要となるノウハウを持つ日本のツールベンダやコン サル会社などで活躍するエンジニアが集まったことと、手軽にプログラミング できるH/W LEGO Mindstorms[3]の登場で 「機は熟したんです!」と語る二上さんのいきいきとした表情がとても印象的 でした。
ここでは、弊社渡辺による、UMLロボコンのモデリング部門の審査基準と参 加チームのモデルの紹介についての講演がおこなわれました。
モデリング部門の審査基準の骨子は以下のとおりです。
- モデルの外観
- UML的な正しさ(文法)
- 見易さ
- オリジナリティ
この審査基準に沿った評価項目を作成して、5名の審査委員(講演者の方々 + Leon Starr[i])で審査を実施したとのことです。
- モデルの内容
- モデルの妥当性
- 論理的正しさ
- オリジナリティ
続いて、いくつかのチームのモデルを取り上げて、モデリングの特徴の違い について報告がありました。また、第1回目とくらべると第2回目で作成された モデルの質が向上していたようです。「正しく動かす」から「保守性や再利用 も考えて動かす」に進化したという印象をもったということでした。
なぜモデルの質が向上したのかと考えてみました。これには、第2回目の方 が要求が少し難しくなっていること、また、2年連続で出場している会社では 第1回目のモデルをベースにしていたようで、そのことが関係してしているの だと思いました。当然、すべてのチームが質の高いモデリングができたわけで はありません。渡辺さんは「いかにオブジェクト指向のメリットを活かしてい くかがポイント」を今後の課題に挙げられてました。
オブジェクト指向のメリットとしては、再利用性や拡張性に優れているなど が挙げられます。今後は、再利用性や拡張性を考慮したモデルを評価するため の競技種目が採用されることでしょう。余談ですが、審査委員の方々は徹夜でモデルのチェックを行ったそうです。本 当にご苦労様でした。
ここでは、モデリング部門の審査委員によるディスカッションが行われました。 個人的に印象に残った内容を挙げておきます。良いモデルと評価したモデルはどのようなモデルだったか
モデリング部門の審査を担当した講演者の方々が感じた、良いモデルのポイ ントをお聞きすることができました。
皆さんの意見で共通していたのが「シンプルでわかりやすいモデル」でした。 短時間でレビューしなければいけないため、見た目に意図が伝わるということ は重要だったようです。「ルックス的に美しいモデルは、論理的な考慮がなさ れている。(平鍋)」という意見は、良いデザインはシンプルである傾向を証明 するような意見だと思いました。内容に関しては、「抽象化とレイヤー化が考慮されたモデル」が高く評価され たようです。固定部と可変部が切り分けて考えられ、実際のモデルでは、モー ターやセンサといったH/Wを抽象的に捕らえていたり、走行の戦略を切り替え ることができるようになっていたりというところで判断できます。こうするこ とで、実際の(レース場での)H/Wやコースの状態に応じて容易にチューニング することができますよね。
なぜLeon Starrの評価が他の審査委員と異っていたか
モデリング部門の審査は、このセッションの講演者に加え、Leon Starrが担 当されたのですが、Leon Starrによる評価の傾向が他の審査員と少し異なって いたようです。
Leon Starrが高く評価したモデルは、わかりやすい静的構造(クラス図)より も複雑な状態モデル(状態図)で表現されたモデルでした。"複雑な"というのは 一見すると理解しにくいのですが、MDAツールにかければすぐにも動きそうな モデルだったそうです。
Leon Starr以外の審査員はわかりやすい静的構造を高く評価したため、評価 結果に違いがでたというわけです。このあたりは、Executable UML[4]の著者であるLeon Starrならではといっ たところでしょうか。
ちなみに、Leon Starrが高く評価したチームは、Leon Starrお気に入り のモデリングツールを使用してたそうで「だからじゃないか?(発言者は 秘密)」なんて意見も出ました。われわれが開発するとき、分析モデルは日本語で、設計モデルは英語で表現 しますよね。そして、クラスやメソッドに英語で命名するときに苦労した経験 はありませんか?
個人的には、われわれ日本人が書いたモデルの英語が、Leon Starrにどのよう に評価されたかが気になりました。良いモデル = 速いマシン にはならなかった
残念ながら、モデリング部門で優勝したチームが、レース部門で優勝とはなら なかったようです。惨敗したり、リタイアしたり…。
この結果については、審査員の方々も残念に思ったようです。LEGO Mindstormsのセンサはプアで精度の個体差が激しかったり、電池のパ ワーによってモーターの出力結果が違ったりします。また、クラス図には表現 されないアルゴリズムも結果を左右します。だから、良いモデルが必ずしも速 いマシンにはならないことは理解できますが、モデリング部門で評価された良 い設計はそれなりの結果につながって欲しいですね。
次回からは、コースに障害物を増やしたり、照明を暗くしたりして「その状況 に合わせて対応してもらい、変更対応の検証をしたい。(オージス渡辺)」など の意見が出ました。
ここでは、CATSの渡辺さんによる、部下をUMLロボコンに参加させたときに 何を期待していたかということについての講演が行われました。
「絶対にレースに勝つこと!」渡辺さんはそれしか伝えなかったそうです。し かし、裏にはエンジニアとして以下の項目のスキルアップという目的がありま した。
- 全体を見渡す力
- 創造性
- 協調性
実際の開発では、
といった問題を感じていたり、
- 失敗は成功の元というけれど、失敗は許されない状況が多い
- サブリーダー指向で、競争心が感じられない人が多い
- いろんな情報を集めるけど、実践しない人が多い
といった状況で、開発全体を経験する機会がなかなかないので、UMLロボ コンはもってこいのプロジェクトだったというわけです。
- 新人には詳細機能化されたモジュールの一部分しか担当させない
- 役割分担が行われ、新人はプログラミングかユニットテストしか担当させない
「絶対にレースに勝つこと」とだけ伝えたと言いましたが、それは「"勝つ" という単純かつ具体的な目的に向かって何をすべきかというところから考えろ」 ということ。そこから、コミュニケーション、プロセス、メソッドの重要性を 体感できるのだとおっしゃっていました。
講演の口調はとてもクールな渡辺さんでしたが、醸し出す雰囲気には熱いもの を感じ、個人的にはグッときました。あと余談ですが、今年の私のキーワード は「勝ちたいんや」[ii]です。
ここでは、平鍋さんによるUMLロボコンに見るオブジェクト指向教育について の講演が行われました。
オブジェクト指向教育者の立場で平鍋さんが強調されていたのは、リテラシの 教育から思考法の教育へということと、ファシリテーションの重要性でした。
例えば、現状のソフトウェア開発に問題意識がない人や、(組み込みでは)コ ンピュータの仕組みやメモリモデルを理解していない人にオブジェクト指向を 教えることは、表面上の教育になってしまうことがあり、結果として弊害も大 きいと感じるとおっしゃっていました。また、インターネットの普及に伴う Javaのブレイクにより、日本ではアメリカと比べて急激なオブジェクト指向の 流入が起き、その結果、ソフトウェア開発の現場では消化不良を起こしている ことを指摘されてました。だからこそ、「指向」も大切だけど「思考」がより 重要だというわけです。
その思考法の教育には、理想論ではなく状況(実践の場)が必要です。UMLロ ボコンはまさにその状況を提供しています。
手を動かして実践することで、フィードバックを得ることができます。また、 ペア、あるいはチームで開発することで自身と勇気を得ることができます。そ して、課題にぶつかり、その解決手段としてオブジェクト指向が適しているこ とを体感することができます。
このような結果を得るためには、チームの力を引き出し、コラボレーション をリードするようなファシリテータの存在が不可欠となります。ファシリテーションやファシリテータは、アジャイル開発の文献やコミュニ ティで話題になっています。ファシリテーションというのは、簡単にいうとチー ムが目的を達成するための活動を促進することです。そして、ファシリテータ はチーム活動の中で、メンバの意思や力を引き出してまとめ、チームの成果が 最大となるように支援する役割のことです。
よくわからないよと言う方は、星野監督を思い浮かべてください。阪神タイ ガースの中で、星野監督はフロントと現場の間に立ち、お互いが気持ちよく仕 事をできるような環境をつくりました。また、現場においては、うまく競争意 識を持たせることでプレイヤーの能力を引き出し、「勝ちたいねん」という思 いを浸透させてチームをまとめました。この役割はまさにファシリテータです。2003年、阪神タイガースはセ・リーグを制覇しました。そこには、ファシリ テータ星野仙一の存在が不可欠だったと言えるのではないでしょうか。
少し話がそれましたが、UMLロボコンはオブジェクト"思考法"の教育に最適 というわけです。
私は、UMLロボコンはオブジェクト指向による組み込みソフトウェア開発教育 の題材として、以下の点で素晴らしいと感じました。
2回のUMLロボコンを経て、教育のためのフレームワークとして成長している ようです。その成果物は公開に向けて準備中ということなので、期待して待ち ましょう。われわれも有効に利用できるでしょうし、フィードバックすること でより洗練されていくでしょう。
さて、第3回UMLロボコンも計画されているようです。今までは新人や初心者が 対象でしたが、中級者や上級者向けの内容を実施したいとおっしゃってました。 私も第2回は業務多忙のため参加を断念しましたが、次回は参加したいと思ってま す。みなさんも、仲間を集めて参加してみてはいかがでしょうか。
「みなさん、次はロボコンの会場で会いましょう!」
二上さんの熱いメッセージで、このセッションは幕を閉じました。
[i] Model Integration [ii] 言わずと知れた2003年度星野阪神のスローガン
[1] 組み込みUML教育の実施報告(講演資料) [2] UMLロボットコンテスト https://www.otij.org/UMLForum2003/robocon/ [3] LEGO Mindstorms https://mindstorms.lego.com/ [4] Executable UML : How to Build Class Models Leon Starr著, Prentice Hall, 2001
[a] 第1回 UMLロボットコンテスト参加レポート(オブジェクトの広場) [b] 第2回 UMLロボットコンテスト参加レポート(オブジェクトの広場)
© 2003 OGIS-RI Co., Ltd. |
|