IT初心者のための基本情報ではじめる 開発技術 入門


2023-02-13 更新

この連載は、これから IT の勉強をはじめる人を対象としたものです。 基本情報技術者試験の出題分野ごとに、仕組み、主要な用語、および過去問題を紹介します。 受験対策としてだけでなく、 IT の基礎知識を幅広く得るために、ぜひお読みください。

今回は、開発技術 の分野を取り上げます。

コンピュータシステムの開発の流れ

開発技術の分野は、テーマがとても幅広いのですが、開発の流れを知ることで、全体像をつかめます。 多くの場合に、コンピュータシステムの開発の流れには、図 1 に示した「要件定義」「設計」「実装」「テスト」「導入」「保守」という工程があります。 そして、それぞれの工程に、様々な開発技術があるのです。

図 1 コンピュータシステムの開発の流れ

要件定義 とは
ユーザーが何をしたいかを明確にすることです。
設計 とは
要件定義を実現する方法を明確にすることです。
実装 とは
設計に基づいてプログラムを作ることです(ハードウェアを作ることもあります)。
テスト とは
プログラムの動作を確認することです。
導入 とは
テストに合格したプログラムをユーザーの環境に配置することです。
保守 とは
ユーザーの環境でプログラムを運用し、必要に応じて機能の変更や追加を行うことです。

開発モデルの種類と特徴

コンピュータシステムの開発は、プログラムという形がないものを作ることなので、なかなか管理が難しいものです。

様々な管理技法が検討されていて、「ウォーターフォールモデル」「プロトタイピングモデル」「段階的モデル(インクリメンタルモデル)」など、いくつかの開発モデルが提唱されています。 これらは、 「要件定義」「設計」「実装」「テスト」「導入」「保守」という工程の進め方の規範となるものです。

ウォーターフォールモデル

ウォーターフォールモデルは、「ひとつの工程の作業がすべて終わってから次の工程を開始する」という進め方です。 部分的に先に進むことをせずに、全体で進捗を合わせるのです。

ウォーターフォール( waterfall )は、「滝」という意味です。 滝から落ちた水が後戻りしないように、次の工程に進んだら前の工程に後戻りしないので、進捗の管理がしやすくなります。

図 2 に、ウォーターフォールのイメージを示します。

図 2 ウォーターフォールモデルのイメージ

プロトタイピングモデル

プロトタイピングモデルは、「要件定義の後で、プログラムの試作品( prototype )を作ってユーザーに使ってもらい、ユーザーからの要望を聞いて要件定義を見直してから、それ以降の工程を開始する」という進め方です。

要件定義の工程に多くの時間が必要になりますが、ユーザーの要望が明確になるので、後の工程で仕様変更が生じることが少なくなります

図 3 にプロトタイピングモデルのイメージを示します。

図 3 プロトタイピングモデルのイメージ

段階的モデル

段階的モデルは、「プログラム全体をいくつかの部分に分割して、それぞれの部分ごとに開発してリリースする」という進め方です。

すべての機能がそろう前に、重要な機能だけでソフトウェアを使い始めたい、という要望がある場合に適した開発モデルです。

図 4 に段階的モデルのイメージを示します。

図 4 段階的モデルのイメージ

開発技術の主要な用語

基本情報技術者試験のシラバス(知識・技能の細目) Ver.8.0 では、開発技術の分野が

  • システム開発技術
  • ソフトウェア開発管理技術

に分類されています。

以下は、シラバスに示された用語の中で、試験によく出るものです。 赤色で示した用語は、この記事の中で取り上げています。

システム開発技術の主な用語
レスポンスタイム、スループット、機能要件非機能要件、 DFD 、 E-R 図、 UML 、モジュール分割、クラス、インスタンス、決定表(デシジョンテーブル)、バグ曲線、ホワイトボックステスト、ブラックボックステスト、トップダウンテスト、ボトムアップテスト、ドライバ、スタブ、回帰テスト(リグレッションテスト)、命令網羅、条件網羅、判定条件網羅、限界値分析法、同値分析法、リバースエンジニアリング
ソフトウェア開発管理技術の主な用語
ウォーターフォールモデルプロトタイピングモデル段階的モデル、アジャイル、 XP (エクストリームプログラミング)、スクラム

開発技術の過去問題

開発技術の分野の過去問題を 3 問ほど紹介しましょう。

コンピュータシステムの開発の流れに関する問題

最初は、コンピュータシステムの開発の流れに関する問題です。

選択肢の中から、要件定義プロセスで実施すべきことを選んでください。 プロセス( process )とは、工程のことです。

問 66 平成 29 年度 春期

企画,要件定義,システム開発,ソフトウェア実装,ハードウェア実装,保守から成る一連のシステム開発プロセスにおいて,要件定義プロセスで実施すべきものはどれか。

事業の目的,目標を達成するために必要なシステム化の方針,及びシステムを実現するための実施計画を立案する。
システムに関わり合いをもつ利害関係者の種類を識別し,利害関係者のニーズ,要望及び課せられる制約条件を識別する。
目的とするシステムを得るために,システムの機能及び能力を定義し,システム方式設計によってハードウェア,ソフトウェアなどによる実現方式を確立する。
利害関係者の要件を満足するソフトウェア製品又はソフトウェアサービスを得るための,方式設計と適格性の確認を実施する。

この問題では、コンピュータシステムの開発の流れを「企画」「要件定義」「システム開発」「ソフトウェア実装」「ハードウェア実装」「保守」という工程に分けています。

要件定義は、ユーザーが何をしたいかを明確にすることですから「利害関係者のニーズ、要望及び課せられる制約条件を識別する」とある選択肢イが適切です。

選択肢アは、企画で実施することです。 選択肢ウと選択エは、設計で実施することですが、この問題では、要件定義の後にあるシステム開発で実施することです。 したがって、選択肢イが正解です。

機能要件と非機能要件に関する問題

次は、機能要件と非機能要件に関する問題です。

コンピュータシステムへの要件は、機能要件非機能要件に分類できます。 ここでは、選択肢の中から、非機能要件であるものを選んでください。

問題文の中にある「 共通フレーム 2007 」とは、ソフトウェア、システム、サービスに関係する人たちが「同じ言葉を話す」ことを目的として、情報処理推進機構によって作成された共通の枠組み(書籍化されています)です。

問 67 平成 21 年度 秋期

共通フレーム2007 によれば,非機能要件に該当するものはどれか。

新しい業務の在り方をまとめた上で,業務上実現すべき要件
業務の手順や入出力情報,ルールや制約などの要件
業務要件を実現するために必要なシステムの機能に関する要件
ソフトウェアの信頼性,効率性など品質に関する要件
機能要件 とは
システムが持つ機能への要件です。
「システムの機能に関する要件」とある選択肢ウが機能要件です。
非機能要件 とは
機能以外の要件であり、性能、信頼性、保守性、移植性、セキュリティなどへの要件です。
「信頼性、効率性など品質に関する要件」とある選択肢エが非機能要件です。

選択肢アと選択肢イは、コンピュータシステムに対する要件ではありません。 したがって、正解は選択肢エです。

開発モデルに関する問題

最後は、開発モデルに関する問題です。 選択肢の中から、ウォーターフォールモデルの説明を選んでください。

問 45 平成 21 年度 春期

システム開発におけるウォータフォールモデルの説明はどれか。

一度の開発ですべてを作るのではなく,基本的なシステムアーキテクチャの上に機能の優先度に応じて段階的に開発する。
開発工程を設計,実装,テストなどに分け,前の工程が完了してから,その成果物を使って次の工程を行う。
試作品を作り,利用者の要求をフィードバックして開発を進める。
複雑なソフトウェアを全部最初から作成しようとするのではなく,簡単な部分から分析,設計,実装,テストを繰り返し行い,徐々に拡大していく。
選択肢ア

「機能の優先度に応じて段階的に開発する」

とあるので、段階的モデルの説明です。

選択肢イ

「前の工程が完了してから、その成果物を使って次の工程を行う」

とあるので、ウォーターフォールモデルの説明です。

選択肢ウ

「試作品を作り」

とあるので、プロトタイピングモデルの説明です。

選択肢エ
これまでに説明しませんでしたが、スパイラルモデル( spiral = らせん)です。

したがって、正解は選択肢イです。

今回は「開発技術」の分野のポイント、基本的な用語、技法、および過去問題を紹介しました。

次回は、「マネジメント」その 1 として「プロジェクトマネジメント」の分野を取り上げます。

それでは、またお会いしましょう!

label 関連タグ
科目A試験は、
免除できます。
独習ゼミで科目A試験を1年間免除して、科目B試験だけに集中しましょう。
免除試験を受けた 74.9% の方が、
科目A免除資格を得ています。
科目A免除試験 最大 2 回の
受験チャンス !
info_outline
科目A免除試験 最大 2 回の
受験チャンス !
詳しく見てみるplay_circle_filled
label これまでの『基本情報ではじめる IT の勉強』の連載一覧 label 著者