112
S a p i d
によるソフトウェア解析技法こと、モデリング作業が実際の開発や検証プロセスで有効であること、他のソ フトウェア工学的な開発手法
(XML
、UML等)を導入するといった点に留意 してモデリングを行う。D i ‑ p a s
はフランス語でr 2
つの歩み」といった意味であり、上流工程までを 視野に入れたリポジトリデータベース実現を目的とする。Sapid
のドメインを 拡張し、さまざまな粒度のリポジトリに基づくモデルを設計する。それに基づ いて対象ソフトウェアの情報データベースを構築し、ソフトウェア工学アプリ ケーション開発を行う。[対象プロセス]
[ D i p a s アプリ]
[既存のアイデア]
1 . 2
モデリング開発環境Dipas
Dipas
は情報システムの設計、開発、検証の各プロセスを統一して支援する 開発環境を、ーソフトウェア工学的な観点から構築するプロジェクトである。上 流工程の概念的作業から、設計、テスト、保守までを対象とし、既存の方法論、データ形式を取り入れて、汎用的な開発環境の実現をめざす。ビジネスモデリ ン グ の 開 発 、 テ ス ト を フ ォ ー マ ル か つ 体 系 的 に 行 う プ ロ ジ ェ ク ト に は 、
R a t i o n a l
社によるR a t i o n a lRose
や、Together
社のC o n t r o l C e n t e r
等がある。それぞれ、オブジ エクト指向モデリングをベースに様々な開発プロセスを支援 するが、オープンソースプロジェクトは
Dipas
だけである。Dipas
は、モデリング、ソフトウェア資源のデータベース化、ソフトウェア 解析アプリケーションの実現までのプロセスをトータルに扱う。そのため、モ デリングは最終的なソフトウェア工学ツールの開発と有機的に連携する。第7章 経営情報システムとビジネスモデリング技法 113
関連する支援ツール(ミドルウェア)、各種のソフトウェア解析のプログラ ム素
( T i p s )
、t u t o r i a l
を生成するE ‑ l e a r n i n g
システム、各プロセスで生成さ れるドキュメントやテストデータをハイパードキュメントとして統一的に管理 する環境も提供する。E
モ デ リ ン グ の ア プ ロ ー チ我々のプロジェクトでは、経営情報システムなどのシステム/モデルを、ソ フトヱアを分類するためのカテゴリーとしてとらえるだけでなく、ソフトウェ アを解析し情報資産を引き出すための枠組みとして捉える。従来のモデリング は、対象となるシステムの役割と構造を概念的なモデルとして捉えた上で、要 求仕様の理解・分析とプログラムの開発の効率化をめざすもの(E
RP
、DSS
、BPR)
、実際のシステムを抽象化して、新たなソフトウェアパラダイムを提案 するもの( S I S
、SCM)
があった。Dipas
のモデリングとソフトウェア資源のデータベース構築は、ソフトウエ アから経営に役立つ情報を引き出し、資源化することが目的である(ナレッジ マネージメント)。業務・組織分析のフェーズで、今までに作成したソフトウ ェアや、同様なドメインを持つソフトウェアの解析を行い、得られた情報を組 織や業務の分析とリエンジニアリングに役立てる。オープンソースのソフトウェア資産を、知識ベースとしてソフトウェア開発 に役立てること、ソフトウェアの品質評価、監査、同じドメインのソフトウェ アのプロトタイプを作成することができる。オープンソースの活用、資源化の ためには
D i p a s
のような標準化ツールが有用である。2 . 1
システムとモデル「システム
J
の定義は多岐にわたるが、システム理論など一般的な「システ ム 」 の 概 念 を 用 い て モ デ リ ン グ を 行 う 。 情 報 シ ス テ ム / モ デ ル は 、 実 世 界 を114
S a p i d
によるソフトウェア解析技法抽象化したものであり、コンビュータで処理可能な対象である。モデルはシス テムの構造とその要素で定義し、要素聞の関係は構造として定義する。対象と なるシステムがサブシステムから構成されるときは、サブモデルを利用する。
2.
2
モデリングを行うための各種の技法情報システムの開発では、要求仕様の分析やシステムの検証で各種のモデル が利用されている。ウォーターフォールモデル、プロトタイピングといった開 発モデル、構造化、データ指向アプローチ、オブジェクト指向といった設計モ デルなどである。オブジェクト指向設計・分析の手法として
UML
記法が標準 となっている。GUI
といったドメイン特種なモデルは、設計支援ツールまで提 供される。D i p a s
は、モデリングとソフトウェアデータベース実現を行う。S a p i d
プロ ジェクトでは、 ドキュメン卜を構造化するD a p i d
、JAVA
を対象とするJ a p i d
が開発されている。エンドユーザが容易にモデリングを実現できる
UML
記法 も利用する。2 . 2 . 1 UML
、XML
、コンポーネントUML
は、オブジエクト指向モデリングの表記方法の体系である。ソフトウ ェア開発プロセスの上流から下流までサポートし、クラス図、ユースケース図、コラボレーション図、シーケンス図などを持つ。図式化によりモデリングを簡 潔に行う。
UML
はオブジェクト指向ソフトウエアの構造を、ソースコードよりも抽象化した形で構造的に表記する言語である。
XML
はデータの記述言語である。DTD
などでデータの構造を定義すること ができる。多くの交換フォーマット(データ形式)がDTD
により提供される。XMI
はXML
で記述される、UML
モデルと互換性をもっデータ形式(交換フ ォーマット)である。EJB ( E n t e r p r i s e J a v a B e a n s )
や.NET
といったコンポ ーネントは再利用可能なソフトウェア部品であり、ソフトウェアデータベース のモジュールとして利用できる。第7章 経営情報システムとビジネスモデリング技法 115
2 . 2 . 2 S a p i d
、SDA
、J a p i d
、D a p i d
S a p i d
はC
言語をベースとして細粒度のオブジェクトを対象とするソフトウ エア解析をサポートするプラットフォームである。SDA4
は制御構造、データ フローの解析を対象とするモデルである。J a p i d
はJ a v a
ベースのCASE
ツー ル・プラットフォームであり、Java
のソースプログラムを細粒度で扱う。J a p i d
では細粒度でソフトウェアを扱うため、ソフトウェアモデルの抽象度は 低く、解析木に近い。ドキュメントや設計仕様図といったソースコードに関連 するリソースを資源として利用し、細粒度リポジトリレベルのソフトウェアデ ータベースを利用するときはD a p i d
が役立つ。E モ デ リ ン グ の 実 現
D i p a s
のモデリングは、既存のソフトウェアからソフトウェアデータベース を構築するプロセスまでを含む。モデリングは出発点であり、D i p a s
のモデル 記述言語や UMLなどのモデリング手法を用いて対象となるシステムの構造と 要素を定義する。構造はオブジェクト聞の関連として定義する。定義されるモ デルをモデルカテゴリーと呼ぶ。モデルカテゴリーはモデルの雛型であり、モ デルの持つオブジェクトは抽象的なものである。対象ドメインに基づいて、要素(抽象オブジェクト)を実オブジェクトにマ ッピングする。この作業をインスタンス設計と呼び、特定の対象ごとに具体的 な 実 オ ブ ジ ェ ク ト を 定 義 し 、 ソ フ ト ウ ェ ア デ ー タ ベ ー ス 構 築 作 業 を 行 う 。
D i p a s
のモデリングは、モデル(カテゴリー)の設計と、そのモデルのインス タンスの設計に分けられる。ソフトウェアデータベースの構築をインスタンス化と呼び、マッピング定義 に基づいてスキーマを定義する。
S a p i d
の 細 粒 度 リ ポ ジ ト リ の デ ー タ ベ ー スSDB
を基点として、モデルの要素(オブジェクト)を実オブジエクトにマッピ ングしていく。116
S a p i d
によるソフトウェア解析技法モデリングの対象は広範囲にわたり、様々な抽象度のモデルが存在する。ビ ジネスプロセスといった抽象度の高いモデルは、すでに開発された既存のモデ ルカテゴリーを仮想オブジェクトとして用いることができる。インスタンス化 において仮想オブ、ジェクトを定義し、段階的に開発する
( 4 . 3
参照)。3.
1 モデルの構成と記述
Dipas
のモデル記述言語はBPR
、ERPといった抽象度の高いモデルから、デ ータフローといった細粒度リポジトリレベルのモデルまでを対象とする。E‑R
図やUML
図などを利用したモデリングも可能である。モデル定義は、オブジ エクトの定義とオブジェクト間の関連の定義からなる。オブジェクトはサブモ デルとして定義することもできる。関連で構造を定義する。モデルカテゴリ一定義
Model C a t e
伊rymodel
モデル名:="("オブジェクト名川{ m o d e l
モデル名}勢I { R e l ( a t i o n )
関画勢")"モデルインスタンス定義
Model I n s t a n c e
O b j e c t
仮想オブジエクト実オブジエクトr
屯l a t i o n
関 連 名 < 実 オ ブ ジ エ ク ト1
、実オブジェクト2
、関連・>. . [モデル記述言語D i p a s
の仕様]3.
2 モデルのインスタンス化
一ソフトウェアデータベースの作成モデルに基づいて、対象ソフトウェアからリポジトリデータベースと関連す るアクセス関数を作成する。
MySQL
といったSQL
をサポートするデータベー スシステムを用いれば、アクセス関数は必要なくなる。オブジェクト定義に用いてデータベーススキーマの定義を行う。このデータ ベースを
Sapid
のSDB
と区別するため、SDB+
と表記する。SDB+
はSDBを含 み、粒度の粗いリポジトリのオブジェクトも扱う乙とができる。SDB+にアク
セスして、モデルに基づいた様々な解析アプリケーションを作成する。第7章 経営情報システムとビジネスモデリング妓法 117 [オブジェクトの精進]
i d :
オブジェクトの通し番号s o r t :
オブジェクトの種類n a m e :
オブジェクトの名前 [関連の構造]i d :
関連の通し番号i d l :
オブジェクト1
の通し番号i d 2 :
オブジェクト2
の通し番号s o
此: 関連の種類[モデル記述言語
D i p a s
の仕様]3 . 3
仮想オブジェクトの利用仮想オブジェクトは、特定の環境ごとに具体的な実オブジェクトとして定義 される。オブジェクトの仮想化によりターゲット言語やライブラリの異なる環 境で共通のソフトウェア解析を行うことができる。例えば、 C言語と JAVAの プログラムを同じロジックで解析することが可能となる。
G U I W i d g e t ( D i p a s
オブジェクト)<ー>GtkObjectWidget (C言語GTK+オブジエクト) [仮想オブジェクトと実オブジェクトのマッピング]イタリック体で書かれた記述は、実際のプログラミング言語の関数やオブジ エクトである。対象となる実オブジエクトが複数ある場合は、マッピングのデ ータベースを作成し、対象とするドメインを広げる。例えばJAVAのオリジナ ル