Previous slide
Next slide
Toggle fullscreen
Open presenter view
ソフトウェア開発モデル(Software Development Model)
ソフトウェア開発モデル(Software Development Model)
典型的なソフトウェア開発に対する手順
最上位での開発手順
「料理」の手順はどんな料理でも大体同じ
何を作るか決める
どうやって作るか決める
食材を買いに行く
作る
食べる
片付ける
「工程」と「プラクティス」(practice,慣行,ならわし)で構成
工程(process,プロセス):料理の例における「何を作るか考える」など
プラクティス:どうしたらうまく作れるか(料理を決める時に家族に聞く,買い物に行く前に広告をチェックする,など)
良い「プロセス」は良い「プロダクト」を作る
典型的な「プロセス」を「モデル化」し,それぞれの段階で「するべきこと」をすると,良い「プロダクト」が作れる.
ソフトウェア開発プロセスモデル
ウォーターフォールモデル(Waterfall Model)
Vモデル(V Model)
プロトタイピング型開発(Prototyping Model)
スパイラルモデル(Spiral Model)
インクリメンタル開発(Incremental Model)
アジャイル(agile)開発(Agile Development)
etc.
ウォーターフォールモデル(Waterfall Model)
1970 年代に誕生
特徴
-「工程」の考え方
工程間の(小さな)フィードバック
工程
要求分析:ユーザ要求からシステムの仕様を決める
設計:仕様を実現する構造や実装方法を決める
構築:プログラムを作成する
テスト:設計や仕様通りに動作するかを確認する
運用・保守:バグの修正や機能の追加する
ドキュメント駆動プロセス(Document-Driven Process)
各工程を完了して次の工程へ引き継ぐ
工程間の引き継ぎはドキュメントで行う
(ドキュメントのレビューを行う)
V モデル(ウォータフォールモデルの変化版)
テストの段階を明示
上流工程との対応付け
長所
各工程で,マイルストーン(達成目標)と成果物(この場合は成果物=ドキュメント)があるのでスケジュール管理が行いやすい
分業が容易
短所
リスク管理が難しい
ソフトウェア開発には必ず「戻り工程」が存在する
対象例
大規模で高い信頼性が要求されるシステム
プロトタイピングモデル(Prototyping Model)
ウォーターフォールにおける「手戻り」リスクを低減
最終的に運用するソフトウェアシステムを作る前に,実験的なシステム(プロタイプ)を作る
特に「要求分析」段階(フェーズ)で行うことが多い
どの程度の「プロトタイプ」を作成するかが難しい(短所)
インクリメンタルモデル(Incremental Model)
小さな機能範囲のシステムから作成
改良(バージョンアップ)によるシステム構築
典型的には「確実に必要な機能」から作成していく
(プロトタイピングは「不確実な機能を明らかにする」)
設計が貧弱になりコードのメンテナンス性が悪くなる(短所)のでリファクタリング(再構築)が必要になる場合がある
関連する分野:さらなる勉強にむけて
(ここはみんなで作るページです)
モデルベース開発