ソフトウェアの開発手法

ソフトウェアを開発する場合は、システム全体の規模や処理内容に応じた開発プロセスや手法を選ぶ必要があります。
「ソフトウェア開発手法」とは、ソフトウェアの開発工程の進め方のことです。
代表的な開発手法には、次のようなものがあります。

手 法 説 明
構造化手法 プログラムを個々の処理ごとに分解し、階層的な構造に対して開発する手法
処理ごとに分割することで、動作の検証や修正、保守などを容易に行える。
オブジェクト指向 データと操作を組み合わせて「オブジェクト」を定義し、オブジェクト単位で開発する手法。
属性(固有のデータ)とメソッド(データに対する処理や操作)を一体化し、オブジェクトとしてとらえるため、部品化や再利用が容易に行える。
また、オブジェクトの内部動作を覆い隠し、外部動作だけに注目することで開発が容易に行える。特に大規模なシステム開発に適している。
データ中心アプローチ 業務で使用するデータに着目してデータベースを作成し、それにもとづきシステムを開発する手法。
期間となるデータの構造は業務内容が変更になっても変わらないことが多いため、システムの改変が容易に行える。
プロセス中心アプローチ 業務プロセスや機能に着目してシステムを開発する手法。
業務内容にもとづき各システムを作成しているため、業務内容が変更になった場合、システムを大幅に改変する必要がある。

<ページ先頭へ>

ソフトウェア開発モデル

「ソフトウェア開発モデル」とは、高品質のソフトウェアを効率的に開発するために用いられる開発モデルのことです。
代表的なソフトウェア開発モデルには、次のようなものがあります。

  • ウォーターフォールモデル
  • スパイラルモデル
  • プロトタイピングモデル

<ページ先頭へ>

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

「ウォーターフォールモデル」とは、"滝が落ちる"という意味を持ち、システム開発を各工程に分割し、上流工程から下流工程へと各工程を後戻りせず順番に進めていく開発モデルのことです。基本的に、前の工程が完了してから次の工程へ進みます。
システム開発においてもっとも一般的な開発モデルで、大規模な開発でよく使用されます。ただし、システムの仕様変更やミスが発生した場合には、すでに完了している前の工程にも影響が及ぶことがあるため、やり直しの作業量が非常に多くなるという特徴があります。
また、ウォーターフォールモデルは、異なる工程を並行して進めることが不可能であるため、作業期間の短縮を図る場合は、一つの工程の中の可能な部分だけを並行で作業し、工程そのものの期間を短くします。ただし、並行で作業するための人員の調整が発生し、コストが増加する傾向になるので注意が必要です。

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

<ページ先頭へ>

スパイラルモデル

「スパイラルモデル」とは、システムをいくつかのサブシステムに分割し、サブシステムごとに「要件定義」「システム設計」「開発」「テスト」のサイクルを繰り返しながら、システムの完成度を高めていく開発モデルのことです。「繰り返し型モデル」とも呼ばれます。スパイラルモデルは独立性の高いシステムの開発に使用されます。
スパイラルモデルでは、サブシステムごとに利用者(システム利用部門)が検証し、次のサイクルで利用者の要求を取り入れることができます。そのため、利用者の満足度は高くなりますが、開発工程の管理が複雑になるという特徴があります。

スパイラルモデル

<ページ先頭へ>

プロトタイピングモデル

「プロトタイピングモデル」とは、システム開発の早い段階からプロトタイプ(試作品)を作成して、利用者(システム利用部門)の確認を得ながら開発を進める開発モデルのことです。
プロトタイピングモデルでは、利用者と開発者の間で、システムについての誤解や認識の食い違いが早期に発見できます。また、利用者のシステムへの関心度を高める効果も期待できます。
ただし、利用者の参加が必要なため、スケジュール調整が難しいこと、プロトタイプの作成と評価が繰り返された場合にコストが増加してしまうという特徴があります。

プロトタイピングモデル

<ページ先頭へ>

共通フレーム

「共通フレーム」とは、ソフトウェア開発において、企画、開発、運用、保守までの作業内容を標準化し、用語などを統一した共通の枠組み(フレーム)のことです。システムベンダとユーザで共通の枠組みを持つことで、お互いの役割、業務範囲、作業内容、責任の範囲など取引内容を明確にし、誤解やトラブルが起きないように、双方が共通認識を持てるようになります。
共通フレームの代表的なものに「SLCP(ソフトウェアライフサイクルプロセス)」があります。これはソフトウェアを中心としたソフトウェア開発と取引のための共通フレームになります。

<ページ先頭へ>

リバースエンジニアリング

「リバースエンジニアリング」とは、既存のソフトウェアを解析して、その仕組みや仕様などの情報を取り出すことです。反対にしくみや仕様を明確にしたうえで、ソフトウェアコードを作成することを「フォワードエンジニアリング」といいます。
システムの保守を確実に行うには、ソフトウェア設計書などの文書が必要ですが、その文書が存在しない場合に、リバースエンジニアリングが有効です。
そのほかにもモジュール館の関係の解明やシステムの基本仕様の分析を含むこともあります。これは既存のソフトウェアとの互換性を保つために行われます。

<ページ先頭へ>


  プロフィール  PR:無料HP  免許合宿 格安  ゲーム 制作  タナベ  中古ホイール 新潟  タイヤ 18インチ  大学  バイクパーツ  マラカイト  心理学部 大学  イーキャピタル 口コミ  タイヤ 取り付け 浜松  名簿屋