見出し画像

14-2 システム開発の手法 - 基本情報技術者試験

「ウォーターフォールモデル」、「プロトタイピングモデル」、「スパイラルモデル」の3つが、代表的な開発手法です。

システムに対する要求を確認して、設計して、作って、テストする。この段取りは、システム開発に限らず、たいてい何をする場合にも同じです。

ただ、システム開発の場合は、なにかと規模が大きくなりがちです。規模が大きくなれば、当然開発期間もそれだけ長くなります。

そうすると、やっと出来上がりましたっていう段階で、お客さんとの間で「なにこれ、思ってたのと違う」…となることもあったり。

えてして「頭の中で想像したシステム」と「実際のシステム」というのは違う印象になりがちですし、開発者側が仕様を取り違える可能性だってあり得ます。

基本的な段取りは共通ながら開発手法にさまざまな手法があるのは、こうした問題を解消して、効率よくシステム開発を行なうための工夫に他なりません。

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

ウォーターフォールモデルは、開発手法としてはもっとも古くからあるもので、要件定義からシステム設計、プログラミング、テストと、各工程を順番に進めていくものです。

水が高いところから低いところへと落ちていくように、各工程を順番に進めていくのが特徴です。もっとも一般的です。

それぞれの工程を完了させてから次へ進むので管理がしやすく、大規模開発などで広く使われています。

ただし必然的に、利用者がシステムを確認できるのは最終段階に入ってからです。しかも、前工程に戻って作業すること(手戻りといいます)は想定していないため、いざ動かしてみると「この仕様は想定していたものと違う」なんて話になると、とんでもなく大変なことになります。

プロトタイピングモデル

プロトタイピングモデルは、開発初期の段階で試作品(プロトタイプ)をつくり、それを利用者に確認してもらうことで、開発者との意識ずれを防ぐ手法です。

プロトタイプを実際にさわってもらい、作成→確認→修正→確認…と繰り返して、要求をガッチリと固めてから、実際の開発に移ります。

利用者が早い段階で(プロトタイプとはいえ)システムに触れて確認することができるため、後になって「あれは違う」という問題はまず起きません。

ただ、プロトタイプといっても、作る手間は必要です。そのため、あまり大規模なシステム開発には向きません。

スパイラルモデル

スパイラルモデルは、システムを複数のサブシステムに分割して、それぞれのサブシステムごとに開発を進めていく手法です。個々のサブシステムについては、ウォーターフォールモデルで開発が進められます。

この手法では、まずシステムを複数のサブシステムに分割します。
個々のサブシステムごとに開発工程を繰り返し、システム全体の完成度を高めていきます。

完成したサブシステムに対する利用者の声は、次のサブシステム開発にも反映されていくため、後になるほど思い違いが生じがたくなり開発効率が上がります。

サブシステムが完成するごとに利用者の確認が得られるため、プロトタイピングモデルの利点も併せ持つ。

レビュー

開発作業の各工程では、その工程完了時にレビューという振り返り作業を行ないます。ここで工程の成果物を検証し問題発見に努めることで、潜在する問題点を早期に発見し次の工程へと持ち越さないようにするのです。

レビューは基本的にミーティング形式で行われ、人の目視など机上にて問題を発見する取り組みです。

●デザインレビュー
要件定義や外部設計、内部設計など、設計段階で作成した仕様書に対して、不備がないか確認するためのレビュー。仕様に不備がないかをチェックし、設計の妥当性を検証する。

●コードレビュー
作成したプログラムに不備がないかを確認するために、ソースコードを対象として行われるレビュー。


レビューを実施する手法には、次のものがあります。

●ウォークスルー
問題の早期発見を目的として、開発者(もしくは作成者)が主体となって複数の関係者とプログラムや設計書のレビューを行なう手法。

●インスペクション
あらかじめ参加者の役割を決め、進行役として第三者であるモデレータがレビュー責任者を務めてレビューを実施する手法。

●ラウンドロビン
参加者全体が持ち回りでレビュー責任者を務めながらレビューを行なう手法。参加者全体の参画意欲を高める効果がある。

CASEツール

CASE(Computer Aided Software Engineering)とは、「コンピュータ支援ソフトウェア工学」の意味。コンピュータでシステム開発を支援することにより、その自動化を目指すという学問です。

この考えに基づき、システム開発を支援するツール群がCASEツールです。

CASEツールは、それが適用される工程によって、次のように分類することができます。

上流CASEツール
上流工程(基本計画→外部設計→内部設計)の支援を行なうツール群で、システムの分析や設計を支援する。後述するDFDやE-R図の作成ツールはこれにあたる。
下流CASEツール
下流工程(プログラム設計→プログラミング→テスト)の支援を行なうツール群で、プログラムの自動生成ツールやテスト支援ツールなどがある。
保守CASEツール
保守を支援するためのツール。「既存のプログラムを解析して元の設計仕様を探るリバースエンジニアリング」などのリエンジニアリング機能はこれにあたる。
開発に関する情報は、リポジトリと呼ばれるデータベースで一元管理します。

この記事が気に入ったらサポートをしてみませんか?