ソフトウェア開発管理
ソフトウェアを開発するには,開発に先だって必要な要員,期間,費用,コンピュータ資源などを見積もり,できるだけ正確な開発計画を立てる必要がある.
また,開発過程においては,品質管理や工程管理を効果的に行い,品質の良いソフトウェアを効率的に開発していくことが重要である.
ソフトウェアの特性
ソフトウェアとは「データ処理システムを機能させるためのプログラム,手順,規則,関連文書などを含む知的な創作」である.
その特徴は,次のようなものである.
- 不可視性(実体が目に見えない)
- 抽象的(仕様や定義のあいまいさ)
- 定性的(定量的な評価が一般に困難)
- 手工業的(人に依存する面が多い)
ソフトウェア管理の必要性
ソフトウェア開発には次のような傾向があり,ソフトウェア管理の重要性が増している.
- ソフトウェアの大規模化,複雑化,多様化
手工業的な方法には限界があり,工学的な開発手法の導入が望まれる.
- ソフトウェアコストの増大
ハードウェアからソフトウェア主体の開発が増加し,より効率的にソフトウェアを開発する必要がある.
- ソフトウェア生産性の低下
開発期間の短縮化が要求され,生産性の向上が望まれる.
- ソフトウェア信頼性の低下
品質低下に伴う影響度の増大により,ソフトウェア品質の向上が望まれる.
ソフトウェア開発技術
- ソフトウェア固有技術
ソフトウェアを構成するプログラムと文書を効率よく作成,保守するための技術であり,次のような技術からなる.
- ソフトウェア要求仕様定義手法
- ソフトウェア設計技法
- プログラミング言語とコーディング技術
- テストと検証技法
- ソフトウェア文書化技術
- ソフトウェア保守技術
- ソフトウェア管理技術
ソフトウェアの開発と保守を行う上で,与えられた資源,期間,コストの範囲内で品質の高いソフトウェアを効率よく作成するために必要な管理技術であり,次のような技術からなる.
- ソフトウェアのプロジェクト管理
- ソフトウェア生産性評価技法
- ソフトウェア品質、信頼性評価技術
- ソフトウェア性能評価技法
ソフトウェアライフサイクル
ソフトウェアの構想・設計から開発,導入,運用,保守,破棄に到るまでのプロセス全体をソフトウェアライフサイクルと呼び,次の図のような関係にある.
- 定義工程
要求仕様書で規定されたシステム要件を定式化し,システムを構成する人間系,ハードウェア系,ソフトウェア系3者間の分担,および各々の機能を明確化する工程(SE/利用者)
- 設計工程
基本仕様書で規定された機能をいかに実現するかの具体的方法を検討し,プログラムのコーディングを開始できる段階までのプログラムの仕様を明確化する工程(SE/チーフプログラマ)
- 製造工程
詳細設計書に基づいてプログラムを作成し,仕様書に規定された項目に対応した試験を実施する工程(プログラマ)
- 検査工程
作成したプロダクト(プログラム,マニュアル)が要求仕様書を満足するかを確認し,品質を保証する工程(品質試験専任者)