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

要件定義ツールを使った既存システムの分析

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

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

 前回はUMLを使ってシステムの地図をかく方法を説明しました。今回はUMLを使わずにより簡単に分析する方法を説明します。システムの入出力とデータをつなぐ分析手法は、要件定義でも使われる手法なので同じ要領で既存システムを分析することができます。今回ご紹介するのは要件定義ツールを使う方法です。柔軟性には欠けますが、要件定義が初めての方でも簡単に短時間でまとめることができます。

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

短期間に分析する

 今回ご紹介する方法は画面数が100程度の中小規模なシステムを対象としています。システム関係者へのヒアリングが行える環境があり、材料(入出力情報とデータ)が揃っている場合は、手法とツールを使うことで、短時間でシステムの地図を作成できます。

 今回は要件定義ツール「要件のツボ」を使った方式を説明します。今回もプログラムそのものを調査するのではなく、システムの入出力を調べ、その使われ方を調べる方法です。「要件のツボ」も同じ考え方で作られており、情報の表現方法をそのまま活用できます。

対象とする情報

 既存システムの分析は、以下の6種類のデータと2つのモデルで表現します。

  • 誰に: 「アクター」「外部システム」
  • 何を行い: 「画面・帳票」「外部システムとの入出力」「機能」「データ」
  • 何のために: 「ステートマシンモデル」「概念モデル」

 「要件のツボ」を使った場合は、システムの関係者を「アクター」「外部システム」で表現し、入出力情報として「画面・帳票」「イベント」「イベントデータ」を使い、システムは「機能」と「データ」で表現します。

 ステートマシンモデルはプロトコル(後述の「手続きにともなうルール化」を参照)という機能で代用し、概念モデルは用語集で代用します。

 扱える情報は前回紹介したUMLを使った方法とほぼ同じ(違いは画面にイベントを結びつけないこと)です。

 思考方法はUMLと「要件のツボ」では多少異なります。UMLはダイアグラム単位で図としてつながりを記述しますが「要件のツボ」では個々の要素を直接つなげるので、ダイアグラムのように1枚の図として表現する単位がありません。UMLではダイアグラム単位が表現の単位になるので、読み手と作り手は同じダイアグラムを見ることになり、作り手の表現力がそのまま読みやすさにつながります。「要件のツボ」は図としての要素がない分、要素のつながりにだけ集中でき、作成が容易になります。

 UMLのような汎用的なツールは柔軟性があり表現力も高いのですが、使いこなすには経験が必要です。一方専用ツールは柔軟性には劣りますが、初心者にも扱え、素早くまとめることができます。

材料を順次入力する

 既存システムの分析は、最初に入出力情報(画面・帳票、イベント、イベントデータ)とデータを洗い出すことから始めます。「要件のツボ」ではそれらのデータをアイコンではなくテキストとして入力します。

図1 洗い出した情報を順次入力する
図1 洗い出した情報を順次入力する

 図1にあるように洗い出した情報の名前を順次登録します。この時情報は個々に分析せず、そのまま登録します。そして、ある程度材料がそろったところで分析を始めます。あくまでもシステム全体の視点から分析することが重要で、個々の情報を個別に分析することはしません。それを行うと時間がいくらあっても足りなくなるからです。

 材料(入出力情報とデータ)を集めることと、分析を分けることが大事です。

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

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

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

メールバックナンバー

次のページ
機能としてつなげる

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

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

もっと読む

この記事の著者

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

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

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6695 2012/08/03 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の改善