システム開発とは?その2

システム開発プロジェクトは自由に進められるものではなく、そこには品質、コスト、納期(QCD)という制約があります。このQCDをどのように満たすのかが重要です。

QCDとは何か

作りたいシステムの全体像(自動化したい手続き)が決まったら、システム開発全体の指標を考える必要があります。システム開発を管理するためには基準が必要で、それに基づいて開発が進められるからです。

Quality 開発したシステムの品質
Cost 開発に必要なコスト
Delivery  開発が完了する納期

システムの具現化

作りたいシステムの内容と、QCDに基づいたスケジュール、開発体制が整ったところで、システムを実際に開発していきます。システム開発の大まかな流れは次の通りでです。

  • 要件定義(要求分析)
  • 外部設計(基本設計)
  • 内部設計(機能設計)
  • 詳細設計(プログラム設計)
  • プログラミング(製造、実装、コーディング)
  • テスト

システム開発の流れにおいて、上記のような作業割りを、開発フェーズ(工程)と言います。外部、内部という言葉は、システムやシステム内の機能の関連を意味していて、外部設計では外部システムとの関連を示した設計を行います。内部設計では、開発するシステム内で関連する機能の振る舞いを設計します。 各開発フェーズの作業スコープは、開発現場(プロジェクト)によって定義が異なっている場合が多く、例えば外部設計と内部設計にフェーズを分けずに、概要設計フェーズとして管理単位をまとめる場合もあります。

上流工程・下流工程

上流・下流工程という言葉があるが、大まかにいうと次のような意味です。

上流工程 要件定義から外部設計までの工程
下流工程  内部設計からテストまでの工程

上流工程、下流工程の明確な定義は存在しませんが、システムの要件を定義する工程を上流工程と言い、システムを実際に設計し、作る工程を下流工程と言う場合が多いです。 上流工程ほどシステム開発におけるリスクが大きいため、システムの要件を確実に定義しておくことがプロジェクトの成功に直結すると言えます。