基本情報技術者試験「クラス間関係」の問題
UMLのクラス図における全体と部分の関係のうち、全体側のオブジェクトが消滅すると部分側のオブジェクトも一緒に消滅する、ライフサイクルを共有する強い包含関係を表すものはどれか。
ア関連(クラス同士の単純な結び付き)
イ集約(共有可能な弱い包含)
ウコンポジション(合成集約)
エ依存(一時的な利用関係)
正解
ウ.コンポジション(合成集約)
コンポジション(合成集約)は全体と部分が生死を共にする強い包含関係で、全体が破棄されれば部分も破棄され、部分は同時に複数の全体へ属せない。UMLでは塗りつぶしの菱形で表す。設問の『全体が消えると部分も消える』に正確に合致する。
?選択肢ごとの解説
ア ×関連は単に二つのクラスが結び付いていることを示すだけで、全体と部分やライフサイクルの共有を含意しない。
イ ×集約は全体部分関係ではあるが弱い包含で、部分は全体と独立に存在でき他の全体とも共有できるため、ライフサイクル共有という条件に合わない。
ウ ○コンポジション(合成集約)は全体と部分が生死を共にする強い包含関係で、全体が破棄されれば部分も破棄され、部分は同時に複数の全体へ属せない。UMLでは塗りつぶしの菱形で表す。設問の『全体が消えると部分も消える』に正確に合致する。
エ ×依存は一方が他方を一時的に利用する弱い関係で、全体部分の包含やライフサイクル共有を表すものではない。
✎くわしく
全体部分関係には集約とコンポジションの二段階がある。集約(白菱形)は『部分が全体と独立に生存できる弱い包含(例:チームと選手)』、コンポジション(黒菱形)は『部分が全体に従属し生死を共にする強い包含(例:注文と注文明細)』である。両者の決定的な違いはライフサイクルの共有と部分の共有可否であり、本問はライフサイクルを共有する強い側のコンポジションが該当する。
✓本番での押さえどころ
試験のコツ
『全体が消えると部分も消える』『部分を共有しない』はコンポジション、『部分が独立・共有可』は集約と判断する。
覚え方
黒菱形(コンポジション)は『塗りつぶす=固く一体』、白菱形(集約)は『中空=緩い結合』と図記号で覚える。
よくある誤り
集約とコンポジションの強弱を取り違えやすい。生死を共にする強い方がコンポジション、独立できる弱い方が集約である。
開発技術の他の問題
アジャイル開発の手法であるスクラムにおいて、スプリントごとに動作するソフトウェアを開発チームが実際に作り上げ、その成果物をプ…ソフトウェアのテストにおいて、プログラムの内部構造には着目せず、入力に対する出力が仕様どおりであるかを検証する手法を採用した…あるシステムのファンクションポイント(FP)を見積もったところ、未調整FPは200であった。技術的複雑度を表す調整係数が0.…ソフトウェアの企画から開発・運用・保守・廃棄までの各活動について、取得者と供給者が同じ言葉で役割や作業範囲を取り決められるよ…ある開発プロジェクトでは、要件定義・設計・実装・テストの各工程を上流から下流へ順に進め、前工程の成果物を承認してから次工程へ…開発対象を複数の部分に分け、各部分について計画・リスク分析・開発・評価の活動を繰り返し、評価のたびにリスクを見極めながら少し…
この問題を、AIの8-ways解説つきで。
無料ではじめる →基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。
ukamiru 過去問 · 基本情報技術者試験 · fe-a2-0063