システム開発

第5章 システム開発

システム開発

システム開発は、開発規模が拡大するにつれて開発期間が長く設けられるようになり、複数の工程に分けて開発管理をするのが一般的になった。システム開発の全体像を理解し、要件定義、設計、プログラミング、テスト、UAT、ソフトウェア保守のプロセスの流れを知ろう。

システム開発

 ベンダが行う、システム開発について下図の6つのプロセスを理解しよう。

  1. 要件定義
  2. システム設計
  3. プログラミング
  4. テスト
  5. ソフトウェア受入テスト
  6. ソフトウェア保守
     

6つのプロセスでシステム開発を進めることで、抜け漏れなく理想とする設計通りのシステムを作り上げられるとされる。


システム開発前の流れ

① 情報提供依頼書の提示

 最新のシステム開発における全般情報の提示を発注側がベンダーに依頼する。その際に、情報提供依頼書を文書として提示することが多い。

② 提案依頼書の提示

 システム開発における予算や期間などの諸条件を記載した提案依頼書をシステムベンダーに提出する。

③ 提案書の受け取り

 ベンダ側は発注側に、提案書を提示する。

④見積書の受け取り

 提案の内容を発注側が承認したら、システムの運用と保守にかかるコストをベンダ側が見積書にまとめて発注側に提示する。

⑤ システムベンダの選定

 発注側は、提案と見積もりの両方の内容を確認してから、正式に発注するシステムベンダを決定する。


要件定義

 要件定義とは、システム開発の初期に行われる工程の1つで、発注者側の利用者視点の要件をもとに、ベンダーが開発側の視点でシステム開発の詳細を定義していく。開発するシステムに対するクライアントからの要望をヒアリングして、必要とする機能や性能、システムの構成要素やUI/UXを明確にすることが求められる。

 ユーザインタフェースなどの機能を明らかにすることを機能要件定義といい、システムの処理性能や信頼性などの機能以外を明らかにすることを非機能要件定義という。

機能要件:「出力するデータは〇〇」「決算を記録する」「ボタンは青」など、機能に関する要件のこと。

非機能要件:「データの処理は1時間以内」「セキュリティ信頼度を高めるために暗号化する」など、機能以外の要件のこと。


システム設計

 要件定義工程では、ステークホルダのニーズ、要望、課題を分析し、システムに求められるものを明確にする。開発システムの細かい機能/非機能要件について、ステークホルダから同意してもらう必要がある。

 要件定義工程で定義した項目をもとに、システム全体の設計を行うのがシステム設計である。各要件をシステム開発工程で実現可能なのか、またはリスクを考慮して予備案を作成したり、考慮するべきことが多いのがシステム設計工程である。

 円滑にシステム設計を実現するために、多角的な視点で取り組む必要がある。


プログラミング

 システム設計工程で作成された設計書をもとにプログラミングを行い、ソフトウェアを作成する。プログラミングとは、コンピュータに命令を処理させるプログラムを記述すること。記述する作業をコーディングという。

ペアプログラミング:開発手法の1つ。2人1組で、1人がコーディング、1人がコードチェックを行い、プログラミングの品質を向上させる。


テスト

 記述したプログラムが正常に動作するのかを確認するための工程をテスト工程という。検証段階の工程のため、テストで開発したソフトウェアに異常が検知された場合は、プログラミング工程を再度見直す必要がある。

 設計の正しさを憲章するために、テスト工程は段階的に実施される。

  1. 単体テスト
  2. 結合テスト
  3. システムテスト


ソフトウェア受入テスト

 受入テスト(うけいれてすと)とは、開発システムを発注側に試験的に導入してもらい、実装検証をするための工程である。一般的には、発注元に使い方を説明するのが基本だが、発注側の意向によっては開発側が実施することもある。

 また、受入テストは運用テストをかねる場合がある。運用テストも併行して実施する場合は、トラブルを検知した時に迅速に対応できるように体制を整える必要がある。


ソフトウェア運用・保守

 システムを運用する際は、運用するための支援者が必要な場合が多い。例えば、モバイルアプリケーションを開発しても、アプリ自体にバグや障害が発生する可能性があるため、アプリを監視/管理するためのリソースが必要になる。

 利用者に新たなニーズが生まれた時や、法律が改正された場合などは、利用者に向けて再開発作業が必要な場合もある。




完了して続く