【目標】
・ソフトウェア方式設計に必要な手法を理解し,担当する事項に適用する。
・ソフトウェア詳細設計に必要な手法を修得し,適用する。
- ソフトウェア方式設計のタスク
ソフトウェア方式設計では,ソフトウェア構造とコンポーネントの方式設計,外部及びコンポーネント間のインタフェースの方式設計,データベースの最上位レベルの設計,利用者文書(暫定版)の作成,ソフトウェア結合のためのテスト要件の定義,ソフトウェア方式設計の評価,ソフトウェア方式設計の共同レビューを実施することを理解する。
【用語例】
ソフトウェアコンポーネント,ソフトウェアコンポーネント分割,ソフトウェアコンポーネント間インタフェース設計,ソフトウェア結合のためのテスト要件
- ソフトウェア詳細設計のタスク
ソフトウェア詳細設計では,ソフトウェアコンポーネントの詳細設計,ソフトウェアインタフェースの詳細設計,データベースの詳細設計,利用者文書の更新,ソフトウェアユニットのテスト要件の定義,ソフトウェア結合のためのテスト要件の更新,ソフトウェア詳細設計及び要求事項の評価,ソフトウェア詳細設計の共同レビューを実施することを理解する。
【用語例】
ソフトウェアコンポーネントの単位,機能階層図,ソフトウェアユニット,ユニット分割,コンポーネント詳細設計,ソフトウェアコンポーネントインタフェース詳細設計,ソフトウェアユニット間インタフェース設計,データベース詳細設計
- ソフトウェア方式設計
ソフトウェア方式設計では,ソフトウェア要件定義書を基に,開発側の視点からソフトウェアの構造とコンポーネントの設計を行うこと,ソフトウェアをソフトウェアコンポーネント(プログラム)まで分割し,各ソフトウェアコンポーネントの機能,ソフトウェアコンポーネント間の処理の手順や関係を明確にすることを理解する。
【用語例】
構造化,ソフトウェアコンポーネント機能仕様決定,部品,入出力設計,部品化,再利用
- ソフトウェア詳細設計
ソフトウェア詳細設計では,ソフトウェア方式設計書を基に,各ソフトウェアコンポーネントをコーディングし,コンパイルし,テストするソフトウェアユニット(単体,クラス,モジュール)のレベルに詳細化し,文書化することを理解する。
【用語例】
モジュール分割,モジュール仕様,プログラム設計
- インタフェース設計
インタフェース設計では,ソフトウェア要件定義書を基に,操作性,応答性,視認性,ハードウェア及びソフトウェアの機能,処理方法を考慮して,入出力装置を介して取り扱われるデータに関する物理設計を行うことを理解する。
【用語例】
入出力詳細設計,GUI,画面設計,帳票伝票設計,インタフェース設計基準
- ソフトウェアユニットのテストの設計
ソフトウェア詳細設計書で提示された要件をすべて満たしているかどうかを確認するために,テストの範囲,テスト計画,テスト方式を定義し,ソフトウェアユニットのテスト仕様書を作成することを理解する。
【用語例】
テスト要件,チェックリスト, ホワイトボックステスト
- ソフトウェア結合テストの設計
ソフトウェア方式設計書で提示された要件をすべて満たしているかどうかを確認するために,テストの範囲,テスト計画,テスト方式を定義し,ソフトウェア結合テスト仕様書を作成することを理解する。
【用語例】
テスト要件,チェックリスト, ブラックボックステスト
- ソフトウェア設計の評価及びレビュー
ソフトウェア設計内容がソフトウェア要件に合致していること,ソフトウェアコンポーネント間やソフトウェアユニット間の内部一貫性などのソフトウェア設計を評価する際の基本的な基準を理解する。また,ソフトウェア方式設計書,詳細設計書について作成後にレビューを行うことを理解する。
【用語例】
レビュー参加者,レビュー方式
- ソフトウェア品質
JIS X 25010 ( ISO/IEC 25010 ) で規定されているシステム及びソフトウェア製品の品質特性を理解し, 要件定義やシステム設計の際には品質特性を考慮することを理解する。
【用語例】
JIS X 25010 (ISO/IEC 25010), ISO 9000
a. 利用時の品質モデル
システムとの対話による成果に関係する五つの特性である,利用時の品質モデルを理解する。
【用語例】
有効性,効率性,満足性,リスク回避性,利用状況網羅性
b. 製品品質モデル
システム及び/又はソフトウェア製品の品質特徴(品質に関係する測定可能な特徴とそれに伴う品質測定量)を八つに分類した製品品質モデルを理解する。
【用語例】
機能適合性,性能効率性,互換性,使用性,信頼性,セキュリティ,保守性,移植性
- ソフトウェア設計手法
a. プロセス中心設計
プロセス中心設計手法によるソフトウェア設計の基本的な考え方,手順を理解する。
b. データ中心設計
データ中心設計手法によるソフトウェア設計の基本的な考え方,手順を理解する。
【用語例】
E-R図,実態, 関連,正規化,一事実一箇所
c. 構造化設計
(a)機能分割と構造化
機能分割と構造化の手順(機能の洗い出し,データフローの明確化,機能のグループ化,階層構造化,プログラム機能の決定,機能仕様の文書化)を理解する。また,構造化設計による機能分割の利点,留意事項を理解する。
【用語例】
階層,段階的詳細化
(b)構造化設計の手法
構造化設計で用いられる手法として,流れ図,DFD ,構造化チャート,状態遷移図などがあることを理解する。
【用語例】
順次,選択,繰返し,NS (Nassi-Shneiderman :ナッシシュナイダマン )図,HIPO ( Hierarchy plus Input Process Output ),ジャクソン法,ワーニエ法
(c)プログラムの構造化設計
プログラムの構造化設計の目的,基本的な考え方,手順を理解する。
【用語例】
品質特性,モジュール分割
d. オブジェクト指向設計
オブジェクト指向設計の基本的な考え方,手順,手法を理解する。
【用語例】
クラス,インスタンス,属性,メソッド,カプセル化,サブクラス,継承(インヘリタンス),部品化,再利用,クラス図,多相性,パッケージ,関連,汎化,特化,分解,集約
- コンポーネントの設計
a. コンポーネント分割の考え方
コンポーネントを分割する際の基準には,処理パターン適用,処理タイミングの違い,処理効率の違い,同時使用可能資源,入出力装置の特徴などがあることを理解する。また,基準ごとの特徴を理解する。
【用語例】
ファイルの統合,ファイルの分割,レコード処理,処理の周期
b. プログラム分割基準
プログラム分割の基準を理解する。
【用語例】
分かりやすさ,安全性,開発の生産性,運用性,処理能力,保守性,再利用性
- モジュールの設計
a. 分割手法
分割手法には,データの流れに着目した手法とデータ構造に着目した手法があり,内部 処理の形態に応じて複数の分割手法を組み合わせること,代表的な分割手法の種類,特徴を理解する。
【用語例】
STS ( Source Transform Sink ) 分割,TR ( Transaction :トランザクション)分割,共通機能分割,サブルーチン
b. 分割基準
モジュールの独立性の評価基準として,モジュールの結束性(強度),結合度の概念,それらと独立性との関係,分割量の評価基準,部品化と再利用のための評価基準を理解する。
【用語例】
モジュールの制御領域,モジュールの影響領域,分割量,モジュール再分割,従属モジュール
c. モジュール仕様の作成
各モジュール仕様の作成の考え方,手順,モジュール仕様の作成に用いられる代表的な手法を理解する。
【用語例】
流れ図,決定表(デシジョンテーブル),NS ( Nassi-Shneiderman :ナッシシュナイダマン)図,ジャクソン法,ワーニエ法
- 部品化と再利用
ソフトウェアの部品化と再利用の必要性,部品の種類と特徴,部品設計の留意事項,ソフトウェアパッケージの基本的な利用法を理解する。
【用語例】
コンポーネントウェア
- アーキテクチャパターン
アーキテクチャパターンはソフトウェア構造のパターンであることなどの特徴を踏まえて,アーキテクチャパターンを利用する利点,留意事項を理解する。
【用語例】
MVC モデル
- デザインパターン
デザインパターンは主にオブジェクト指向設計に用いられ,生成に関するパターン,構造に関するパターン,振る舞いに関するパターンの3種類に分類されることなどの特徴を踏まえて,デザインパターンを利用する利点,留意事項を理解する。
- レビュー
プロジェクト活動の状況や成果物を適宜評価するためのレビューの種類,目的を理解する。また,レビューは文書の作成,レビューの実施(レビュー方式の決定,レビューの評価基準の決定,レビュー参加者の選出),レビュー結果の文書への反映作業という手順で行われることを理解する。
【用語例】
デザインレビュー,インスペクション,モデレータ,文書化手法,レビュー参加者,ウォークスルー,コードレビュー,共同レビュー