日々学習〜人の役に立てるITエンジニアを目指して〜

ITエンジニアが日々学んだ事を書き記します

【システムアーキテクト午前Ⅱ】ソフトウェア開発の効率向上

f:id:taniyutt:20220414230120p:plain













銀行の勘定系システムなどのような特定の分野のシステムに対して、業務知識、再利用部品、ツールなどを体系的に整備し、再利用を促進することによって、ソフトウェア開発の効率向上を図る活動や手法はどれか。

ア コンカレントエンジニアリング
イ ドメインエンジニアリング
ウ フォワードエンジニアリング
エ リバースエンジニアリング







答:イ
ドメインエンジニアリング:同業種の企業には似た業務があるので、業務システムにも共通点が多くなるはずである。そこでドメイン(業務の分野や領域)を対象に、知識を蓄積するとともに、ソフトウェアの再利用を図ることにより、ソフトウェア開発効率を高める手法。

【システムアーキテクト午前Ⅱ】KPT手法

f:id:taniyutt:20220413224345p:plain













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

ア Kaizen、Persona、Try
イ Keep、Problem、Try
ウ Knowledge、Persona、Test
エ Knowledge、Practice、Team







答:イ
KPT手法はKeep、Problem、Tryの三つの視点で振り返りを行う方法。これはシステム開発に限らず、様々な場面で用いることができる。
・Keep・・・良かったこと、維持すること、引き続き取り組むこと
・Problem・・・悪かったこと、課題、問題点
・Try・・・試すこと、Keepに対する改善案、Problemに対する解決案

【システムアーキテクト午前Ⅱ】スクラムでプロセス改善を促進するアクティビティ

f:id:taniyutt:20220411214038p:plain















スクラムを適用したアジャイル開発において、スクラムチームで何がうまくいき、何がうまくいかなかったのかを議論し、継続的なプロセス改善を促進するアクティビティはどれか。

ア スプリントプランニング
イ スプリントレトロスペクティブ
ウ スプリントレビュー
エ デイリースクラム







答:イ
スプリントレトロスペクティブ:スプリントで実施したことを、スクラムチーム内で振り返り、開発プロセスやコミュニケーションの活動の改善案を考えて実施する。

【システムアーキテクト午前Ⅱ】ユースケース駆動開発

f:id:taniyutt:20220407221512p:plain



















ユースケース駆動開発の利点はどれか。

ア 開発を反復するので、新しい要求やビジネス目標の変化に柔軟に対応しやすい。
イ 開発を反復するので、リスクが高い部分に対して初期段階で対処しやすく、プロジェクト全体のリスクを減らすことができる。
ウ 基本となるアーキテクチャをプロジェクトの初期に決定するので、コンポーネントを再利用しやすくなる。
エ ひとまとまりの要件を1単位として設計からテストまでを実施するので、要件ごとに開発状況が把握できる。







答:エ
ユースケースとはシステムを外部から見たとき、そこに含まれる個々の機能要件のこと。ユースケース駆動開発ではユースケース単位で設計からテストを行うため、プロジェクトが管理しやすくなり、ユースケースごとに進捗状況を把握できるなどの利点がある。
アはアジャイル開発、イはスパイラルモデル、ウはアーキテクチャ中心設計の利点。

【システムアーキテクト午前Ⅱ】全国に分散しているシステムの保守

f:id:taniyutt:20220406225734p:plain




















全国に分散しているシステムの保守に関する記述のうち、適切なものはどれか。

ア 故障発生時に遠隔保守を実施することによって駆付け時間が不要になりMTBFは長くなる。
イ 故障発生時に行う是正保守によって、MTBFは長くなる。
ウ 保守センタを1か所集中から分散配置に変えて駆付け時間を短縮することによって、MTTRは短くなる。
エ 予防保守を実施することによって、MTTRは短くなる。







答:ウ
保守センタを各地に配置すれば、保守センタから現場に駆け付ける時間を短縮できるので、MTTR(平均修復時間、平均修理時間)は短くなる。

【システムアーキテクト午前Ⅱ】人工知能に関するテスト手法

f:id:taniyutt:20220405215010p:plain



















ある通信販売事業者は、人工知能技術を利用して人間のように受け答えする、Webのチャットをインタフェースとしたユーザサポートシステムを開発している。テスト工程では、次の方法でテストする手法を採用した。このような、人工知能に関するテスト手法を何というか。
[テストの方法]
・判定者は、このシステムと人間の二者を相手に自然言語によるチャットを行う。このとき、判定者はどちらがこのシステムで、どちらが人間なのかは知らされていない。
・判定者が一連のチャットを行った後に、チャットの相手のどちらがこのシステムで、どちらが人間かを判別できるかどうかを確認する。

ア 実験計画法
イ チューリングテスト
ウ ファジング
エ ロードテスト







答:イ
チューリングテストとは判定者が人間及びシステムを相手にやり取りを行って、システムの方を人間であると判定したら、システムが人間並みの振る舞いができたと判断する。提唱者である英国の数学者アラン・チューリングにちなむ。

【システムアーキテクト午前Ⅱ】探索的テスト技法

f:id:taniyutt:20220331224115p:plain




















探索的テスト技法の説明はどれか。

ア 起こり得る全ての条件と、それに対して実行すべき動作とを組み合わせた表に基づいてテストする技法。
イ 経験に基づいて、起こりがちなエラーを推測してテストケースを決定する技法。
ウ 経験や推測から重要と思われる領域に焦点を当ててテストし、その結果を基にした新たなテストケースを作成して、テストを繰り返す技法。
エ システムの取り得る状態と、状態を遷移させる事象又は条件を示した図に基づいてテストする技法。







答:ウ
探索的テスト技法は、経験ベーステスト技法の一種で、テスト実施時にテスト内容を決めながらテストを進める。エラーの可能性が低い箇所は簡単にテストを済ませ、不具合のありそうな箇所を重点的にテストするなど、メリハリを付けた対応ができる。そのためには、テスト担当者に十分な経験や知識が必要となる。