SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

モデルベースの手法でコストをかけずに既存システムを分析する

既存システムを分析するコツは「システムの地図」を作ること

モデルベースの手法でコストをかけずに既存システムを分析する(1)

大事なことは何か

複雑な対象をシンプルに捉える

 既存システムは時間の経過とともに機能が追加され複雑になっています。その複雑さは多くの場合、人がケースバイケースで対応している柔軟性をシステムに取り込んだことと、システムの作り方に起因します。

 ビジネスそのものは人が行っている以上、理解できないほどに複雑になることはなく、現場に柔軟に対応したためにシステムの機能間の関係が複雑化したケースや、システム上の制約から手順が複雑になったケースなどが考えられます。

 既存システムの調査分析では、その複雑なシステムを詳細に捉えることが重要なのではなく、膨大な資料やプログラムに素早くアクセスするための地図を作成することが重要です。

 地図には写真のような個々の詳細な情報はありません。道路や公共施設などの重要な目印が強調されて示されます。余計なものを省き、重要なものだけ記述することで情報を分かりやすく表現します。

 ここからはシステムの地図を作るために、既存システムの調査分析の役割を見ていきましょう。システム再構築のための要件を決める手順は単純化すると以下の3ステップです。

  1. 既存システムの機能はこうで、このように使われている
  2. 次のシステムの方向性はこうだ
  3. だから次のシステムではこうする

 1が既存システムの分析にあたります。システムの仕様化では機能を組み立てていくことが必要であり、そのための材料と判断基準が必要になります。その材料と判断基準を洗い出すのが既存システムの調査分析です。

 その材料と判断基準が「誰に 何を行い、それは何のために」を示すことです。「誰に」が関わるアクターや外部のシステムになります。「何を行い」という部分がシステムとの入出力と機能、データにあたり、そして「何のために」が広い意味でのビジネスルールに該当します。

 システムの地図は「誰に 何を行い それは何のために」を記述したものになります。

図2 システムの地図
図2 システムの地図

省けるものは何か

 既存システムの分析作業が肥大化しないために、省けるものとして以下の2つがあります。

  • アーキテクチャの整理
  • 詳細な情報の整理

 通常システムを再構築するときはアーキテクチャが変わります(既存のアーキテクチャで対応できなくなりシステムの再構築に迫られるため)。従ってシステムの作りがどうなっているのかは調査から省くことができます。

 同様に詳細な情報の整理にも踏み込みません。プログラムはさまざまな制約(時間的制約、物理的制約、開発時制約…)の中で、開発保守され、それらの制約の結果として作られています。従って、プログラムを詳細に調べることはさまざまな制約の中で作られた現実解を見ているに過ぎません。システムを取り巻く状況は変化しているので、再構築するシステムではまた違った制約になります。必要なのはそれらの制約を取り払った、ビジネス上価値のある真の機能(何を行っているのか)を把握することです。

 アーキテクチャの整理や詳細な情報の整理は、後で必要になったときに目的を明らかにして調べるほうが効率的です。詳細な調査を行うときに対応関係が分かるように情報を整理することが既存システムの調査分析です。その成果物がモデルで表現されたシステムの地図になります。

図3 プログラムはさまざまな制約の中での現実解
図3 プログラムはさまざまな制約の中での現実解

次のページ
まとめ

この記事は参考になりましたか?

モデルベースの手法でコストをかけずに既存システムを分析する連載記事一覧

もっと読む

この記事の著者

神崎 善司(カンザキ ゼンジ)

(株)バリューソース代表大手SIerにおいて大小10システム以上のプロジェクトリーダを勤め、20年ほど前に独立。2002年から5年間(株)豆蔵での社員も兼任しながら要件定義などの上流工程のコンサルティングを行う。2008年に要件定義手法「リレーションシップ駆動要件分析(RDRA)」を開発し現在はその...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/6487 2012/04/10 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー