23
ソソソソソソソソソソソソ EPM ソソソソソソソ 2007 ソ 2 ソ 2 ソ ソソ ソソソソソソソソソソソソソ () ソソソソソ

ソフトウェアデザイン工学 EPM の適用結果報告

  • Upload
    jena

  • View
    54

  • Download
    0

Embed Size (px)

DESCRIPTION

ソフトウェアデザイン工学 EPM の適用結果報告. 2007 年 2 月 2 日 (株)日立システムアンドサービス 十九川博幸. Group1 (規模推移). 初期登録 12/8. テストコードの削除. Group2 (規模推移). 初期登録 12/8. Group3 (規模推移). 初期登録 12/8. Group4 (規模推移). 初期登録 12/8. テストコードの削除. Group5 (規模推移). 初期登録 12/8. Group1 ( CVS バージョン). Group2 ( CVS バージョン). Group3 ( CVS バージョン). - PowerPoint PPT Presentation

Citation preview

Page 1: ソフトウェアデザイン工学 EPM の適用結果報告

ソフトウェアデザイン工学EPM の適用結果報告

2007 年 2 月 2 日(株)日立システムアンドサービ

ス十九川博幸

Page 2: ソフトウェアデザイン工学 EPM の適用結果報告

Group1 (規模推移)

初期登録12/8

テストコードの削除

Page 3: ソフトウェアデザイン工学 EPM の適用結果報告

Group2 (規模推移)

初期登録12/8

Page 4: ソフトウェアデザイン工学 EPM の適用結果報告

Group3 (規模推移)

初期登録12/8

Page 5: ソフトウェアデザイン工学 EPM の適用結果報告

Group4 (規模推移)

初期登録12/8

テストコードの削除

Page 6: ソフトウェアデザイン工学 EPM の適用結果報告

Group5 (規模推移)

初期登録12/8

Page 7: ソフトウェアデザイン工学 EPM の適用結果報告

Group1 ( CVS バージョン)

Page 8: ソフトウェアデザイン工学 EPM の適用結果報告

Group2 ( CVS バージョン)

Page 9: ソフトウェアデザイン工学 EPM の適用結果報告

Group3 ( CVS バージョン)

Page 10: ソフトウェアデザイン工学 EPM の適用結果報告

Group4 ( CVS バージョン)

Page 11: ソフトウェアデザイン工学 EPM の適用結果報告

Group5 ( CVS バージョン)

Page 12: ソフトウェアデザイン工学 EPM の適用結果報告

EPM のモニタ結果

規模推移 ・テストコードの削除などで一時的に減少しているグループがある

が、特に異常な状態は見受けられなかった

 ・急激なコード増の時期があるが、 CVS 詳細情報と見比べても、特に異常な状態は見受けられなかった

(バグ情報と比較できれば、効果的な評価ができると思われる)

CVS バージョン情報(バージョン毎の CVS 操作回数) ・バージョン 1.1 (初期登録のまま修正なし)が 110 件弱存在する

 ・ Group2 と 3 は、バージョン 1.2 ( 1 回だけ修正)の比率が高く、全体の修正回数が少ない(作り込み品質が良かったか、バグをたたき出せていない)

(バグ情報と比較できれば、効果的な評価ができると思われる)

Page 13: ソフトウェアデザイン工学 EPM の適用結果報告

ソースコードの静的解析

JAVA のコーディング規約違反などの好ましくないコーディングを、ツールを使ってチェックすることができる

ここでいう「好ましくないコード」は、バグでは無く、勘違いやミスを誘発しやすいコードを指す

今回は、 PMD という JAVA ソースコード解析ツールを使用して、

2007/01/29 11 : 00 時点のソースコード( StockStateDAO)に対して静的解析を行った

各班の解析結果を報告します。PMD の詳細は、下記 URL を参照ください

http://pmd.sourceforge.net/

http://www.ibm.com/jp/developerworks/java/050121/j_j-pmd.html

Page 14: ソフトウェアデザイン工学 EPM の適用結果報告

雛型の指摘( 1 )

・ Private field 'conn' could be made final; it is only initialized in the declaration or constructor.

重要度:軽微

原因:コネクション用変数の final 指定忘れ

該当のコーディングprivate Connection conn;

Page 15: ソフトウェアデザイン工学 EPM の適用結果報告

雛型の指摘( 2 )

・ Avoid variables with short names like rs

重要度:軽微

原因:命名規則の問題(変数名が短すぎる)

該当のコーディングResultSet rs = null;

Page 16: ソフトウェアデザイン工学 EPM の適用結果報告

Group1 の指摘

・ Avoid empty if statements

重要度:実装途中の可能性あり

原因:空の If ステートメントあり

該当のコーディングif(count == 0){

}

Page 17: ソフトウェアデザイン工学 EPM の適用結果報告

Group2 の指摘

特になし

Page 18: ソフトウェアデザイン工学 EPM の適用結果報告

Group3 の指摘( 1 )

・ Avoid using if statements without curly braces

重要度:軽微

原因: If 文の{}忘れ

該当のコーディング if(rs != null)

rs.close();

Page 19: ソフトウェアデザイン工学 EPM の適用結果報告

Group3 の指摘( 2 )

・ Avoid variables with short names like sd

重要度:軽微

原因:命名規則の問題(変数名が短すぎる)

該当のコーディングStockData sd = null;

Page 20: ソフトウェアデザイン工学 EPM の適用結果報告

Group4 の指摘

・ Ensure that resources like this ResultSet object are closed after use

重要度:重大

原因:リソースの close 漏れ (finally ブロックで close できていない )

該当のコーディングResultSet rs = null;

finally ブロックが無い

Page 21: ソフトウェアデザイン工学 EPM の適用結果報告

Group5 の指摘( 1 )

・ Avoid unused imports such as 'org.apache.xalan.lib.sql.SQLErrorDocument'

重要度:実装途中の可能性あり

原因:使用されていない import 文

該当のコーディング import org.apache.xalan.lib.sql.SQLErrorDocument;

Page 22: ソフトウェアデザイン工学 EPM の適用結果報告

catch (SQLException e) {

// if (LOGGER.isErrorEnabled()) {

// LOGGER.error(e.getMessage(), e);

// }

}

Group5 の指摘( 2 )

・ Avoid empty catch blocks

重要度:実装途中の可能性あり

原因: catch 文の block が空

該当のコーディング

Page 23: ソフトウェアデザイン工学 EPM の適用結果報告

ソースコードの静的解析2

この他、 StockManager と StockDAO に対して静的解析を実施した結果、次のような指摘が摘出された

This call to Collection.toArray() may be optimizable

Avoid unused local variables such as 'sn'.

Avoid using while statements without curly braces

Avoid using if...else statements without curly braces

Avoid using if statements without curly braces