システム開発の工程について
初めに
本記事は、システム開発の工程についてまとめます。開発工程に沿って作業する目的は、計画通りに開発をすることができます。また、一連の開発プロセスを工程に分割することで、進捗や品質を管理しやすくなります。
Index
システム開発の工程
システム開発は、次のような工程があります。
要件定義
顧客や利害関係者とのコミュニケーションを通じて、システムが満たすべき要件を明確にします。要件は機能や性能など、システムに求められる特性を指します。
具体的には、発注側の業務要件(解決すべき業務課題)をもとに、システムに求める以下の条件を定義(明確に決める)し、要件定義書へと落とし込んでいきます。
基本設計
要件定義をもとに、システムの基本的な構造やアーキテクチャを設計します。具体的には、
- 要件を満たすソフトウェア(ミドルウェア)・ハードウェアを明確にする
- システムに必要なすべての機能を洗い出し、それぞれの役割を明確にする
- 機能間の関連性、データの種類・流れ、全体的な業務の処理方法を明確にする
- 取り扱う情報をどのように管理するか?データベースの形式・項目を決定する
- 既存システムとの連携が必要な場合、データやり取りの方法・連携画面などを決定する
また、画面遷移図を作り、画面のイメージや画面操作で表示される画面の流れを説明します。
(画面遷移図のイメージが分かるリンク先)
www.work-school.com
これらを基本設計書にまとめていきます。
詳細設計
詳細設計では、基本設計書をもとに、システムエンジニアやプログラマがどのようにつくるのか、より詳細に設計していきます。
詳細設計では、プログラマーへの指示書ともいえる詳細設計書を機能ごとに作成。詳細設計書をもとに、多数のプログラマーが作業にあたるため、クラス設計書、コード設計書、コーディング規約、単体テスト仕様書なども作成されます。
開発(プログラミング)
完成した詳細設計書をもとに、実際のシステムを開発(プログラミング)する工程に移ります。プログラミング言語を含め、作業に必要な設計書・情報はすべて揃っている状態であるため、それぞれの機能ごとにひたすら作業(プログラミング)を進めていきます。開発作業からテストまでは、プログラマーが作業することになります。
リリース(導入)
完成したシステムを顧客や利用者に提供し、実際の運用に移行します。
リリースの仕方を一斉移行にするのか、順次移行にするのか、旧システムがあればデータの移行をするなど考慮が必要なものがあります。
保守・運用
システムが稼働し続けるように、定期的なメンテナンスやバグ修正、必要な場合の機能追加などを行います。システムのライフサイクル全般を管理します。
開発のモデル
ウォーターフォールモデル
ウォーターフォールモデルでは、この一つひとつの工程を順番に進めていきます。段階ごとに開発を完了させるので前の工程に後戻りはできません。より確実に開発を進めるために、工程ごとにレビュー(成果物の確認)を行うのが特徴です。しかし、要件定義が甘く「開発したかった成果と全く異なっていた」ということも起こり得ます。
ウォーターフォールモデルの良さは、プロジェクト全体の計画が立てやすいことです。人員や予算など想定がしやすいため、大規模案件に向いています。また、進捗管理がしやすいことも特徴です。