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('
'); }
モデルベースの手法でコストをかけずに既存システムを分析する

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

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

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

 既存システムの分析のためにプログラムを一つ一つ調べているあなた。その作業に疑問を持っていませんか? 「なんだかな~」と思いながら作業していませんか? それを指示したプロジェクトリーダーのあなた。既存システムを調査することのゴールを明確にせず、とりあえず手に入る資料をベースに作業させていませんか? このような方に少しでもヒントになればと思い、この記事を書きました。

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

 ビジネス系のシステム開発では、まったくの新規システム開発は少なく、すでにあるシステムの再構築プロジェクトがほとんどです。このようなプロジェクトでは既存システムを調べる作業が必ず発生します。その割には公開された情報として、既存システムを分析する方法を説明したものを見かけません。多くは開発者がその場その場で臨機応変に対応しています。

 実際のプロジェクトでは開始早々この既存システムの分析で手間取り、時間を大きくロスするケースが見られます。この連載ではコストをかけずに分析するモデルベースの方法を5回に分けて紹介します。第1回目となる今回は、詳細に踏み込まずにトップダウンでモデル化していくための考え方を示します。

プロジェクトが置かれた状況

既存システムは土台にできるか

 既存システムの調査分析は時間ばかりかかり、なかなか成果が現れません。そんなプロジェクトでは以下のような会話が飛び交います。

佐藤さん:
「既存システムを分析して、その上で要求をベースにトップダウンで
仕様を考えていたら、いつになったら開発が始められるか分からない。
既存システムの構成をもとに開発する方がいい」

木村さん:
「そんなことをしたら既存システムと同じものになり、課題の解決も
付加価値をつけることもできなくなる。時間がかかっても既存システム
を分析して、トップダウンで要件定義から進めた方がいい」

佐藤さん:
「それは分かるけど既存システムの分析や要件定義に時間がかかりすぎて、
納期に間に合わなくなる」

 既存システムを分析し、要件定義からはじめると時間がかかるから、ほぼ同じシステムなら、その構成を参考に進めた方が混乱が少なくていい、という考え方に傾くのも分かります。しかし、混乱は少なくなりますが、既存システムの制約をそのまま取り込む可能性は高くなります。

 例えば古い本を内容はそのままに、新しく本を書き起こす場合を考えてみましょう。内容は同じと言っても、より魅力的な内容にする必要があります。その古い本を土台として部分的に魅力を追加していくのか、その本のエッセンスを整理し、一から本を書き起こすのかの違いに似ています。

 どちらも大変な作業ですが、エッセンスを抜き取ることが出来れば、新たに本を書き起こす方がより魅力的な本に仕上げることが容易になります。古い本を土台にしてしまうと、ストーリー展開が同じになる、登場人物を追加することが難しくなる、難解な箇所がそのままになってしまう可能性があります。

 同じように既存システムをベースにシステム化すると制約を引き継いでしまう可能性があります。では既存システムのエッセンスを整理するというのはどういうことでしょう。今回の連載はその考え方と具体的な手法を説明します。

システムの再構築案件

 既存システムの多くはドキュメントが整備されておらず、頼りは少数のドキュメントとプログラムという現場を多く見かけます。

 おまけにシステムを利用している方の多くは自分が操作しているシステムが「なぜこうなっているのか」を説明できません。自分が担当したときにはこのシステムがすでにあり「使い方を聞いているだけ」という状況です。同じく情報システム部門は業務について一般的なことは分かっても、業務固有のことについては詳しく知りません。

 つまり既存システムについて全体を網羅的に知っている人はおらず、ビジネスルールもシステムに埋もれ、システムの挙動に合わせて作業を進めているケースが一般的です。

 このような状況の中では、まず網羅的にシステムを語れることと、埋もれたビジネスルールを明らかにすることがとても大事になります。

一般的な対応

 一般的に既存システムを調べる作業は、一覧を作り、手に入る資料に基づいてドキュメントを新たに作成する作業をしています。例えば機能一覧やプログラム一覧、画面一覧などです。その一覧を頼りに個々の画面や機能などの要素ごとに資料としてまとめます。

 しかし、手に入る資料をベースに情報を整理する、この方式は効率的ではありません。資料を調べることが目的になり、本来の目的である「網羅的にシステムを語り、埋もれたビジネスルールを明らかにする」という視点が欠ける可能性が高いからです。なぜならばシステム全体を見る視点が薄くなり、必要な情報と不要な情報を識別することなく、ただ対象を調べることに意識が向かってしまいがちになるからです。

 何よりも重要なことはシステムの対象業務の中でシステムがどのように使われ、そのためにどのような機能があるのかを、システム全体から語れることが必要です。当たり前の言葉ですが「木を見て森を見ず」にならないことが求められます。

図1 既存の資料に依存した調査分析
図1 既存の資料に依存した調査分析

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

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

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

メールバックナンバー

次のページ
大事なことは何か

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

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

もっと読む

この記事の著者

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

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

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

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

この記事をシェア

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

おすすめ

アクセスランキング

  1. 1
    AppleがSiriとChatGPTを統合、Apple Intelligence強化 NEW
  2. 2
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  3. 3
    【超時短テクニカルライティング】生成AIを活用してドキュメントを書く流れを掴もう! NEW
  4. 4
    「CUDA」 ~マンガでプログラミング用語解説
  5. 5
    2024年の提示年収が高いプログラミング言語は? paiza調査によるランキングが発表
  1. 6
    Cognition、完全自律型AIソフトウェアエンジニア「Devin」を正式リリース NEW
  2. 7
    まずはここから!GUIテスト自動化ツール導入のポイントと「Squish」で実践するビヘイビア駆動型テスト
  3. 8
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  4. 9
    計測と改善をひたすら繰り返したら、年間コストを1億円削減した──不確実性の高いプロジェクトに挑む
  5. 10
    VSCodeをUML図やフローチャート作成に使ってみよう

アクセスランキング

  1. 1
    AppleがSiriとChatGPTを統合、Apple Intelligence強化 NEW
  2. 2
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  3. 3
    【超時短テクニカルライティング】生成AIを活用してドキュメントを書く流れを掴もう! NEW
  4. 4
    「CUDA」 ~マンガでプログラミング用語解説
  5. 5
    2024年の提示年収が高いプログラミング言語は? paiza調査によるランキングが発表
  6. 6
    Cognition、完全自律型AIソフトウェアエンジニア「Devin」を正式リリース NEW
  7. 7
    まずはここから!GUIテスト自動化ツール導入のポイントと「Squish」で実践するビヘイビア駆動型テスト
  8. 8
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  9. 9
    計測と改善をひたすら繰り返したら、年間コストを1億円削減した──不確実性の高いプロジェクトに挑む
  10. 10
    VSCodeをUML図やフローチャート作成に使ってみよう
  1. 1
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  2. 2
    ITエンジニア本大賞2025、投票締切直前! みんなで選んだ歴代の大賞本を振り返って一挙紹介
  3. 3
    「CUDA」 ~マンガでプログラミング用語解説
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    VSCodeをドキュメント作成に活用――テキストエディタ、Markdownエディタの設定と拡張機能を解説
  6. 6
    今後生成AIとどう向き合うべきなのか? 現場のエンジニアと研究者が最新研究事例から語り合う
  7. 7
    Python 3.13の新機能、対話型インタプリタの機能強化や高速化などを解説
  8. 8
    2024年12月に開催される注目のITエンジニア向けカンファレンス5選
  9. 9
    日本在住の英語を話すソフトウェア開発者、年収の中央値は950万円に
  10. 10
    Vue.js3.4~3.5の新機能をまとめて紹介! 新しいAPIやSSRの改善

イベント

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

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

メールバックナンバー

アクセスランキング

  1. 1
    AppleがSiriとChatGPTを統合、Apple Intelligence強化 NEW
  2. 2
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  3. 3
    【超時短テクニカルライティング】生成AIを活用してドキュメントを書く流れを掴もう! NEW
  4. 4
    「CUDA」 ~マンガでプログラミング用語解説
  5. 5
    2024年の提示年収が高いプログラミング言語は? paiza調査によるランキングが発表
  1. 6
    Cognition、完全自律型AIソフトウェアエンジニア「Devin」を正式リリース NEW
  2. 7
    まずはここから!GUIテスト自動化ツール導入のポイントと「Squish」で実践するビヘイビア駆動型テスト
  3. 8
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  4. 9
    計測と改善をひたすら繰り返したら、年間コストを1億円削減した──不確実性の高いプロジェクトに挑む
  5. 10
    VSCodeをUML図やフローチャート作成に使ってみよう

アクセスランキング

  1. 1
    AppleがSiriとChatGPTを統合、Apple Intelligence強化 NEW
  2. 2
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  3. 3
    【超時短テクニカルライティング】生成AIを活用してドキュメントを書く流れを掴もう! NEW
  4. 4
    「CUDA」 ~マンガでプログラミング用語解説
  5. 5
    2024年の提示年収が高いプログラミング言語は? paiza調査によるランキングが発表
  6. 6
    Cognition、完全自律型AIソフトウェアエンジニア「Devin」を正式リリース NEW
  7. 7
    まずはここから!GUIテスト自動化ツール導入のポイントと「Squish」で実践するビヘイビア駆動型テスト
  8. 8
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  9. 9
    計測と改善をひたすら繰り返したら、年間コストを1億円削減した──不確実性の高いプロジェクトに挑む
  10. 10
    VSCodeをUML図やフローチャート作成に使ってみよう
  1. 1
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  2. 2
    ITエンジニア本大賞2025、投票締切直前! みんなで選んだ歴代の大賞本を振り返って一挙紹介
  3. 3
    「CUDA」 ~マンガでプログラミング用語解説
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    VSCodeをドキュメント作成に活用――テキストエディタ、Markdownエディタの設定と拡張機能を解説
  6. 6
    今後生成AIとどう向き合うべきなのか? 現場のエンジニアと研究者が最新研究事例から語り合う
  7. 7
    Python 3.13の新機能、対話型インタプリタの機能強化や高速化などを解説
  8. 8
    2024年12月に開催される注目のITエンジニア向けカンファレンス5選
  9. 9
    日本在住の英語を話すソフトウェア開発者、年収の中央値は950万円に
  10. 10
    Vue.js3.4~3.5の新機能をまとめて紹介! 新しいAPIやSSRの改善