ソフトウエアはハードウエアと違って物理的な形がない。そのため,顧客やメンバーとの間でシステムに対する共通の認識を持つには,ソフトウエアを目に見える形で図示する必要がある。今回はその記述法である,システムを様々な角度から図示する3つのアプローチについて解説しよう。

 システムの分析・設計とは,大きなシステムを複数の小さな部分に分けて整理する作業だと言える。これは情報システムに限らず,自動車や家電などの工業製品,ビルや橋などの建築物でも同じことだ。この小さく分けた部分のことを「モジュール」と呼ぶ。つまり,システムの分析・設計の作業は,「モジュール化」のことだと言ってもいい。

分析・設計の3つの視点

 ソフトウエアをモジュール化する際は,システムを構成する要素である「処理(プロセス)」と「データ」に着目する。なぜなら,どのようなプログラミング言語を使って開発したとしても,プログラムが処理とデータから構成されていることに違いはないからだ。

 このとき,処理に着目したモジュール化の方法を「プロセス中心アプローチ(POA:Process Oriented Approach)」,データに着目した場合を「データ中心アプローチ(DOA:Data Oriented Approach)」と呼ぶ。POAではシステムの記述法として「DFD(Data Flow Diagram)」が使われ,DOAでは「ER(Entity Relationship)図」が使われる。

 Javaや.NETといったオブジェクト指向プログラミングをベースとした開発環境の普及に伴い,最近では「UML(Unified Modeling Language)」もよく使われる。UMLは,DOAを発展させた「オブジェクト指向アプローチ(OOA:Object Oriented Approach)」の記述法だ。OOAではデータと処理(データに対する操作)をまとめた「オブジェクト」を単位として,システムをモジュール化する。

 開発の初期工程において,システム化の対象は得体の知れない巨大なものに思えるだろう。それをモジュールに分けて整理したとき,モジュールを「処理」と考えるならPOA,「データ」ならDOA,「オブジェクト」ならOOAということになる図1)。

図1●システム化の対象業務をモデリングする際の3つのアプローチ
図1●システム化の対象業務をモデリングする際の3つのアプローチ
システム分析・設計の技法は,システム化の対象となる業務のどの側面に着目するかによって,「プロセス中心アプローチ(POA:Process Oriented Approach)」,「データ中心アプローチ(DOA:Data Oriented Approach)」,「オブジェクト中心アプローチ(OOA:Object Oriented Approach)」の3つに大別できる
[画像のクリックで拡大表示]

「処理」に着目するPOA

 POAは,データの「入力」,「加工」,「出力」という3つのまとまりから成る「処理」に重点を置いたアプローチである。ただし,データを完全に無視しているわけではない。POAでは,システムを構成する処理と処理の間をデータが通過していくと考える。つまり,データを処理の附属的な存在だと捉える。

 POAの代表的な表記法であるDFDは,構造化分析で有名なトム・デマルコ氏が提唱した表記法である。DFDは「データの流れ図」という意味だが,実際にはシステムを構成する「処理」の構造に着目している。

 例えば,販売管理システムのDFDは,図2のように記述できる。「顧客」というデータの発生源(源泉と呼ぶ)から生じた「注文」データが,「受注」→「在庫チェック」→「出荷」→「請求」という処理をたどって加工されながら流れていく。「受注」と「在庫チェック」という処理を実施するために,「顧客マスタ」と「商品マスタ」というファイル(データ)が参照される。ただしPOAではこれらのデータが一元管理されているわけではなく,システムごとに用意する必要がある。あくまでシステムの主役は「処理」なのだ。

図2●サイバーエージェントが導入したNECの仮想PC型のシン・クライアント・システム
図2●DFDを用いて販売管理システムをモデル化した例
POAの表記法である「DFD(Data Flow Diagram)」では,データの発生源を四角形,処理を円(バブルと呼ぶ),ファイルを二重線で表す。データの流れは矢印で表し,矢印の上に流れるデータの内容を示す
[画像のクリックで拡大表示]

DOAでデータを一元管理

 1980年代に入って,大規模な記憶装置(ハードディスクや磁気テープなど)が利用可能になると,企業が持つ膨大なデータを一元管理する「データベース」が誕生した。

 データベースでは,データを常に正しくかつ最新の状態に保つことが重要であり,「処理」は逆に付属的な存在になった。そこで,どんなデータがあればシステムが成り立つかを最初に考える技法としてDOAが誕生した。

 DOAの記述法であるER図は,データのまとまりを「エンティティ」,エンティティとエンティティの関係を「リレーションシップ」で表す。エンティティというモジュールの集合体として,データベースを構築していくわけだ。