「設計」における目標
システム及び/又はソフトウェア設計の考え方,手順,手法,留意事項を修得し,適用する。
2.1. システム設計のタスク
システム設計では,システム設計,利用者文書(暫定版)の作成,システム設計の評価,システム設計の共同レビューを実施することを理解する。
2.2. システム設計
2.2.1. システム設計の目的
システム設計では,システム要件をハードウェア,ソフトウェア,手作業に振り分け,それらを実現するために必要なシステムの構成品目を決定すること,システム要求仕様が実現できるか,リスクなどを考慮した選択肢の提案は可能か,効率的な運用及び保守ができるかなど,システムを設計する際に考慮すべき点を理解する。
2.2.2. ハードウェア・ソフトウェア・サービス・手作業の機能分割
ハードウェア,ソフトウェア,サービス,手作業の機能分割を,業務効率,作業負荷,作業コストなどの観点から検討し,決定することを理解する。
2.2.3. ハードウェア構成の決定
信頼性や性能要件に基づいて,冗長化やフォールトトレラント設計,サーバの機能配分,信頼性配分などを検討し,ハードウェア構成を決定することを理解する。
2.2.4. ソフトウェア構成の決定
システムの供給者が自社で全て開発するか,ソフトウェアパッケージなどを利用するかなどの方針,使用するミドルウェアの選択などを検討し,ソフトウェア構成を決定することを理解する。
2.2.5. システム処理方式の決定
業務に応じて集中処理,分散処理を選択すること,Web システム,クライアントサーバシステムなど,システムの処理方式を検討し,決定することを理解する。
2.2.6. データベース方式の決定
システムで使用するデータベースの種類,信頼性を考慮して冗長化したレプリケーションなどを検討し,決定することを理解する。
2.3. システム統合テストの設計
システム設計に対し,システム統合テストの範囲,テスト計画,テスト手順などの方針を検討し,システムが機能を全て満たしているかどうかを確認するシステム統合テスト仕様書を作成することを理解する。
2.4. アーキテクチャ及びシステム要素の評価及びレビュー
決定したアーキテクチャ及びシステム要素がシステム要件に合致しているか,実現可能かなど,システム要素を評価する際の基準を作成し,システムの取得者及び供給者が共同でレビューを行うことを理解する。
2.5. ソフトウェア設計のタスク
ソフトウェア設計では,ソフトウェア設計,利用者文書(暫定版)の作成,ソフトウェア設計の評価,ソフトウェア設計の共同レビューを実施することを理解する。
2.6. ソフトウェア設計
2.6.1. ソフトウェア設計
ソフトウェア設計では,ソフトウェア要件定義書を基に,開発側の視点からソフトウェアの構造とソフトウェア要素の設計を行うこと,ソフトウェア要素をソフトウェアユニット(プログラム)まで分割し,各ソフトウェアユニットの機能,ソフトウェアユニット間の処理の手順や関係を明確にすること,ソフトウェア設計書作成の構成,記述上の留意事項を理解する。
2.6.2. インターフェース設計
インタフェース設計では,ソフトウェア要件定義書を基に,操作性,応答性,視認性,ハードウェア及びソフトウェアの機能,処理方法を考慮して,入出力装置を介して取り扱われるデータに関する物理設計を行うことを理解する。
2.6.3. ソフトウェアユニットのテストの設計
ソフトウェアユニット機能仕様書で提示された要件を全て満たしているかどうかを確認するために,テストの範囲,テスト計画,テスト方式を定義し,ソフトウェアユニットのテスト仕様書を作成することを理解する。
2.6.4. ソフトウェア統合テストの設計
ソフトウェア設計書で提示された要件を全て満たしているかどうかを確認するために,テストの範囲,テスト計画,テスト方式を定義し,ソフトウェア統合テスト仕様書を作成することを理解する。
2.7. ソフトウェア要素の評価及びレビュー
ソフトウェア要素がソフトウェア要件に合致していること,ソフトウェア要素間やソフトウェアユニット間の内部一貫性などのソフトウェア要素を評価する際の基準を理解する。また,ソフトウェア設計書について,作成後にレビューを行うことを理解する。
2.8. ソフトウェア品質
JIS X 25010 で規定されているシステム及びソフトウェア製品の品質特性を理解し,要件 定義や設計の際には品質特性を考慮することを理解する。
2.8.1. 利用時の品質モデル
システムとの対話による成果に関係する五つの特性である,利用時の品質モデルを理解する。
2.8.2. 製品品質モデル
システム及び/又はソフトウェア製品の品質特徴(品質に関係する測定可能な特徴とそれに伴う品質測定量)を八つに分類した製品品質モデルを理解する。また,各特性は関連する副特性の集合から構成されていることを理解する。
2.9. ソフトウェア設計手法
2.9.1. プロセス中心設計
プロセス中心設計手法によるソフトウェア設計の考え方と手順を理解する。
2.9.2. データ中心設計
データ中心設計手法によるソフトウェア設計の考え方と手順を理解する。
2.9.3. 構造化設計
2.9.3.1. 機能分割と構造化
機能分割と構造化の手順(機能の洗い出し,データフローの明確化,機能のグループ化,階層構造化,プログラム機能の決定,機能仕様の文書化),構造化設計による機能分割の利点,留意事項を理解する。
2.9.3.2. 構造化設計の手法
構造化設計で用いられる手法として,流れ図,DFD,構造化チャート,状態遷移図などがあることを理解する。
2.9.3.3. プログラムの構造化設計
プログラムの構造化設計の目的,基本的な考え方,手順を理解する。
2.9.4. オブジェクト指向設計
オブジェクト指向設計の考え方,手順,手法を理解する。
2.10. ソフトウェア要素の設計
2.10.1. ソフトウェア要素分割の考え方
ソフトウェア要素を分割する際の基準には,処理パターン適用,処理タイミングの違い,処理効率の違い,同時使用可能資源,入出力装置の特徴などがあることを理解する。また,基準ごとの特徴を理解する。
2.10.2. プログラム分割基準
プログラム分割の基準を理解する。
2.11. モジュールの設計
2.11.1. 分割手法
分割手法には,データの流れに着目した手法とデータ構造に着目した手法があり,内部処理の形態に応じて複数の分割手法を組み合わせること,分割手法の種類,特徴を理解する。
2.11.2. 分割基準
モジュールの独立性の評価基準として,モジュールの結束性(強度),結合度,それらと独立性との関係,分割量の評価基準,部品化と再利用のための評価基準を理解する。
2.11.3. モジュール仕様の作成
各モジュール仕様の作成の考え方,手順,モジュール仕様の作成に用いられる手法を理解する。
2.12. 部品化と再利用
ソフトウェアの部品化と再利用の必要性,部品の種類と特徴,部品設計の留意事項,ソフトウェアパッケージの利用法を理解する。
2.13. アーキテクチャパターン
アーキテクチャパターンはソフトウェア構造のパターンであることなどの特徴を踏まえて,アーキテクチャパターンを利用する利点,留意事項を理解する。
2.14. デザインパターン
デザインパターンは主にオブジェクト指向設計に用いられ,生成に関するパターン,構造に関するパターン,振る舞いに関するパターンの3 種類に分類されることなどの特徴を踏まえて,デザインパターンを利用する利点,留意事項を理解する。
2.15. レビュー
2.15.1. レビューの目的と手順
プロジェクト活動の状況や成果物を適宜評価するためのレビューの目的を理解する。また,レビューは文書の作成,レビューの実施(レビュー方式の決定,レビューの評価基準の決定,レビュー参加者の選出),レビュー結果の文書への反映作業という手順で行われることを理解する。
2.15.2. レビューの対象と種類
レビューの対象,実施タイミング,種類を理解する。
2.15.3. 妥当性評価の項目
レビューで確認する妥当性評価の項目を理解する。
2.15.4. その他の妥当性評価手法
測定器やテストプログラムの利用によるデータ実測,利用者の意見や感想の収集など,レビュー以外の妥当性評価の手法を理解する。