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

- 要件定義:作るべきシステムの“あるべき姿”を明らかにする
👉「品質特性」も考慮(可用性・保守性・性能など) - 設計
- システム方式設計:全体の構成や構成要素の役割を設計
- ソフトウェア方式設計:各ソフトウェアがどう動くかを設計
- ソフトウェア詳細設計:各プログラムの詳細を詰める - プログラミング
- コーディング:設計に沿ってコードを書く
- 単体テスト: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が、過去実績や仕様をもとに行います。
- QFP法って難しそう…試験に出る?
- A
計算までは出ないことが多いですが、仕組みはよく問われます!
練習問題①
ブラックボックステストの説明として最も適切なものはどれか?
A. プログラム内部の処理構造に着目して行うテスト
B. ユーザーの操作に対する出力のみを検証するテスト
C. ソースコードの1行ごとに正しく動作するかを確認するテスト
D. プログラムのセキュリティ上の脆弱性を調査するテスト
正解:
B
→ブラックボックステストは、内部構造を考慮せず、入力と出力の整合性を確認するテストです。
練習問題②
次のソフトウェア開発工程において、「ソフトウェア方式設計」に該当する内容はどれか?
A. 業務の目的や範囲を整理する
B. システム全体の構成と役割を設計する
C. 各ソフトウェアがどんな処理を行うかを設計する
D. 各プログラムの変数や構文レベルの詳細を詰める
正解:
C
→ソフトウェア方式設計は、プログラム群(モジュール)やその機能・役割を定義する設計段階です。
練習問題③
ファンクションポイント法(FP法)に関する説明として、最も適切なものはどれか?
A. ソースコードの行数をもとに開発規模を見積もる方法
B. システムで使用される機能の種類と数に基づいて見積もる方法
C. 開発者の経験年数に応じて見積もりポイントを割り当てる方法
D. 過去に開発した類似システムの費用実績をもとに見積もる方法
正解:
B
→FP法は、入力や出力、ファイル数などの「機能の数と種類」に着目して開発規模を見積もる手法です。
コメント