【目標】
・ソフトウェア開発プロセスに関する代表的な手法の考え方を理解し,担当する事項に適用する。
・アジャイルの概要,アジャイルソフトウェア開発手法の考え方を理解し,担当する事項に適用する。
- ソフトウェア開発手法
a. ソフトウェア開発モデル
ソフトウェア開発の効率化や品質向上のために用いられるソフトウェア開発モデルの考え方,必要性,代表的なソフトウェア開発モデルの考え方を理解する。
【用語例】
ウォータフォールモデル,プロトタイピングモデル,アジャイル,ソフトウェアプロダクトライン,段階的モデル( Incremental Model ) ,進展的モデル ( Evolutionary Model )
b. アジャイル
迅速かつ適応的にソフトウェア開発を行う軽量な開発手法であるアジャイルの特徴を理解する。
1. アジャイルの概要
アジャイルの概要として, アジャイルソフトウェア開発手法の種類などを理解する。
【用語例】
アジャイルソフトウェア開発宣言, アジャイルソフトウェアの12の原則, XP(エクストリームプログラミング), スクラム, ユーザストーリ, テスト駆動開発, リファクタリング, 継続的インテグレーション(CI), ふりかえり(レトロスペクテイブ)
2. XP(エクストリームプログラミング)の特徴
XP(エクストリームプログラミング)の特徴を理解する。
【用語例】
ペアプログラミング
3. スクラムの特徴
スクラムの特徴を理解する。
【用語例】
スプリント
c. ソフトウェア再利用
ソフトウェアの開発生産性や品質向上のためには,部品化や再利用が必要であり,部品化を進める際には,部品は再利用されるという前提に立って設計や作成に取り組む必要があること,ソフトウェアパッケージを活用することによって,開発生産性や品質向上が可能になることなどを理解する。
【用語例】
モジュールの独立性,標準化,カスタマイズ
d. リバースエンジニアリング
既存のソフトウェアを解析して,仕様や構成部品などの情報を得るリバースエンジニアリングがあること,リバースエンジニアリングの結果に基づいて,元のソフトウェアの権利者の許可なくソフトウェアを開発,販売すると,元の製品の知的財産権を侵害する可能性があること,利用許諾契約によっては,リバースエンジニアリングを禁止している場合もあることなどを理解する。
【用語例】
互換性,コールグラフ
e. マッシュアップ
マッシュアップは,複数の提供元によるAPIを組み合わせることで,新しいサービスを構築する手法であることを理解する。また,マッシュアップの生産性,品質面での特徴を理解する。
f. モバイルアプリケーションソフトウェア開発
モバイルアプリケーションソフトウェア開発の基本的な手順, 留意事項を理解する。
【用語例】
モバイル用 Web アプリケーションソフトウェア,ネイティブアプリケーションソ フトウェア,ハイブリッドアプリケーションソフトウェア,User-Agent,パーミ ッション要求,アプリケーションソフトウェア審査,アプリケーションソフトウ ェア配布
- 構造化手法
大規模なシステムや複雑な処理内容に対して適切な品質を確保し,また,プログラムの保守を容易にするために構造化手法が用いられること,構造化手法の手順,効果を理解する。
【用語例】
階層構造化,段階的詳細化,構造化チャート,状態遷移図,HIPO ( Hierarchy plus Input Process Output ) , DFD ,ソフトウェア構造
- 形式手法
形式手法 ( Formal Method ) は,従来自然言語を用いて記述していた仕様を,形式仕様記述言語を用いルールに従って厳密に記述し,ソフトウェアの品質を高めるための手法であることを理解する。
【用語例】
VDMTools
- 開発プロセス
a. ソフトウェアライフサイクルプロセス
SLCP(Software Life Cycle Process:ソフトウェアライフサイクルプロセス)の目的,あらましを理解する。
【用語例】
SLCP-JCF(共通フレーム),JIS X 0160
b. プロセス成熟度
開発と保守のプロセスを評価,改善するに当たって,システム開発組織とプロセス成熟度をモデル化したCMMI があること,プロセス成熟度を5 段階のレベルで定義するなどCMMIの基本的な考え方を理解する。
【用語例】
初期,管理された,定義された,定量的に管理された,最適化している