13.ソフトウェア開発管理技術
開発プロセス・手法
◎ソフトウェア開発モデル
●ウォーターフォールモデル
下記のように水が流れ落ちていくように開発していく、多人数で行う大規模システ
ム向けに考えられたモデル。
要求定義→設計→プログラミング→テスト
基本的に後戻り手戻りが無いことを前提としているが、現実には要求定義の変更や
設計変更による手戻りが発生し、問題点が多い。
●成長モデル
ウォーターフォールモデルを改良した方法で、ユーザが要求変更を行うごとに、ソ
フトウェアの開発工程を繰り返し行うモデル。要求仕様が未確定の提案型開発。
●プロトタイプモデル
実際に運用するシステムを作る前に試作品(プロトタイピング)を作り、評価・改良
を繰り返しながらシステムの仕様や性能を確定する方法。
●スパイラル(うずまき)モデル
プロトタイピングを改良した方法であり、機能分割と段階的な機能追加、開発コス
トや手法の評価を繰り返すことによって、大規模システム開発に有効。
ウォーターフォールモデルとプロトタイプモデルの長所を掛け合わしたモデル。
●インクリメンタルモデル
システムを独立性の高いいくつかのサブシステムに分割して、サブシステムごとに
順次開発、リリースしていくプロセスモデル。サブシステムの開発が並列進行する
点が、スパイラルモデルと異なる。
●ラウンドトリップ
オブジェクト指向開発において分析と設計、プログラミングを何度か行き来しなが
らトライアンドエラーで完成させていく。
●RAD(Rapid Application Development)
「早く、安く、高品質」のシステム開発を目的とした短期システム開発手法であり
CASEツールの活用などを取り入れている。
※タイムボックス
開発期間が長くなってしまうことを防止するために設ける期限。
◎アジャイル開発
迅速かつ適応的にソフトウェア開発を行う軽量な開発手法。
●XP(エクストリームプログラミング)
柔軟性の高い開発手法であるため、難易度の高い開発やビジネス上の要求が刻々と変
わるような状況に向いた開発手法である。事前計画よりも柔軟性を重視する。
※ペアプログラミング
1人がプログラムを作成しもう1人がチェック(レビュー)を行う。
◎ソフトウェア再利用
ソフトウェアの開発生産性や品質向上のためには、部品化や再利用が必要であり、部品化
を進める際には、部品は再利用されるという前提に立って設計や作成に取り組む必要があ
ること、ソフトウェアパッケージを活用することによって、開発生産性や品質向上が可能
になる。
◎リバースエンジニアリング
ソフトウェアの開発工程を逆にさかのぼって、その構造や機能を解析すること。
◎構造化手法
大規模なシステムや複雑な処理内容に対して適切な品質を確保し、また、プログラムの保
守を容易にするために用いられる。
◎形式手法
従来自然言語を用いて記述していた仕様を、形式仕様記述言語を用いルールに従って厳密
に記述し、ソフトウェアの品質を高めるための手法。
◎ソフトウェアライフサイクルプロセス(SLCP)
●SLCP-JCF2007
情報処理推進機構(IPA)が2007年10月に発行したソフトウェア取引に関するガイドラ
インで、ソフトウェアの構想・設計から開発、導入、運用、保守、破棄に到るまでの
各工程について、個々の作業内容、用語の意味などの標準的なモデルを示したもの。
●JIS X 0160
システム開発の発注側(ユーザー)と受注側(ベンダ)の双方で相互に理解できるソ
フトウェア・ライフサイクル・プロセスの共通枠組みを、明確に定義された用語で規
定したもの。「プロセス」「アクティビティ」「タスク」の3階層で構成され、ソフ
トウェアを含むシステム、単体ソフトウェア製品、ソフトウェアサービスを取得する
場合、ならびにソフトウェア製品の提供、開発、運用、保守を行う場合に適用するこ
とが想定されている。
◎プロセス成熟度
●CMM(Capability Maturity Process Assessment)
ソフトウェアの開発作業、支援作業のすべてのプロセスについて、これを評価し改
善するための方法論。
[成熟度レベル]
1.初期レベル
2.反復できるレベル
3.定義されたレベル
4.管理されたレベル
5.最適化されたレベル
知的財産適用管理
◎著作権管理
システムにおける利用者文書や仕様書・ソースコードなどは著作物に当たる。それらは、
作成した人・組織に著作権がある。
◎特許管理
ソフトウェアの開発中に発生した発明は、特許(ソフトウェア特許・ビジネスモデル特許
)として、出願し、3年以内に審査請求を特許庁に行うことで審査され、その発明が特許
として認められ、特許料を納付すると特許権が与えられる。
●通常実施権
第三者に特許技術の使用を許可するが、別の人にも同じ特許技術の使用を許可するこ
とができる。同じ特許技術を複数の人に与えることのできる権利。
●専用実施権
第三者に特許技術の使用の権利を与えてしまうと、別の人にその特許技術の使用を許
可することができない。また、自分自身もその特許技術を利用することができない。
◎保管管理
●ライセンス管理
ソフトウェアは、著作権や特許権で守られており、利用するものはソフトウェアで規
定されているライセンス条項を守らなければならない。ソフトウェアを利用しようと
する者(ライセンシ)は、ソフトウェアの供給側(ライセンサ)の許可を受ける必要
がある。
◎技術的保護
●コピーガード
DVDやVHSなど映像メディアや、CDやMDなどの音楽メディア、その他、パソコンソフト
やゲームソフトなど各種メディアにおける無断複製を防止するため、著作権者が自ら
その著作物が複製出来なくなるように処理すること。
●DRM(Digital Rights Management)
デジタルデータとして表現されたコンテンツの著作権を保護し、その利用や複製を制
御・制限する技術の総称。デジタル著作権管理。音声・映像ファイルにかけられる複
製の制限技術などが有名だが、広義には画像ファイルの電子透かしなどもDRMに含
まれる。
●アクティベーション
機能を有効にすること、という意味を持つ用語で、主に「初期設定を済ませたサーバ
ソフトウェアを起動する」意味、および「正規のライセンスを持っていることを証明
する」意味の2通りの意味で用いられる。主に話題になるのは後者の意味で、他に「
プロダクトアクティベーション」「ライセンス認証」などの単語もほぼ同じ意味をも
つ。
開発環境管理
◎開発環境構築、稼働状況管理
効率的な開発のためには、コンピュータ資源、開発支援ツールなど適切な開発環境の準備
が必要であり、資源の稼働状況を適切に把握、管理する。
◎設計データ管理
設計にかかわるさまざまなデータのバージョン管理、プロジェクトでの共有管理、安全管
理など、設計データ管理を行う。また、企業機密や個人情報が含まれているデータは、誰
がいつ何の目的で利用したのか、不適切な持出しや改ざんがないかなど厳重に管理する。
◎ツール管理
多数の人が開発に携わる場合、開発に利用するツールやバージョンが異なることによって
作成したソフトウェアの互換性の問題が生じるおそれがある。
ツールに起因するバグやセキュリティホールの発生など、ツールの選択によって開発対象
のソフトウェアの信頼性に影響を及ぼすおそれがあるので、使用するツールやバージョン
の統一などツールの管理を行う。
◎ライセンス管理
ライセンス条項に違反した利用は不正利用に当たり、不正利用は違法行為として法的処罰
の対象となる。また、ライセンスの内容を理解し、定期的にインストール数と保有ライセ
ンス数を照合確認するなど、適正に使用しているかどうかを確認することが必要。
構成管理・変更管理
◎構成識別体系の確立
ソフトウェア全体がどのような構成品目の組み合わせで構成されているかという構成識別
体系を確立し、その構成識別体系の管理の方法を明らかにした上で管理を行う。
◎変更管理
①変更要求の処理手順の策定
②内容変更による変更優先度の設定
③変更実施に対する具体的な実施手順策定
④変更発生状況の把握と判断
⑤変更作業の評価(コストへの影響度)
●構成状況の記録
基準になっているソフトウェア品目について、状況や履歴を管理し文書化することの
重要性、プロジェクトにおける変更回数、最新のバージョン、移行状況などの当該文
書に記録する。
●品目の完全性保証
ソフトウェア品目の機能的な完全性と物理的な完全性を決定、保証する。
●リリース管理及び出荷
成品目の完全性が保証された後は、ソフトウェアや関連文書の新しい版の出荷などの
手続を行うこと、ソフトウェアのコードや文書はソフトウェアの寿命のある間保守す
る。