フレームワークを用いた 情報システムの継続的開発に関する研究

29
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University フフフフフフフフフフフ フフフフフフフフフフフフフフフフフフ フフフフ フフフフフフフフフフ フフフフフフフフフフフフフ フフフフフ フフ フフ 2007.12.26

Upload: caine

Post on 08-Feb-2016

46 views

Category:

Documents


1 download

DESCRIPTION

フレームワークを用いた 情報システムの継続的開発に関する研究. 大阪大学 大学院情報科学研究科 コンピュータサイエンス専攻 井上研究室 湯浦 克彦. 2007.12.26. 目 次. はじめに イベントトレース図に基づく要求仕様書からのファンクションポイント計測方法 (概要) 複雑度と機能量に基づくアプリケーションフレームワークの実験的評価 財務情報処理言語 XBRL で記述された財務データの会計ユーザ向け処理方式 分析業務に関する知識を用いた財務分析支援方式 (概要) おわりに. 1.1 自己紹介と研究の動機. 自己紹介 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: フレームワークを用いた 情報システムの継続的開発に関する研究

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

フレームワークを用いた情報システムの継続的開発に関する研究

大阪大学 大学院情報科学研究科コンピュータサイエンス専攻 井上研究

室湯浦 克彦2007.12.26

Page 2: フレームワークを用いた 情報システムの継続的開発に関する研究

2Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

目 次1. はじめに2. イベントトレース図に基づく要求仕様書からのファンクションポイント計測方法 (概要)3. 複雑度と機能量に基づくアプリケーションフレームワークの実験的評価4. 財務情報処理言語 XBRL で記述された財務データの会計ユーザ向け処理方式5. 分析業務に関する知識を用いた財務分析支援方式 (概要)6. おわりに

Page 3: フレームワークを用いた 情報システムの継続的開発に関する研究

3Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

1.1 自己紹介と研究の動機 自己紹介

日立製作所の研究所において、オブジェクト指向言語・設計分野適用等の研究 ( 1980 ~ 95 ごろ)情報システム開発への研究成果適用とコンサルティング活動( Java, XML, 企業アーキテクチャ、内部統制など)現在、日立コンサルティング テクニカルディレクター

本研究への動機企業での開発プロダクト(下記)等に関わるソフトウェアエンジニアリング面での理論的探究

要求仕様視覚化ツール REQUARIOJava Web 開発のための画面遷移フレームワーク財務報告記述言語 XBRL

Page 4: フレームワークを用いた 情報システムの継続的開発に関する研究

4Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

  開発     保守   従来の開発と保守

継続的開発 基盤としての保守

1.2 研究の背景 情報システムの継続的開発

業務環境変化への早期対応

保守コストの増大(開発の約3倍)

開発 開発開発 開発

開発

Page 5: フレームワークを用いた 情報システムの継続的開発に関する研究

5Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

変化部分記述用クラス

クラス群の利用手順クラス クラス

フレームワーク変化部分プログラムオブジェクト

オブジェクトオブジェクト

情報システム

固定部分プログラム 固定部分プログラム

継続的開発

1.3 研究の目標 フレームワークによる継続的開発

Page 6: フレームワークを用いた 情報システムの継続的開発に関する研究

6Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

フレームワーク実用化への技術課題

適用効果の計測(第 2章、第 3章)業務分野への特化-財務報告処理 -(第 4章、第 5章)再利用・標準化マネジメント技法

利用者の分析・業務知識の適用

オブジェクト指向( Java, XML, アプリケーションフレームワークなど)

関連技術メトリクス(ファンクションポイントなど)

ビジネス標準・ EA

反復型開発・IT サービス管理

本論文の範囲

1.4 研究の範囲と関連技術

Page 7: フレームワークを用いた 情報システムの継続的開発に関する研究

7Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

クラス

2.1 オブジェクト指向ソフトウェアに対するファンクションポイント( FP )の計測

データファイル

トランザクション(手続き)

従来型ソフトウェア オブジェクト指向ソフトウェアクラス

属性群(データ)

ファンクションポイント標準計測法( IFPUG 法)

データファイル

トランザクション(手続き)

データファイル

トランザクション(手続き) メソッド(手続き)メソッド(手続き)

重み付けして個数をカウント本方法(イベントトレース図利用)

重み付けして個数をカウント

Page 8: フレームワークを用いた 情報システムの継続的開発に関する研究

8Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

要求仕様視覚化ツール REQUARIO

購買担当 購入要求 DB

購入要求情報格納

イベントトレース図

品名・数量等を更新

2.2 拡張されたイベントトレース図情報に基づくトランザクション FP 計測の精緻化

データ処理情報 拡張

要求仕様視覚化ツール REQUARIO におけるデータ処理情報を利用( UML 標準記法であるイベントトレース図の拡張となる) 計測ツールを試作.熟練者による計測との誤差は 20% に収まった.

Page 9: フレームワークを用いた 情報システムの継続的開発に関する研究

9Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

A 市向け「年金個人資格照会」

A 市向け「年金世帯資格照会」 または  B 市向け「年金個人資格照会」

3.1 従来方式による類似プログラムの作成A1: メインプログラム(画面制御と DB 管理)

A11: データ問合せ A12: 結果表示 A13: データ更新指定

B1: メインプログラム(画面制御と DB 管理)

B11: データ問合せ B12: 結果表示 B13: データ更新指定

モジュール単位での複製と編集

Page 10: フレームワークを用いた 情報システムの継続的開発に関する研究

10Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

F1: フレームワークデータ問合せ 結果表示 データ更新指定

固定部(画面制御・ DB 管理) 変形定義用クラス群

A 市「個人」変形定義

固定部A 個問合 A 個表示 A 個指定

固定部A世問合 A世表示 A世指定

固定部B 個問合 B 個表示 B 個指定

A 市「世帯」変形定義 B 市「個人」変形定義

3.2 フレームワークに基づく類似プログラムの作成

A 市「個人」 A 市「世帯」 B 市「個人」

クラス群の利用

Page 11: フレームワークを用いた 情報システムの継続的開発に関する研究

11Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

3.3 画面遷移フレームワークの概要

アプリケーションサーバServlet

フレームワーク固定部

(画面遷移制御)

EJB コンポーネントプロセスEJB

エンティティEJB

RDBWebブラウザ

JSP

DB 更新処理DB検索処理 更新画面更新パターン

確認画面DB検索処理 選択画面問合・表示パターン

フレームワーク変化部 (画面遷移定義)

典型的な業務処理パターンにおける画面遷移と EJBコンポーネントの実行順序制御と,個別処理指定機能をフレームワーク化

個別処理指定

Page 12: フレームワークを用いた 情報システムの継続的開発に関する研究

12Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

機能 Fi の指定(i = a,b,c,d)

フレームワークを用いて開発

フレームワークなしで開発

Ci

Pi

FW固定部

FW: フレームワーク

3.4 ケーススタディ 1:業務機能を個別に開発

機能 a: 個人資格照会機能 b: 世帯資格照会機能 c: 賦課状況照会機能 d: 転入資格異動

Fi変化部

(混在)

Page 13: フレームワークを用いた 情報システムの継続的開発に関する研究

13Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

機能 Faの指定

フレームワークを用いて開発

フレームワークなしで開発

Ca

Pa

FW固定部

FW: フレームワーク機能 Fbの指定

Ca+ b

Pa+ b

機能 Fcの指定

3.5 ケーススタディ 2: 業務機能を追加型で開発 FW固定部Fa

変化部Fb

変化部Fa

変化部

(混在) (混在) (混在)

Page 14: フレームワークを用いた 情報システムの継続的開発に関する研究

14Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

3.6 メトリクス 機能量のメトリクス  OOFP ( Object-Oriented FP )

Caldiera らにより提案( 1998 ).オブジェクト指向開発・保守の「能率の高さ」を計測する

指標単純な重み付けによる計測が可能

データ FP  外部クラス/内部クラスの個数トランザクション FP  メソッドの個数、データの参照個数

複雑度のメトリクス  C&K ( Chidamber & Kemerer )Chidamber と Kemerer により提案( 1994 ).オブジェクト指向開発・保守の「難しさの程度」を計測す

る指標

Page 15: フレームワークを用いた 情報システムの継続的開発に関する研究

15Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

3.7 C&K   6種のメトリクス

クラス

メソッド      

クラス クラス

クラスクラス

クラスメソッド      

メソッド呼出し クラス

LCOMLack of Cohesion Methods凝集度の欠如(同一の属性を参照していないメソッド対の数-参照している対の数)CBOCoupling Between Object classesクラス間の結合(他クラスの呼出し数)

NOCNumbers Of Children子クラスの数

DITDepth Of InheritanceTree継承木の深さ

NOM*Numbers Of Methods Per a classメソッドの数

RFCResponse For a Class 呼び出されるメソッドの数

継承内部 結合 /凝集*) 元は WMC:Weighted Methods per Class (重み付きメソッド数)

継承関係 呼出関係

属性属性

Page 16: フレームワークを用いた 情報システムの継続的開発に関する研究

16Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

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)

Pd 672 2.4 8.6 4.3 15.7 (14.0)

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).

Page 17: フレームワークを用いた 情報システムの継続的開発に関する研究

17Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

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

Pa+b+c+d (Pd) 1084 (672) 4.0 10.5 3.9 10.0

Page 18: フレームワークを用いた 情報システムの継続的開発に関する研究

18Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

4.1 業務特化フレームワークの対象業務財務報告と XBRL 財務報告

企業における 4半期毎の公式会計報告であり,投資判断に用いられる. XBRL Extensible Business Reporting Language

財務報告データ(勘定項目)記述の国際標準化言語. 2000 年に制定.株式会社○○○  貸借対照表         (単位 :百万円 )項目 金額 項目 金額<資産の部> 8,592,822 <負債の部> 6,439,500流動資産 3,620,881 流動負債 3,090,821 現預金及び有価証券 1,487,544  買掛債務 765,041 売掛債権 919,468  社債及び短期借入金 550,000 商品・製品 140,516  その他 1,775,780 その他 505,277 固定負債 3,348,679固定資産 4,971,941  社債及び長期借入金 2,000,600 有形固定資産 1,269,042  その他 1,348,079 無形固定資産 1,242,883 <資本の部> 2,153,322 投資その他の資産 2,460,016 資本金 397,049資本剰余金 416,970

利益剰余金 1,737,602その他 △398,299

資産合計 8,592,822 負債及び資本合計 8,592,822

P21,P23の例で使用

Page 19: フレームワークを用いた 情報システムの継続的開発に関する研究

19Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

4.2 XBRL の目的 財務情報サプライチェーン

取引 勘定仕訳連結会計

会計監査

経営管理 情報配信

情報公開

信用分析 投資企業 /事業体

監査法人 公共/監督機関

金融情報サービス

機関受付 機関分析

融資受付財務開示

銀行、保険会社、信用保証協会

XBRLによる財務情報サプライチェーン

経済新聞、企業情報機関

金融庁、証券取引所、日銀、国税庁、中小企業庁

(有価証券報告書ツール、納税支援ツール)

(監査支援ツール)

Page 20: フレームワークを用いた 情報システムの継続的開発に関する研究

20Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

項目の値を定義

項目のタグ名( 語彙 ) を定義

親子関係計算式表示順表示名称参考文献

リンクベースリンクベースリンクベース

インスタンス

タクソノミ

4.3 XBRL 文書の構成 – XML最新技術の導入項目の関係を定義

リンクベースリンクベースXLink

XML Schema

DOM (Document Object Model)

XML (Extensible Markup Language)

Page 21: フレームワークを用いた 情報システムの継続的開発に関する研究

21Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

Assets

CurrentAssets

FixedAssets

LiabilitiesEquity

Liabilities

Equity

group

8592822

3620881

4971941

8592822

2889500

5703322

#COMMENT

#COMMENT

NNM nuC 属性は c1

NNM

NNM

NNM

NNM

NNM

nuC 属性は c1

nuC 属性は c1

nuC 属性は c1

nuC 属性は c1

nuC 属性は c1

nuC (id=“c1”) 数値コンテキスト

Assets

CurrentAssets

FixedAssets

LiabilitiesEquity

Liabilities

Equity

Assets金額型CurrentAssets

金額型

FixedAssets金額型

LiabilitiesEquity金額型

Liabilities金額型Equity金額型

インスタンス文書 タクソノミ文書 リンクベース文書

4.4 従来のデータモデルー構文の異なる 3 種の文書と多数のノードを含む-

資産

流動資産固定資産

負債資本負債資本

NNM: NamedNodeMap, nuC: numericContext

項目要素

Page 22: フレームワークを用いた 情報システムの継続的開発に関する研究

22Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

項目要素ノード(項目要素を表す頂点)

属性ノード

項目要素アーク(項目要素間の関係を表す辺)

属性アーク

属性アーク

4.5 従来の問題点と SDXモデルの提案 項目データと XML 関連の技術要素が混在し、わかりにくい

技術知識の乏しい会計業務担当者がデータ処理を記述 ノードが多く、走査のプログラミング記述が増える

項目要素中心のデータ構造によるフレームワークを提供SDX  (右図)

Simple Data Model for XBRL Documents

Page 23: フレームワークを用いた 情報システムの継続的開発に関する研究

23Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

Assets   データ型 : 金額型値: 8592822   nuC 属性 : c1

CurrentAssets  データ型 : 金額型値: 3620881   nuC 属性 : c1

FixedAssets   データ型 : 金額型値: 4971941   nuC 属性 : c1

LiabilitiesEquity   データ型 : 金額型値: 8592822   nuC 属性 : c1

Liabilities   データ型 : 金額型値: 2889500   nuC 属性 : c1

Equity   データ型 : 金額型値: 5703322   nuC 属性 : c1

group

nuC (id=“c1”) 数値コンテキストの値項目要素ノード 項目要素アーク 属性ノード 属性アーク凡例

4.6 SDXモデルによる財務データ表現とその効果インスタンス文書におけるノード数を削減 (22 → 8)

典型的な処理ではタクソノミ文書、リンクベースの参照を不要とする

値、データ型などを同一ノード内で参照可能とする

子要素(親要素)をアーク一本で参照可能とする

Page 24: フレームワークを用いた 情報システムの継続的開発に関する研究

24Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

4.7 SDX 実現のアーキテクチャデータバイディング方式と専用言語方式を実装

DOM プロセッサXBRL 文書データ(インスタンス、タクソノミ、リンクベース)

DOM データ + タクソノミ/リンクベース・プロトコル

既存プログラミング言語(例 Javascript, Java )

SDX データ

SDXデータ処理記述従来のデータ処理記述

専用言語 (例 LMX )

データバインディングライブラリ 変換ライブラリSDX データ

SDXデータ処理記述

LMX: A Tiny Language for Manipulating XBRL Documents

Page 25: フレームワークを用いた 情報システムの継続的開発に関する研究

25Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

4.8 SDX データ処理記述の例

1 // ルート要素の子を取得 2 nodes = balanceSheet.children; 3 4 // 子ノード の数だけループ 5 for (i=0; i<length(nodes); i++) { 6 // 処理対象の項目要素ならば 7 if (nodes[i].type == MONETARY) {  8 nodes[i].value *= 1000; 9 // 値を 1000 倍に更新する10 }11 }

1 <schema  ……   > 2 <element id="assets“ name="Assets" 3 type="xbrli:monetaryItemType"/> 4 <element id=“currentassets“ name=“CurrentAssets“ 5 type="xbrli:monetaryItemType"/> 6 …… 7 </schema>

1 <linkbase …… > 2 <definitionLink xlink:type=“extended”> 3 <loc xlink:type=“locator” xlink:href=“bs.xsd#Assets” 4 xlink:label=“AssetsLocator”/> 5 <loc xlink:type=“locator” xlink:href=“bs.xsd#CurrentAssets” 6 xlink:label=“CurrentAssetsLocator”/> 7 <definitionArc xlink:type=“arc” 8 xlink:from=“AssetsLocator” xlink:to=“CurrentAssetsLocator” 8 xlink:arcrole=“http://www.xbrl.org/linkprops/arc/parent-child”/>10 <definitionArc xlink:type=“arc”11 xlink:from=“CurrentAssetsLocator” xlink:to=“AssetsLocator”12 xlink:arcrole=“http://www.xbrl.org/linkprops/arc/child-parent”/>13 ……14 </definitionLink>15 </linkbase>

1 <xbrli:group…… > 2 <Assets nuC="c1">8592822 </Assets> 3 <CurrentAssets nuC="c1">3620881</CurrentAssets> 4   …… 5 </xbrli:group>

タクソノミ文書

リンクベース文書

インスタンス文書

Javascript 上でのSDX データ処理記述

「すべての項目の値を 1000倍にする」 ことを記述

Page 26: フレームワークを用いた 情報システムの継続的開発に関する研究

26Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

5.1 利用者環境へのフレームワークの応用

XBRL 文書データ (インスタンス、タクソノミ、リンクベース)専門技術者向けフレームワーク ( DOM プロセッサなど)

業務担当者向けフレークワーク( SDX ライブラリなど)一層わかりやすく

製造業と卸売業とでは○% くらい基準が違う。この指標が良好でも別の指標 B をチェックしたほうがいい。

DOM の構造は、、X L inkの機能は、、

技術知識 分析業務知識

専門技術者 業務担当者 一般利用者

一般利用者向けフレームワーク

「自己資本比率」の言葉なら知っているが、どう使うのだろうか?

Page 27: フレームワークを用いた 情報システムの継続的開発に関する研究

27Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

5.2 一般利用者向けフレームワークの例財務分析支援ツール FIAT

業種と視点の確認指標の計算

総合判定関連する指標の選択

指標値の判定

終了

開始

自己資本比率<資本の部> ÷<資産の部>

IT 製造業・取引視点   30%IT 製造業・融資視点   40%卸売業・取引視点   20%

指標名計算式

判定基準

関連指標 真ならば、特別利益比率偽ならば、売上高営業利益率

真ならば、安全性が高い偽ならば、安全でない説明文

財務分析に関する知識

XBRL + SDX データバインディング・ライブラリ

知識入力機能 知識利用対話機能

FIAT A Financial Analysis Assistance Tool

Page 28: フレームワークを用いた 情報システムの継続的開発に関する研究

28Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

6.1 まとめ フレームワークを用いた情報システムの継続的開発に関して、2つの観点から研究を進めた. 効果計測の観点から,ファンクションポイント法のオブジェクト指向向け改良法の提案(第 2章)と,主流の計測法によるフレームワーク導入効果の計測・分析(第3章)を行ない,下記を定量的に示した.

フレームワークは機能量縮小の効果が大きい ただし,開発内容との整合性がなければ十分な効果をあげられない

業務分野への特化の観点から, XBRL 財務データ処理を例として,業務担当者向けのフレームワーク(第4章)と,一般利用者向けのフレームワーク(第5章)を開発し,下記機能の有効性と実現性を示した. 業務担当者向けには, XML 関連新技術の隠蔽機能一般利用者向けには,専門家の業務知識の参照機能

Page 29: フレームワークを用いた 情報システムの継続的開発に関する研究

29Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University

6.2 今後の研究方針 情報システムの品質計測法に関する研究の展開

技術効果だけではなく,業務改善効果や顧客貢献効果に関する計測への発展 他分野での業務特化フレームワークの構築

XML ビジネス標準の標準化推進を含めた構築方法論 フレームワークを提案・開発する技術者の育成

オブジェクト設計技術およびビジネス知識の構造化の両面に優れた技術者を育成するためのカリキュラム