ITパスポート 学習ページ|マネジメント系・開発技術
開発手法とアジャイル
ソフトウェア開発では、対象や要求の変化に応じて開発の進め方を選びます。ウォーターフォール、プロトタイピング、アジャイルの違いと、DevOpsやスクラムの用語を整理します。
構造化とオブジェクト指向
構造化手法では、システムを処理やデータの流れなどに分けながら整理して設計します。一方、オブジェクト指向では、データとそれを扱う処理をまとまりとして捉えます。
オブジェクト指向では、共通する性質をまとめたり既存の仕組みを再利用したりしやすくなります。クラス、継承などの概念が出てきたらオブジェクト指向と結び付けると判断しやすくなります。
利用者がシステムをどのように使うかを表すユースケースや、システムの構造や振る舞いを図で表すUMLも開発で利用されます。
クラスや継承はオブジェクト指向の手掛かり
DevOpsとMLOps
DevOpsは、開発担当と運用担当が連携し、開発から運用までを継続的に改善していく考え方です。テストやリリース、環境構築などの自動化も組み合わせ、変更を届けやすくします。
開発と運用を完全に分離するのではなく、互いに協力してサービス改善につなげる点が重要です。DevOpsは開発と運用の協力によって継続的な提供と改善を進める考え方です。
機械学習システムでは、モデルの開発だけでなく学習、配備、監視、再学習なども継続的に管理する必要があります。このような機械学習の開発・運用を効率化する考え方としてMLOpsがあります。
DevOpsは開発と運用が連携して改善する
ウォーターフォール
ウォーターフォールモデルは、要件定義、設計、実装、テストなどの工程を段階的に進める開発モデルです。各工程の成果を確認しながら次の工程へ進めます。
要求が比較的明確で、大きな変更が少ないと見込まれる開発では計画を立てやすい特徴があります。開発途中で要求が大きく変わる案件では、前工程へ戻る影響が大きくなることがあります。
要求が明確なら段階的に進めやすい
試作して要求を確かめる
要求が言葉だけでは分かりにくい場合、早い段階で試作品を作り、利用者に確認してもらう方法があります。これがプロトタイピングモデルです。
画面や操作のイメージを実物に近い形で確認できるため、要求の認識違いを見つけやすくなります。試作品を利用者に見せて要求を具体化するという説明が手掛かりです。
スパイラルモデルは、開発対象を分け、計画やリスク分析、開発、評価などを繰り返しながら段階的に完成度を高めます。
プロトタイピングは試作品で要求を確認
既存ソフトから仕様を探る
既存のプログラムを解析し、その構造や仕様を明らかにする活動をリバースエンジニアリングといいます。仕様書が不足している既存システムを調査する場面などで使われます。
内部構造を改善するリファクタリングとは目的が異なります。リバースエンジニアリングは既存物から設計や仕様を読み解く活動です。
リバースは既存プログラムから仕様を読み解く
短い周期で価値を届ける
アジャイル開発では、要求を全て固めてから一括して完成させるのではなく、短い期間で計画、開発、確認を繰り返します。利用者からの反応や環境の変化を次の開発に取り込みやすい方法です。
作る機能を小さく分け、動くソフトウェアを段階的に提供していきます。変更を避けるのではなく、フィードバックを受けて柔軟に対応することが特徴です。
利用者の要求は「利用者として何をしたいか」という形のユーザーストーリーなどで表現されます。優先度を考えながら、価値の高い項目から取り組みます。
アジャイルは短い周期で作り評価して改善
スクラムの役割と成果物
スクラムでは、一定の短い開発期間をスプリントと呼びます。スプリントごとに取り組む項目を選び、開発と確認を繰り返します。
作りたい機能や改善事項を優先順位付きで並べた一覧がプロダクトバックログです。その中から現在のスプリントで扱う項目を選んだものがスプリントバックログです。
スクラムチームにはプロダクトオーナー、開発者、スクラムマスターなどの役割があります。プロダクトオーナーは製品価値を高めるためにバックログの優先順位を管理する役割を担います。
全体候補がプロダクト、今回分がスプリント
XPと継続的な改善
XPで使われる実践の一つにペアプログラミングがあります。二人で同じプログラム作成に取り組み、コードを継続的に確認しながら進めます。
テスト駆動開発では、実装する機能に対するテストを先に用意し、それを満たすコードを作っていきます。またリファクタリングでは、外部から見た機能を変えずに内部構造を改善します。
複数の開発者による変更を頻繁に統合してテストする考え方が継続的インテグレーションです。リファクタリングは新機能の追加ではなく、既存機能を保ったまま内部を整理する活動です。
リファクタリングは機能を変えず内部改善
開発プロセスの共通基盤
開発や保守、取引で行う作業を共通の枠組みとして整理したものにSLCPがあります。関係者間で作業や役割について共通理解を持ちやすくする考え方です。
組織の開発・保守プロセスを評価し、改善するためのモデルとしてCMMIがあります。CMMIは組織のプロセス成熟度を段階的に評価し、改善につなげるために利用されます。
SLCPは作業の共通化、CMMIは成熟度評価
本番の形で解いてみる
基本の問題(このページのために作った問題・本番と同じ四肢択一)
ソフトウェアの開発担当と運用担当が協力し、自動化も活用しながら短い周期でサービスの変更を提供して改善していく取組はどれか。
- DevOps
- CI
- CD
- アジャイル開発
答えと解説を見る
正解: DevOps
開発担当と運用担当が連携し、自動化を活用して継続的な提供と改善を進める考え方がDevOpsです。CIやCDはその実践で利用される個別の仕組みです。
まちがえやすい点: CIやCDと、それらを含む開発・運用連携の考え方を区別する。
基本の問題(このページのために作った問題・本番と同じ四肢択一)
利用者の要求が十分に具体化されていないため、開発初期に画面操作ができる試作品を作って利用者の意見を得る。この進め方に最も適した開発モデルはどれか。
- ウォーターフォールモデル
- プロトタイピングモデル
- スパイラルモデル
- アジャイル開発
答えと解説を見る
正解: プロトタイピングモデル
試作品を利用者に確認してもらい、要求を具体化する進め方はプロトタイピングモデルです。スパイラルモデルも反復しますが、ここでは試作品による要求明確化が中心です。
まちがえやすい点: 反復する開発モデルの中でも、試作品で要求を具体化する点に注目する。
基本の問題(このページのために作った問題・本番と同じ四肢択一)
既存プログラムの外部から見た動作を変えずに、重複した処理を整理して内部構造を読みやすくする活動はどれか。
- リファクタリング
- リバースエンジニアリング
- リエンジニアリング
- コードレビュー
答えと解説を見る
正解: リファクタリング
外部から見た動作を変えず、コードの内部構造を改善する活動がリファクタリングです。リバースエンジニアリングは既存システムから仕様や構造を解析する活動です。
まちがえやすい点: 解析する活動と、内部構造そのものを改善する活動を混同しない。
この内容を問題で確かめる
読んだところを、本番と同じ四肢択一の10問セットで思い出してみましょう。
ITパスポートの問題を解く →このページの内容は、IPA「ITパスポート試験 シラバス Ver.6.5」(2026年1月公表)の範囲にもとづきます(2026年10月確認)。