インターネットと経営/ソフトウェア開発工程
提供: Internet Web School
UNIQ751fb5f462230d21-MathJax-2-QINU2 による版
インターネットと経営 > ソフトウェア開発工程
目次 |
概要
ソフトウェア開発工程(Software Development Process)とは,ソフトウェア製品の開発の構造を意味する. ソフトウェアライフサイクル,ソフトウェア開発プロセス,ソフトウェアプロセスもほぼ同義語である. 開発工程にはいくつかのモデルがあり,開発工程内の各種タスク・活動のための手法を提案している [w1] .
開発工程
- システム工学やソフトウェア工学において新たなシステムやシステム更新に際しての調査/定義に関わる工程を指す.要求分析はシステム設計工程でも重要な部分であり,アナリストやシステムエンジニア/ソフトウェア開発者が顧客の必要性や要求を特定する工程である.顧客の要求が特定されたら,システム設計者がその解決策を設計することになる.
- プログラムに求められることを定義したものである.プログラムの設計図や開発者から見たユーザーマニュアルの元となる文書のような「非形式的」な形態の場合と,数学的に厳密に動作を定義する「形式的」な形態の場合がある.実際,最もよい仕様は既存のアプリケーションを理解して改善するために書かれたものであることが多いが,重要なソフトウェアは開発前に注意深く仕様を記述する必要がある.仕様は特に常に安定性が求められる外部インタフェースでは重要である.
- ソフトウェアシステムのアーキテクチャとは、システムを抽象的に表現したものである。アーキテクチャはソフトウェアシステムが製品として要求に適合しているかを検証するのに使用される他、将来の追加要求に応えるためにも使用される。アーキテクチャ作成段階ではソフトウェアシステム間や他のソフトウェア製品間のインターフェイスも規定し、ハードウェアやオペレーティングシステムも規定する。
- 設計からコードを作成する段階はソフトウェア開発において最も明白な工程であるが、必ずしも最大の工程とは限らない。
- 特に複数の技術者が開発したコードを結合して行う評価はソフトウェア技術者が行う。
- ソフトウェアの内部設計を文書化するタスクは重要だが、しばしば見過ごされている。これは将来の保守と改良に使用される。文書化は外部インターフェイスにとっては最も重要である。
トレーニングとサポート
- ソフトウェアプロジェクトの失敗の最大の要因は、そのソフトウェアを最終的に使用する人の育成を全く考えていないことにある。人々は不慣れな環境や領域に進むことには抵抗を示すものである。従ってソフトウェアを配備する段階では、実際にそのソフトウェアを使用する人を対象にトレーニングを行うことが重要である。また、実際に使ってみることでユーザーから問題点や疑問点が多数上げられてくる。それらが次のソフトウェアの開発への入力となる。
- ソフトウェアの保守と改良は初期の開発よりも長期に渡り、手間もかかる。本来の設計になじまないコードを追加しなければならなくなるだけでなく、既存のソフトウェアがどう動作しているのかを理解するだけでも多大な労力を必要とする。ソフトウェア開発の3分の2は保守作業であると言われているが、この統計は誤解を生みやすい。バグの修正は保守作業のほんの一部である。保守作業の大部分は既存のソフトウェアに新たな機能を組み込むことであり、それは別の新たな開発とみなされることが多い。同様に土木/建築でも保守作業が全体の3分の2を占めると言われている。
sectionタイトル
subsectionタイトル
subsectionタイトル
sectionタイトル
subsectionタイトル
subsectionタイトル
参考文献
- [r1] 『アジャイル開発』NEC情報システムズ.
- [r2] Ken Schwaber, Jeff Sutherland : Scrum.
- [r3] The new new product development game.
関連項目
- [w1] ソフトウェア開発工程 (Wikipedia)
- [w2] ソフトウェア要求分析 (Wikipedia)
- [w3] 仕様記述 (Wikipedia)
- [w4] ソフトウェアアーキテクチャ (Wikipedia)
- 実装 (Wikipedia)
- アジャイルソフトウェア開発 (Wikipedia)
- ウォーターフォール・モデル (Wikipedia)