1:共通フレーム
共通フレームとは、ソフトウェアの開発者と発注者の間で、ソフトウェア開発の段取りに対する共通の概念を作ることを目的としています。
共通フレームに定められている代表的なプロセスは
①企画プロセス:経営・事業の目的、目標を達成するというか難点から、経営上のニーズシステム化の方針、システムを実現するための実施計画をまとめる。
②要件定義プロセス:必要とする機能、処理性能(レスポンスタイムやスループット)、使いやすさ、セキュリティレベル、信頼性(稼働率や故障率)などを明確にし、文書としてまとめる。企画プロセスで定められた内容に沿って、要件を定義する。
③開発プロセス:要件を詳細下して設計を進め、ソフトウェアを作成しテストする。
④運用プロセス:システムを導入し、ユーザ教育などを行いながら、継続的に運用する。
⑤保守プロセス:不具合や経営・事業環境の変化に対応する。
⑥管理プロセス:開発、運用、保守などの各プロセスの管理、支援を行う。
2:共通フレームの開発プロセスにおける活動
共通フレームでは、開発プロセスを上記の代表的プロセスのような一連の活動(アクティビィ)に細分化しています。大きく分けると、システム全体を対象とした作業と、ソフトウェアを対象とした作業に分かれます。
設計段階では、システム全体から個々のプログラムコードへと、大きな単位から小さな単位へと作業を進めます。そして、最終的にプログラムコード位を作成し完成させます。その後、検証(テスト)段階に進むと、小さな単位から大きな単位へと作業を進めます。この流れはV字型にまとめられます。
「開発プロセスの活動内容」
①ソフトウェア要件定義:システムの機能要件(必要な機能)と非機能要件(性能、信頼性、セキュリティなど)を具体的に定義する。
②システム方式設計:定義したシステム要件を実現できるようにシステムの構成を大枠で設計する。ハードウェア構成、ソフトウェア構成、ネットワーク構成、サブシステム間のつながりなどシステムの全体像を具体的に設計する。
③ソフトウェア要件定義:DFDやER図などを用いてモデル化し、ソフトウェアに求められる機能要件、非機能要件を定義する。
④ソフトウェア方式設計:定義したソフトウェア要件を実現できるように、ソフトウェアの外部設計、内部設計を行う。
⑤ソフトウェア詳細設計:モジュール(部品単位でのソフトウェア)の設計を行う。
⑥ソフトウェア結合:ソフトウェア詳細設計、ソフトウェア方式設計で定義した内容が正しく動作するかを検証する。
⑦ソフトウェア適格性確認テスト:ソフトウェア要件定義で定めた要件を満たしているのかを検証する。
⑧システム結合:システム方式設計で定めた内容が正しく動作するのかを検証する。
⑨システム適格性確認テスト:システム要件定義で定めた要件を満たしているかを検証する。
3:ウォータフォールモデル
ウォータフォールモデルは、工程の流れ:基本計画→外部設計→内部設計→プログラム設計(上流工程)→プログラミング→テスト→運用・保守(下流工程)逃れでシステムを開発します。前工程で決めた内容を踏まえて、次工程を進めます。ウォータフォールモデルでは、工程の後戻りを考慮していません。したがって、前工程に溥儀があり、工程を後戻りする(前工程をやり直す)と、非常に大きなコストがかかることになります。一方、後戻りをしないということは、先の見通しが効くということ言うことでもあります。ウォータフォールモデルでは、いつ開発が終わるのかが見通しやすく、コストや開発期間の見積もりが容易になります。
①基本計画:基本計画では、システムに対するユーザ要求の分析(要求分析)を行い、機能や性能に関しての仕様を定義します。定義された仕様は、「要求仕様書」にまとめて文書化します。
②外部設計: システムやソフトウェアをユーザ側の視点で捉えて設計を行います。どのような機能が必要かといったことを洗い出し、おおまかな機能単位にシステムを分けます。これをサブシステム化すると言います。また、システムで扱うデータを定義したり、画面やコードを設計します。プログラムで具体的にどう実現するのかと言う細部については、この段階では考慮しません。設計結果は、「外部設計仕様書」にまとめて、文書化します。
「外部設計の内容」
1:論理データ設計:システムに記録するデータ要素を洗い出し、データ型(数値化文字化など)や桁数を決める。ファイルに記録する内容を決めて、ファイル仕様書を作成する。
2:入出力設計:画面や帳票のレイアウトを作成する。また、各画面の遷移について画面フローを作成する。
3:コード設計:商品コード、顧客コードなどのコードの桁数、フォーマットを設計する。
③内部設計
外部設計で定義した機能(サブシステム)を、プログラムで具体的にどう実現するのかといった観点から設計します。機能分割をして、プログラム単位に詳細化します。設計結果は、「内部設計仕様書」にまとめ、文書化します。