開発プロセス・手法
ソフトウェア開発手法
@ ソフトウェア開発モデル ソフトウェア開発の効率化や品質向上のために用いられるソフトウェア開発モデルの考 え方,必要性を理解し,ソフトウェア開発モデルの特徴を理解する。 用語例 ウォータフォールモデル,プロトタイピングモデル,アジャイル,DevOps,ソフ トウェアプロダクトライン,段階的モデル(Incremental Model),進展的モデル (Evolutionary Model) A アジャイル 迅速かつ適応的にソフトウェア開発を行う軽量な開発手法であるアジャイルの特徴を理 解する。 (a)アジャイルの概要 アジャイルの概要として,アジャイルソフトウェア開発手法の種類などを理解する。 用語例 アジャイルソフトウェア開発宣言,アジャイルソフトウェアの 12 の原則,XP (エクストリームプログラミング),スクラム,リーンソフトウェア開発,ペル ソナ,ユーザストーリ,プランニングポーカ,バーンダウンチャート,ふりかえ り(レトロスペクティブ),継続的デリバリ(CD),エンタープライズアジャイル (b)XP(エクストリームプログラミング)の特徴 XP(エクストリームプログラミング)の特徴を理解する。 用語例 五つの価値(コミュニケーション,シンプル,フィードバック,勇気,尊重), 共同のプラクティス,開発のプラクティス(テスト駆動開発(TDD),ペアプログ ラミング,リファクタリング,ソースコードの共同所有,継続的インテグレーシ ョン(CI),YAGNI),管理者のプラクティス,顧客のプラクティス,イテレーシ ョン (c)スクラムの特徴 スクラムの特徴を理解する。 用語例 スクラムチーム(プロダクトオーナ,開発チーム,スクラムマスタ),技法(テ スト駆動開発(TDD),リファクタリング,継続的インテグレーション(CI)),ス プリント,ベロシティ,タイムボックス,スプリントプランニング,デイリース クラム,スプリントレビュー,スプリントレトロスペクティブ,プロダクトバッ クログ,スプリントバックログ,インクリメント B ソフトウェア再利用 ソフトウェアの開発生産性や品質向上のためには,部品化や再利用が必要であり,部品 化を進める際には,部品は再利用されるという前提に立って設計や作成に取り組む必要が -70- Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2021 あること,ソフトウェアパッケージを活用することによって,開発生産性や品質向上が可 能になることなどを理解する。また,ソフトウェア部品の種類,特徴,部品設計のポイン トを理解する。 (a)部品の種類と特徴 ソフトウェア部品の種類と特徴を理解する。 用語例 関数部品,オブジェクト部品(クラスライブラリ),データ部品,プロセス部品, 常駐部品と組込み部品,ブラックボックス部品,ホワイトボックス部品,パラメ トリック部品,ノンパラメトリック部品,クローズドシステム部品,オープンシ ステム部品 (b)部品設計の基準 部品の利用用途に応じた,設計基準の目的,内容を理解する。 用語例 モジュールの独立性,カスタマイズ,ライブラリ,命名規則 C リバースエンジニアリング 既存のソフトウェアを解析して,仕様や構成部品などの情報を得るリバースエンジニア リングがあること,リバースエンジニアリングの結果に基づいて,元のソフトウェアの権 利者の許可なくソフトウェアを開発,販売すると,元の製品の知的財産権を侵害する可能 性があること,利用許諾契約によっては,リバースエンジニアリングを禁止している場合 もあることなどを理解する。 用語例 互換性,コールグラフ D マッシュアップ マッシュアップは,複数の提供元による API を組み合わせることで,新しいサービスを 構築する手法であることを理解する。また,マッシュアップの考え方,生産性,品質面で の特徴,留意事項を理解する。 E モバイルアプリケーションソフトウェア開発 モバイルアプリケーションソフトウェア開発の手順,留意事項を理解する。 用語例 モバイル用 Web アプリケーションソフトウェア,ネイティブアプリケーションソ フトウェア,ハイブリッドアプリケーションソフトウェア,User-Agent,パーミ ッション要求,端末仕様(ディスプレイサイズほか)の多様性への対応,アプリ ケーションソフトウェア動作中の圏外時・着信時の対応,アプリケーションソフ トウェア審査,アプリケーションソフトウェア配布システム開発手法
ソフト開発モデル
ウォータフォールモデル:ソフトウェアの開発を基本計画から、外部設計、内部設計、プログラム設計、プログラミング、テストと、上流から下流の各工程に分け、上流工程から下流工程へと順番に進めていくのが特徴
スパイラルモデル:開発プロセスをらせん状に繰り返してシステムを開発。システムの改良だけではなく、開発コストなどをもとに開発プロセス(開発手法や設計指針など)を改善。
プロトタイプモデル:ドキュメントによる要求仕様の確認の困難さを解消するため、プロトタイプを作成し、仕様を確認していくモデル。
成長型モデル:システムに対する仕様変更を前提として、「提供→使用(試用)→仕様変更(改良)」を繰り返しながら、システムを成長させていくという考え方。
構造化手法
階層構造化,段階的詳細化,構造化チャート,状態遷移図,HIPO(Hierarchy plus Input Process Output),DFD,ソフトウェア構造DFD(Data Flow Diagram):「入力」→「処理」→「記憶」、「出力」という関係から、データの流れに着目して、対象となる業務のデータの流れ(データフロー)と処理(プロセス)の関係をわかりやすく図式表現する方法
システムのモデル化:創造化分析では、構造化仕様書を作成するため「現物理モデル→現論理モデル→新論理モデル→新物理モデル」の順でDFDを作成し、システムのモデル化を図る。
構造化分析法:システム機能間のデータの流れに着目して、開発の対象となるシステムの要求を仕様化する技法。
構造化分析の3つのツール
DFD:DFDの作成は、順次階層化していくトップダウンアプローチで行われる。ただ一つだけのプロセスが記述された最上位のDFDを「コンテキストダイアグラム」という
ミニスペック(ミニ仕様書):最終的に詳細化された基本的なプロセス、最下位のDFDの機能仕様書を作成したもの
データディクショナリ(データ辞書):階層化されたすべてのDFD中にあるデータフローで示されたデータとデータストアを構成するデータの内容を定義したもの。