言語XBRLで記述された財務諸表の分析支援ツールの試作

フレームワークを用いた
情報システムの継続的開発に関する研究
大阪大学 大学院情報科学研究科
コンピュータサイエンス専攻 井上研究室
湯浦 克彦
2007.12.26
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
目 次
1. はじめに
2. イベントトレース図に基づく要求仕様書からのファンクション
ポイント計測方法 (概要)
3. 複雑度と機能量に基づくアプリケーションフレームワークの実
験的評価
4. 財務情報処理言語XBRLで記述された財務データの会
計ユーザ向け処理方式
5. 分析業務に関する知識を用いた財務分析支援方式
(概要)
6. おわりに
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2
1.1 自己紹介と研究の動機

自己紹介
 日立製作所の研究所において、オブジェクト指向言語・設計
分野適用等の研究 (1980~95ごろ)
 情報システム開発への研究成果適用とコンサルティング活動
(Java, XML, 企業アーキテクチャ、内部統制など)
現在、日立コンサルティング テクニカルディレクター

本研究への動機
 企業での開発プロダクト(下記)等に関わるソフトウェアエンジ
ニアリング面での理論的探究
 要求仕様視覚化ツールREQUARIO
 Java Web開発のための画面遷移フレームワーク
 財務報告記述言語XBRL
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
3
1.2 研究の背景 情報システムの継続的開発
従来の
開発と保守
保守
開発
保守コストの増大
(開発の約3倍)
業務環境変化
への早期対応
開発
開発
継続的開発
開発
開発
開発
基盤としての保守
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
4
1.3 研究の目標
フレームワークによる継続的開発
フレームワーク
情報システム
変化部分記述用クラス
変化部分プログラム
オブジェクト
クラス
クラス
クラス群の利用手順
固定部分プログラム
継
続
的
開
発
オブジェクト
オブジェクト
固定部分プログラム
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
5
1.4 研究の範囲と関連技術
フレームワーク
実用化への技術課題
関連技術
メトリクス
本論文の範囲
(ファンクションポイントなど)
適用効果の計測
(第2章、第3章)
オブジェクト指向
業務分野への特化
-財務報告処理(第4章、第5章)
再利用・標準化
マネジメント技法
(Java, XML,アプリケーション
フレームワークなど)
利用者の分析・
業務知識の適用
ビジネス標準・EA
反復型開発・
ITサービス管理
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
6
2.1 オブジェクト指向ソフトウェアに対する
ファンクションポイント(FP)の計測
ファンクションポイント
本方法
標準計測法(IFPUG法)
(イベントトレース図利用)
重み付けして個数をカウント
重み付けして個数をカウント
従来型ソフトウェア
データファイル
データファイル
データファイル
オブジェクト指向
ソフトウェア
クラス
クラス
属性群(データ)
トランザクション
トランザクション
(手続き)
トランザクション
(手続き)
(手続き)
メソッド
メソッド
(手続き)
(手続き)
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
7
2.2 拡張されたイベントトレース図情報に基づく
トランザクションFP計測の精緻化


要求仕様視覚化ツールREQUARIOにおけるデータ処理情報を利用
(UML標準記法であるイベントトレース図の拡張となる)
計測ツールを試作.熟練者による計測との誤差は20%に収まった.
要求仕様視覚化ツールREQUARIO
イベントトレース図
購買担当
購入要求DB
購入要求
情報格納
品名・数量
等を更新
データ処理情報
拡張
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
8
3.1 従来方式による類似プログラムの作成
A市向け「年金個人資格照会」
A1: メインプログラム
(画面制御とDB管理)
A11: データ問合せ
A12: 結果表示
A13: データ更新指定
モジュール単位での
複製と編集
B1: メインプログラム
(画面制御とDB管理)
B11: データ問合せ
B12: 結果表示
B13: データ更新指定
A市向け「年金世帯資格照会」 または B市向け「年金個人資格照会」
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
9
3.2 フレームワークに基づく類似プログラムの作成
F1: フレームワーク
固定部(画面制御・DB管理)
データ
問合せ
結果
表示
A市「個人」
変形定義
B市「個人」
変形定義
A市「世帯」
固定部
A個
表示
変形定義用
クラス群
A市「世帯」
変形定義
A市「個人」
A個
問合
データ
更新指定
B市「個人」
固定部
A個
指定
A世
問合
A世
表示
クラス群
の利用
固定部
A世
指定
B個
問合
B個
表示
B個
指定
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
10
3.3 画面遷移フレームワークの概要
典型的な業務処理パターンにおける画面遷移とEJBコンポーネ
ントの実行順序制御と,個別処理指定機能をフレームワーク化
アプリケーションサーバ
Web
ブラウザ
JSP
Servlet
フレームワーク
固定部
EJBコンポーネント
プロセ
スEJB
(画面遷移制御)
エンテ
ィティ
EJB
RDB
フレームワーク変化部 (画面遷移定義)
問合・表示パターン
DB検索
処理
選択
画面
更新パターン
DB検索
処理
更新
画面
DB更新
処理
確認
画面
個別処理指定
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
11
3.4 ケーススタディ1:業務機能を個別に開発
Ci
フレームワークを
用いて開発
Fi
固定部
変化部
FW: フレームワーク
機能 Fi の指定
(i = a,b,c,d)
機能a: 個人資格照会
機能b: 世帯資格照会
機能c: 賦課状況照会
機能d: 転入資格異動
FW
Pi
フレームワーク
なしで開発
(混在)
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
12
3.5 ケーススタディ2: 業務機能を追加型で開発
Ca
フレームワークを
用いて開発
FW
Ca+b
Fa
固定部 変化部
FW
Fa
Fb
固定部 変化部 変化部
FW: フレームワーク
機能 Fa
の指定
機能 Fb
の指定
Pa
フレームワーク
なしで開発
(混在)
機能 Fc
の指定
Pa+b
(混在)
(混在)
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
13
3.6 メトリクス

機能量のメトリクス OOFP(Object-Oriented FP)
 Caldieraらにより提案(1998).
 オブジェクト指向開発・保守の「能率の高さ」を計測する指標
 単純な重み付けによる計測が可能
データFP 外部クラス/内部クラスの個数
トランザクションFP メソッドの個数、データの参照個数

複雑度のメトリクス C&K(Chidamber & Kemerer)
 ChidamberとKemererにより提案(1994).
 オブジェクト指向開発・保守の「難しさの程度」を計測する指
標
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
14
3.7 C&K 6種のメトリクス
DIT
クラス
Depth Of Inheritance
Tree
クラス
クラス
Response For a Class
(同一の属性を参照していない
メソッド対の数-
参照している対の数)
CBO
属性
属性
呼び出される
メソッドの数
NOM*
Lack of Cohesion Methods
凝集度の欠如
継承木の深さ
RFC
LCOM
Coupling Between Object classes
クラス間の結合
(他クラスの呼出し数)
メソッド
メソッド
メソッド呼出し
Numbers Of Methods
Per a class
メソッドの数
クラス
クラス
NOC
Numbers Of Children
子クラスの数
クラス
クラス
*) 元はWMC:Weighted Methods per Class(重み付きメソッド数)
継承関係
内部
継承
呼出関係
結合/凝集
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
15
3.8 個別開発時のメトリクス値とその分析

OOFPは,フレームワークの利用により低減した.


フレームワークのOOFPは1298であり,3-4機能の開発で回収できる.
C&Kメトリクスは,フレームワーク利用により増加.ただし下記により問題は少ない.
呼び出すメソッドはすべて固定部のメソッドであり信頼性が高い.(RFC, CBO)
 定義されたメソッドの45%は1-2行のset/getメソッドである.(NOM, LCOM)
 NASAでの推奨値(RFC<100, NOM<40)*の範囲には収まっている.

*) L. Rosenberg: “Applying and Interpreting Object Oriented Metrics”, Sixth International Symposium
on Software Metrics, Measurement for Object-Oriented Software Projects Workshop (1999).
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)
DIT,NOCは
すべて0
(継承なし)
*) 括弧内は
set/get
除外の場合
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
16
3.9 連続開発時のメトリクス値とその分析


フレームワークを用いないと,追加されるたびにOOFPが急増する.
フレームワークを用いても,機能c追加以降にはOOFPやRFCが増加.


理想的には,CcとCa+b+c,CdとCa+b+c+dは同じ値となるはず.
機能cはこのフレームワークとあまり整合していない状況だったので,結果的に固
定部と想定していた部分にも手が入ってしまった.(フレームワークをもっと成熟さ
せる必要がある.)
OOFP
Ca
CBO
RFC
NOM
LCOM
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
526
2.1
5.8
3.3
2.1
Pa
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
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
17
4.1 業務特化フレームワークの対象業務
財務報告とXBRL


財務報告
 企業における4半期毎の公式会計報告であり,投資判断に用いられる.
XBRL Extensible Business Reporting Language
 財務報告データ(勘定項目)記述の国際標準化言語.2000年に制定.
項目
<資産の部>
流動資産
現預金及び有価証券
売掛債権
商品・製品
その他
固定資産
有形固定資産
無形固定資産
投資その他の資産
資産合計
株式会社○○○ 貸借対照表
金額
項目
8,592,822
<負債の部>
3,620,881 流動負債
1,487,544
買掛債務
919,468
社債及び短期借入金
140,516
その他
505,277 固定負債
4,971,941
社債及び長期借入金
1,269,042
その他
1,242,883
<資本の部>
2,460,016 資本金
資本剰余金
利益剰余金
その他
8,592,822
負債及び資本合計
(単位:百万円)
金額
6,439,500
3,090,821
765,041
550,000
1,775,780
3,348,679
2,000,600
1,348,079
2,153,322
397,049
416,970
1,737,602
△398,299
8,592,822
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
P21,P23
の例で
使用
18
4.2 XBRLの目的 財務情報サプライチェーン
金融庁、証券取引所、日銀、
国税庁、中小企業庁
(監査支援ツー
ル)
XBRLによる
財務情報サプライチェーン
監査法人
会計監査
取引
勘定仕訳
財務開示
経営管理
連結会計
企業/事業体
(有価証券報告書ツール、
納税支援ツール)
公共/監督機関
機関受付
機関分析
情報
公開
融資受付
情報配信
情報サービス
経済新聞、
企業情報機関
信用分析
投資
金融
銀行、保険会社、
信用保証協会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
19
4.3 XBRL文書の構成 – XML最新技術の導入
リンクベース
リンクベース
リンクベース
リンクベース
リンクベース
XLink
タクソノミ
XML Schema
インスタンス
項目の関係を定義
親子関係
計算式
表示順
表示名称
参考文献
項目のタグ名
(語彙)を定義
項目の値を定義
DOM (Document Object Model)
XML (Extensible Markup Language)
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
20
4.4 従来のデータモデル
ー構文の異なる3種の文書と多数のノードを含む-
項目
要素
インスタンス文書
タクソノミ
文書
8592822
Assets
NNM
資産
#COMMENT
流動
資産
CurrentAssets
nuC属性
はc1
3620881
NNM
Assets
金額型
リンクベース
文書
Assets
nuC属性
はc1
CurrentAssets
金額型
CurrentAssets
nuC属性
はc1
FixedAssets
金額型
FixedAssets
nuC属性
はc1
Liabilities
Equity
金額型
4971941
FixedAssets
固定
資産
group
負債
資本
NNM
Liabilities
Equity
8592822
Liabilities
2889500
Equity
負債
NNM
NNM
nuC属性
はc1
5703322
#COMMENT
資本
nuC (id=“c1”)
NNM
nuC属性
はc1
Liabilities
金額型
Equity
金額型
Liabilities
Equity
Liabilities
Equity
数値コンテキスト
NNM:NamedNodeMap, nuC: numericContext
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
21
4.5 従来の問題点とSDXモデルの提案
 項目データとXML関連の技術
要素が混在し、わかりにくい
 技術知識の乏しい会計業務担
当者がデータ処理を記述
 ノードが多く、走査のプログラミ
ング記述が増える
項目要素アーク
(項目要素間の関係を表す辺)
項目要素ノード
(項目要素を表す頂点)
属性アーク
項目要素中心のデータ構造に
よるフレームワークを提供
属性ノード
SDX (右図)
Simple Data Model for XBRL Documents
属性アーク
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
22
4.6 SDXモデルによる財務データ表現とその効果
インスタンス文書に
おけるノード数を削
減 (22 → 8)
値、データ型など
を同一ノード内で
参照可能とする
Assets データ型: 金額型
値: 8592822 nuC属性: c1
CurrentAssets データ型: 金額型
値: 3620881 nuC属性: c1
FixedAssets データ型: 金額型
値: 4971941 nuC属性: c1
group
LiabilitiesEquity データ型: 金額型
値: 8592822 nuC属性: c1
Liabilities データ型: 金額型
値: 2889500 nuC属性: c1
典型的な処理では
タクソノミ文書、リン
クベースの参照を
不要とする
Equity データ型: 金額型
値: 5703322 nuC属性: c1
nuC (id=“c1”)
凡例
子要素(親要素)
をアーク一本で参
照可能とする
項目要素ノード
項目要素アーク
数値コンテキストの値
属性ノード
属性アーク
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
23
4.7 SDX実現のアーキテクチャ
データバイディング方式と専用言語方式を実装
LMX: A Tiny Language for Manipulating XBRL Documents
既存プログラミング言語(例 Javascript, Java)
従来の
データ処理記述
専用言語 (例 LMX)
SDX
データ処理記述
SDX
データ処理記述
SDXデータ
SDXデータ
データバインディング
ライブラリ
変換ライブラリ
DOMデータ
+ タクソノミ/リンクベース・プロトコル
DOMプロセッサ
XBRL文書データ(インスタンス、タクソノミ、リンクベース)
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
24
4.8 SDXデータ処理記述の例
タクソノミ文書
1
2
3
4
5
6
7
<schema ……
>
<element id="assets“ name="Assets"
type="xbrli:monetaryItemType"/>
<element id=“currentassets“ name=“CurrentAssets“
type="xbrli:monetaryItemType"/>
……
</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データ処理記述
1
2
3
4
5
6
7
8
9
10
11
// ルート要素の子を取得
nodes = balanceSheet.children;
// 子ノード の数だけループ
for (i=0; i<length(nodes); i++) {
// 処理対象の項目要素ならば
if (nodes[i].type == MONETARY) {
nodes[i].value *= 1000;
// 値を1000倍に更新する
}
}
「すべての項目の値を1000倍にする」
ことを記述
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
25
5.1 利用者環境へのフレームワークの応用
専門技術者
業務担当者
DOMの
構造は、、
XLinkの
機能は、、
技術知識
「自己資本比
率」の言葉なら
知っているが、ど
う使うのだろう
か?
製造業と卸売
業とでは○%く
らい基準が違う。
この指標が良
好でも別の指標
Bをチェックした
ほうがいい。
一般利用者
一般利用者向け
フレームワーク
分析業務知識
一層わかりやすく
業務担当者向けフレークワーク(SDXライブラリなど)
専門技術者向けフレームワーク (DOMプロセッサなど)
XBRL文書データ (インスタンス、タクソノミ、リンクベース)
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
26
5.2 一般利用者向けフレームワークの例
財務分析支援ツール FIAT
開始
FIAT A Financial Analysis Assistance Tool
財務分析に関する知識
業種と視点の確認
指標名
自己資本比率
計算式
<資本の部>÷<資産の部>
説明文
真ならば、安全性が高い
偽ならば、安全でない
判定基準
IT製造業・取引視点
IT製造業・融資視点
卸売業・取引視点
関連指標
真ならば、特別利益比率
偽ならば、売上高営業利益率
指標の計算
指標値の判定
関連する指標の選択
総合判定
知識入力機能
30%
40%
20%
知識利用対話機能
終了
XBRL + SDXデータバインディング・ライブラリ
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
27
6.1 まとめ


フレームワークを用いた情報システムの継続的開発に関して、2つの観
点から研究を進めた.
効果計測の観点から,ファンクションポイント法のオブジェクト指向向け
改良法の提案(第2章)と,主流の計測法によるフレームワーク導入
効果の計測・分析(第3章)を行ない,下記を定量的に示した.
 フレームワークは機能量縮小の効果が大きい
 ただし,開発内容との整合性がなければ十分な効果をあげられない

業務分野への特化の観点から,XBRL財務データ処理を例として,
業務担当者向けのフレームワーク(第4章)と,一般利用者向けのフ
レームワーク(第5章)を開発し,下記機能の有効性と実現性を示し
た.
 業務担当者向けには,XML関連新技術の隠蔽機能
 一般利用者向けには,専門家の業務知識の参照機能
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
28
6.2 今後の研究方針

情報システムの品質計測法に関する研究の展開
 技術効果だけではなく,業務改善効果や顧客貢献効果に
関する計測への発展

他分野での業務特化フレームワークの構築
 XMLビジネス標準の標準化推進を含めた構築方法論

フレームワークを提案・開発する技術者の育成
 オブジェクト設計技術およびビジネス知識の構造化の両面に
優れた技術者を育成するためのカリキュラム
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
29