フレームワークを用いた
情報システムの継続的開発に関する研
究
大阪大学 大学院情報科学研究科
コンピュータサイエンス専攻 井上研究
室
湯浦 克彦
2007.12.26
目 次
1.
はじめに
2.
イベントトレース図に基づく要求仕様書からのフ
ァンクションポイント計測方法 (概要)
3.
複雑度と機能量に基づくアプリケーションフレー
ムワークの実験的評価
4.
財務情報処理言語 XBRL で記述された財務データ
の会計ユーザ向け処理方式
5.
分析業務に関する知識を用いた財務分析支援方式
(概要)
6.
おわりに
1.1
自己紹介と研究の動機
自己紹介
日立製作所の研究所において、オブジェクト指向言語・
設計分野適用等の研究 ( 1980 ~ 95 ごろ)
情報システム開発への研究成果適用とコンサルティング
活動
( Java, XML, 企業アーキテクチャ、内部統制など)
現在、日立コンサルティング テクニカルディレクター
本研究への動機
企業での開発プロダクト(下記)等に関わるソフトウェ
アエンジニアリング面での理論的探究
要求仕様視覚化ツール REQUARIO
Java Web
開発のための画面遷移フレームワーク
財務報告記述言語 XBRL
開発
開発
保守
保守
従来の
開発と保守
継続的開発
基盤としての保守
1.2
研究の背景 情報システムの継続的
開発
業務環境変化
への早期対応
保守コストの増大
(開発の約3倍)
開発
開発
開発
開発
開発
開発
開発
開発
開発
開発
変化部分記述用クラ
ス
クラス群の利用手順
クラス
クラス
フレームワーク
変化部分プログラム
オブジェクト
オブジェクト
オブジェクト
情報システム
固定部分プログラム
固定部分プログラム
継
続
的
開
発
1.3
研究の目標
フレームワークによる継続的開発
フレームワーク
実用化への技術課題
適用効果の計測
(第 2 章、第 3 章)
業務分野への特化
-
財務報告処理
-(第 4 章、第 5 章)
再利用・標準化
マネジメント技
利用者の分析・
業務知識の適用
オブジェクト指向
( Java, XML, アプリケーション
フレームワークなど)
関連技術
メトリクス
(ファンクションポイント
など)
ビジネス標準・ EA
反復型開発・
IT
サービス管理
本論文の範囲
1.4
研究の範囲と関連技術
クラス
2.1
オブジェクト指向ソフトウェアに対する
ファンクションポイント( FP )の計測
データファイル
トランザクション
(手続き)
従来型ソフトウェア
オブジェクト指向
ソフトウェア
クラス
属性群
(データ)
ファンクションポイント
標準計測法( IFPUG 法)
データファイル
トランザクション
(手続き)
データファイル
トランザクション
(手続き)
メソッド
(手続き)
メソッド
(手続き)
重み付けして個数をカウント
本方法
(イベントトレース図利用)
重み付けして個数をカウント
要求仕様視覚化ツール REQUARIO
購買担当 購入要求 DB
購入要求
情報格納
イベントトレース図
品名・数量
等を更新
2.2
拡張されたイベントトレース図情報に基づく
トランザクション FP 計測の精緻化
データ処理情報
拡張
要求仕様視覚化ツール REQUARIO におけるデータ処理情報を利用
( UML 標準記法であるイベントトレース図の拡張となる)
計測ツールを試作.熟練者による計測との誤差は 20% に収まった.
A
市向け「年金個人資格照会」
A
市向け「年金
世帯
資格照会」 または
B
市
向け「年金個人資格照会」
3.1
従来方式による類似プログラムの作成
A
1:
メインプログラム
(画面制御と DB 管理)
A
11:
データ問合せ
A
12:
結果表示
A
13:
データ更新指定
B
1:
メインプログラム
(画面制御と DB 管理)
B
11:
データ問合せ
B
12:
結果表示
B
13:
データ更新指定
モジュール単位での
複製と編集
F
1
:
フレームワーク
データ
問合せ
結果
表示
更新指定
データ
固定部(画面制御・ DB 管理)
変形定義
用
クラス群
A
市「個人」
変形定義
固定部
A
個
問合
表示
A
個
指定
A
個
固定部
A
世
問合
表示
A
世
指定
A
世
固定部
B
個
問合
表示
B
個
指定
B
個
A
市「世帯」
変形定義
B
市「個人」
変形定義
3.2
フレームワークに基づく類似プログラム
の作成
A
市「個人」
A
市「世帯」
B
市「個人」
クラス群
の利用
3.3
画面遷移フレームワークの概要
アプリケーションサーバ
Servlet
フレームワーク
固定部
(画面遷移制御)
EJB
コンポーネント
プロ
セス
EJB
エン
ティ
ティ
EJB
RDB
Web
ブラウザ
JSP
DB
更新
処理
DB
検
索処理
更新
画面
更新パターン
確認
画面
DB
検索
処理
選択
画面
問合・表示パター
ン
フレームワーク変化部
(画面遷移定義)
典型的な業務処理パターンにおける画面遷移と EJB コンポー
ネントの実行順序制御と,個別処理指定機能をフレームワー
ク化
個別処理指定
機能 Fi の指定
(i = a,b,c,d)
フレームワークを
用いて開発
フレームワーク
なしで開発
C
i
P
i
FW
固定部
FW:
フレームワーク
3.4
ケーススタディ 1 :業務機能を個別に開発
機能 a: 個人資格照会
機能 b: 世帯資格照会
機能 c: 賦課状況照会
機能 d: 転入資格異動
Fi
変化部
(混在)
機能 Fa
の指定
フレームワークを
用いて開発
フレームワーク
なしで開発
C
a
P
a
FW
固定部
FW:
フレームワーク
機能 Fb
の指定
C
a
+ b
P
a
+ b
機能 Fc
の指定
3.5
ケーススタディ 2: 業務機能を追加型で開
発
FW
固定部
Fa
変化部
変化部
Fa
変化部
Fb
(混在)
(混在)
(混在)
3.6
メトリクス
機能量のメトリクス OOFP ( Object-Oriented FP )
Caldiera
らにより提案( 1998 ).
オブジェクト指向開発・保守の「能率の高さ」を計測す
る指標
単純な重み付けによる計測が可能
データ FP 外部クラス/内部クラスの個数
トランザクション FP メソッドの個数、データの参照個数
複雑度のメトリクス C&K ( Chidamber & Kemerer )
Chidamber
と Kemerer により提案( 1994 ).
オブジェクト指向開発・保守の「難しさの程度」を計測
3.7 C&K
6 種のメトリクス
クラス
メソッド
クラス
クラス
クラス
クラス
クラス
メソッド
メソッド呼出し
クラス
LCOM
Lack of Cohesion Methods
凝集度の欠如
(同一の属性を参照してい
ないメソッド対の数-
参照している対の数)
CBO
Coupling Between Object classes
クラス間の結合
(他クラスの呼出し数)
NOC
Numbers Of Children
子クラスの数
DIT
Depth Of Inheritance
Tree
継承木の深さ
NOM*
Numbers Of Methods
Per a class
メソッドの数
RFC
Response For a Class
呼び出される
メソッドの数
継承
内部
結合 / 凝集
継承関係
呼出関係
属性
属性
3.8
個別開発時のメトリクス値とその分析
OOFP
CBO
RFC
NOM
LCOM*
Ca
176
3.8
14.4
7.4
21.4 (5.0)
Cb
180
5.8
18.2
7.6
23.2 (5.0)
Cc
418
5.4
33.1
8.1
28.7 (7.8)
Cd
252
4.1
17.8
8.4
13.8 (5.4)
Pa
526
2.1
5.8
3.3
2.1 (1.5)
Pb
526
2.3
5.9
3.3
2.1 (1.5)
Pc
671
3.0
7.4
3.4
2.0 (1.5)
OOFP
は,フレームワークの利用により低減した .
フレームワークの OOFP は 1298 であり, 3-4 機能の開発で回収できる.
C&K
メトリクスは,フレームワーク利用により増加 . ただし下記により問題は少ない.
呼び出すメソッドはすべて固定部のメソッドであり信頼性が高い.( RFC, CBO )
定義されたメソッドの 45% は 1-2 行の set/get メソッドである.( NOM, LCOM )
NASA
での推奨値 (RFC<100, NOM<40)* の範囲には収まっている.
*)
括弧内は
set/get
DIT,NOC
は
すべて 0
(継承なし)
*) L. Rosenberg: “Applying and Interpreting Object Oriented Metrics”, Sixth International Symposium
on Software Metrics, Measurement for Object-Oriented Software Projects Workshop (1999).
3.9
連続開発時のメトリクス値とその分析
フレームワークを用いないと,追加されるたびに OOFP が急増する.
フレームワークを用いても,機能 c 追加以降には OOFP や RFC が増加.
理想的には, Cc と Ca+b+c , Cd と Ca+b+c+d は同じ値となるはず.
機能 c はこのフレームワークとあまり整合していない状況だったので,結果的に固定部と想定し
ていた部分にも手が入ってしまった.(フレームワークをもっと成熟させる必要がある.)
OOFP
CBO
RFC
NOM
LCOM
Ca
176
3.8
14.4
7.4
21.4
Ca+b (Cb)
251 (180)
5.0
16.7
7.6
20.1
Ca+b+c (Cc)
576 (418)
5.9
30.1
8.3
28.6
Ca+b+c+d (Cd)
743 (252)
5.8
28.3
7.9
25.6
Pa
526
2.1
5.8
3.3
2.1
Pa+b (Pb)
615 (526)
2.8
6.9
3.3
2.0
Pa+b+c (Pc)
849 (671)
3.7
8.6
3.3
1.8
18
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University