thumbnail 一問一答の一歩

問題1

計画→設計→テストを一回だけで済ませるシステム設計方法

ウォーターフォールモデルが正解です

water(ウォーター)は「水」、fall(フォール)は「落ちる」という意味を持つ英単語です。
水が落ちるということは滝をイメージしやすく、滝な一本通行であることから、原則前の手順に戻らない作成方法のことを言います。
ウォーターフォールモデルは比較的規模の大きいシステムの作成で採用されることが多いです。
アジャイル開発モデルは、「計画→設計→テスト」を複数回繰り返すシステム設計方法です。インクリメンタルモデルは全体を作ってから部分を作るシステム設計方法です。

問題2

「計画→設計→テスト」を複数回繰り返すシステム設計方法

アジャイル開発モデルが正解です

Agile(アジャイル)には「俊敏な」という意味があります。「計画→設計→テスト」のサイクルを複数回繰り返すため、「計画→設計→テスト」のサイクルを一回だけで済ませるウォータ-フォ-ルモデルと比べると1サイクルのスピードは早く、変化が大きいことから俊敏であるといえます。

問題3

簡単な部分から作り,より複雑にしていくシステム設計方法

エボリューショナルモデルが正解です

Evolution(エボリューション)には「進化」という意味を持っています。
最初はシンプルな機能だけなのですが、そこから細かい機能を次第に追加することで進化させていき、完成系に近づけていくという考え方です。
ちなみに他の選択肢のウォーターフォールモデルは計画→設計→テストを一回だけで済ませるシステム設計方法です。アジャイル開発モデルは「計画→設計→テスト」を複数回繰り返すシステム設計方法です。

問題4

全体を作ってから部分を作るシステム設計方法

インクリメンタルモデルが正解です

increce(インクリ-ス)は「増加する」という意味の英単語,mentは「~の状態」という動詞を名詞化に変化させる接尾辞、alは名詞を形容詞化させる接尾辞です。
これらの意味を合わせた単語がインクリメンタルであり、「増加している」という意味を示します。
そのため、最初は実行して終了できるだけの必要最小限の機能から開始して、徐々に機能を追加していく開発の仕方を行います。
エボリューショナルモデルも最初に一通り作り,完成系に近づけていくことは共通しているのですが、こちらは機能を追加するのではなく、より複雑なものにしていくより詳細化していくのでものであるので謝りです。
また、プロトタイプモデルも言葉がややこしいですが、こちらは完成品が先にあり、それを利用者に合わせてカスタマイズする設計技法です。

問題5

製品を作成し、利用者に合わせてカスタマイズする設計技法

プロトタイプモデルが正解です

Protype(プロトタイプ)には「試作品」という意味があります。
試作品が予め存在しており、試作品を元にしてお客さん向けにカスタマイズするような仕組みにをプロトタイプモデルでは取られています。
また、他の選択肢のインクリメンタルモデルは全体を作ってから部分を作るシステム設計方法です。エボリューショナルモデルは簡単な部分から作り,より複雑にしていくシステム設計方法です

問題6

プログラム記述よりも前にテストケ-スを作成すること

テスト駆動開発が正解です

駆動とは「動力を与えて動かすこと」という意味を持っています。
そのため、テスト駆動開発はテストの内容(試験仕様書)が動力となってプログラム製造を行う事であると推測できます。 <テスト内容を元に開発を行うため、開発後のテストの効率が良くなります。
テスト駆動開発とそれ以外では具体的には以下のように作成されています。
○通な順番で常の開発

  • 1.要件定義
  • 2.基本設計書
  • 3.詳細設計書
  • 4.製造(プログラム作成)
  • 5.試験仕様書作成
  • 6.試験実施

○テスト駆動開発
  • 1.要件定義
  • 2.基本設計書
  • 3.詳細設計書
  • 4.試験仕様書作成
  • 5.製造(プログラム作成)
  • 6.試験実施

問題7

プログラム内の数字を見ること

インスペクタが正解です

プログラムのエラーが起こった時に、おかしい部分を特定してバグを取り除く(デバッグする)ためにはプログラム内で数字がどのように変わっていくかをみていくことが大事になります。
なお、自分で確認する方法ではプログラム言語ごとに異なりますが、Javascriptならばconsole log(変数名),PHPならばvar_dump()の関数などがあり、よく使用するので、言語を覚える際には同じ機能のものを早めに覚えるといいでしょう。
なおインスペクションはモデレータがレビューをすること、インヘリタンスはオブジェクト指向における継承の別名です。

問題8

プログラムとテストを繰り返すこと

イテレーションが正解です

Iteration(イテレ-ション)は「反復」という意味を持ち、itetate(イテレイト)という「反復する」という英単語が名詞化した英単語です。
プログラムとテストを繰り返すのは主にアジャイル開発で使われる手法であり、手戻りが少ないために問題点を素早く直すことができます。
また、他の選択肢も両方とも完成したプログラムを解析することは共通していますが、やっていることが違います。インスペクタはプログラム内の数字を見ることなのでテストの手段の一つです。また、リバースエンジニアリングは解析の目的は仕組みを割り出すことなのでテストとは異なっています。

問題9

外からお見た目を変えずにプログラムを改善すること

リファクタリングが正解です

Reは「もう一度」という意味を表す接頭辞であり、Factは「事実」という意味を持つ英単語です。
Refactoringはこの2つが組み合わさった単語でです。そのためコンピュータの世界では、「事実をもう一度再定義するもの」というような意味になると私は解釈しており、そこから既に事実としてある完成品を見た目や機能はそのまま変えずにコ-ドを見やすくすることの意味として、使用されています。

問題10

一度出来上がったものを再構築すること 又は、ビシネスプロセスを根本的に見直すこと

リエンジニアリングが正解です

reは「もう一度」という意味を表す接頭辞、engneerは「技術者」という意味を表す英単語です。
リバ-スエンジニアリングはテクノロジ分野とマネジメント分野で別の意味を持つので片方しか知っていないとなると、もう一つの分野できかれたときに正答を真っ先に消しかねないので両方対応出来るようにしましょう。
また、他の選択肢のリバースエンジニアリングも言葉は似ていますがこちらは完成品を解析することで仕組みを割り出すことです。
ちなみにリファクタリングは外からお見た目を変えずにプログラムを改善することです。

問題11

プロセス成熟度モデルを用いた改善

Capablity matarial modelが正解です

Capablity(ケイパビリティ)は「できること、能力」、matarial(マタリアル)は「材料」、modelはそのままモデルを示す英単語です。
既にできることを材料として組み合わせてどのように組み合わせると今の状態を改善することができるかを示したものと理解すると、名称と意味がつながりやすくなります。