ソフトウェア開発工程
システム要件定義 [上位工程]
↓
ソフトウェア要件定義
↓
システム設計
↓
ソフトウェア設計
↓
実装・構築
↓
テスト[下位工程]
ソフトウェア開発手法
ウォータフォールモデル
上位工程から下位工程へ進めていく開発手法
特徴:
・スケジュールが立てやすい
・各工程が完了してから次の工程へ行く
・各工程終了時に綿密にチェックする。
欠点:
・開発途中で利用者の要件を取り入れ辛い
・仕様変更が発生するとそれにかかるコストと時間が膨大になる
・最後の工程で不具合が発生すると後戻り作業が増える
アジャイル開発
「短いサイクルで、動作するプログラムを作成する」という作業を繰り返し、変化の激しい経営環境や利用者の要件を随時取り入れながら、段階的にシステム全体を完成させていく。
特徴:
・ソフトウェアの作成を優先
・利用者の要件を素早く取り入れる
・仕様変更に柔軟に対応できる
XP
アジャイル開発の一つ
イテレーション(1~2週間)という短いサイクルで、動作するプログラムを作成することを繰り返す。
二人一組でプログラミングをする(ペアプログラミング)。
ソフトウェアの保守性を高めるため、改善を繰り返す。外部仕様を変更することなく、プログラムの内部構造を変更する(リファクタリング)
コードの結合とテストを継続的に繰り返す(継続的インテグレーション)
テストケースを先に設定してから、そのテストを通過するプログラムを作成する(テストファースト)
スクラム開発
アジャイル開発の一つ
スプリントと呼ばれる固定した短いサイクル(1~4週)で、動作するプログラムを作成する
優先順位が高い順に作成。
毎日のミーティング(デイリースクラム)を重ねる。
プロトタイピングモデル
システム開発の早い段階から試作品(プロトタイプ)を作成して、利用者の確認を得ながら開発を進めていく開発手法。
スパイラルモデル
システムをさらに独立性の高いサブシステムに分割し、サブシステムごとに要件定義や設計、開発、テストを繰り返しながら段階的にシステムを完成させていく開発手法。
リバースエンジニアリング
既存のプログラムを解析して、プログラムの仕様と設計書を取り出す開発手法
DevOps
開発部門と運用部門が緊密に連携してシステムの改善を進めようという考え方。
CMMI
システム開発組織におけるプロセス成熟度を評価するモデル。統合能力成熟度モデルと訳される。