更新日:業務で利用するシステムは、必要な機能が正しく動作することはもちろん、利用者(システム利用部門)にとって使いやすいことが求められます。システムを開発する部門は、システムを利用する様々な部門と連携して、要求を調査・分析し、開発するシステムに反映していくことが重要です。システム開発は必ずしも自社内で行わなければならないというわけではなく、システム開発を専門とする会社に外部委託することもできます。システム開発を他社に委託する際の代表的な契約方法として「請負契約」があります。システムを開発する一般的な手順は次の通りです。「要件定義」とは、システムやソフトウェアに要求される機能、性能、内容を明確化するもので、「システム要件定義」や「ソフトウェア要件定義」があります。利用者(システム利用部門)の要望を調査・分析し、技術的に実現可能かどうかを判断し、その後、要望の実現に向けた要件を細かく定義し、「要件定義書」として整理します。利用者の要望を調査する際は、「ヒアリング」というインタビューなどの形式で要件を聞き出す方法が有効です。要件定義をスムーズにもれなく行うために、あらかじめヒアリングすべき項目を明確にしておき、計画を立てて実施します。ヒアリングした結果は、後から確認できるよう議事録などに残しておくことが重要です。要件定義は、システム設計の第一歩となります。システム要件定義の内容をもとにシステム設計のプロセスに進み、そこでソフトウェアに関する要件定義を行います。良いシステムを開発するためには、システムを利用する様々な部門と協力しながら、各要件を定義していく必要があります。「システム要件定義」では、システム化するにあたって、どのような機能を必要としているのかを明確に規定します。一般的に、システムの信頼性(稼働時間や稼働条件など)や安全性(障害発生時の対処方法や保守など)に関する要件などを規定します。システム運用にあたって使用するハードウェアの性能やシステムの利用者に対する教育の条件なども合わせて規定します。システム要件定義に挙げた内容がコストに見合うかどうか、限られた予算の中で最大限の効果を発揮するために、優先順位をつけることも必要です。要件定義に基づき、システムを設計します。システムを設計する手順は、次の通りです。「システム方式設計」では、要件定義の内容をもとに、システムの構成を設計します。要件定義所にあるすべてのシステム要件を次のように分割します。ハードウェアで実現する内容(ハードウェア構成)ソフトウェアで実現する内容(ソフトウェア構成)利用者が主導で実現する内容(手作業)要件をこのように分割することで、利用者の作業範囲が明確になり、リスクを考慮した選択肢の提案や、効率的な運用、保守などを踏まえたシステム構成の設計が可能になります。設計した内容は、「システム方式設計書」として整理します。「ソフトウェア要件定義」では、システム方式設計でソフトウェアで実現する内容の利用者から見える部分の要件を定義します。一般的に、システムのインターフェースや操作性を設計したり、データベースでのデータを定義したりします。ここでの内容は、「ソフトウェア要件定義書」として整理します。「ヒューマンインタフェース」とは、人間とコンピュータとの接点にあたる部分のことです。「ユーザインタフェース」とも呼ばれます。ヒューマンインタフェースの設計では、システムの入出力画面や帳票などの印刷イメージを設計します。●データやコードの設計データの設計では、リレーショナルデータベースを利用するために、テーブルデータを設計します。業務で利用するデータ項目をすべて抽出して、正規化によって重複するデータを除きます。データベースでは様々なコードを扱います。これらのコードは、規則性が必要であるため、コードの設計では、コード化する項目とルールを決定します。「ソフトウェア方式設計」では、システムに必要な機能を「どのように実現するのか」というシステム内部の設計を行います。システム方式設計やソフトウェア要件定義で決めた機能を実現するために、プログラミングを行うという観点から設計します。ここで設計した内容は「ソフトウェア方式設計書」として整理します。システムの内部機能を設計するため、システム開発部門が行い、利用者は設計には関与しません。更新日:10月12日ソフトウェア方式設計に基づいて、プログラム内の構造の設計をします。「ソフトウェア詳細設計」では、プログラム内の機能詳細を定義したり、データベースへのアクセス方法(SQL文)など、プログラム構造の細かい処理単位を設計したりします。ここで設計した内容は「ソフトウェア詳細設計書」として整理します。その後、この設計書にもとづいてプログラミングが実施されます。システムの内部機能を設計するため、システム開発部門が行い、利用者(システム利用部門)は設計には関与しません。「プログラミング」とは、プログラム言語の規則や文法に則ってアルゴリズム(問題解決のための処理手順)を記述し、動作テストまでを行うことです。システム設計で設計した内容をもとに、個々のプログラムを作成します。設計したとおりに作成していくことが重要です。作成したモジュールがソフトウェア詳細設計書通りに正常に動作するかを確認するため、「単体テスト(モジュールテスト)」を実施します。単体テストは、一つ一つのモジュールが決められた仕様通りに機能するかどうかをチェックします。一般的に、ソフトウェア詳細設計(プログラム設計)の担当者、プログラムの開発担当者が主体となってテストを実施します。単体テストでは、主に「ホワイトボックステスト」が使用されます。プログラムは、「コンパイラ」を用いて、コンピュータ上で実行可能なプログラムに変換し、作成したプログラムにバグがないかを確認します。