「システム開発技術」の解説
ソフトウェア開発のプロセス
業務プロセスに使うシステムを開発するには、一般的に「要件定義」から始まり、「システム設計」、「プログラミング」、「テスト」、「ソフトウェア受入れ」、「ソフトウェア保守」、「ソフトウェアの見積もり」といったプロセスを通過します。
要件定義
システム開発における「要件定義」とは、システムやソフトウェアに求められる機能や性能、内容などを明確化するためのものです。システムを利用する部門・部署の要望を調査、分析し、技術的な実現の可否などを見定めていきます。安定して稼働させるためのハードウェア的なスペックを規定する「システム要件定義」、業務に必要なソフトウェアの内容を具体化する「ソフトウェア要件定義」などがあります。
システム設計
「要件定義」に基づいたシステムを設計していきます。「システム方式設計」、「ソフトウェア方式設計」、「ソフトウェア詳細設計」といった手順があります。
プログラミング
システム設計の内容を基にプログラムを作成していきます。作成した個々のモジュール(プログラムを構成する最小単位)が「プログラム設計書」の通りに作動するかどうかを確かめるために、「単体テスト(モジュールテスト)」を行います。この単体テストで利用される手法や手段として、「ホワイトボックステスト」や「コンパイラ」などがあります。
テスト
単体テストが済んだモジュールを組み合わせ、結合したプログラムが要求通りに動作するかどうかを検証します。テストは、日程や参加者、評価基準などを設定する「テスト計画の作成」、設計仕様に基づいたテストデータと予測結果への対応を設定する「テスト仕様の設計」、テストに使用する機器といったテスト環境を設定する「テスト環境の設定」、実際にテストを行う「テストの実施」、テスト結果を分析し、問題点などを判断する「テスト結果の評価」といった手順があります。
テストの技法には以下のようなものがあります。
- 結合テスト
最上位のモジュールから下へ順にテストを行う「トップダウンテスト」や、最下位のモジュールから上へ順にテストを行う「ボトムアップテスト」、トップダウンテストとボトムアップテストを組み合わせた「サンドイッチテスト」、各モジュールのテストが終わったあとに全モジュールの結合の一斉テストを行う「ビックバンテスト」などがあります。
- 運用テスト
実際の稼働環境で運用して検証を行うテストです。実際の業務で使ものと近しいテストデータを入力し、要求通りに機能するかをテストします。
テストの進捗状況については、このような「ゴンペルツ曲線」などで確認を行います。
ソフトウェア受入れ
テストが完了し、各機能が要求通りに稼働することを確認したら、システムの利用者(ユーザー)への引き渡しを行います。その際、ユーザーは要求通りの機能が働いているかシステムをテストします。これを「ユーザー承認テスト」と呼びます。ユーザー承認テストが終わり、問題がなければ、実際に利用者の環境に対するシステムを構築します。
その際、システムの操作手順や利用の仕方などを記述した「利用者マニュアル」を作成するなどして、実際に利用する部門や部署へシステムの活用を促します。
ソフトウェア保守
システム開発が完了すると、利用者はシステムを運用し始めます。「ソフトウェア保守」では、システムの利用状況や稼働状況を監視し、問題点があれば修正を行います。システムが安定稼働し始めた場合でも、情報技術の進展や経営戦略の変化に対応させるために、適時プログラムの修正や変更を行うこともあります。
ソフトウェアの見積り
システムの開発規模や開発費用、開発環境などに基づき、総合的な開発費用を「見積り」を作成します。システム開発の見積りにはいくつかの方法が知られています。