ソースコード評価プロジェクト - 九州

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