システム設計前期中間
NotebookLMが作ってくれた問題
以下の質問に2~3文で解答してください。
1. ソフトウェア開発における「ソフトウェア危機」とは何ですか?
解答:ソフトウェアの需要が急増した1960年代後半に、供給側の生産技術と体制が追いつかず、開発の遅延や品質低下が常態化した状況を指します。
2. ソフトウェア開発で発生しやすい3つの問題(品質、納期、コスト)は、計画や管理が不十分だとどのように引き起こされますか?
解答:計画や管理が不十分だと、作業量や必要な期間の見積もりが不正確になり、予算超過(コスト問題)や納期遅れ(納期問題)が生じます。また、要求の漏れや誤解が生じやすく、それが原因で動作不良や期待と異なる結果(品質問題)が発生します。
3. 仕事としてのソフトウェア開発と、自分が使うソフトウェアを自分で作る開発の主な違いは何ですか?
仕事としての開発は多くの場合、多数の人が関わり、長期間をかけて、規模の大きいソフトウェアを作成します。また、発注者(ユーザ)と開発者(ベンダ)が存在し、要件定義や金銭的なやり取り、業務での利用が伴います。
4. ソフトウェア工学の定義に含まれる「系統的で統制され定量化可能な方法」とは具体的にどのようなことですか?
ソフトウェア開発を勘や経験に頼るのではなく、確立された方法論、手順、技術を用いて進めることを指します。これにより、開発プロセスを予測可能で制御可能なものにし、品質や生産性の向上を目指します。
5. 「共通フレーム2013」の目的は何ですか?
ソフトウェアライフサイクルにおける各作業内容などを標準的に規定することで、開発に関わる関係者間の解釈のずれによるトラブルを防ぐことを目的としています。ISO/IEC規格に基づいています。
6. 要求分析が難しい理由として挙げられる「要求の揮発性」とはどういうことですか?
社会情勢の変化や、ユーザ自身のシステム化に対する理解が進むにつれて、開発途中で要求が変化していく性質を指します。これが要求分析の曖昧さや不確実性を高めます。
7. 機能要求と非機能要求の違いを簡潔に説明してください。
機能要求はソフトウェアが「何をすべきか」、すなわち提供すべき具体的な機能を記述します。非機能要求はソフトウェアが「どのようにすべきか」、すなわち機能の性能、信頼性、保守性といった性質に関する要求を記述します。
8. 要求分析手法であるi*(アイ・スター)のSDモデルは、何と何の関係を表現するために用いられますか?
i*(アイ・スター)のSDモデルは、システムに関与する「アクター」間における、ゴール、タスク、ソフトゴール、資源といった「依存関係」を表現するために用いられます。
9. オブジェクト指向分析における「ドメインモデル図」の主な目的は何ですか?
オブジェクト指向分析におけるドメインモデル図は、対象とする問題領域(ドメイン)における主要な「登場人物」(概念)とその間の「関連」を視覚的に表現することを主な目的とします。問題領域の理解を深めるための辞書のような役割を果たします。
10. 分析レベルのシーケンス図を作成する際に、特に注意すべき点は何ですか?
分析レベルのシーケンス図では、ユースケースのシナリオに基づいて、抽出したクラスのインスタンス間のメッセージのやり取りを時系列で記述します。正確な時刻やタイミング、条件分岐を表現するのではなく、あくまでも処理の流れをざっくりと捉えることを意識します。
---
重要用語集
ソフトウェア~
ソフトウェア工学 (Software Engineering)
ソフトウェアの開発、運用、保守に対する系統的、統制され、定量化可能な方法、およびそのような方法の研究。
ソフトウェア危機 (Software Crisis)
1960年代後半に顕著になった、ソフトウェアの需要増大に対する生産技術と体制の遅れ、開発の遅延、品質低下などの問題。
ソフトウェアプロセス (Software Process)
ソフトウェア開発の過程。要求分析、設計、コーディング、テストなどの工程を含む。
ソフトウェアライフサイクル (Software Life Cycle)
ソフトウェアの企画、開発、運用、保守、廃棄といった全ての段階を含む期間。
要求
要求分析 (Requirements Analysis)
ユーザがソフトウェアに求めている機能を明確にする工程。
機能要求 (Functional Requirements)
ソフトウェアが実行すべき具体的な機能。
非機能要求 (Non-functional Requirements)
機能の性能、信頼性、保守性といった性質に関する要求。
ステークホルダ (Stakeholder)
システムに関与する個人、グループ、組織など、利害関係者。
i* (アイ・スター)
ゴール指向要求分析手法の一つ。アクター間の依存関係(SDモデル)やアクター内部の構造(SRモデル)を表現する。
ソフトゴール依存関係グラフ (SIG - Softgoal Interdependency Graph)
非機能要求(ソフトゴール)とその達成手段(操作)、理由(理由)の関係を表現するグラフ。
設計
設計 (Design)
要求を満たすように、ソフトウェアの構造や動作を具体的に決定する工程。
データフローダイヤグラム (DFD - Data Flow Diagram)
システム内を流れるデータの変換プロセスとデータの流れを表現する図。
オブジェクト指向 (Object-Oriented)
プログラムをオブジェクトの集合と捉え、オブジェクト間の相互作用としてシステムを構築する考え方。
ユースケース (Use Case)
システムがユーザに提供するサービス。ユーザがシステムを利用して遂行する業務の単位。
UML (Unified Modeling Language)
オブジェクト指向の記述法を統一した標準的なモデリング言語。
クラス図 (Class Diagram)
オブジェクト指向におけるクラス、属性、操作、クラス間の関連性を表現する図。特に分析レベルではドメインモデル図とも呼ばれる。
シーケンス図 (Sequence Diagram)
オブジェクト指向におけるオブジェクト間のメッセージのやり取りを時系列で表現する図。
開発
工数 (Effort)
ソフトウェア開発に必要な作業量。人月(人数×期間)などの単位で表される。
コードクローン (Code Clone)
プログラムのソースコードにおいて、記述が似ている箇所。バグの原因になりやすい。
共通フレーム2013
ソフトウェアライフサイクルにおける作業内容などを標準的に規定したフレームワーク。ISO/IEC規格に基づく。