Instiq

システムアーキテクト試験参考書

システム設計の最高峰の国家資格、システムアーキテクト(SA)。本コースは午前(科目A)の四肢択一を対象に、SA固有の午前II専門(要件定義・システムアーキテクチャ設計・ソフトウェア方式設計・非機能設計・クラウド/プラットフォーム・システム統合/移行)を中心に対策します(午前I共通は応用情報 AP コースが土台/午後の記述・論述式は対象外)。

システムアーキテクト試験(SA)について

システムアーキテクト試験(SA)は、IPA(情報処理技術者試験) が提供するプロフェッショナル・エキスパートレベルの認定資格です。このページでは、試験範囲を全 6 章・25 節の参考書として体系的に解説し、本番形式の練習問題で理解度を確認できます。下の章一覧から順に読み進め、「問題集で演習する」で実力を試すのが効率的な学習の流れです。

試験で問われる分野(出題範囲の目安)

  • 要件定義とシステム企画約 16%
  • システムアーキテクチャ設計約 20%
  • ソフトウェア方式設計約 18%
  • 非機能設計約 18%
  • プラットフォームとクラウド約 14%
  • システム統合・移行・保守約 14%

配点は本番試験の目安です。各分野は下の章・節で詳しく解説しています。

公式の試験情報:https://www.ipa.go.jp/shiken/kubun/sa.html

1要件定義とシステム企画

  • 1.1システム企画とエンタープライズアーキテクチャ

    エンタープライズアーキテクチャ(EA)の4つの体系(BA(業務アーキテクチャ)・DA(データアーキテクチャ)・AA(アプリケーションアーキテクチャ)・TA(技術アーキテクチャ))と、経営戦略とシステム化構想を整合させ、現状(As-Is)と理想(To-Be)のギャップから投資対効果を踏まえた最適な企画判断を行う力を学びます。

  • 1.2要件定義プロセス

    ステークホルダから要求を引き出す要求獲得、要求を整理し矛盾を解消する要求分析、機能要件と非機能要件の違い、要求と成果物の対応関係を追跡する要求トレーサビリティ、そして開発途中の変更管理を通じて要求の合意形成を適切に進める判断力を学びます。

  • 1.3業務モデリング

    業務の流れを表すDFD(データフローダイアグラム)、データ構造を表すE-R図、システムと利用者の相互作用を表すUML(ユースケース図等)、業務プロセス全体の流れを表すBPMNという代表的な業務モデリング表記法の特性を理解し、現行業務(As-Is)と理想の業務(To-Be)を対比する目的に応じて適切な表記法を選ぶ判断力を学びます。

  • 1.4非機能要件の定義

    性能・信頼性・可用性・セキュリティなど非機能要件を体系的に整理する非機能要求グレードを活用し、曖昧になりがちな非機能要件を測定可能な指標に落とし込み、ステークホルダ間で合意することで手戻りを防ぐ判断力を学びます。

2システムアーキテクチャ設計

  • 2.1システム方式設計の基礎

    システムが実現すべき機能をハードウェア・ソフトウェア・手作業のどこに担わせるかを決める機能配分、そして性能・コスト・可用性・保守性という複数のトレードオフ軸から最適な方式を選ぶ方式選定の考え方を学びます。

  • 2.2集中と分散・クライアントサーバ

    処理を1か所に集める集中処理と複数拠点・複数マシンに分散させる分散処理のトレードオフ、そしてクライアントサーバ方式における2層(クライアントに処理を持たせる)と3層(プレゼンテーション/アプリケーション/データを分離する)の処理配置の判断を学びます。

  • 2.3Web多層アーキテクチャ

    3層クライアントサーバをWeb向けに発展させたプレゼンテーション層・アプリケーション層・データ層の構成、サーバがクライアントの状態を保持しないステートレス設計、セッション情報を外部ストアへ切り出すセッション外部化、そしてサーバ台数を増やして負荷に対応するスケールアウトの考え方を学びます。

  • 2.4SOAとマイクロサービス

    サービス単位で機能を疎結合に連携させるSOAの考え方を発展させ、サービスを独立にデプロイできる粒度まで分割するマイクロサービス、そのドメイン境界での分割判断、そして分散に伴う代償である結果整合性・運用複雑度をどう受け入れるかを学びます。

  • 2.5イベント駆動とメッセージング

    サービス間を非同期に連携させるメッセージキュー(MQ)・ESB・API Gatewayの役割の違い、イベント駆動アーキテクチャによる疎結合な連携、そして非同期連携につきまとうメッセージの順序保証・重複配信・結果整合性の注意点を学びます。

3ソフトウェア方式設計

  • 3.1モジュール分割の原則

    モジュール分割の質を測る2つの尺度である凝集度(モジュール内の要素の関連の強さ・高いほど良い)と結合度(モジュール間の依存の強さ・低いほど良い)の順序と種類、そして「1箇所の変更が広範囲に波及する」という設計上の問題の原因をこの2軸で診断し改善する判断を学びます。

  • 3.2オブジェクト指向設計とUML

    オブジェクト指向設計の3要素(カプセル化/継承/多態)と、変更に強い設計原則であるSOLID原則(単一責任・開放閉鎖・リスコフの置換・インタフェース分離・依存性逆転)、そしてUML(クラス図・シーケンス図・状態遷移図)をどの設計判断の可視化に使い分けるかを、実際の要求変更への対応という判断とともに学びます。

  • 3.3デザインパターン

    GoFデザインパターンの3分類(生成に関するパターン/構造に関するパターン/振る舞いに関するパターン)の代表例(Singleton/Factory Method/Adapter/Facade/Observer/Strategy)の意図を正確に理解し、目の前の設計課題にどのパターンを適用すべきかを判断する力を学びます。

  • 3.4再利用とフレームワーク

    ライブラリ/コンポーネント/フレームワークの呼び出し関係の違い(自コードが相手を呼ぶ vs 相手が自コードを呼ぶ制御の反転(IoC))、そしてREST API設計の原則(リソース指向・ステートレス・HTTPメソッドの意味論)とバージョニング戦略を、既存資産の再利用方式をどう選び、外部公開APIの互換性をどう維持するかという判断とともに学びます。

4非機能設計

  • 4.1性能設計とキャパシティプランニング

    ユーザ体感を左右するレスポンスタイムと処理能力を示すスループットの違い、待ち行列理論の基本モデルM/M/1による利用率(ρ)と待ち時間の関係、そしてボトルネックを診断してキャパシティを見積もる判断力を、業務要件のシナリオを通じて養います。

  • 4.2信頼性設計

    システムの信頼性を測るRASISの5指標、直列/並列構成での稼働率計算、そして障害時の振る舞いを規定するフォールトトレラント・フェールソフト・フェールセーフの違いを、コストと信頼性のトレードオフ判断を通じて学びます。

  • 4.3可用性と災害対策

    目標可用性からどの冗長構成を選ぶかという判断、複数サーバで単一システムのように振る舞うHAクラスタ、大規模災害に備えるDR(ディザスタリカバリ)とBCP(事業継続計画)、そして復旧目標を定量化するRTO(目標復旧時間)・RPO(目標復旧時点)を学びます。

  • 4.4セキュリティアーキテクチャ

    境界防御の限界を補う多層防御と、内部も信頼しないゼロトラストの考え方、本人確認の認証と権限判定の認可の違い、そして設計の初期段階からセキュリティを組み込むセキュアバイデザインと脅威分析を、業務要件に応じたアーキテクチャ判断を通じて学びます。

5プラットフォームとクラウド

  • 5.1仮想化とコンテナ

    サーバ仮想化・ストレージ仮想化を担うハイパーバイザ(Type1/Type2)の仕組みと、OSカーネルを共有し起動が速く軽量なコンテナ(Docker)の特徴、そして多数のコンテナを自動運用するKubernetesによるオーケストレーションの判断を学びます。

  • 5.2クラウドサービスモデルと移行

    利用者とクラウド事業者の責任分界が異なるIaaS/PaaS/SaaSの使い分け、パブリック/プライベート/ハイブリッドクラウドの選定、そして既存システムをクラウドへ移すリフト&シフトとリアーキテクトという移行戦略の判断を学びます。

  • 5.3データベース方式設計

    トランザクション整合性を重視するRDBとスキーマ柔軟性/水平拡張を重視するNoSQLの選択、読み取り性能とデータ保全を両立するレプリケーション、書き込みスループットを水平分割で高めるシャーディング、そしてキャッシュによる性能改善と整合性の緩和の判断を学びます。

  • 5.4ネットワーク方式設計

    アプリケーション層の内容まで見て振り分けるL7負荷分散とトランスポート層で高速に振り分けるL4負荷分散の使い分け、コンテンツをエッジ拠点に分散するCDN、名前解決の階層と冗長化を担うDNS、そして障害時の冗長経路と遅延最適化の設計判断を学びます。

6システム統合・移行・保守

  • 6.1システム間連携

    HTTPベースで疎結合に連携するREST API、複数システム間でデータを抽出・変換・格納するETL、企業内の異種システムを仲介するEAI、そして呼び出し元が応答を待つ同期連携と待たずに処理を進める非同期連携の選択基準を学びます。

  • 6.2移行方式と移行計画

    旧新システムを一気に切り替える一斉移行(big-bang)、対象を分けて段階的に切り替える段階移行、旧新を一定期間並行稼働させる並行移行の得失、データの移行/変換/検証、本番切替前のリハーサルと失敗時の切り戻し、そして移行実施可否を判断するGo/No-go判断を学びます。

  • 6.3テストと品質保証

    モジュール単体を検証する単体テスト、モジュール間の連携を検証する結合テスト、業務要件全体を満たすかを検証するシステムテストと発注者側が確認する受入テスト、想定負荷での応答性能を確かめる性能テストと限界を探る負荷テスト、そしてテスト進捗の妥当性を可視化する信頼性成長曲線を学びます。

  • 6.4開発プロセスとDevOps

    全工程を順次進めるウォータフォールモデル、小さな単位で繰り返す反復(イテレーティブ)型とその代表であるアジャイル(スクラム)、ビルド・テストを自動化するCI(継続的インテグレーション)とリリースまで自動化するCD(継続的デリバリー/デプロイ)、そして保守を性質で分類する是正保守/適応保守/予防保守/完全化保守を学びます。