クイズの説明
Step 1「アーキテクチャ設計の基礎」で学んだ内容の理解度を確認します。全8問、80%(7問)以上正解で合格です。
問題
Q1. ソフトウェアアーキテクチャの定義として最も適切なものはどれですか?
- A) システムのソースコード全体の構造
- B) 後から変更するのが困難で高コストな技術的決定の集合
- C) UMLで描かれたクラス図とシーケンス図
- D) フレームワークやライブラリの選定リスト
答えを見る
正解: B
ソフトウェアアーキテクチャは「後から変更するのが困難で高コストな技術的決定の集合」です。モノリスかマイクロサービスか、RDBかNoSQLか、同期通信か非同期通信か — これらは一度決めると変更コストが極めて高く、システムの生涯にわたって影響します。ソースコードの構造やUML図はアーキテクチャの一側面に過ぎず、ライブラリ選定は比較的容易に変更可能です。
Q2. コンウェイの法則について正しい説明はどれですか?
- A) ソフトウェアの複雑性は常に増大するという法則
- B) システムの構造は、それを設計した組織のコミュニケーション構造を反映するという法則
- C) 早期の最適化は諸悪の根源であるという法則
- D) ソフトウェアのコストの80%は保守に費やされるという法則
答えを見る
正解: B
コンウェイの法則(1967年)は「システムを設計する組織は、その組織のコミュニケーション構造を反映した設計を生み出す」というものです。例えば、フロントエンド・バックエンド・インフラの3チーム構成の組織は、自然と3層アーキテクチャを生み出す傾向があります。逆に、望ましいアーキテクチャに合わせて組織を再編する「逆コンウェイの法則」というアプローチもあります。
Q3. ステークホルダー分析において、以下のうちアーキテクチャへの影響が最も大きいステークホルダーの関心事はどれですか?
- A) UIデザイナーの「ボタンの色をブランドカラーに合わせたい」
- B) 経営層の「インフラコストを月額100万円以内に抑えたい」
- C) テスターの「テストケースの命名規則を統一したい」
- D) マーケティングの「ランディングページにABテストを入れたい」
答えを見る
正解: B
インフラコストの制約はアーキテクチャ全体に影響するドライバーです。月額100万円という制約は、使えるクラウドサービスの種類、インスタンスのサイズ、冗長化の度合い、マルチリージョン構成の可否など、多くのアーキテクチャ判断を制約します。UIのボタン色やテストの命名規則はアーキテクチャレベルの決定ではなく、ABテストは機能レベルの要件です。
Q4. ISO 25010の品質モデルにおいて、「信頼性」の副特性に含まれないものはどれですか?
- A) 可用性
- B) 障害許容性
- C) 機密性
- D) 回復性
答えを見る
正解: C
「機密性」はISO 25010の「セキュリティ」カテゴリの副特性です。「信頼性」の副特性は「成熟性」「可用性」「障害許容性」「回復性」の4つです。信頼性は「指定された条件下でシステムが機能を維持する度合い」を示し、セキュリティは「情報とデータを保護する度合い」を示します。両者は密接に関係しますが、品質モデルでは別のカテゴリとして扱われます。
Q5. 品質属性シナリオの6つの要素として正しい組み合わせはどれですか?
- A) 入力、処理、出力、エラー、ログ、監視
- B) 刺激源、刺激、環境、成果物、応答、測定値
- C) ユーザー、アクション、データ、結果、時間、コスト
- D) 要件、設計、実装、テスト、デプロイ、運用
答えを見る
正解: B
品質属性シナリオは「刺激源(Source)」「刺激(Stimulus)」「環境(Environment)」「成果物(Artifact)」「応答(Response)」「測定値(Measure)」の6要素で構成されます。例えば、可用性のシナリオは「ハードウェア障害(刺激源)により」「DBサーバーがクラッシュし(刺激)」「通常運用時に(環境)」「注文処理システムが(成果物)」「フェイルオーバーして処理を継続し(応答)」「切り替え時間30秒以内(測定値)」のように記述します。
Q6. 次のうち、可用性を実現するためのアーキテクチャ戦術(Tactics)として適切でないものはどれですか?
- A) 冗長化(Redundancy)
- B) キャッシュ(Caching)
- C) サーキットブレーカー(Circuit Breaker)
- D) フェイルオーバー(Failover)
答えを見る
正解: B
キャッシュ(Caching)はパフォーマンスを実現するための戦術です。計算結果やデータを再利用可能な場所に保存することで、レスポンス時間を短縮します。一方、冗長化(同じ機能を複数インスタンスで提供)、サーキットブレーカー(連鎖障害を防止)、フェイルオーバー(障害時に待機系に切り替え)はいずれも可用性を実現するための戦術です。
Q7. アーキテクチャドライバーの3つの分類として正しいものはどれですか?
- A) 機能要件、非機能要件、テスト要件
- B) 主要な機能要件、品質属性シナリオ、制約
- C) ユーザー要件、システム要件、運用要件
- D) ビジネス要件、技術要件、セキュリティ要件
答えを見る
正解: B
アーキテクチャドライバーは3つに分類されます。「主要な機能要件」(アーキテクチャに影響するもの、例: リアルタイム在庫管理)、「品質属性シナリオ」(優先度が高いもの、例: 可用性99.99%)、「制約」(変更不可能な条件、例: AWS上で構築、PCI DSS準拠)。特に制約は見落とされがちですが、アーキテクチャを最も強力に規定する要素です。
Q8. 要件とアーキテクチャの関係について正しい説明はどれですか?
- A) 要件が確定してからアーキテクチャを設計し、一度決めたら変更しない
- B) アーキテクチャは技術者が独自に決めるもので、要件とは独立している
- C) 要件とアーキテクチャの間にはフィードバックループがあり、相互に影響し合う
- D) 要件はプロダクトオーナーが、アーキテクチャはアーキテクトが完全に独立して決める
答えを見る
正解: C
要件とアーキテクチャの間にはフィードバックループが存在します。アーキテクチャ設計の過程で「制約の中でこの品質属性は実現不可能」「コストが予算を超過する」「未知の制約が見つかる」といった発見があれば、ステークホルダーと要件を再交渉します。ウォーターフォール的に要件確定→設計→実装と一方通行で進めるのではなく、早い段階でフィードバックを回すことがプロジェクト成功の鍵です。
結果
7問以上正解の場合
合格です。 アーキテクチャ設計の基礎をしっかり理解しています。アーキテクチャの定義、ビジネス要件の分析、品質属性の定量化、そして要件からアーキテクチャへの変換プロセス — これらはL3全体を通じて使い続ける土台です。
「基礎が固まったね。次のステップでは、具体的なアーキテクチャスタイルとパターンに進む。モノリス、マイクロサービス、イベント駆動 — それぞれの特性とトレードオフを深く掘り下げていこう」 — 佐藤CTO
6問以下の場合
もう少し復習しましょう。 Step 1のレッスンを再度読み返し、特に間違えた問題の関連箇所を重点的に復習してください。
- Q1-Q2を間違えた場合 → Step 1-2「アーキテクチャの役割と重要性」を復習
- Q3を間違えた場合 → Step 1-3「ビジネス要件の分析手法」を復習
- Q4-Q5を間違えた場合 → Step 1-4「品質属性シナリオ」を復習
- Q6-Q8を間違えた場合 → Step 1-5「要件からアーキテクチャへの変換」を復習