【ソフトウェア開発入門】ソフトウェア開発における開発工程まとめ

ソフトウェア開発では、実際にシステムを開発し、リリースするまでに「開発工程」に沿った開発を実施する必要があります。

今回は、「開発工程」について、名称と工程の概要、インプットとなる成果物、アウトプットとなる成果物について説明していきたいと思います。

一般的な開発工程とインプット、アウトプットについての説明となりますので、実際に担当しているプロジェクトなどとは名称や意味合いが若干異なる可能性がありますので、その点はご注意ください。

プロジェクト固有の開発工程や成果物などがある場合、基本的にはプロジェクトのルールに則って開発を進めていく必要があります。

開発工程とは?

システム開発の工程と作業内容、成果物を定義したものです。

システムは開発したら終わりではなく、実際に運用されながら成長していくものであると考えられており、この「ライフサイクル」は、ソフトウェアライフサイクルプロセス(SLCP)として定義されています。

ソフトウェアライフサイクルプロセス(SLCP)の中で「開発プロセス」に該当するのもが一般的は開発工程を意味します。

今回はその中でもよく耳にする開発工程について説明します。

要件定義

ユーザの要望をヒアリングして実装する機能や性能などを明確にするフェーズです。

業務をシステム化するためにどのような機能を、「誰が」「いつ」「どのように」利用するのかの流れも定義します。(業務フロー)

あまり細かく定義することはありませんが、大雑把すぎても後工程で問題となることがあります。

この工程に必要なインプット

  • 提案書
  • 詳細な開発要望書
  • 既存機能の画面・帳票レイアウト(既存システムが存在する場合)
  • プロジェクト計画書

この工程で作成されるアウトプット

  • 要件定義書
  • プロジェクト計画書

外部設計

要件定義書を元に、ユーザが利用する機能などを設計し、仕様を確定します。

画面レイアウト・画面仕様、帳票レイアウト・帳票仕様、DB仕様、ファイル仕様を確定していきます。

DBやファイル仕様については、内部設計完了後でないと詳細が確定しないため、外部設計工程では作成途中のものとなります。DB設計ではテーブルとリレーション、ファイル設計ではファイルレイアウトくらいにとどめます。

この工程に必要なインプット

  • 要件定義書
  • プロジェクト計画書

この工程で作成されるアウトプット

  • 外部設計書
    • 機能設計書
    • 画面設計書
    • 帳票設計書
    • DB設計書
    • ファイル設計書
  • プロジェクト計画書

内部設計

外部設計書を元に、ユーザが実際に目にすることがない、システム内部のプログラム仕様を設計します。

一般的に外部設計書に記述されている内容と重複しないもの、もしくは外部設計書を詳細化したものを定義していきます。

イベント仕様やテーブル・ファイルの参照・更新についての仕様などを定義します。

DB設計やファイル設計の仕様はこの工程で確定します。

この工程に必要なインプット

  • 外部設計書
  • プロジェクト計画書

この工程で作成されるアウトプット

  • 内部設計書
    • 詳細設計書
    • プログラム構造設計書
  • プロジェクト計画書

製造

外部設計書と内部設計書を元にプログラムを製造します。

必要に応じてフローチャートを作成することもあります。

この工程に必要なインプット

  • 外部設計書
  • 内部設計書
  • プロジェクト計画書

この工程で作成されるアウトプット

  • プログラム
  • フローチャート
  • プロジェクト計画書

単体テスト

外部設計書と内部設計書、要件定義書、プロジェクト計画書を元に単体テスト計画書と単体テスト仕様書を作成し、作成した単体テスト仕様書を元にテストを実施し、その結果を記録します。

単体テスト仕様書は単体テスト計画書に則って作成されます。

原則として、バグが完全になくなるまで、テストと不具合修正を繰り返します。

この工程に必要なインプット

  • プログラム
  • 外部設計書
  • 内部設計書
  • 要件定義書
  • プロジェクト計画書

この工程で作成されるアウトプット

  • 単体テスト済みプログラム
  • 単体テスト計画書
  • 単体テスト仕様書
  • 単体テスト実施報告書
  • 単体テスト実施エビデンス
  • バグ票
  • バグ一覧
  • プロジェクト計画書

結合テスト

外部設計書と内部設計書、要件定義書、プロジェクト計画書を元に結合テスト計画書と結合テスト仕様書を作成し、作成した結合テスト仕様書を元にテストを実施し、その結果を記録します。

結合テスト仕様書は結合テスト計画書に則って作成されます。

結合テストでは機能間の繋がりがあるものの動作を確認していきます。

この工程に必要なインプット

  • 単体テスト済みプログラム
  • 外部設計書
  • 内部設計書
  • 要件定義書
  • プロジェクト計画書

この工程で作成されるアウトプット

  • 結合テスト済みプログラム
  • 結合テスト計画書
  • 結合テスト仕様書
  • 結合テスト実施報告書
  • 結合テスト実施エビデンス
  • バグ票
  • バグ一覧
  • プロジェクト計画書

総合テスト

外部設計書と内部設計書、要件定義書、プロジェクト計画書を元に総合テスト計画書と総合テスト仕様書を作成し、作成した総合テスト仕様書を元にテストを実施し、その結果を記録します。

総合テスト仕様書は総合テスト計画書に則って作成されます。

総合テストでは実際の業務や時間の流れに沿って、多岐にわたって動作を検証します。

パフォーマンス(性能)テストや負荷テスト、障害テストもこの工程で実施します。

この工程に必要なインプット

  • 結合テスト済みプログラム
  • 外部設計書
  • 内部設計書
  • 要件定義書
  • プロジェクト計画書

この工程で作成されるアウトプット

  • 総合テスト済みプログラム
  • 総合テスト計画書
  • 総合テスト仕様書
  • 総合テスト実施報告書
  • 総合テスト実施エビデンス
  • バグ票
  • バグ一覧
  • プロジェクト計画書

運用テスト

ユーザ自身が、実際の業務や時間の流れに沿って、多岐にわたって動作を検証します。

この工程に必要なインプット

  • 総合テスト済みプログラム
  • テストシナリオ(ユーザにて作成)
  • テストデータ(ユーザにて作成)
  • プロジェクト計画書

この工程で作成されるアウトプット

  • 利用者受入テスト結果報告書
  • 利用者受入テスト結果
  • プロジェクト計画書

システム移行

実際の稼働環境(本番環境)へシステムを移行します。

ある時点で旧システムから新システムへ一斉へ切り替えを行う「一斉移行」やシステムの機能単位ごとに新システムへ切り替えを行う「順次移行」などの方法があります。

この工程に必要なインプット

  • プログラム一式
  • 調整前のマスタデータ
  • 現行システムのデータ
  • 移行プログラム
  • プロジェクト計画書

この工程で作成されるアウトプット

  • 調整後のマスタデータ
  • 移行プログラムで生成されたデータ群
  • プロジェクト計画書

運用・保守

「運用」はマシンの起動や停止、現行のシステムを日々動かす作業です。

稼働状況のモニタリングやCPUやメモリの利用状況などのシステムリソースのモニタリングも実施します。

「保守」とはシステムを改善・変更する作業です。主にシステム障害や改修要望に伴うプログラムやデータの修正を行います。

この工程に必要なインプット

  • プログラム一式
  • 本番稼働用のデータ

最後に

いかがでしたでしょうか?ソフトウェア開発には様々な開発工程があり、工程ごとに役割や作成する成果物が異なります。

実際にプロジェクトに参画した際には、現在の開発工程やその後の開発工程の流れなどを意識しながら開発を行ってみてはいかがでしょう。

後工程や前工程を意識して、開発工程における作業を実施することで、「なぜその成果物が必要なのか」「どのインプットを元にアウトプットを作成すれば良いのか」といった疑問についての理解も深まると思います。