ETロボコン2009 コード品質評価プロジェクト ~高品質プログラミングのススメ~ 九州地区 特別プロジェクト 2009/6/13

Slides:



Advertisements
Similar presentations
Konoha Project, (C) 2008 Kimio Kuramitsu, Yokohama National University, All Rights Reserved. 次世代ユビキタス スクリプティング言語の開発 横浜国立大学 倉光君郎 東京ミッドタウン,
Advertisements

メールで FAX を送信&受信 InterFAX サービス概要 株式会社 ドゥイッ ト 1 Rev. 61.
問題解決~分解すること~ 主幹・金山英嗣.
ITA Forum 2012-ITAロボコン参加者説明会
シーケンス図の生成のための実行履歴圧縮手法
Riding the Design Wave II
4章 制御の流れ-3.
【無償セミナー】 SPICEを活用したノイズシミュレーション 2014年3月13日(木曜日)13:30-16:00
リアルタイムシステムに 上流設計ツールは有効か?
LMNtalからC言語への変換の設計と実装
自作組込みOSを エミュレータで 動かしてみた 坂井弘亮 (KOZOSプロジェクト) Twitter ID:kozossakai.
LMNtalからC言語への変換の設計と実装
情報伝播によるオブジェクト指向プログラム理解支援の提案
プログラミング言語論 第6回 型 情報工学科 篠埜 功.
ITA Forum 2014-ITAロボコン参加者説明会
鳴門教育大学 大学院 総合学習開発講座 准教授 藤村 裕一
まずオープンソース開発者に対する支援から!
MATLAB測位プログラミングの 基礎とGT (1)
ETロボコン2011 九州大会 コード品質評価プロジェクト (SCQR2011)
変数のスコープの設計判断能力 を育成するプログラミング教育
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
C#とC++とオブジェクト指向 上甲 健史.
ITA Forum 2011-ITAロボコン参加者説明会
ご提案資料 xxxxx株式会社 作成日:2016.xx.xx.
2016年11月25日 大阪開発センター 技術1部 深田 健太 アプライアンス&デジタルソリューション株式会社
プログラムの制御構造 選択・繰り返し.
ソフトウェアデザイン工学 EPMの適用結果報告
細かい粒度で コードの再利用を可能とする メソッド内メソッドと その効率の良い実装方法の提案
Try! CATIA ~FMPの基本機能と活用方法~
21.5/23.6型液晶ディスプレイ グリーンハウス液晶ディスプレイ おススメする4つの理由! ブルーライトリデューサー(軽減)機能搭載
はじめてのNCL NCLの実例 NCLのインストール NCLのチュートリアル プログラムソースの解説 いざ実践 計算機セミナー
○○ ○○○ ○○ ○○○ ○○ ○○○ ○○ ○○○ ○○ ○○○ 会社名 会社名 会社名 会社名 会社名
通信機構合わせた最適化をおこなう並列化ンパイラ
社会奉仕.
動的データ依存関係解析を用いた Javaプログラムスライス手法
ソースコードの特徴量を用いた機械学習による メソッド抽出リファクタリング推薦手法
タイトルのレイアウト サブタイトル.
○○ ○○○ ○○ ○○○ ○○ ○○○ ○○ ○○○ ○○ ○○○ ○○ ○○○ ○○ ○○○ ○○ ○○○ ○○ ○○○ ○○ ○○○
Limeを使ったユニットテストの実装方法
コードクローンの動作を比較するためのコードクローン周辺コードの解析
ソースコード縮退による ソースコード理解 神谷年洋 科学技術振興事業団 さきがけ研究21 オブジェクト指向シンポジウム2003.
品質工学の基礎セミナー KCみやぎスキルアップセミナー 13:15~16:30 参加費 無料
プログラミングコンテストシステムへの 提出履歴データとその分析
バイトコードを単位とするJavaスライスシステムの試作
第15回放送授業.
ソフトウェア保守のための コードクローン情報検索ツール
コードクローンの理解支援を目的としたコードクローン周辺コードの解析
ディジタル化の 利点と問題点 高等学校 情報C 沖縄県立総合教育センター IT教育課 〒 沖縄県沖縄市与儀587番地
コーディングパターンの あいまい検索の提案と実装
3.1 ifステートメント 3.2 if-elseステートメント 3.3 コードのブロック 11月14日(金) 発表者:藤井丈明
ITA Forum 2013-ITAロボコン参加者説明会
C#プログラミング実習 第3回.
2016年1月14日 報道関係各位 ETロボコン2016開催・記者発表会のご案内
オープンソースソフトウェアに対する コーディングパターン分析の適用
ご提案資料 xxxxx株式会社 作成日:2016.xx.xx.
さまざまなプログラミング言語, オンライン開発環境
ネットワーク・プログラミング Linuxシステムとソフトウェア開発.
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
ご提案資料 xxxxx株式会社 作成日:2016.xx.xx.
(取り組みの有無、有の場合は、その概要を記入)
情報実習I (第1回) 木曜4・5限 担当:北川 晃.
プログラミング言語論 第九回 理工学部 情報システム工学科 新田直也.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
プログラミング言語論 第九回 理工学部 情報システム工学科 新田直也.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
プログラミング1 プログラミング演習I 第2回.
オブジェクト指向メトリクスを用いた 開発支援に関する研究 --- VC++とMFCを用いた開発を対象として ---
クラブ会長 役割と責務.
2012年2月25日(土) ETロボコン 東京地区実行委員会
2015年1月29日 報道関係各位 ETロボコン2015開催・記者発表会のご案内
Presentation transcript:

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