ETロボコン2009 コード品質評価プロジェクト ~高品質プログラミングのススメ~ 九州地区 特別プロジェクト 2009/6/13 株式会社ネットワーク応用技術研究所 梶﨑紀貴(Kajizaki Noriki) kajizaki@nalab.jp All Rights Reserved, Copyright © 株式会社ネットワーク応用技術研究所 2009
組込みソフトウェアの総合品質 設計品質 性能品質 ここが無い!! モデル審査 コード品質 走行タイム 組込みソフトウェア の総合品質 All Rights Reserved, Copyright © 株式会社ネットワーク応用技術研究所 2009
組込みソフトウェア開発現場では・・・ 設計品質 コード品質 設計品質 コード品質 コード品質低下の原因 Good Bad ケース① Good Bad 設計品質 コード品質 設計の良さを実装が損ねている ケース② Bad Bad 設計品質 コード品質 設計の悪さを実装でも引き継いでいる なかなかそうはいかない! 理想は・・・ 設計の良さ⇒実装品質(コード品質)につながる All Rights Reserved, Copyright © 株式会社ネットワーク応用技術研究所 2009
『設計品質』 『コード品質』 『性能品質』 全て良くする方法を学習するには最適!! ETロボコンでは理想を追求できる!! 理想 Good Good 設計品質 コード品質 設計の良さ⇒実装品質(コード品質)につながっている ETロボコンのソースコード規模は小さい 小さいからこそ 目的 『設計品質』 『コード品質』 『性能品質』 全て良くする方法を学習するには最適!! All Rights Reserved, Copyright © 株式会社ネットワーク応用技術研究所 2009
せっかくの機会を生かそう!! Free!! コード品質評価センター 参加チーム ソースコード ソースコード ソースコード 品質向上施策 品質評価ツール ソースコード 静的解析ツール ソースコード 品質向上施策 QAC連携 C言語用 品質診断ツール 品質評価結果 ワークショップで… 分析結果の傾向/考察をご報告。 コード品質向上に関する学習の場を設ける。 All Rights Reserved, Copyright © 株式会社ネットワーク応用技術研究所 2009
ソースコードの条件 プログラミング言語 C言語、または C++言語 ソースコードの規模 10KLine程度まで 対象ソースコード RCXまたはNXTに搭載するプログラムのソースコードが対象 ソースコードの開発環境 実行委員会指定のもの All Rights Reserved, Copyright © 株式会社ネットワーク応用技術研究所 2009
品質評価結果例(C言語) 危険なコーディング個所を指摘 品質指標を「見える化」 1:int func(int a, int b) 2:{ 3: if( a = b ) { ^ Msg(2:3326) 代入演算子がブール式の中で使用されています。 4: return 0; 5: } 6: else { 7: return 1; 8: } 9:} 品質指標を「見える化」 All Rights Reserved, Copyright © 株式会社ネットワーク応用技術研究所 2009
品質評価結果例(C++言語) 1: int foo(int i) 2: { 3: if(i == 0) 4: { 5: goto skip; 危険なコーディング個所を指摘 1: int foo(int i) 2: { 3: if(i == 0) 4: { 5: goto skip; ^ Msg(8:4003) オブジェクトの初期化部分を飛び越しています。 6: } 7: 8: int j = 0; 9: // ・・・ 10: skip: 11: return j; 12: } All Rights Reserved, Copyright © 株式会社ネットワーク応用技術研究所 2009
効果 参加チームにとって・・・ ①ソースコードレビューの一環として利用 ! ②プログラミングのスキル向上の一環として利用! ③ソースコード静的解析ツールの効果を体験! 九州地域として・・・ 組込みソフトのソースコード品質向上施策の一助 All Rights Reserved, Copyright © 株式会社ネットワーク応用技術研究所 2009
お約束 ソースコードの利用 評価結果ご報告に際して ご提供頂いたソースコードはETロボコンに関する活動以外には使用しません。 ソースコードの一部をワークショップでの報告に使用することがあります。 その場合は、ご提供チーム名/メンバ名などチーム/個人を特定できる情報は 全て除外して使用します。 All Rights Reserved, Copyright © 株式会社ネットワーク応用技術研究所 2009
九州地区計画 6月 7月 8月 9月 ETロボコン2009 コード品質評価プロジェクト 9/5(土) 地区大会 9/6(日)ワークショップ 6/13(土) 技術教育2 7/25(土) 試走会1 8/22(土) 試走会2 ETロボコン2009 コード品質評価プロジェクト 【モデル提出期限】 モデルと一緒にソースコードを提出頂く 品質評価結果ご返却 分析 【ワークショップ】 ケーススタディ 最高品質チーム表彰 All Rights Reserved, Copyright © 株式会社ネットワーク応用技術研究所 2009
kajizaki@nalab.jp ソースコード送付先/お問い合わせ 梶﨑 紀貴(かじざき のりき) 株式会社ネットワーク応用技術研究所 Tel : 092-831-4110 Fax : 092-831-4112 All Rights Reserved, Copyright © 株式会社ネットワーク応用技術研究所 2009