基本情報技術者の勉強 システムの開発手法
今回はシステムを開発する際に使われる手法として基本情報技術者試験によく出題されるものについて紹介していきたいと思います。
システム開発とは
システムの開発を行う際には、まず何よりも先にそのシステムに要求されるものは何かを明らかにしておかなければなりません。
例えば、そのシステムは顧客の管理をするため何か、従業員の管理をするためなのか、これはおおざっぱな例ですが、より鮮明にシステムに求められるものを明らかにしておかなければ、出来上がった時に「思っていたのと違う」なんてことになりかねません。
システムの要求を明らかにすることはとても重要な工程です。
要求事項が明らかになると、その要求を満たすシステムの設計に取り掛かっていきます。
システムがあらかた完成すると動作テスト、うまくいけばお客さんのもとに届くというわけです。
基本情報技術者によく出題されるシステムの開発手法は3つあります。
早速見ていきましょう。
ウォータフォールモデル
まずはウォーターフォールモデルについて紹介していきます。
ウォーターフォールモデルはもっとも古くからある開発手法です。
ウォーターフォールとは滝のことです。
滝は上から下に向かって流れていきます。
下から上に向かっては流れることができません。
ウォーターフォールモデルとは滝のように一方通行でシステムの開発を行っていく開発手法のことをさします。
つまり、要件定義、システム設計、プログラミング、テスト、と工程を順番に進めていくことに特徴があり、前の工程に戻って作業することは想定していません。
つまり、システムの開発中においてすでにプログラミング作業に取り掛かっているのにシステムの設計からやり直す、といったような後戻りを許さない開発手法です。
この開発手法は大規模なシステムを開発する際によく用いられます。
それぞれの工程が完了してから次の工程に進むため、いくら開発の規模が大きかろうが管理をしやすくなります。
しかし、実際に利用者にシステムの使い勝手を確認してもらえるのはシステムが完了してしまってからになってしまうので、いざ使用してもらうと「思っていたのとは違う」という事態になってしまうと、要件定義からやり直す羽目になってしまいます。
ウォーターフォールモデルについてはこちらの記事でさらに詳しく説明しています。
プロトタイピングモデル
プロトタイピングモデルは、ウォーターフォールモデルの欠点を補った開発手法です。
プロトタイピングモデルではシステム開発の初期の段階で試作品(プロトタイプ)を利用者に使ってもらうことで、開発者と利用者との間の認識のズレによる影響を最初減にとどめるための開発手法です。
ですので、システムが完了してしまってから、「思っていたのとは違う」といったような最悪の事態を招かなくて済みます。
しかし、プロトタイプを作成するのも楽ではありません。
そのため小規模のシステムでは導入されやすいですが、大規模なシステムであればそもそもプロトタイプを作るのが困難なためあまり採用されません。
スパイラルモデル
スパイラルモデルでは、開発するシステムを複数のサブシステムへと分割してサブシステムごとに開発をしていく手法です。
ここに分けられたサブシステムは、上記で説明したウォーターフォールモデルを採用して開発が進められていきます。
一つのサブシステムが完成すると、そのサブシステムはプロトタイプとして利用者に利用してもらうことができます。
完成したサブシステムを利用者に確認してもらい、その意見を次のサブシステムの開発に組み込んでいきます。
ウォーターフォールモデルとプロトタイピングモデルの両方の利点を併せ持った開発手法だと言えますね。