「開発プロセス・手法」における目標
ソフトウェア開発プロセスに関する手法の考え方,特徴を修得し,応用する。
アジャイルの概要,アジャイルソフトウェア開発手法の考え方,特徴を修得し,応用する。
1.1. ソフトウェア開発手法
1.1.1. ソフトウェア開発モデル
ソフトウェア開発の効率化や品質向上のために用いられるソフトウェア開発モデルの考え方,必要性を理解し,ソフトウェア開発モデルの特徴を理解する。
ウォーターフォールモデル,プロトタイピングモデル,アジャイル,DevOps,ソフトウェアプロダクトライン,段階的モデル(Incremental Model),進展的モデル(Evolutionary Model)
1.1.2. アジャイル
迅速かつ適応的にソフトウェア開発を行う軽量な開発手法であるアジャイルの特徴を理解する。
1.1.2.1. アジャイルの概要
アジャイルの概要として,アジャイルソフトウェア開発手法の種類などを理解する。
アジャイルソフトウェア開発宣言,アジャイルソフトウェアの12 の原則,XP(エクストリームプログラミング),スクラム,リーンソフトウェア開発,ペルソナ,ユーザーストーリー,プランニングポーカー,バーンダウンチャート,ふりかえり(レトロスペクティブ),継続的デリバリー(CD),エンタープライズアジャイル
1.1.2.2. XP(エクストリームプログラミング)の特徴
XP(エクストリームプログラミング)の特徴を理解する。
五つの価値(コミュニケーション,シンプル,フィードバック,勇気,尊重),共同のプラクティス,開発のプラクティス(テスト駆動開発(TDD),ペアプログラミング,リファクタリング,ソースコードの共同所有,継続的インテグレーション(CI),YAGNI),管理者のプラクティス,顧客のプラクティス,イテレーション
1.1.2.3. スクラムの特徴
スクラムの特徴を理解する。
スクラムチーム(プロダクトオーナー,開発チーム,スクラムマスター),技法(テスト駆動開発(TDD),リファクタリング,継続的インテグレーション(CI)),スプリント,ベロシティ,タイムボックス,スプリントプランニング,デイリースクラム,スプリントレビュー,スプリントレトロスペクティブ,プロダクトバックログ,スプリントバックログ,インクリメント
1.1.3. ソフトウェア再利用
ソフトウェアの開発生産性や品質向上のためには,部品化や再利用が必要であり,部品化を進める際には,部品は再利用されるという前提に立って設計や作成に取り組む必要があること,ソフトウェアパッケージを活用することによって,開発生産性や品質向上が可能になることなどを理解する。また,ソフトウェア部品の種類,特徴,部品設計のポイントを理解する。
1.1.3.1. 部品の種類と特徴
ソフトウェア部品の種類と特徴を理解する。
関数部品,オブジェクト部品(クラスライブラリ),データ部品,プロセス部品,常駐部品と組込み部品,ブラックボックス部品,ホワイトボックス部品,パラメトリック部品,ノンパラメトリック部品,クローズドシステム部品,オープンシステム部品
1.1.3.2. 部品設計の基準
部品の利用用途に応じた,設計基準の目的,内容を理解する。
モジュールの独立性,カスタマイズ,ライブラリ,命名規則
1.1.4. リバースエンジニアリング
既存のソフトウェアを解析して,仕様や構成部品などの情報を得るリバースエンジニアリングがあること,リバースエンジニアリングの結果に基づいて,元のソフトウェアの権利者の許可なくソフトウェアを開発,販売すると,元の製品の知的財産権を侵害する可能性があること,利用許諾契約によっては,リバースエンジニアリングを禁止している場合もあることなどを理解する。
互換性,コールグラフ
1.1.5. マッシュアップ
マッシュアップは,複数の提供元によるAPI を組み合わせることで,新しいサービスを構築する手法であることを理解する。また,マッシュアップの考え方,生産性,品質面での特徴,留意事項を理解する。
1.1.6. モバイルアプリケーションソフトウェア開発
モバイルアプリケーションソフトウェア開発の手順,留意事項を理解する。
モバイル用Web アプリケーションソフトウェア,ネイティブアプリケーションソフトウェア,ハイブリッドアプリケーションソフトウェア,User-Agent,パーミッション要求,端末仕様(ディスプレイサイズほか)の多様性への対応,アプリケーションソフトウェア動作中の圏外時・着信時の対応,アプリケーションソフトウェア審査,アプリケーションソフトウェア配布
1.2. 構造化手法
大規模なシステムや複雑な処理内容に対して適切な品質を確保し,また,プログラムの保守を容易にするために構造化手法が用いられること,構造化手法の考え方,特徴,手順,効果,留意事項を理解する。
階層構造化,段階的詳細化,構造化チャート,状態遷移図,HIPO(Hierarchy plus Input Process Output),DFD,ソフトウェア構造
1.3. 形式手法
形式手法(Formal Method)は,形式仕様記述言語を使用してルールに従って厳密に記述し,ソフトウェアの品質を高めるための手法であること,モデルの状態を記述することに重点をおいていること,そのモデル記述言語であるVDM-SL(Vienna Development Method -Specification Language),VDM++の考え方,特徴を理解する。
VDMTools
1.4. 開発プロセス
1.4.1. ソフトウェアライフサイクルプロセス
SLCP(Software Life Cycle Process:ソフトウェアライフサイクルプロセス)の目的 と全体像を理解する。
SLCP-JCF(共通フレーム),JIS X 0160,JIS X 0170,プロセス,アクティビティ,タスク
1.4.2. プロセス成熟度
開発と保守のプロセスを評価,改善するに当たって,システム開発組織とプロセス成熟度をモデル化したCMMI があること,プロセス成熟度を5 段階のレベルで定義するなどCMMI の考え方,高次のレベルに達するために必要な方策を理解する。
初期,管理された,定義された,定量的に管理された,最適化している