IPA 開発モデル・ライフサイクルプロセス — 頻出論点と過去問

頻出論点

1. この分野は何か

ソフトウェアを一度に作るか、分けて作るか、試しながら作るかという進め方の型と、企画から廃棄までの作業を規格がどう区切って名前を付けているかを扱います。似た進め方どうしの違い、規格の版ごとのプロセスの名前と役目、組織の成熟度の段階の言い分けで迷いやすくなります。

2. 実際の出題のされ方

前提となる要求の性質から適切な開発モデルを選ぶ問いでは、仕様変更の見込みが少ない場合のモデル、初期に確認用のソフトウェアを作って要求を確かめるモデル、そして機能を追加していく方針と要求を洗練していく方針の対比などが問われます。これらはITパスポートやシステムアーキテクトの午前IIで出題されています。

開発を反復する手法の中からユースケース駆動開発の利点を選ばせる問題も、システムアーキテクトとプロジェクトマネージャの午前IIで出ています。

再利用を前提とした開発手法については、エンベデッドシステムスペシャリストやデータベーススペシャリストの午前IIで扱われます。ソフトウェアプロダクトライン開発の説明を選ぶ問題、製品のロードマップに沿ってこの手法を使う利点を選ぶ問題、複数の機器に共通の基盤を使う開発の利点を選ぶ問題が出ています。

JIS X 0160:2021や共通フレーム2013が定めるプロセスとタスクの見分けは、システムアーキテクトとプロジェクトマネージャの午前IIで繰り返し出題されています。プロセス群の役割、移行プロセスや廃棄プロセスのタスクと使う時期、保守の修正作業で開始するプロセス、プロジェクトに合わせてプロセスを調整することを指す用語などが問われます。

プロセスの評価と成熟度に関しては、プロセスアセスメントのJIS規格の説明や、CMMIモデル V2.0の成熟度レベルの状態を選ぶ問題へ進みます。これらは応用情報技術者の午前とプロジェクトマネージャの午前IIで問われています。

3. 学習のポイント

開発モデルの特徴は、初期段階での要求の確定度合いと分割・反復の目的から整理します。

  • ウォーターフォールモデル: 最初に要求を固めきり、工程を一度ずつ順に進めて全体をまとめて作ります。
  • プロトタイピングモデル: 早い段階で試作品(プロトタイプ)を作り、利用者に実際の動きを確認してもらいながら要求を固めます。
  • 段階的モデルと進化的モデル: 段階的モデルは、全体の中心になる部分を先に作り、残りの機能を順に足していく進め方です。進化的モデルは、はじめは要求がはっきりしない前提で、作っては見直す回を重ねながら要求そのものを固めていく進め方です。
  • スパイラルモデル: 独立性の高い部分ごとに分割し、設計からテスト・評価までのサイクルを繰り返して完成度を高めます。回ごとにリスクの大きい部分から先に確かめていくのが特徴です。
  • ユースケース駆動開発: 利用者がシステムをどう使うかを書いたユースケースを開発の軸に置き、作る範囲の区切りも、出来上がりの確かめも、使い方ごとに行う進め方です。

複数製品にわたる再利用の手法は、共通部分と個別部分の切り分け方を押さえます。

  • ソフトウェアプロダクトライン開発: 製品群に共通する部分をコア資産として前もって計画的に作り込み、それを組み合わせて個々の製品を作る進め方です。製品ごとに部品を一から作り直さずに済むので、新しい製品を出すときの手間が減ります。
  • プラットフォーム開発: 機器の種類が違っても共通に使える土台(プラットフォーム)を先に用意し、機器ごとの違いはその上に載せる部分で作り分ける開発です。

JIS X 0160:2021のプロセスは、プロセス群と個別のプロセスの役割を区別して押さえます。

  • 4つのプロセス群: JIS X 0160:2021は、合意、組織のプロジェクトイネーブリング、テクニカルマネジメント、テクニカルの4つのプロセス群に分けています。名前の似たテクニカルマネジメントプロセス群(プロジェクトの計画や管理)とテクニカルプロセス群(要求を製品やサービスに変えて運用する)を取り違えないようにします。
  • 修整(Tailoring): JIS X 0160:2021では、規格が示すプロセスをそのまま使うのではなく、プロジェクトの事情に合わせて手を加えることを修整と呼びます。
  • 移行プロセスと廃棄プロセス: 移行プロセスでは、システムを運用の場へ移すにあたり、使う人と運用する人に必要な文書と教育を用意します。廃棄プロセスは、運用を終えるときだけでなく、試作品を片付けるときのように、ライフサイクルの途中のどこでも使います。廃棄を確実化するアクティビティでは、片付けたあとに人や環境への害が残っていないかを確かめます。
  • 共通フレーム2013の保守プロセス: 共通フレーム2013の保守プロセスで「修正の実施」を行う際は、保守の中で独自の手順をとるのではなく、システム開発プロセスとソフトウェア実装プロセスを開始して修正とテストを実施します。

プロセス評価と成熟度については、規格の目的とCMMI V2.0の段階の進み方を把握します。

  • JIS X 33002:2017: プロセスアセスメントを行うときに満たすべき要求事項を定めた規格です。
  • CMMI V2.0の成熟度レベル: プロジェクトごとに計画と管理ができている段階(レベル2)から、組織の標準に沿って進める段階(レベル3)、数値の目標とデータで運営する段階(レベル4)、改善を続けて変化にすばやく応じる段階(レベル5)へと上がっていきます。

4. 間違えやすいところ

段階的モデルと進化的モデルの取り違えには注意が必要です。どちらも反復や分割を伴いますが、最初にコア部分を開発して順次機能を追加する方針を進化的モデルとしたり、要求が不明確なため開発を繰り返して徐々に要求を洗練する方針を段階的モデルとしたりする入れ替えが誤答肢にあります。機能の追加なのか、要求そのものの洗練なのかで見分けます。

ユースケース駆動開発の利点を問う問題では、基本の構造を初めに決めて部品を使い回しやすくするという、アーキテクチャを中心に置く進め方の利点が誤答肢にありました。

プロダクトライン開発の利点を選ぶ問題では、製品ごとに完全に独立して開発するので不具合がほかの製品に広がらない、とする誤答肢がありました。コア資産を共有する以上、コア資産の不具合は、それを使うすべての製品に及びます。

共通の基盤を使い回すプラットフォーム開発の利点を問う問題では、機器ごとにハードウェアとソフトウェアを組み合わせる結合テストを省けるとする誤答肢がありました。共通の基盤を使っても、機器固有のハードウェアや追加部分との組み合わせで不具合が起きる可能性があるため、機器ごとの結合テストは省けません。

JIS X 0160の各プロセスでは、前後のプロセスやアクティビティのタスクを入れ替えた誤答肢があります。移行プロセスのタスクを問う問題では、要件どおりにできていると関係者に認めてもらうという、検証プロセスの側の作業が誤答肢にありました。

廃棄を確実化するアクティビティのタスクを問う問題では、廃棄の戦略を定めるという、廃棄の準備の段階のタスクが誤答肢にありました。

JIS X 33002の説明を選ぶ問題では、プロセスの改善そのものを進めるための規格とする誤答肢がありました。

開発モデル・ライフサイクルプロセスの理解度チェック

開発モデル・ライフサイクルプロセスの過去問一覧

開発プロセスのほかの論点

アジャイル開発(スクラム・XP・リーン)50問 DevOps・開発環境とツール21問 規模・工数見積り11問