システム開発プロセス -情報処理シンプルまとめ

システム開発プロセスに関するブログのアイキャッチ画像 システム開発技術

 基本情報技術者試験など情報処理技術者試験を受験する方にとっては必須の,システム開発プロセスについてシンプルにまとめています。システムのライフサイクル,共通フレーム2013(プロセス体系,テクニカルプロセス,システム開発の流れ(V字モデル))と,テクニカルプロセスの6つのシステム開発作業の概要について説明します。ここで全体像を掴んで,各内容に進むと理解が深まると思います。

システムのライフサイクル

 システムのライフサイクルは,一般的には次のようになります。

システムライフサイクルに関する説明画像

共通フレーム2013

 共通フレーム2013は,システムやソフトウェアの構想から,開発,運用,保守,廃棄に至るまでのライフサイクル全般にわたって必要な個々の作業内容や用語の意味などを示したものです。システムの発注者と受注者の間で解釈の違いが生じないよう「共通の物差し」として示されています。

共通フレーム2013のプロセス体系

 共通フレーム2013のプロセス体系は,次のようになっています。

共通フレーム2013のプロセス体系に関する説明画像

テクニカルプロセス

 テクニカルプロセスでは,システム開発作業を6つのプロセスで示しています。

企画プロセスシステム構想の立案,システム化計画の立案を行う
要件定義プロセスシステムの利用者や利害関係者が必要とするサービスを提供できるシステムに対する要件を定義する
システム開発プロセス要件定義で明確にされた要件を実現するシステムを作り出す
ソフトウェア実装プロセスシステムを構成する各ソフトウェアを作り出す
ハードウェア実装プロセスシステムを構成する各ハードウェアを作り出す
保守プロセス作り出したシステムやソフトウェアに対する支援を行う

システム開発の流れ

 システム開発の流れは,共通フレーム2013では,次のように規定されています。

※ V字モデル…システム開発の流れを表した図。V字型をしていることから,このように呼ばれる

V字モデルに関する説明画像

※ 超上流プロセスについては,「」を参照

※ 以前は,システムとソフトウェアが明確に分かれておらず,要求分析→外部設計→内部設計→プログラミング→テストという流れだった

事業企業経営のこと
業務日々継続して行う仕事のこと。販売業務,生産業務など
システム情報を処理するための仕組み。ハードウェア,ソフトウェア,その他の設備,人による活動などから構成される
ソフトウェアプログラムやデータの組み合わせで,何かしらの機能を実行するもの

システム要件定義・システム方式設計

 システム要件定義では,要件定義で明確にされた要件を実現するため,システムに求められる機能や性能などを定義します。

 システム方式設計では,システムの最上位レベルでの方式を確立します。

※ 詳細は,「システム要件定義・システム方式設計 -情報処理シンプルまとめ」を参照

ソフトウェア要件定義(外部設計)・ソフトウェア方式設計(内部設計)・ソフトウェア詳細設計

 ソフトウェア要件定義では,システムを構成する各ソフトウェアに求められる機能などを定義します。ソフトウェア要件の確立では,業務モデルの作成(DFDや状態遷移図などを使用),画面・帳票設計,ヒューマンインタフェースの設計,コード設計,論理設計,ソフトウェア適格性要件の作成などを行います。ソフトウェア要件の評価及びレビューも行います。

 ソフトウェア方式設計では,ソフトウェア要件を実現するために,ソフトウェアをプログラム(ソフトウェアコンポーネント)に分割し,各プログラムに必要な機能やプログラム間の関係などを明確にします。機能分割と階層構造化,物理データ設計,入出力詳細設計,ソフトウェア結合テストのためのテスト要件の定義などを行います。ソフトウェア方式設計の評価及びレビューも行います。

 ソフトウェア詳細設計では,各プログラム(ソフトウェアコンポーネント)をモジュール(ソフトウェアユニット)にまで分割して,より詳細化します。ソフトウェアコンポーネントの詳細設計,ソフトウェアインタフェースの詳細設計,ソフトウェアユニットテストのためのテスト要件の定義などを行います。ソフトウェア詳細設計及び要求事項の評価とレビューも行います。

※ 詳細は,「ソフトウェア要件定義・ソフトウェア方式設計・ソフトウェア詳細設計 -情報処理シンプルまとめ」を参照

ソフトウェア要件定義・ソフトウェア方式設計・ソフトウェア詳細設計 -情報処理シンプルまとめ
基本情報技術者試験など情報処理技術者試験を受験する方にとっては必須の,ソフトウェア要件定義・ソフトウェア方式設計・ソフトウェア詳細設計についてシンプルにまとめています。ソフトウェア要件定義(外部設計)では,ソフトウェア要件の確立(業務モデルの作成(DFD,状態遷移図,状態遷移表),画面・帳票設計(GUIの部品),ヒューマンインタフェース(アクセシビリティ,ユーザービリティ(使用性)),コード設計(コードに要求される機能(識別機能,分類機能,配列機能,チェック機能),主なコード体系(順番コード(連番コード,シーケンスコード),区分コード,けた別コード,表意コード(ニーモニックコード),コード設計の留意点),チェック方法(チェックディジット,フォーマットチェック,ニューメリックチェック,リミットチェック,レンジチェック,重複チェック,照合チェック,シーケンスチェック,論理チェック)),論理設計,ソフトウェア適格性要件),ソフトウェア要件の評価及びレビューを,ソフトウェア方式設計(内部設計)では,機能分割と階層構造化,物理データ設計,入出力詳細設計(画面設計,帳票設計),ソフトウェア結合テストのためのテスト要件の定義,ソフトウェア方式設計の評価及びレビューを,ソフトウェア詳細設計では,ソフトウェアコンポーネントの詳細設計,ソフトウェアインタフェースの詳細設計(モジュール分割(STS分割,TR(トランザクション)分割,共通機能分割,ジャクソン法,ワーニエ法),モジュールの独立性の評価(モジュール強度(機能的強度,情報的強度,連絡的強度,手順的強度,時間的強度,論理的強度,暗号的強度),モジュール結合度(データ結合,スタンプ結合,制御結合,外部結合,共通結合,内容結合))),ソフトウェアユニットテストのためのテスト要件の定義,ソフトウェア詳細設計及び要求事項の評価とレビューについて説明します。たくさんありますので,繰り返しじっくり読んでみてください。

ソフトウェア構築・テスト

 ソフトウェア構築では,プログラミング(ソフトウェアユニットの作成)や,単体テスト(ソフトウェアユニットテスト)などを行います。ソフトウェアコードとテスト結果の評価及びレビューも行います。

 テストでは,システム要件定義からソフトウェア構築へと詳細化してきた順とは逆の順にテストを行います。各テストの評価及びレビューも行います。

※ 詳細は,「ソフトウェア構築・テスト -情報処理シンプルまとめ」を参照

システムの導入・受入れ支援・保守・廃棄

 システムの導入,受入れ支援,保守,廃棄については,「システムの導入,受入れ支援,保守,廃棄 -情報処理シンプルまとめ」を参照してください。

まとめ

 今回は,システム開発プロセスついて,シンプルにまとめてみました。全体像が掴めたら,各内容に進んでみてください。