システム開発と見積もりの基本|流れとテスト、FP法までゆるっと解説!

※当サイトではアフィリエイト広告を利用し商品紹介を行っております

ITパスポートゆるっと勉強帳

ITの世界では「どんなシステムを作るか」だけでなく、「どう作って、どうテストして、どう費用を見積もるか」も大切。
今回はシステム開発の全体像と、見積り方法の基本をやさしく解説します。


スポンサーリンク

1. システム開発プロセスとは?

📌 図解:システム開発の流れ

  1. 要件定義:作るべきシステムの“あるべき姿”を明らかにする
     👉「品質特性」も考慮(可用性・保守性・性能など)
  2. 設計
     - システム方式設計:全体の構成や構成要素の役割を設計
     - ソフトウェア方式設計:各ソフトウェアがどう動くかを設計
     - ソフトウェア詳細設計:各プログラムの詳細を詰める
  3. プログラミング
     - コーディング:設計に沿ってコードを書く
     - 単体テスト:1つのプログラム単位で正しく動くか確認
     - ホワイトボックステスト:内部構造を見ながらテスト
     - デバッグ:バグを修正する作業
  4. テスト工程
     - 単体テスト → 結合テスト → システムテスト → 運用テスト → 受入テスト
     - ブラックボックステスト:外部からの入力と出力だけでテスト

📌 図解:テスト工程の流れ


📌 図解:ホワイトボックステスト・ブラックボックステストの違い

  1. ソフトウェア保守
     → 運用後のバグ修正や機能追加などのフォロー

2. 見積り手法の種類

◆ファンクションポイント法(FP法)

▶ システムの機能を数値化し、開発規模を予測する方法

  • 入力・出力・ファイル数などを基準に機能数をカウント

ファンクションポイントの見積もり方(基本構造)

機能タイプ内容の例難易度による係数数量FP(ファンクションポイント)
外部入力(EI)データ入力、登録画面3 / 4 / 6○件○ × 難易度係数
外部出力(EO)レポート出力、確認画面など4 / 5 / 7○件○ × 難易度係数
外部照会(EQ)検索機能、簡易な問い合わせ3 / 4 / 6○件○ × 難易度係数
内部論理ファイル(ILF)自社管理のデータベース(顧客情報など)7 / 10 / 15○件○ × 難易度係数
外部インターフェースファイル(EIF)外部とのデータ共有(他システム連携など)5 / 7 / 10○件○ × 難易度係数

FP法のポイント解説

  • 難易度係数
     「低・中・高」の難易度により、FP係数が異なります(例:外部出力なら 4 / 5 / 7)。
  • 見積手順の流れ
     1. 各機能の数を数える(数量)
     2. 機能の難易度を判定する
     3. 係数をかけて個別のFPを算出
     4. 合計FPにより開発規模やコストを見積もる

◆類推見積法

▶ 過去の類似プロジェクトの実績から見積もる
💡「前にやった○○と似てるから、たぶんこれくらいかかる」


◆相対見積

▶ 複数の機能やタスクを「これと比べて重い/軽い」で判断し、見積もりを行う
💡タスクA:2pt、B:1pt、C:3pt みたいにポイントを割り当てる


まとめ

開発工程代表的な内容
要件定義目的・範囲・品質の整理
設計全体構成と詳細の設計
実装プログラム作成とテスト
テスト単体~受入の各段階で検証
保守運用後の改善・対応
見積手法特徴
FP法機能数に基づいて算出
類推見積過去実績に基づく予測
相対見積タスクの重さを比較で評価

FAQ(よくある質問)

Q
ブラックボックステストってどんなとき使うの?
A

外部から見た“使い勝手”を重視したテスト。受入テストなどで使われることが多いです。

Q
見積りって誰がやるの?
A

プロジェクトマネージャーやSEが、過去実績や仕様をもとに行います。

Q
FP法って難しそう…試験に出る?
A

計算までは出ないことが多いですが、仕組みはよく問われます!

練習問題①

ブラックボックステストの説明として最も適切なものはどれか?

A. プログラム内部の処理構造に着目して行うテスト
B. ユーザーの操作に対する出力のみを検証するテスト
C. ソースコードの1行ごとに正しく動作するかを確認するテスト
D. プログラムのセキュリティ上の脆弱性を調査するテスト

正解:

B
→ブラックボックステストは、内部構造を考慮せず、入力と出力の整合性を確認するテストです。


練習問題②

次のソフトウェア開発工程において、「ソフトウェア方式設計」に該当する内容はどれか?

A. 業務の目的や範囲を整理する
B. システム全体の構成と役割を設計する
C. 各ソフトウェアがどんな処理を行うかを設計する
D. 各プログラムの変数や構文レベルの詳細を詰める

正解:

C
→ソフトウェア方式設計は、プログラム群(モジュール)やその機能・役割を定義する設計段階です。


練習問題③

ファンクションポイント法(FP法)に関する説明として、最も適切なものはどれか?

A. ソースコードの行数をもとに開発規模を見積もる方法
B. システムで使用される機能の種類と数に基づいて見積もる方法
C. 開発者の経験年数に応じて見積もりポイントを割り当てる方法
D. 過去に開発した類似システムの費用実績をもとに見積もる方法

正解:

B
→FP法は、入力や出力、ファイル数などの「機能の数と種類」に着目して開発規模を見積もる手法です。

コメント

タイトルとURLをコピーしました