SHOEISHA iD

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

連載記事

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

CodeZine BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。

書籍に関する記事を見る

'); googletag.cmd.push(function() { googletag.pubads().addEventListener('slotRenderEnded', function(e) { var ad_id = e.slot.getSlotElementId(); if (ad_id == 'div-gpt-ad-1659428980688-0') { var ad = $('#'+ad_id).find('iframe'); if ($(ad).width() == 728) { var ww = $(window).width(); ww = ww*0.90; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/728+","+ww/728+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/728+","+ww/728+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/728+","+ww/728+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/728+","+ww/728+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(90*ww/728)+"px;width:"+728+"px;}", 0 ); } else { if ($(window).width() < 340) { var ww = $(window).width(); ww = ww*0.875; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/320+","+ww/320+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/320+","+ww/320+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/320+","+ww/320+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/320+","+ww/320+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(180*ww/320)+"px;width:"+320+"px;}", 0 ); } } } }); }); } else { document.write('
'); document.write('
'); }
モデルベースの手法でコストをかけずに既存システムを分析する

既存システムを分析するための考え方と対処法

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

 前回は既存システムの分析方法として、システムの地図を作ることを説明しました。さまざまな制約の中で開発、保守されたシステムは混沌としています。その状況に影響されずに重要なものと不要なものを見極め、システムを俯瞰するために必要最低限度の情報で全体を表現します。今回はプロジェクトの置かれたさまざまな状況の中で、既存システムを分析するための考え方や対処法を説明します。

  • X ポスト
  • このエントリーをはてなブックマークに追加

素早く全体をつかむ

トップダウンで全体を把握する

 システムの地図はシステムの入出力、機能、データ、そしてビジネスルールで表現します。その全体の構成要素を示したものが図1です。

図1 システムの地図の構成要素
図1 システムの地図の構成要素

 入出力とデータを機能でつなぎシステムの構成を明らかにします。そして、点線で囲まれた3種類のビジネスルールで業務との関わりを表しています。

表1 ビジネスルールの種類
ルール 説明
構造的なビジネスルール 情報の構造上の制約や条件を示したもの
条件付けによるビジネスルール 条件付けられたルール(5万円以上買うと5%引き)
手続き的なビジネスルール 業務の手続きに関わるルール(「受注積み」が在庫引き当て対象)

 整理した入出力、機能、データがこれらのルールと結びつくことで、各々の役割や関係性が明確になり、システム全体の機能が見えてきます。

 この構成要素を業務やサブシステムに分割し、その中で要素ごとにまとめたものがシステムの地図になります。

システムの特徴をつかむ

 業務系のシステムを大きく2つのタイプとして考えると、情報の整理に役立ちます。

  • データ蓄積型システム
    データを入力し加工して出力するだけのシステム
  • 状態変化を監視するシステム
    入力した情報の状態が変わり、その変化に応じてシステムの振る舞いを変えるシステム

 データ蓄積型システムは情報の共有や分析などを行うシステムとして広く使われている形態です。この形態の場合は入出力情報とデータとの関係が整理できれば、システムの全体像を整理することができます。入出力とは画面や帳票、外部システムとのインターフェースになります。入出力間に相互関係があまりないので、構造的なビジネスルールと条件付けによるビジネスルールが重要になります。

 状態変化を監視するシステムはデータ蓄積型の特徴に加えて、ビジネス上の状態の変化とシステムが密接に関係しているタイプです。ビジネス上の状態とは、業務フローのような作業ステップがあり、それがデータ上は状態(見積もり済み、受注済み…)として認識されているものを指します。このとき状態変化を引き起こすのがシステムの入出力と考えます。この形態のシステムは入出力間に関係性があり、手続き的なビジネスルールとして整理します。このようにビジネス上認識されていることとデータの状態が密接に関係しているのがこのタイプの特徴です。

 2つのタイプと3種類のビジネスルール、そして入出力、機能、データの各々の視点を意識して調査分析対象のシステムがどのタイプかを素早くつかむことで、整理の見通しをつけやすくなります。

会員登録無料すると、続きをお読みいただけます

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

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

メールバックナンバー

次のページ
システムの全体像を捉える

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
モデルベースの手法でコストをかけずに既存システムを分析する連載記事一覧

もっと読む

この記事の著者

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

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

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6566 2012/05/15 14:00
" ); }

おすすめ

アクセスランキング

  1. 1
    総務省、データサイエンス・オンライン講座「誰でも使える統計オープンデータ」をリニューアル開講 NEW
  2. 2
    C# 13の新機能を理解する――paramsコレクションと新しいロックセマンティクス NEW
  3. 3
    実はITエンジニアの設計力が求められるkintone、その仕組みとポイントを事例に学ぶ
  4. 4
    ITエンジニア本大賞2025、ベスト10選出! 技術書部門とビジネス書部門の大賞はどうなる!?
  5. 5
    Linuxデスクトップ向けソフトウェアデプロイメントシステム「Flatpak」の最新バージョンリリース NEW
  1. 6
    プログラミング未経験からのITエンジニアへ転職の実態を調査、TAG STUDIOが発表 NEW
  2. 7
    P2Pベースのイメージ・ファイル配布システム「Dragonfly v2.2.0」リリース NEW
  3. 8
    AWS、サンプルアセットGenUの新機能である「ユースケースビルダー」について公式ブログで紹介 NEW
  4. 9
    サーバーサイドJavaScriptランタイムにおけるAPI相互運用性を実現する「WinterTC」設立 NEW
  5. 10
    Renewer、Tips集「生成AI × 勉強法ガイドブック 2025」を公開

アクセスランキング

  1. 1
    総務省、データサイエンス・オンライン講座「誰でも使える統計オープンデータ」をリニューアル開講 NEW
  2. 2
    C# 13の新機能を理解する――paramsコレクションと新しいロックセマンティクス NEW
  3. 3
    実はITエンジニアの設計力が求められるkintone、その仕組みとポイントを事例に学ぶ
  4. 4
    ITエンジニア本大賞2025、ベスト10選出! 技術書部門とビジネス書部門の大賞はどうなる!?
  5. 5
    Linuxデスクトップ向けソフトウェアデプロイメントシステム「Flatpak」の最新バージョンリリース NEW
  6. 6
    プログラミング未経験からのITエンジニアへ転職の実態を調査、TAG STUDIOが発表 NEW
  7. 7
    P2Pベースのイメージ・ファイル配布システム「Dragonfly v2.2.0」リリース NEW
  8. 8
    AWS、サンプルアセットGenUの新機能である「ユースケースビルダー」について公式ブログで紹介 NEW
  9. 9
    サーバーサイドJavaScriptランタイムにおけるAPI相互運用性を実現する「WinterTC」設立 NEW
  10. 10
    Renewer、Tips集「生成AI × 勉強法ガイドブック 2025」を公開
  1. 1
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  2. 2
    ガントチャートをWebアプリに組み込める「ガントシート」でプロジェクト管理機能を作成してみよう
  3. 3
    1/10まで全文無料公開、人気の入門書シリーズ『いきなりプログラミング Androidアプリ開発』
  4. 4
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  5. 5
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  6. 6
    Google、社内AIエージェント「Google Agentspace」発表
  7. 7
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース
  8. 8
    テストは増え続ける、でもボトルネックにはできない──テスト効率化の2つのカギを朱峰 錦司氏が解説!
  9. 9
    管理職の24.1%、今後管理職を「続けたくない」と回答。理由は「責任やストレス」が最多に
  10. 10
    ITエンジニア本大賞2025、ベスト10選出! 技術書部門とビジネス書部門の大賞はどうなる!?

イベント

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

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

メールバックナンバー

アクセスランキング

  1. 1
    総務省、データサイエンス・オンライン講座「誰でも使える統計オープンデータ」をリニューアル開講 NEW
  2. 2
    C# 13の新機能を理解する――paramsコレクションと新しいロックセマンティクス NEW
  3. 3
    実はITエンジニアの設計力が求められるkintone、その仕組みとポイントを事例に学ぶ
  4. 4
    ITエンジニア本大賞2025、ベスト10選出! 技術書部門とビジネス書部門の大賞はどうなる!?
  5. 5
    Linuxデスクトップ向けソフトウェアデプロイメントシステム「Flatpak」の最新バージョンリリース NEW
  1. 6
    プログラミング未経験からのITエンジニアへ転職の実態を調査、TAG STUDIOが発表 NEW
  2. 7
    P2Pベースのイメージ・ファイル配布システム「Dragonfly v2.2.0」リリース NEW
  3. 8
    AWS、サンプルアセットGenUの新機能である「ユースケースビルダー」について公式ブログで紹介 NEW
  4. 9
    サーバーサイドJavaScriptランタイムにおけるAPI相互運用性を実現する「WinterTC」設立 NEW
  5. 10
    Renewer、Tips集「生成AI × 勉強法ガイドブック 2025」を公開

アクセスランキング

  1. 1
    総務省、データサイエンス・オンライン講座「誰でも使える統計オープンデータ」をリニューアル開講 NEW
  2. 2
    C# 13の新機能を理解する――paramsコレクションと新しいロックセマンティクス NEW
  3. 3
    実はITエンジニアの設計力が求められるkintone、その仕組みとポイントを事例に学ぶ
  4. 4
    ITエンジニア本大賞2025、ベスト10選出! 技術書部門とビジネス書部門の大賞はどうなる!?
  5. 5
    Linuxデスクトップ向けソフトウェアデプロイメントシステム「Flatpak」の最新バージョンリリース NEW
  6. 6
    プログラミング未経験からのITエンジニアへ転職の実態を調査、TAG STUDIOが発表 NEW
  7. 7
    P2Pベースのイメージ・ファイル配布システム「Dragonfly v2.2.0」リリース NEW
  8. 8
    AWS、サンプルアセットGenUの新機能である「ユースケースビルダー」について公式ブログで紹介 NEW
  9. 9
    サーバーサイドJavaScriptランタイムにおけるAPI相互運用性を実現する「WinterTC」設立 NEW
  10. 10
    Renewer、Tips集「生成AI × 勉強法ガイドブック 2025」を公開
  1. 1
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  2. 2
    ガントチャートをWebアプリに組み込める「ガントシート」でプロジェクト管理機能を作成してみよう
  3. 3
    1/10まで全文無料公開、人気の入門書シリーズ『いきなりプログラミング Androidアプリ開発』
  4. 4
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  5. 5
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  6. 6
    Google、社内AIエージェント「Google Agentspace」発表
  7. 7
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース
  8. 8
    テストは増え続ける、でもボトルネックにはできない──テスト効率化の2つのカギを朱峰 錦司氏が解説!
  9. 9
    管理職の24.1%、今後管理職を「続けたくない」と回答。理由は「責任やストレス」が最多に
  10. 10
    ITエンジニア本大賞2025、ベスト10選出! 技術書部門とビジネス書部門の大賞はどうなる!?