システム開発の工程
システム開発の工程

情報システム開発方法論であり、システムの分析・設計、プログラムの設計、保守といった情報システムのライフサイクル全般を支援します。情報システム開発作業をいくつかの工程に分け、各工程で考えるべきこと、行うべきことを細かく標準化し、作業者が一定の手順に従って作業を進められるよう支援しています。
次の5つの課題を解決するために、「エンジニアリング的アプローチ」で取り組みます。

5つ課題

  1. コミュニケーションギャップの解消
  2. 不確実性への対応
  3. 成果のバラツキ
  4. ライフサイクル全体からの最適化
  5. 継続的な開発プロセス改善

システム開発の工程一覧

  1. システム化構想
  2. システム化要求分析
  3. システム機能設計
  4. 業務運用設計
  5. 移行手順設計
  6. システム運用設計
  7. アーキテクチャ設計
  8. ソフトウェア実装設計
  9. ソフトウェア詳細設計とソフトウェア製造
  10. 結合テスト
  11. システムテスト
  12. ユーザ実証テスト
  13. 移行
  14. システム運用
  15. システム監査

システム開発の工程説明

1. システム化構想

新情報システムの構想を練り、その実現性を検証して、実行プロジェクトに投資する価値があるか否かについて経営的な視点から判断可能にします。 プロジェクト対象範囲の設定、現行情報システムの調査・分析を行い、問題把握と課題解決の実現性を検証します。また、効果の予測、開発費用の見積もりにもとづいて情報システム開発プロジェクト全体の計画を立案します。

2. システム化要求分析

ユーザの情報システムへの要求を明らかにするために、問題解決を図った新しい業務の全体像を具体化します。 個々の業務の実行単位(サブシステム)を明らかにし、その業務遂行上必要となるインプット、アウトプット及びデータ要件を明らかにします。また、さらに構想段階で抽出した非機能要件の詳細化を行います。業務の遂行及び非機能要件を実現するうえでの技術的な課題の洗い出しやインフラへの影響を含めた実装の実現性についても先行的に見通します。(最終的にはアーキテクチャ設計で確定します。)

3. システム機能設計

業務遂行に必要と必要される全ての手作業とコンピュータ機能を抽出します。 業務実行単位ごとに、人の作業やそれを効率的に支援するコンピュータの果たすべき役割、機能を明らかにします。さらにシステム運用や保守の実現性を検証しサービスレベルを決定します。(アーキテクチャ設計やシステム運用設計につながります。) 情報システムのユーザに対して保証する、性能や応答時間、関連する支援活動などのサービスの品質水準です。例えば、障害復旧時間やレスポンスタイムなどは、一定時間内に復旧あるいは対応がユーザに提供されるサービスです。もちろんサービスレベルが高い方が良く、トラブル発生時すぐに解決できますが、コストは急激に増加します。

4. 業務運用設計

情報システム開発と平行して、新しい利用部門業務の詳細な手続きを明らかにしておきます。この過程で業務遂行に必要なユーザインタフェースを確定して、情報システム利用のための詳細手続きを明らかにし、業務マニュアルを作成します。

5. 移行手順設計

移行の詳細な手続きを明らかにします。移行作業の漏れ、重複、確認不足等を防止するために、移行の目的、適用範囲、役割と責任、手続き、問題点の管理方法及び解決手順、変更管理手順、移行作業の評価手順等を明らかにした上でマニュアル化し、ユーザ、システム運用者、開発担当者の移行担当者や関係者で事前確認します。

6. システム運用設計

非機能要件、サービスレベルを満たした運用方式、運用体制、運用手順を設計し、マニュアルを作成します。社内的な規定や法的な遵守事項があれば、それに沿った手順を制定します。 システム開発において実現すべきはユーザが要求する機能だけでなく、それら機能が必要なときに使えるように維持できる機能も含まれるため、システム設計の段階から運用を考慮した設計を行うことが重要です。

7. アーキテクチャ設計

コンピュータ機能を、非機能要件を満たしながら利用可能な機構(既存資産を含む)上にムダなく効率的に実装するために、指針となる構造上の前提事項及び実装方式や設計開発ルールを定めます。 インフラ(基盤)や実装技術全般を意味しています。

8. ソフトウェア実装設計

「システム機能設計」で設計したコンピュータ機能および「システム運用設計」で設計したシステム運用支援機能を「アーキテクチャ設計」で設計したアーキテクチャにもとづいて実装設計を行います。 コンピュータ機能を実現するために、アーキテクチャ設計で選択された設計指針にもとづいて開発単位であるソフトウェアコンポーネントに分割し、実装環境に合わせたソフトウェアコンポーネント、インタフェース、データベースの仕様を設計します。

9. ソフトウェア詳細設計とソフトウェア製造

「ソフトウェア実装設計」で設計したソフトウェアコンポーネント、インタフェース、データベースの仕様をもとに、コーディングできるレベルまで詳細設計を行い、ソフトウェアを製造します。 製造とは、コーディング作業及び単体テストのことを指しています。 単体テストは、テストデータを作成し、テスト計画に従って、単体テストを実施し、検証を行います。

10. 結合テスト

実装上の構造に従って、統合方式及び統合のスケジュールを策定して実施します。コンピュータ機能の検証(機能テスト)も行います。 統合テストを実施する際に用いる方式。ビッグバン方式は、一度に全モジュールを結合する方法。スタブはプログラム間を仲介します。

11. システムテスト

サブシステム単位やサブシステム群単位での機能テストやシステム間インタフェーステスト及び性能テスト、大容量テスト、互換性テストといった非機能要件に焦点をおいたテストを実施します。業務運用手順やシステム運用手順に従ったテストを行います。また、移行手順に従った既存システムとのインタフェースを含めた移行の検証も実施します。

12. ユーザ実証テスト

ユーザ要求通りであるかどうかユーザ自身が妥当性を確認します。 また、ユーザが要求したことが実現したことによって、システム要求分析で明らかにしたあるべき姿が実現し、構想段階で検討された問題が解決することを実証します。 ユーザ実証テストでは、本番業務での運用を想定したオペレーションをするため、開発者がテストを行っていた時には全く気づかなかった致命的な問題や、さらに効率的な利用方法が明らかに成ることがあります。

13. 移行

移行の実施スケジュールの立案、教育、引き継ぎ、移行を実施します。 移行作業には、回線や端末などのハードウェア、データやプログラムなどのソフトウェアの移行だけでなく、既存業務プロセスから新業務プロセスへの移行が含まれます。 データの変換、移行作業の時期や手順など、運用への引継ぎを含めた移行計画を実施し、運用部門に引き継ぐ必要があります。

14. システム運用

実際に情報システムを運用している段階です。 日常の運用を通じて情報システムの修正または改善が必要となり、利用部門からの情報システムに対する修正/改善要求が明らかになります。修正/改善要求の内容に応じて、日常のメンテナンスや新規プロジェクトの設定が行われます。

15. システム監査

情報システム開発、及び運用の結果が当初の計画に沿ったものであったか、また社内規約や法的な遵守事項が守られているか評価します。 利用部門からの要求の達成度、開発計画と実績との差異、開発標準の遵守といった情報システム開発における品質保証の観点からプロジェクトの実績を評価します。