開発技術とプロジェクトマネジメント
V字モデルの工程対応、モジュール強度・結合度、テスト網羅基準の整理に加え、PERTのクリティカルパス計算とEVM(SPI=EV÷PV・CPI=EV÷AC)の計算を確実に得点することが本章攻略の二本柱である。
ソフトウェア開発プロセスの標準として、JIS X 0160(ソフトウェアライフサイクルプロセス)と、これを日本の商慣行に合わせて具体化した共通フレーム2013(SLCP-JCF2013)が出題の基盤となる。共通フレームは企画・要件定義・開発・運用・保守のプロセスを定義し、取得者と供給者の間で作業範囲や用語の認識を合わせる「共通の物差し」であり、契約の前提となる点が問われる。開発モデルでは、工程を後戻りしない前提で順次進めるウォーターフォールモデル、試作品を早期に作成して利用者の要求を確認するプロトタイピングモデル、システムを分割し設計と評価を反復しながらリスクを低減するスパイラルモデルの特徴の対比が頻出である。また、要件定義・設計の各工程と単体・結合・システム・受入の各テストを対応付けるV字モデルは、システムテストがシステム要件定義に対応する検証であるといった対応関係が午前・午後の双方で問われる。
設計は、利用者から見える画面・帳票やインタフェースを決める外部設計と、システム内部の処理方式やデータ構造を決める内部設計に大別される。構造化設計ではDFDやE-R図によるモデル化に加え、STS分割・トランザクション分割・ジャクソン法などのモジュール分割技法が問われる。最重要論点はモジュールの独立性であり、モジュール強度(凝集度)は機能的強度が最も強く暗合的強度が最も弱い、モジュール結合度はデータ結合が最も弱く内容結合が最も強い、そして独立性を高めるには「強度を強く・結合度を弱く」すると整理して覚える。オブジェクト指向では、カプセル化・継承・多相性(ポリモーフィズム)の三概念に加え、クラス図・シーケンス図・ユースケース図などUML各ダイアグラムの用途、汎化と集約・コンポジションの関係の区別、GoFデザインパターンの代表例(Singleton、Observerなど)の目的が出題される。
テストは技法の分類と網羅基準の理解が核心である。プログラムの内部構造に着目するホワイトボックステストの網羅基準は、弱い順に命令網羅、判定条件網羅(分岐網羅)、条件網羅、複数条件網羅であり、判定条件網羅は各判定の真と偽を少なくとも1回ずつ実行させる基準である。仕様に着目するブラックボックステストでは、入力を有効同値クラスと無効同値クラスに分けて代表値を選ぶ同値分割と、クラスの境界前後の値を選ぶ境界値分析が頻出で、境界付近に誤りが集中する経験則が根拠となる。結合テストでは、上位から統合するトップダウンテストには未完成の下位モジュールの代替となるスタブが、下位から統合するボトムアップテストには上位の代替となるドライバが必要である。加えて、修正の影響が他へ波及していないか確認する回帰テスト(リグレッションテスト)、テスト消化件数とバグ累積件数で品質を管理する信頼度成長曲線(ゴンペルツ曲線)、モデレータが主導する公式レビューであるインスペクションとウォークスルーの違いも問われる。
アジャイル開発は近年の本試験で出題比重が高い。アジャイルソフトウェア開発宣言は「プロセスやツールよりも個人と対話を」「包括的なドキュメントよりも動くソフトウェアを」など4つの価値を掲げる。スクラムでは、プロダクトの価値最大化とプロダクトバックログの管理に責任を持つプロダクトオーナー、スクラムの理解と実践を支援するスクラムマスター、開発者という3つの役割と、スプリントプランニング・デイリースクラム・スプリントレビュー(インクリメントをステークホルダーに披露して検査する)・スプリントレトロスペクティブ(プロセスを振り返り改善する)という各イベントの目的の区別が問われる。XP(エクストリームプログラミング)のプラクティスでは、二人一組で実装するペアプログラミング、テストコードを先に書くテスト駆動開発、外部から見た振る舞いを変えずに内部構造を改善するリファクタリング、継続的インテグレーションが定義の入替え形式で出題される。開発と運用が連携するDevOpsとCI/CDパイプラインも押さえておく。
プロジェクトマネジメントの体系は、JIS Q 21500(ISO 21500に対応する「プロジェクトマネジメントの手引」)とPMBOKガイドが根拠となる。プロジェクトは独自の成果物を有期性の活動で生み出す点で定常業務と区別され、プロセス群は立ち上げ・計画・実行・管理・終結の5つに整理される。対象群(知識エリア)は統合・ステークホルダ・スコープ・資源・時間・コスト・リスク・品質・調達・コミュニケーションの10領域であり、午前試験ではある管理活動がどの対象群に属するかの分類が問われる。スコープ管理の中心はWBS(ワークブレークダウンストラクチャ)で、成果物と作業を階層的に分解し、最下位のワークパッケージが見積り・進捗管理の単位となること、分解に際して上位要素の作業を漏れなく含める100%ルールが適用されることを押さえる。ステークホルダーの特定と関与度管理、コミュニケーション経路数がn(n-1)/2で増加する計算問題も出題実績がある。
スケジュール管理ではアローダイアグラム(PERT図)の計算が最頻出である。各結合点の最早結合点時刻は先行作業の完了時刻の最大値、最遅結合点時刻は後続作業からの逆算の最小値で求め、両者が一致して余裕(フロート)がゼロの作業をつないだ最長経路がクリティカルパスとなる。クリティカルパス上の作業の遅延はプロジェクト全体の完了遅延に直結するため、短縮策として、要員追加や残業などコストを投入して所要期間を圧縮するクラッシングと、順次実施予定の作業を並行実施するファストトラッキングを区別して覚える。ガントチャートは作業の開始・終了時期と進捗の視覚化に優れるが、作業間の依存関係の表現には向かない。また工数(人月)の配分計算、例えば全体20人月の作業のうち4人で3か月実施した残りを2か月で終えるための要員数を求める形式の問題や、遅延プロジェクトへの安易な要員追加はかえって完了を遅らせるというブルックスの法則も出題実績がある。
EVM(アーンドバリューマネジメント)は計算問題の定番である。PV(計画価値)・EV(出来高)・AC(実コスト)の3値から、スケジュール差異SV=EV−PV、コスト差異CV=EV−AC、スケジュール効率指数SPI=EV÷PV、コスト効率指数CPI=EV÷ACを導き、SVが負またはSPIが1未満なら進捗遅れ、CVが負またはCPIが1未満ならコスト超過と判定する。完成時総コスト見積りEACは、現状のコスト効率が継続する前提でEAC=AC+(BAC−EV)÷CPIにより求める。規模・工数の見積りでは、外部入力・外部出力・内部論理ファイルなどの機能の個数に複雑さに応じた重み付けをして規模を測るファンクションポイント法、ソースコード行数から工数を数式モデルで推定するCOCOMO、過去の類似プロジェクト実績に基づく類推見積法、楽観値・最頻値・悲観値を(楽観値+4×最頻値+悲観値)÷6で加重平均する三点見積法(PERT見積り)の使い分けが問われる。
リスクマネジメントでは、脅威(マイナスのリスク)への対応戦略として、リスク要因そのものを取り除く回避、保険加入や外部委託によって影響を第三者に移す転嫁(移転)、発生確率や影響度を下げる軽減、能動的な対策をとらず受け入れる受容(コンティンジェンシー予備の確保を含む)の4分類が最頻出であり、好機(プラスのリスク)には活用・共有・強化・受容が対応する。定量的リスク分析では、発生確率×金額影響で期待金額価値(EMV)を算出するデシジョンツリー分析が計算問題として出題される。品質マネジメントでは、パレート図・特性要因図・管理図・散布図・ヒストグラムなどQC七つ道具の用途の区別が定番であり、パレート図は重点指向で対処すべき少数の主要因を特定する図である点を押さえる。品質コストを予防コスト・評価コスト・失敗コストに分類する考え方、工程別のバグ摘出率でレビューやテストの妥当性を評価する手法にも目を通しておくとよい。
この章の問題から3問
ウォーターフォールモデルでは、開発対象を分割し、設計と評価を反復しながら段階的にリスクを低減して開発を進める。
正解 ×(誤り)
誤り。記述はスパイラルモデルの特徴である(IPA試験要綱・シラバス「開発プロセス・手法」)。ウォーターフォールモデルは要件定義から順に工程を進め、原則として前工程への後戻りを行わないことを前提とする。「反復」「リスク低減」という語が出たらスパイラルを疑うのがひっかけ回避の要点。
モジュールの独立性を高めるには、モジュール強度(凝集度)を強くし、モジュール結合度を弱くすることが望ましい。
正解 ○(正しい)
正しい。構造化設計(Myersの理論、IPAシラバス「モジュールの設計」)では、強度は機能的強度が最も強く暗合的強度が最も弱い、結合度はデータ結合が最も弱く内容結合が最も強いと整理され、独立性向上には「強度は強く・結合度は弱く」が原則。両方とも弱く(または強く)すると覚え違えるのが典型的なひっかけである。
スクラムにおけるスプリントレトロスペクティブは、スプリントで完成したインクリメントをステークホルダーに披露し、フィードバックを得るためのイベントである。
正解 ×(誤り)
誤り。記述はスプリントレビューの説明である。スクラムガイド(2020年版)によれば、スプリントレトロスペクティブは品質と効果を高める方法を計画するイベントであり、個人・プロセス・ツールなどの観点でスプリントの進め方を振り返って改善策を特定する。成果物の検査(レビュー)とプロセスの振り返り(レトロスペクティブ)の対象の違いがひっかけの核心。
登録不要 ・ 採点と解説はその場 ・ 進捗は端末に保存
応用情報技術者の他の章
- 基礎理論とアルゴリズム(計算量・待ち行列・符号化)
- システムアーキテクチャ(性能・信頼性設計・仮想化)
- ネットワークとデータベース(ルーティング・SQL応用・分散)
- 情報セキュリティ(暗号・認証・攻撃手法と対策)
- 経営戦略・システム監査・法務
本ページの講義ノートと問題は、各試験の出題範囲に基づきAIが作成し、法令・基準に照らして別のAIレンズで敵対的に検証したものです(検証プロセス)。法改正等で誤りが見つかった場合は随時修正します。合格を保証するものではありません。