令和元年度 秋期 システムアーキテクト試験 午前Ⅱ 問題の解答と解説

2022年10月22日作成,2023年4月2日更新

試験時間は 10:50 ~ 11:30(40 分)である。

問1 DFD

図は,階層化された DFD における,あるレベルの DFD の一部である。プロセス 1 を子プロセスに分割して詳細化した DFD のうち,適切なものはどれか。ここで,プロセス 1 の子プロセスは,プロセス 1-1,プロセス 1-2 及び 1-3 とする。

DFD の一部
プロセス 1 を子プロセスに分割して詳細化した DFD
問1 の解答と解説を表示

問1 の解答と解説

【答え】

DFD(Data Flow Diagram,データフロー図)とは、情報システムの設計時などに作成される図の一つで、要素間のデータの流れを表した図。データがどこで発生し、どこからどこへ運ばれ、どこへ出力・保管されるのかを図示することができる。DFD では,処理・プロセス(〇),データの吸収先(□),データの流れ(→),データストア(=)の 4 つの記号を用いて対象業務のモデル化を行う。

DFD において,一つのプロセスを複数の子プロセスに詳細化する場合,プロセスに入るデータフローの数とプロセスから出るデータフローの数は,詳細化の前後でそれぞれ同じでなければならない。

提示された DFD では,プロセス 1 に入るデータフローは 2 本であり,プロセス 1 から出るデータフローも 2 本である。これを詳細化したものであるから,プロセス 1-1 とプロセス 1-2 とプロセス 1-3 に対して,入るデータフローが合計 2 本,出るデータフローが合計 2 本である。

ア)分割後のプロセス 1-1 から入るデータフローが 1 本だけなので誤り。

ウ)分割後のデータフロー 1-3 から出るデータフローが 1 本だけで,プロセス 1-2 からデータフローが出ていないので誤り。

エ)分割後のプロセス 1-2 に入るデータフローがないので,分割方法として適切とはいえない。

問2 ソフトウェアの要求モデル

並列に生起する事象間の同期を表現することが可能な,ソフトウェアの要求モデルはどれか。

問2 の解答と解説を表示

問2 の解答と解説

【答え】

ペトリネット (Petri net) とは,カール・アダム・ペトリが 1962 年に発表した離散分散システムを数学的に表現する手法である。モデリング言語としては分散システムを注釈付の有向 2 部グラフとして視覚的に表現する。

ペトリネットモデルは,並列に生起する事象間の同期を表現することができる要求モデルである。ペトリネットモデルを図式表現する場合,プレースとトランジションと呼ばれる 2 種類のノード(節点)をアークと呼ばれる矢線で結び,トークンと呼ばれる点をプレースに記述する有向 2 部グラフで表現する。プレースは状態を表し,トークンは現在の状態と次の動作を選択できる条件を表す。

ペトリネットモデル
図 ペトリネットモデル

問3 GoF のデザインパターン

ソフトウェアパターンのうち,GoF のデザインパターンの説明はどれか。

問3 の解答と解説を表示

問3 の解答と解説

【答え】

デザインパターンとは,典型的な課題に対する効果的な設計パターンのことで,代表的なデザインパターンに,GoF (Gang of Four) がある。四人の男性が持ち寄ったデザインパターンを体系化したことから,こう呼ばれる。23 種類のデザインパターンからなり,それらは,オブジェクトの生成に関するパターン,オブジェクトの構造に関するパターン,オブジェクトの振る舞いに関するパターンの三つに分類される。

問4 メソッドの置き換え

Java サーブレットを用いた Web アプリケーションソフトウェアの開発では,例えば,doGet や doPost などのメソッドを,シグネチャ(メソッド名,引数の型と個数)は変えずに,目的とする機能を実現するための処理に置き換える。このメソッドの置き換えを何と呼ぶか。

問4 の解答と解説を表示

問4 の解答と解説

【答え】

オブジェクト指向プログラミングでは,親クラス(スーパークラス / 基底クラス)で定義されたメソッドを,そのクラスを継承した子クラス(サブクラス / 派生クラス)で独自に定義し直して上書きすることをオーバーライド (override) という。

問5 "良いプログラム" がもっている特性

あるプログラム言語によるプログラミングの解説書の中に次の記述がある。この記述中の "良いプログラム" がもっている特性はどれか。

このプログラム言語では,関数を呼び出すときに引数を保持するためにスタックが使用される。オプションの指定によって,引数で受け渡すデータをどの関数からでも参照できる共通域に移して,スタックの使用量を減らすことは可能だが,"良いプログラム" とは見なされないこともある。

問5 の解答と解説を表示

問5 の解答と解説

【答え】

オプションの指定によって,引数で受け渡すデータをどの関数からでも参照できる共通域に移すと,プログラムの一部(関数)を変更したとき,他の関数への影響が懸念される。

問6 ソフトウェアの使用性を向上させる施策

ソフトウェアの使用性を向上させる施策として,適切なものはどれか。

問6 の解答と解説を表示

問6 の解答と解説

【答え】

ソフトウェアの使用性は,明示された利用状況において,有効性,効率性及び満足性をもって明示された目標を達成するために,明示された利用者が製品又はシステムを利用することができる度合いである。オンラインヘルプを充実させて利用方法を理解しやすくすることは,使用性の副特性である習得性の向上につながる。

イは互換性,ウは機能適合性,エは信頼性を向上させる施策である。

(参考)オンラインヘルプ

オンラインヘルプ (online help, online manual) とは,ハードウェアやソフトウェアの操作方法についての説明を,製本されたマニュアルなどの代わりに,PC の画面上に表示する機能やサービスのことである。

オンラインヘルプは,サッシのマニュアル本のように熟読したり拾い読みしたりするのには適しているとはいえないが,ハードウェアやソフトウェアの操作中に,キーワード検索などによって,知りたい情報に容易にアクセスできるというメリットがある。

問7 テストの網羅性

データが昇順に並ぶようにリストへデータを挿入するサブルーチンを作成した。このサブルーチンのテストに用いるデータの組合せのうち,網羅性の観点から適切なものはどれか。ここで,データは左側から順にサブルーチンへ入力する。

問7 の解答と解説を表示

問7 の解答と解説

【答え】

「リストへのデータの挿入」という処理は,リストの状態やデータの挿入位置によって,次のように区別することができる。

  1. 空のリストへの挿入
  2. リストの先頭への挿入
  3. リストの末尾への挿入
  4. リストの途中への挿入

「3, 1, 4, 2」というテストデータを順番にリストに挿入する際の処理は,以下のとおり,a. ~ d. の処理を網羅できる。

  • 3 の挿入 → a. を実行
  • 1 の挿入 → b. を実行
  • 4 の挿入 → c. を実行
  • 2 の挿入 → d. を実行

問8 プログラムの正当性を検証する手法

プログラム実行中の特定の時点で成立すべき変数間の関係や条件を記述した論理式を埋め込んで,そのプログラムの正当性を検証する手法はどれか。

問8 の解答と解説を表示

問8 の解答と解説

【答え】

アサーションチェックは,プログラムの適切な箇所に,変数間に成立すべき条件といった「プログラムの正当性を証明する命題」を挿入して,プログラム実行時にその命題である条件が成立するかを検証するプログラムの検査手法の一つである。

アサーション (assertion) とは,表明,断言,主張などの意味を持つ英単語。

プログラミング言語の仕様・機能の一部や開発支援ツールとしてこれを実行時に自動的にチェックする仕組みが提供されている場合があり,これをアサーションチェッカ (assertion checker) という。

コード追跡
ソースコード上の処理の流れを追いながらエラーを検出する手法。トレースと同義。
スナップショットダンプ
プログラム中に埋め込まれたデバッグ命令を実行するごとに,指定したメモリやレジスタの内容を出力する手法
テストカバレッジ分析
テスト対象となる全経路のうち,どの程度テスト(網羅)できたかを計測して分析する手法

問9 リグレッションテスト

組込みシステムのソフトウェア開発におけるリグレッションテストの役割として,適切なものはどれか。

問9 の解答と解説を表示

問9 の解答と解説

【答え】

リグレッションテスト(退行テスト)は,システムやソフトウェアの修正を行ったときに,その修正が他の機能に影響を及ぼしていないかどうかを検証するテストである。修正前に使用したテストデータを用いてテストを行い,テスト結果が修正前に実施したテスト結果と同じになることなどを確認する。

アはシステムテスト,イは単体テスト,ウはシミュレーションテストである。

問10 ソフトウェアライフサイクルプロセスに基づいて実施するシステム開発

ソフトウェアライフサイクルプロセスに基づいて実施するシステム開発において,次の実施条件に従って行うテストはどれか。

[実施条件]
① テストの対象
  • 構成部品(ユニット,コンポーネント)を結合したソフトウェア品目
② テスト結果の評価時に考慮する基準
  • ソフトウェア品目への要求事項に対するテスト網羅性
  • システム結合及びテストの実現可能性
問10 の解答と解説を表示

問10 の解答と解説

【答え】

ソフトウェア適格性確認テストは,ソフトウェア要件定義で定義したソフトウェア適格性要件に従って行い,ソフトウェアが要件どおりに実現されているかを検証する。

問11 バグ管理図

ソフトウェアのテスト工程において,バグ管理図を用いて,テストの進捗状況とソフトウェアの品質を判断したい。このときの考え方のうち,最も適切なものはどれか。

問11 の解答と解説を表示

問11 の解答と解説

【答え】

バグ管理図は,検出したバグの累積数や未消化のテストの項目数をテスト時間に伴ってプロットしたグラフである。テストが順調に進んだ場合の予測に対し,実績をプロットすることで,テスト工程によって生じる様々な問題を把握することができる。

テスト項目消化の累積件数,バグ摘出の累積件数及び未解決バグの件数の全てが変化しなくなった場合は,停滞型に分類される。この場合,解決困難なバグに直面している状況が考えられるが,単にテスト担当者が不慣れでテストが進んでいないという状況も考えられる。

問12 人工知能に関するテスト手法

ある通信販売事業者は,人工知能技術を利用して人間のように受け答えする,Web のチャットをインタフェースとしたユーザサポートシステムを開発している。テスト工程では,次の方法でテストする手法を採用した。このような,人工知能に関するテスト手法を何というか。

[テストの方法]
  • 判定者は,このシステムと人間の二者を相手にする自然言語によるチャットを行う。このとき,判定者はどちらが人間なのかは知らされていない。
  • 判定者が一連のチャットを行った後に,チャットの相手のどちらがこのシステムで,どちらが人間かを判別できるかどうかを確認する。
問12 の解答と解説を表示

問12 の解答と解説

【答え】

チューリングテストは,数学者アラン・チューリングが考案した「システムが人間と区別できないほど人間的であるかどうか」を判断するための手法である。

アラン・チューリング
写真 アラン・チューリング
(出典)ウィキペディア

システム,人間,テストを行う人間(判定者)を用意する。判定者は,どちらがシステムか人間かが分からない状態で両者に対して話しかけ,会話の内容のみから,どちらがシステムであるかを判断する。

実験計画法
複数の条件がある場合,直交表を使用して依存関係がない条件を明らかにし,必要十分な条件の組合せだけを割り出してテストする品質管理の代表的な統計手法
ファジング
機械的に生成した,問題を引き起こしそうな入力データをソフトウェアに与え,その応答や挙動を観察することで,ソフトウェアの脆弱性を見つける検査手法
ロードテスト(負荷テスト)
システムに想定される負荷をかけて,性能や耐久性を計測する手法

問13 KPT における三つの視点

アジャイル開発手法の一つであるスクラムを適用したソフトウェア開発プロジェクトにおいて,KPT 手法を用いてレトロスペクティブを行った。KPT における三つの視点の組みはどれか。

問13 の解答と解説を表示

問13 の解答と解説

【答え】

アジャイル開発でよく用いられるスクラムは,開発チームの権限が強く,共通のゴールに向かって開発チームが一体となって働くことを重視する手法である。レトロスペクティブ(振りかえり)は,開発チームにおいて,チームそのものやチームの活動を振り返る活動のことで,アジャイル開発のスクラムにおける重要な作業である。レトロスペクティブの実施方法の一つである KPT 手法は,以下の流れで振り返る。

  1. 各メンバが良いことを挙げる。
  2. 各メンバが悪いことを挙げる。(悪いことよりも良いことを先に挙げることが重要)
  3. ディスカッションによって,良いことと悪いことを,Keep(継続)と Problem(課題)に振り分ける
  4. Problem から Try(改善)を生み出す。

よって,KPT の三つの視点は,Keep,Problem,Try となる。

問14 UML の図

UML の図のうち,業務要件定義において,業務フローを記述する際に使用する,処理の分岐や並行処理,処理の同期などを表現できる図はどれか。

問14 の解答と解説を表示

問14 の解答と解説

【答え】

アクティビティ図は UML で定義されている図解技法のひとつで,システムの振舞いを流れ図形式で表現する。処理の同期や,条件による分岐が表現できる。

クラス図
オブジェクトに共通する性質をクラスとして定義し,各クラス間の汎化関係や集約関係を表現する図
状態マシン図
時間経過や状態変化による状態の変化を表す図。リアルタイムシステムの分析などに用いられる。
ユースケース図
ユーザや外部システムがシステムの機能をどのように利用するかをシナリオに基づいて記述する図

問15 ランニングロイヤリティ

知的財産権使用許諾契約の中で規定する,ランニングロイヤリティの説明はどれか。

問15 の解答と解説を表示

問15 の解答と解説

【答え】

知的財産権使用契約とは,知的財産権を利用させることを許諾し,その相手から受け取る対価の有無や方法を取り決める契約である。知的財産には,著作権や特許権,意匠権,商標権などがあり,著作権の対象には文芸,美術,音楽,ソフトウェアなどがある。

対価である料金(ロイヤリティ)は,契約時に一括で支払う場合と,使用の実績に応じて一定期間ごとに支払う場合がある。この実績に応じて額が決まる料金をランニングロイヤリティという。ランニングロイヤリティは,売上高と設定した実施料率を掛け合わせる両率法や,単価を設定する従量法などで算出する。

問16 グラントバック

グラントバックの説明はどれか。

問16 の解答と解説を表示

問16 の解答と解説

【答え】

ライセンスを受けた者が,ライセンスを与えた者に対して,特許技術を改良して新たに取得した特許の実施を許諾することを,グラントバックという。ライセンスを受けた者からライセンスを与えた者が,改良技術の恩恵を受けることを意味する。

アはクロスライセンス,イはライセンスフリー,ウはアサインバックの説明である。

問17 ディープラーニング

ディープラーニングに該当するものはどれか。

問17 の解答と解説を表示

問17 の解答と解説

【答え】

ディープラーニング (deep learning) とは,ニューラルネットワーク(NN:Neural Network)を用いた機械学習システムのうち,中間層(隠れ層)が複数のシステムを利用するもの。広義にはこれを NN 以外の手法に応用したもの(深層強化学習など)を含む。画像処理に強く精度が高いため近年急激に注目が高まっている。

問18 プロセッサの構成要素

図はプロセッサによってフェッチされた命令の格納順序を表している。a に該当するプロセッサの構成要素はどれか。

プロセッサによってフェッチされた命令の格納順序
問18 の解答と解説を表示

問18 の解答と解説

【答え】

命令レジスタ (instruction register) とは,マイクロプロセッサ (MPU/CPU) 内部の高速な記憶装置であるレジスタの一種で,実行する命令の内容を格納するものである。

プロセッサによってフェッチされた命令の格納順序

問19 ページング方式の仮想記憶

ページング方式の仮想記憶において,主記憶の 1 回のアクセス時間が 300 ナノ秒で,主記憶アクセス 100 万回に 1 回の割合でページフォールトが発生し,ページフォールト 1 回当たり 200 ミリ秒のオーバヘッドを伴うコンピュータがある。主記憶の平均アクセス時間を短縮させる改善策を,効果の高い順に並べたものはどれか。

[改善策]
  1. 主記憶の 1 回のアクセス時間はそのままで,ページフォールト発生時の 1 回当たりのオーバヘッド時間を $\displaystyle \frac{1}{5}$ に短縮する。
  2. 主記憶の 1 回のアクセス時間を $\displaystyle \frac{1}{4}$ に短縮する。ただし,ページフォールトの発生率は 1.2 倍となる。
  3. 主記憶の 1 回のアクセス時間を $\displaystyle \frac{1}{3}$ に短縮する。この場合,ページフォールトの発生率は変化しない。
問19 の解答と解説を表示

問19 の解答と解説

【答え】

改善策 a,b,c の主記憶アクセス 100 万(1 × 106)回にかかる所要時間を求める。

改善策 a
  • 主記憶アクセス 1 回の時間が 300 ナノ秒(3 × 10-4 ミリ秒)
  • ページフォールトの発生回数 1 回
  • ページフォールト 1 回当たりのオーバヘッド 40 ミリ秒
所要時間 = 1 × 106 × 3 × 10-4 + 1 × 40 = 300 + 40 = 340 [ミリ秒]
改善策 b
  • 主記憶アクセス 1 回の時間が 75 ナノ秒(0.75 × -4 ミリ秒)
  • ページフォールトの発生回数 1.2 回
  • ページフォールト 1 回当たりのオーバヘッド 200 ミリ秒
所要時間 = 1 × 106 × 0.75 × 10-4 + 1.2 × 200 = 75 + 240 = 315 [ミリ秒]
改善策 c
  • 主記憶アクセス 1 回の時間が 100 ナノ秒(1 × 10-4 ミリ秒)
  • ページフォールトの発生回数 1 回
  • ページフォールト 1 回当たりのオーバヘッド 200 ミリ秒
所要時間 = 1 × 106 × 1 × 10-4 + 1 × 200 = 100 + 200 = 300 [ミリ秒]

以上より,改善策を,効果の高い準に並べると,c,b,a である。

問20 システムの信頼性

ホストコンピュータとそれを使用するための 2 台の端末を接続したシステムがある。ホストコンピュータの故障率を $a$,端末の故障率を $b$ とするとき,このシステムが故障によって使えなくなる確率はどれか。ここで,端末は 1 台以上が稼働していれば,通信回線など他の部分の故障は発生しないものとする。

問20 の解答と解説を表示

問20 の解答と解説

【答え】

システムが故障によって使えなくなる確率は,次式で求めることができる。

使用できない確率 = 1 - コンピュータ稼働率 × 端末が 1 台以上稼働している確率

ホストコンピュータの故障率を $a$ とすると,ホストコンピュータの稼働率は $1-a$ である。端末の故障率を $b$ とすると,端末が 1 台以上稼働している確率は $1-b^2$ である。よって,システムが故障によって使えなくなる確率は,次式となる。

使用できない確率 = $1-(1-a)(1-b^2)$

問21 完全関数従属性を満たすための条件

関数従属 {A, B} → C が完全関数従属性を満たすための条件はどれか。

問21 の解答と解説を表示

問21 の解答と解説

【答え】

完全関数従属性とは,属性集合 $Y$ が属性集合 $X$ に関数従属しているとき,属性集合 $X$ のいかなる真部分集合 $x$ に対しても属性集合 $Y$ が関数従属していない関数従属性である。

関数従属 {A, B} → C の場合,{A, B} の真部分集合である A,B のいずれに対しても C が関数従属していないこと,つまり,「A → C 及び B → C のいずれも成立しないこと」が完全関数従属性を満たす条件となる。

問22 IP ネットワークに統合する場合の接続構成

図は,既存の電話機と PBX を使用した企業内の内線網を,IP ネットワークに統合する場合の接続構成を示している。図中の a ~ c に該当する装置の適切な組合せはどれか。

既存の電話機と PBX を使用した企業内の内線網を,IP ネットワークに統合する場合の接続構成
a b c
PBX VoIP ゲートウェイ ルータ
PBX ルータ VoIP ゲートウェイ
VoIP ゲートウェイ PBX ルータ
VoIP ゲートウェイ ルータ PBX
問22 の解答と解説を表示

問22 の解答と解説

【答え】

既存の電話機を使用した企業内 PBX の内線網を,IP ネットワークに統合して,IP 電話として使用する場合の接続構成である。

まず,電話機に接続する a は PBX となる。次に,PBX の音声データを IP パケットに変換して IP ネットワークに送出したり,受信した IP パケットを連続した音声データに復元したりする機能をもつ VoIP ゲートウェイが b に該当する。さらに,IP ネットワークとのインタフェースに位置して,IP パケットの IP アドレスを識別してルーティングを行うルータが c に該当する。

既存の電話機と PBX を使用した企業内の内線網を,IP ネットワークに統合する場合の接続構成は,下図で表される。

既存の電話機と PBX を使用した企業内の内線網を,IP ネットワークに統合する場合の接続構成
図 既存の電話機と PBX を使用した企業内の内線網を,IP ネットワークに統合する場合の接続構成

問23 ディジタル署名のあるソフトウェア

ディジタル署名のあるソフトウェアをインストールするときに,そのソフトウェアの開発元又は発行元を確認するために使用する証明書はどれか。

問23 の解答と解説を表示

問23 の解答と解説

【答え】

コードサイニング証明書は,ソフトウェアにディジタル署名を行う電子署名用の証明書である。ソフトウェアの配布元を認証し,なりすましや内容の改ざんなどがされていないことを保証する。ユーザはこれによって,ソフトウェアの開発元または発行元を確認することができる。

EV SSL 証明書
SSL の証明書で,証明書申請法人情報と,サイトの所有者・運営者情報を提供する。
クライアント証明書
デバイスにユーザ(クライアント)の証明書をインストールし,そのユーザが正規の利用者であることを証明する。
サーバ証明書
通信元の Web サーバの所有者を証明する。

問24 共通鍵暗号方式

暗号技術のうち,共通鍵暗号方式はどれか。

問24 の解答と解説を表示

問24 の解答と解説

【答え】

共通鍵暗号 (shared key cryptosystem) とは,暗号化と復号に同じ暗号鍵を用いる暗号方式。暗号文の送信者と受信者で同じ鍵を共有する必要があり,あらかじめ安全な経路で鍵を共有しなければならない。

代表的な共通鍵暗号方式として,1977 年に米 IBM 社が開発し米政府標準に採用された DES(Data Encryption Standard)や,その後継として 2000 年に米政府標準となった AES(Advanced Encryption Standard / 暗号アルゴリズムとしては Rijndael),ストリーム暗号の標準的な方式として広く普及している RC4(ARCFOUR)などがよく知られる。

問25 セキュア OS

セキュア OS を利用することによって期待できるセキュリティ上の効果はどれか。

問25 の解答と解説を表示

問25 の解答と解説

【答え】

アクセス制御には,システムの権限で行う強制アクセス制御と,ファイル又はディレクトリの所有者が行う任意アクセス制御がある。セキュア OS では,強制アクセス制御の設定によって,ファイルの更新を禁止することができ,ファイルの改ざんを防止できる。

アはシングルサインオンで期待できる効果,イは WAF (Web Application Firewall) で期待できる効果,エは二要素認証で期待できる効果である。

inserted by FC2 system