ソフトウェアの開発・運用・保守

ソフトウェア開発・運用・保守の知識確認問題

空欄だけ覚えただけでは、あまり意味がありません。

空欄の場所や質問の仕方が変わっても答えらえるようにしましょう。

ソフトウェア工学に関する

ソフトウェア工学は誰のために役に立つか?

A:ソフトウェアを開発するする人や開発を依頼するおよびをそれを利用する人

ソフトウェア工学はなぜ必要か?

A:開発されるソフトウェアの品質を確保するため

要求定義

ソフトウェアの開発において要求定義とはなぜ必要か?

A:どのようなソフトウェアを開発するかを明確にするため

要求モデルは開発するソフトウェアの動作を(A)する目的で作成する

A:検討

ユースケース図の特徴は、ソフトウェアの(A)をアクターの(B)と結びつけて整理できることである。

A:動作
B:役割

シーケンス図を作成することで、(A)を実現するのに関係するクラスの(B)を確認することができる。

A:ユースケース
B:連携

クラス図の特徴は、ソフトウェアが対象とする物事の(A)を性質と振る舞いで記述し、それらの(B)を整理できることである。

A:構造
B:関係性

要求モデルのパラダイムを知ることは、ソフトウェア開発で検討が必要な(A)を知ることにつながる。

A:要素

プロジェクトのはじめでは、主要な(A)と重要なエンティティーを明らかにしやすい(B)図を作成するのが良い。

A:機能
B:ユースケース



要求の確認

要求と(A)完全に一致しないのは、顧客が説明する要求にはシステムの範囲ではない(B)の物事が含まれていたり、システムの(C)に必要な物事が含まれていないからである。

A:要求仕様
B:環境
C動作

なぜ検証の他に妥当性確認が必要なのか?

A:説明が誤解を招く表現になっているかも知れないから

階層的な(A)は一つの基準で行われるため、その基準では表現できない特徴を捉えるために(B)を用いる

A:分解
B:ビュー

設計の中でも全体的な(A)を決定するのが分析工程である

A:構成

設計は機能要求、品質要求、外的制約を全てを考慮しなければならないため、創造的な作業を(A)に実施する必要があります。

A:反復的

(A)によって設計されるシステムは(B)なソフトウェアユニットの組み合わせとして構成される

A:分解
B:階層的

ソフトウェアユニットを定義する際には、(A)の度合いが高くなるようにそれぞれの機能の(B)を無くすことが大切である。

A:モジュール
B:重複



アーキテクチャー

アーキテクチャーとは、ソフトウェアの動作や(A)を決定する全体構造のことである。

A:性質

アーキテクチャーの様式であるPipe-Filterについて説明せよ。

A:・同じデータに対して複数の異なる処理を行うのに適している
・処理内容が重複しない処理が複数ある場合に適している

アーキテクチャーの様式であるClient-Serverについて説明せよ。

A:・複数の要求を一元管理したい場合に適している
・複数のクライアントが同じ情報に依存する場合に適している

アーキテクチャーの様式であるPeer-to-Peerについて説明せよ。

A:サーバーを固定しないことで柔軟性を発揮する

アーキテクチャーの様式であるPublish-Subscribeについて説明せよ。

A:呼び出す側(publish)と呼び出される側(subscribe)が密接に関係しないことで効果を発揮する

アーキテクチャーの様式できるRepositoryについて説明せよ。

A:・データの状態がシステムの動作を左右するようなシステムに適している
・コンポーネントが増えレバ増えるほど効率の良いデータ構造を維持するのが難しい

アーキテクチャーの様式であるLayeringについて説明せよ。

A:内側の層と外側の層で責任範囲が分かれているのでコンポーネントが追加しやすい

ソフトウェアユニットは(A)されていればいるほど、その内容が(B)される可能性が低くなる。

A:一般化
B:変更

ソフトウェアユニットを利用するために引き渡すデータや命令が(A)ほどそれらの結合は(B)ため更新性は高まる

A:少ない
B:弱まる

システムの運用後に変更が見込まれる要求をソフトウェアユニットとして分離できれば、(A)影響が最小化され、(B)が高められる

A:直接的
B:更新性

ソフトウェアユニットの役割が変わった場合、(A)処理の変更だけで対応できるような構成であれば、(B)が変わらないた間接的影響を最小化できる。

A:内部
B:インターフェース



KWIC問題

KWICのシステムにおいて、将来的にノイズワードで始まる検索を除去するためにフィルターを行うモジュールの追加を見越す場合に最も費用対効果に優れた設計はどれか理由も含めて説明せよ。

A:Pipe-Filter

KWICをデータ抽象化で設計した場合、データと(A)が(B)されるためモジュール化の度合いが高まる。

A:操作
B:一体化

KWICを共有データ型で設計した場合、機能毎の分割が明確でデータの(A)が無いため効率が良い

A:受け渡し

if-else文を用いて、ある変数の値に応じて関連性のない処理を行うように設計されたモジュールの強度の種類は何か

A:論理的

Javaのプログラムで、あるクラスでの処理に必要なメソッドの呼び出し回数を2回から1回に減らすと(A)が(B)になる

A:結合度
B:下がる

KWICを暗黙的呼び出しで設計した場合、モジュールの(A)が減るため機能の(B)が用意になる。

A:依存関係
B:変更



モジュールの設計

システムで必要な全ての初期化処理を実施するように設計されたモジュール強度の種類は何か?

A:時間的

下記のJavaプログラムは、QuarteryPaymentとPaymentProcedureの(A)を表している。

A:合成

継承:既存のクラスの振る舞いを拡張したり上書きする

合成:小さなクラスを組み合わせて複合クラスを作る

Materialという抽象データ型を用いて(A)を抽象化することで、小麦粉、水、砂糖と行ったMaterialの(B)を属性に入れる値を変えることで表現できる。

A:オブジェクト
B:インスタンス

KWICのシステムにおいて、将来的に同じワードを含む検索をまとめて管理するため、データ構造の変更を見越す場合に最も費用対効果に優れた設計は何か

A:データ抽象化

アクターとしてのProcurementStaffは(A)であり、クラスとしてのProcurementStaffはその(B)である。

A:オブジェクト
B:抽象データ型

クラスをインスタンス化する際に発生する結合度を低減するのに役立つデザインパターンはどれか

A:Factory Method

アルゴリズムが不変な部分と振る舞いが変わりえる部分に分けられる場合に適用すると良いデザインパターンは何か

A:Template Method

どちらも実装を保留してインターフェースを定義できる仕組みであるが、(A)は部分的にメソッドを実装できる。(B)は全てのメソッドの実装を保留しなければならない

A:抽象クラス
B:インターフェース

KWICをPipe-Filter型で設計した場合、暗黙的呼び出しに比較して処理の(A)を明確に定義することができる。

A:順番

クラスの強度は、各メソッドで行われる処理の関連が(A)方が強いが、同じ(B)に対する処理の有無でその関連度合いを客観的に示すことができる

A:高い
B:変数

クラスの(A)の(B)が大きい場合、クラス階級が変わりやすくなり、結果として多くのコードを製造しテストする必要が発生する

A:子クラス
B:

(A)の(B)が大きい場合、属性とメソッドはより多くの親クラスから継承されるため、そのクラスを理解することが難しくなる

A:継承
B:深さ

異なるトレードオフを実現するアルゴリズムが複数ある場合に適用するとよいデザインパターンはどれか

A:Strategy

KWICのシステムにおいて、将来的に検索を並行処理するため、追加サーバーに検索処理を割り振るモジュールを追加する事が予想される場合にもっとも費用対効果に優れた設計はどれか

A:共有データ

(A)によって設計されるシステムは(B)なソフトウェアユニットの組み合わせとして構成される

A:分解
B:階層的



プログラムのテスト

年収額に応じて変動する所得税の計算を行うモジュールのブラックボックステストを行う。テストケースの作成方法としての方法はなにか答えよ

A:同値分割法と境界値分析

以前動作していた機能がコードの変更後も引き続き動作する事を確認する事を(A)という。

A:回帰テスト

不特定多数の宛先クラスに対して、それぞれの名前を知ることなくメッセージを送信することを実現するデザインパターンはどれか

A:Observer

ソフトウェアユニットを利用するために引き渡すデータや命令が(A)ほどそれらの結合は(B)ため更新性は高まる

A:少ない
B:弱まる

モジュールの動作がインターフェース仕様を満たしていることを確認することは(A)である。

A:ブラックボックステスト

一般的にモジュール間の結合度は(A)方がソフトウェアの性質として好ましい

A:弱い

年収額に応じて変動する所得税の計算を行うモジュールのホワイトボックステストを行う場合、(A)テストがもっともてきしている。

A:制御フロー

開発プロセスの選択に当たって考慮すべき点を3つあげよ

A:納期・求められる品質・課題の理解度

KWICシステムにおいて、将来的に同じワードを含む索引をまとめて管理するため、データ構造の変更を見越す場合に最も費用対効果に優れた設計はどれか

A:データ抽象化

別クラスの(A)を呼び出す回数が(B)ほど、将来の変更時に必要な変更範囲は小さくなる

A:メソッド
B:少ない

プロジェクトのスコープを計画・管理するための手法として、WBSがあります。WBSの役割と適切な説明をしなさい

A:・プロジェクトで実施する作業を網羅する
・スケジュール、体制、品質を管理する元資料になる
・プロジェクトで実施する作業の担当者を明確化する
・達成状況を評価するための指標になる

ソフトウェア開発おすすめ本