このページでは,基本情報技術者試験をはじめとする情報処理技術者試験で必須となる,ソフトウェア設計手法についてシンプルにまとめています。構造化プログラミング,プロセス中心アプローチ(POA),データ中心アプローチ(DOA),オブジェクト指向アプローチについて,それぞれの考え方と特徴を整理します。まずは全体像を押さえ,設計手法の違いを理解していきましょう。
ソフトウェア設計手法とは(全体の位置づけ)
構造化プログラミングとは(制御構造とモジュール化)
構造化プログラミングとは,プログラムを段階的に分割してモジュール化し,各モジュールを順接,反復,分岐の三つの制御構造を用いて記述することをいいます。
※ goto文を排除することで,プログラムの制御構造をシンプルにする
プロセス中心アプローチ(POA;Process Oriented Approach)とは(機能分解中心設計)
プロセス中心アプローチは,業務プロセス(機能)に着目したアプローチです。システムを段階的に詳細化(分割)していきます。
※ 最終的には,モジュールに分割する
※ DFD(Data Flow Diagram)や状態遷移図を用いる。DFDの詳細は「ソフトウェア要件定義・ソフトウェア方式設計・ソフトウェア詳細設計の基礎まとめ(DFD(Data Flow Diagram)とは)」を,状態遷移図の詳細は「ソフトウェア要件定義・ソフトウェア方式設計・ソフトウェア詳細設計の基礎まとめ(状態遷移図とは)」を参照
データ中心アプローチ(DOA;Data Oriented Approach)とは(データ構造中心設計)
データ中心アプローチは,データ構造に着目したアプローチです。個々のシステムを,データベースを中心に設計します。
※ 業務内容に変更があった場合でも,データの種類や構造を変更することはあまりないため,データベースはそのままでプログラムのみを修正するという方法がとれる
※ E-R図を用いる。詳細は「E-R図の基礎まとめ」を参照
オブジェクト指向アプローチとは(データと処理を一体化)
オブジェクトとは,データ(属性)と,データを操作する手続き(メソッド)を1つのまとまりとして定義したもので,オブジェクト指向アプローチでは,このオブジェクトを組み合わせてシステムを設計します。
※ UML(Unified Modeling Language)を用いる
※ オブジェクト指向アプローチの詳細は,「オブジェクト指向設計の基礎まとめ」を参照
まとめ
今回は,ソフトウェア設計手法について,シンプルにまとめてみました。それぞれの特徴と違いを押さえましょう。
理解が進んだら,過去問題等にもチャレンジしてみてください。


