自社サイトを制作するとき、制作会社に委託することがあります。專門的な知識や技術を用いて質の高いサイトを制作してもらいたいものですが、どのような工程で制作を進めるのか、詳しく理解している担当者は少ないのではないでしょうか。

制作会社の開発工程を理解しておくと、工程の中で重要な部分や、開発に必要な情報がみえてきます。それに応じて発注側が事前に準備しておくことで、開発が円滑に進んだり、リスクを先回りして防いだりすることができるでしょう。

今回は、システム開発の工程をコーポレートサイトの制作の例に当てはめて解説します。

システム開発工程とは

システム開発工程とは、制作会社がシステム開発を進める上での過程をまとめたものです。それぞれの過程に共通の名称があります。

「ウォーターフォールモデル」と「アジャイルモデル」

システム開発の工程にはいくつか種類があります。中でも代表的なものが、「ウォーターフォールモデル」と「アジャイルモデル」です。

ウォーターフォールモデル

ウォーターフォールモデルとは、システム開発の工程を決められた順番に進めていくモデルです。高いところから水を流すように、上流から下流に工程を進めていくことから名前がついています。世界中で活用されており、もっとも主流の開発モデルといえます。

ウォーターフォールモデルは、プログラミングの前に目的(要件定義)や設計に時間をかけるため、その後の業務効率化が図れます。また、工程が明確なので、顧客と意思疎通がしやすいことも特徴です。

アジャイルモデル

アジャイルモデルは、システム開発においてスピードを優先して進めていくモデルです。アジャイルは「素早い」という意味を持ちます。

ウォーターフォールモデルが決められた工程に忠実に進めていくのに対して、アジャイルモデルでは、システムの実装とテストを繰り返し、修正しながら少しずつ進めていくのが特徴です。

アジャイルモデルでは、途中で不具合が発生しても、開発工程で戻る工数を最小限に留めることができます。顧客による突然の仕様変更にも柔軟に対応できます。

システム開発工程(ウォーターフォール型)

今回は、コーポレートサイト制作を例に、多くの企業で採用されている主流のウォーターフォールモデルの開発工程を解説します。

全体の開発工程は以下の通りです。

【1】要件定義(要求定義)
【2】外部設計
【3】内部設計
【4】プログラミング
【5】単体テスト
【6】結合テスト
【7】システム(総合)テスト
【8】運用テスト
【9】システム移行(リリース)
【10】運用・保守

【1】要件定義(要求定義)

要件定義では、顧客の目的や要望、システムの要件を定義づけます。

コーポレートサイトであれば、サイトを作る目的やターゲットを明確にします。その目的やターゲットに応じて、サイトで搭載したい機能を考え、どこまで実装するかを打ち合わせます。

コンテンツの種類、画面表示や操作方法なども具体的に考えていきます。サイトの見た目だけでなく、運用方法やセキュリティなど安全性についても仕様を検討します。

制作会社と顧客で打ち合わせた内容は「要件定義書」という文書にまとめます。ウォーターフォールモデルの場合、工程を逆戻りすることはないため、ここでしっかり認識を合わせておく必要があります。

【2】外部設計

外部設計では、サイトを具体的にどのようなシステムで実装していくか設計します。ホームページレイアウト、画面遷移の方法やコンテンツの配置を設計します。データベースをどこで管理するかというサーバー環境、セキュリティの仕組みも決めます。

開発工程におけるスケジュールや費用も、ここで制作会社が提案し、顧客をすり合わせます。

【3】内部設計

内部設計では、システムの内部の動作やデータ処理などを設計します。内部設計はプログラミングに必要なものなので、システム開発向けに作られ、顧客に確認をとることはほとんどありません。

外部設計で決めたシステムをどのように実現するかを設計していきます。ここでは、「機能仕様書」「データフロー図」「データベース物理設計書」などを作成します。

【4】プログラミング

プログラミングでは、内部設計をもとに「プログラミング設計」と「プログラミング」を行います。

プログラム設計では、プログラミングにおけるルールを決めます。プログラミングの前段階として、プログラミングの動作や処理方法を設計していきます。プログラミング後に行うプログラムごとの単体テストの仕様書も作成します。

その後、設計をもとにプログラミングを行います。

【5】単体テスト

単体テストでは、作成したプログラムの動作テストを行います。プログラム設計のときに作成した単体テストの仕様書をもとにテストします。

不備があった場合、プログラマーが修正します。

【6】結合テスト

結合テストでは、単体テストが終わったプログラム同士を結合し、連携がきちんとできているかというテストを行います。

コーポレートサイトの場合、画面遷移やデータの受け渡しがきちんとできているかテストします。実際の利用場面を想定し、当初の予定どおり動作するかを確認します。

【7】システム(総合)テスト

システム(総合)テストでは、システムの総合的な動作テストを行います。システム開発側の最後のテストです。

Webブラウザなど、サイトのユーザー環境と同じ環境に合わせてテストします。

【8】運用テスト

運用テストでは、顧客がテストを行います

【1】要件定義のときに打ち合わせた要件が満たされているか、顧客側に確認してもらいます。実際に出来上がったサイトの操作感(UI)も確認してもらいます。

【9】システム移行(リリース)

全てのテストが終わると、本番環境でリリースします。

【10】運用・保守

制作会社は、リリース後もシステムの運用や保守をサポートします。不具合があった場合の修正や、新しいコンテンツの開発、追加などを行います。