基本情報技術者試験
情報技術者試験まとめへ

開発技術(5)

ソフトウェア開発管理技術

開発プロセス・手法

ソフトウェア開発手法

ソフトウェア開発モデル
ウォーターフォールモデル

ウォータフォールモデルは、古くから利用されているシステム開発モデルの一種
各開発工程を見渡した一連の流れを、段階的に流れ落ちる滝のように見立てている。
開発プロジェクトを時系列に、作業工程を分割し、原則として前工程が完成しないと次工程に進まないことで、前工程の成果物の品質を確保し、前工程への後戻り(手戻り)を最小限にする。通常は「線表(ガントチャート)」を使用してスケジューリングする

ウォーターフォールモデル
スパイラルモデル

システムをいくつかのサブシステムに分割し、サブシステムごとに「要件分析」「システム設計」「開発」「テスト」のサイクルを繰り返しながら、システムの完成度を高めていく開発モデル。「繰返し型モデル」
独立性の高いシステムの開発に利用される
サブシステムごとに利用者が検証し、次のサイクルで利用者の要求を取り入れることができる
利用者の満足度は高くなるが、開発工程の管理が複雑になるという特徴がある

スパイラルモデル
プロトタイピングモデル

システム開発工程の早い段階で、試作品(プロトタイプ)を作成し、ユーザに試用してもらうことによって「ユーザの要求と合っているか?」「使い勝手はどうか?」など、認識があっているかどうかをチェック、場合によってはプロトタイプを修正しながら、要求仕様を確定していく
この手法はシステム開発の初期段階での誤りを発見し、開発期間の短縮やコストの低減を狙ったものだが、開発を進めていくにあたって、ユーザ側の要求仕様が変わったり、拡張や変更時に問題が発生したり、進め方によっては逆に開発期間が延長してしまったりする

プロトタイピングモデル
RAD(Rapid Application Development)

ソフトウェア開発技術のひとつ。プロトタイプと呼ばれるシステムの完成イメージを何度も制作、評価し、プロトタイプを次第に完成品に近づけて行く手法。一般に、スパイラルアプローチと呼ぶ方法を採用する。設計・開発・テストというサイクルを繰り返して完成品に近づけていく。一定の期間が来たら、次の工程に強制的に移る。注意点としては、必ず実現項目ごとに優先順位をつけて、その優先順位の高い順に構築すること

インクリメンタルモデル(段階的モデル)

システムを独立性の高いいくつかのサブシステムに分割して、サブシステムごとに順次開発、リリースしていくプロセスモデル
サブシステムの開発が並列進行する点が、スパイラルモデルと異なる。最初にシステム全体の要求定義を行い、要求された機能を幾つかに分割してだんかいてきにリリースするので、すべての機能がそろっていなくても、最初のリリースからシステムの動作を確認することができる

ソフトウェアライフサイクルプロセス

情報システムを開発する際に、ユーザとコンピュータ・ベンダー、ソフトハウスの3者間で共通の尺土を持つための枠組み。情報システムの企画から、開発、運用、保守、およびそれらに関するさまざまな作業内容を、標準的な作業項目とその中身に分類。それぞれの作業項目は、プロセス、アクティビティ、タスクの3段階で表現される

SLCP(software lifecycle process)

ソフトウェア開発プロジェクトで、発注者と受注者の間で、開発作業に対する相互誤解がないように、さまざまな作業内容の詳細を規定するもの

プロセス成熟度

システムの開発と保守の工程を評価したり、改善したりするための指標のことで、「CMMI」はこれをモデル化したもの

レベルプロセス成熟度説明
1初期の状態システム開発ルールが未定義で、個人のスキルに依存している状態
2管理された状態システム開発ルールが組織の経験則として存在し、管理されている状態
3定義された状態システム開発ルールを組織で定義、安定して一定水準のシステムが開発可能
4定量的管理状態レベル3+一定の基準で数値化して評価できるようになっている状態
5最適化状態レベル4+組織として継続的に工程の改善に取り組んでいる状態
リバースエンジニアリング

リバースエンジニアリングとは、既存のプログラムから、その仕様を導き出す技術やその行為のこと
目的は、ハードウェアやソフトウェアのコピー製品や競合製品、または互換製品を作るために行われ、セキュリティホールやバグの特定を行うためにもこの手法が用いられる。コピー製品などを作ってしまうと、やり方によっては特許権や著作権の侵害となるので、注意が必要

フォワードエンジニアリング

リバースエンジニアリングによって既存のシステムから解析された仕様をもとに、新規のシステムを開発すること

リエンジニアリング

既存のシステムを解析(リバースエンジニアリング)して設計情報を取り出し、それに得られた知見に基づいて新しいシステムを再構築(フォワードエンジニアリング)する方法

リファクタリング

外部からソフトウェアを呼び出す方法を変えることなくソースコードを変更すること

コールグラフ

あるソフトウェアから別のソフトウェアに対する呼出し(コール)の依存関係を表したグラフ

構造化手法(構造化プログラミング)

プログラム全体を、段階的に細かな単位へ分割して処理する方法。分割されていることによって、動作検証や修正といったテストや保守をする上でもメリットがある。現在では広く普及している開発手法

形式手法

ある厳密的な規則に従って、システムの仕様を記述する手法

VDM

「VDM-SL」「VDM++」という2つの形式仕様記述言語があり、形式手法の中でもモデル規範型と呼ばれ、モデルの状態を記述していくことに重点を置いている

マッシュアップ

複数の異なる提供元の技術やコンテンツを複合させて新しいサービスを形作ることで、複数のAPIを組み合わせ、あたかもひとつのWebサービスであるかのような機能

開発環境の管理

開発環境構築

効率的な開発のために開発用ハードウェア、ソフトウェア、ネットワーク、シミュレータなどの開発ツールを開発要件に合わせて準備する必要がある

管理対象

開発環境稼働状況管理

効率的な開発のためには以下のことが必要
●コンピュータ資源、開発支援ツールなど適切な開発環境の準備
●資源の稼働状況を適切に把握、管理すること

設計データ管理

設計にかかわるさまざまなデータのバージョン管理、プロジェクトでの共有管理、安全管理などの設計データ管理が必要
企業機密や個人情報が含まれているデータは、誰がいつ何の目的でりようしたのか、不適切な持ち出しや改ざんがないかなどを厳重に管理することが必要

ルーツ管理

多数の人が開発に携わる場合、開発に利用するルーツやバージョンが異なることによって、作成したソフトウェアの互換性の問題が生じるおそれがある。ツールに起因するバグやセキュリティホールの発生など、ツールの選択によって開発対象のソフトウェアの信頼性に影響を及ぼすおそれがあるので、使用するルーツやバージョンの統一などルーツの管理を行うことが重要

ライセンス管理

ライセンス条項に違反した利用は不正利用にあたり、違法行為として法的処罰の対象となる
ライセンスの内容を理解し、定期的にインストールすると保有ライセンス数を照合確認するなど、適正に使用しているかどうかを確認する

構成管理・変更管理

構成管理

構成管理では、ソフトウェア全体がどのような構成品目の組合せで構成されているかという構成識別体系を確立し、その構成識別体系の管理の方法を明らかにしたうえで管理すること

ソフトウェア構成管理(SCM)

ソフトウェアに対して構成管理を行うこと

ソフトウェア構成品目(SCI)

ソフトウェア構成管理で管理するソフトウェア資源や関連ドウキュメント、ライセンスなど

変更管理

構成状況の記録
名称説明
変更履歴変更対象や追加・削除などの変更種別、変更担当者、変更内容などを記録する
構成情報ソフトウェアの最新バージョンや構成、ソフトウェアの変更回数などを記録する
品目の完全性保証

ソフトウェア品目の機能的な安全性と物理的な安全性を決定、保証する

リリース管理及び出荷

構成品目の安全性が保障された後は、ソフトウェアや関連文書の新しい版の出荷などの手続きを行うこと
ソフトウェアのコードや文書はソフトウェアの寿命のある間は保守すること

 

ページトップへ 次へ