見出し画像

【Iパス8問】ゴチャるアジャイル開発を整理しよう

アジャイル開発だとかエスクトリームプログラミング(XP)だとか、個別に出てくるからごちゃごちゃしていませんか?

アジャイル開発の一種がエクストリームプログラミング(XP)。エクストリームプログラミングの一例に、リファクタリングやペアプログラミングなどがあります。

構造を把握すれば頭の中も整理されて、すっきりしますね。


従来の開発手法に比べて、柔軟なアジャイル開発は注目されてきて、今もどんどん手法が考案されています。さらに基本情報技術者試験では、スクラム周りが念入りに出題される傾向にありますね。

このNoteでは、ITパスポートの令和5年度から令和元年までの問題から特集してみました。頭の整理をして得点していってくださいね。


なお、このNoteは私が専門学校で教えてきた指導経験と970点合格をした実績に基づいていますので、ちょっとでも信用してくれたら嬉しいです。

\全てのNoteへのリンク集/




アジャイル開発と従来の開発手法

アジャイル開発とは、顧客からの要望による仕様変更に柔軟に対応するための開発手法です。

アジャイルには「素早い」などの意味があります。「ほどほどで良し」のようなイメージですね。最終的にはしっかりしたものを作るは従来開発ともちろん同じです


次の開発手法はどれか。
開発するソフトウェアを、比較的短い期間で開発できる小さい機能に分けて、各機能の開発が終了しリリースすることを繰り返してソフトウェア全体を完成させる開発手法。短期間の開発が終了するたびに機能の内容や優先順位の見直しをするため、利用者からの要望に迅速に対応できる
ア:アジャイル
イ:ウォーターフォール 
ウ:構造化
エ:リバースエンジニアリング 

「ITパスポート試験 令和2年度問37」より改変

正答はア。

ソフトウェア開発を3つ覚えましょう。

  • ウォーターフォール:工程を順番にしていく。無駄がないが、手戻りが発生すると時間も費用もかかる

  • プロトタイピング試作品を作って顧客に確認して開発を進める

  • スパイラルモデル:一連の開発工程(設計・プログラミング・テスト)を繰り返して、次第に開発規模を大きくしていく


アジャイル開発の説明はどれか。
ア:開発中のソフトウェアへの変更要求などに柔軟に対応するために、短い期間の開発を繰り返す 
イ:試作品のソフトウェアを作成し、利用者からの評価をフィードバックして開発する
ウ:ソフトウェア開発の上流工程から下流工程へ順番に実施する
エ:プログラムを解析して、設計情報を抽出して仕様書を作成する

「ITパスポート試験 令和2年度問51」より改変

正答はア。

イはウォーターフォール、ウはプロトタイピング。

エはリバースエンジニアリング。


アジャイル開発の特徴はどれか。
ア:各工程の情報はドキュメントによって引き継がれるので、開発全体のウ様子を把握しやすい
イ:各工程でプロトタイプを作成するので、潜在している問題や要求を見つけやうい
ウ:順番に開発工程を進めるので、後の工程になるほど不具合が発生すると、遡っての修正が発生してしまう
エ:ドキュメントの作成よりもソフトウェアの作成を優先し、顧客の要望が変化してときに素早く取り入れることができる

「ITパスポート試験 令和元年度問49」より改変

正答はエ。柔軟な開発だなぁぐらいで当たりを付けて、他の選択肢を確認するぐらいで良いです。

イはプロトタイピング、ウはウォーターフォール。

残りは、アとエですが、ドキュメントに対して反対のことが書いてて都合よいですね。アのように、ドキュメント(文書)をかっちり作ると、時間かかるし、変更あったら改訂あって大変だなぁとイメージできますから。


アジャイル開発の事例はどれか。
ア:AIの開発に着手する前に、AIの予測精度を検証して有効なアルゴリズムの選別をする
イ:IoT技術を幅広く採用するために、技術をもっているベンダに開発を委託する
ウ:IoTを採用した大規模システムの開発を、上流工程から下流工程まで完了の承認を行いながら順番に進める
エ:分析システムの開発において、短期間の開発サイクルを繰り返しながら分析機能を順次追加する

「ITパスポート試験 令和3年度問51」より改変

正答はエ。

イはアウトソーシング、ウはウォーターフォール。

たぶんアに違和感があるはずです。新用語ですから。

PoCは仮説を実証するために小さな実験をすることです。

データ分析やAIを開発する時に行います。どちらも大量のデータを用意して行うので、本当にその労力に見合う成果が出そうかをPoCによって確認しておきます。


さて、エっぽいけど、アも気になるって場合は、知っている方に賭けましょう。

「自分は勉強が足りないから、知らない正解があるかも」で、完全に勘で選ぶなら勉強した意味がありません。

知っている範囲で判断しましょう。知っている範囲で全部不正解ならば、知らない言葉に賭けましょう。それが消去法です。


エスクトリームプログラミング(XP)

アジャイル開発の1種のエスクトリームプログラミング(XP)のもさらに実践例がたくさんあり、以下4つが良く出ます。

  • ペアプログラミング:2人で共同開発。1人がコーディングし、もう1人がチェックをする開発手法

  • リファクタリング:ソフトの振る舞いを変えずに、内部構造の見通しを改善する

  • テスト駆動開発:あらかじめ作ったテストをクリアするように開発を進める

  • 継続的インテグレーション:開発したコードを頻繁に結合(ビルド)してテストをする開発

特に最初の2つが頻出用語です。


エクストリームプログラミング(XP)の説明はどれか。
ア:テストプログラムを先に作成し、テストを合格するにコードを記述する開発手法
イ:一つのプログラムを2人のプログラマが共同開発し、1人がコーディングし、もう1人がチェックをする開発手法
ウ:プログラムの振る舞いを変えずに、内部構造を改善すること
エ:アジャイル開発の一つで、仕様変更に対応してソフトウェアを短いサイクルでリリースする

「ITパスポート試験 令和4年度問38」より改変

正答はエ。

ア~ウはXPの一種ですが、XPそのものの説明ではありませんでした(ちょっとモヤっとする問題ですね)。

  • ア:テスト駆動開発

  • イ:ペアプログラミング

  • ウ:リファクタリング

テスト駆動開発は基本情報技術者では良く出るので、今は覚えてなくても致命的ではないです。


既存のプログラムを、外側から見た動きを変えずに、内部構造を改善する活動はどれか。
ア:テスト駆動開発
イ:ペアプログラミング
ウ:リバースエンジニアリング
エ:リファクタリング

「ITパスポート試験 令和3年度問48」より改変

正答はエ。

リファクタリングは、リバースエンジニアリングと一緒に選択肢として登場することが極めて多いです。

リバースエンジニアリング:プログラムソースを解析して仕様書を書き起こす


スクラム開発

アジャイル開発の1種、スクラム開発も出題され始めました。

スクラムは、開発を短期間に区切って(スプリント)、一連の開発工程を繰り返す開発手法。

ITパスポート試験ではあまり出ませんが、今後のために対策しておきましょう。大した量でもないですからね。


アジャイル開発の方法論んであるスクウムの記述はどれか。
ア:ソフトウェア開発組織の成熟度レベルを段階的に評価したもの
イ:ソフトウェア開発の取引において、発注者と受注者が作業内容について共通の物差しとするために定義したもの
ウ:複雑で変化の激しい問題に対応するためのシステム開発のフレームワークであり、反復的で漸進的な手法を定義したもの
エ:プロジェクトマネジメントの知識を体系化したもので、10個の知識エリアなどを定義している

「ITパスポート試験 令和元年度問40」より改変

正答はウ。

  • CMMI:ソフトウェア開発の組織力の段階評価です。

  • 共通フレーム:ソフトウェア開発の発注者(素人)と受注者(プロ)での言葉の統一と思ってください。

  • PMBOK:10個の知識エリアでよく出題されます。

特に重要なのはPMBOK(ピンボック)

マネジメントは4~5個は覚えてください。とくにスコープマネジメントが鬼門ですので、問題演習で慣れましょう。>>プロジェクトマネジメントの対策Note<<


アジャイル開発において、短い間隔による開発工程の反復、または開発サイクルを表す用語はどれか。
ア:イテレーション 
イ:スクラム 
ウ:プロトタイピング 
エ:ペアプログラミング 

「ITパスポート試験 令和元年度問52」より改変

正答はア。イテレーションには繰り返すという意味があります。プログラム言語のループ(反復)でも使われる言葉です。

問題が1つあります。短期間区切りの呼び方が変わります。

  • エクストリームプログラミング(XP)では、イテレーション

  • スクラム開発では、スプリント 

今のところ2つ同時に選択肢に表れることはないので気にしなくて良いですが、各用語は基本情報技術者試験にはよく出てきます。


まとめ | スクラム開発はFEでもっと出てくる

アジャイル開発は整理できたでしょうか。

  • アジャイル開発

    • エクストリームプログラミング(XP)

      • リファクタリング

      • ペアプログラミング

      • テスト駆動開発

      • 継続的インテグレーション

    • スクラム開発

知識は体系化してこそ、覚える量が少なくなりますし、ストーリーも生まれるので単なる暗記でなく、知識として身に付きます。

よく「フレームワーク」と云われて正直よく分からないかもですが、「手法でしょ」「そういう感じ(枠組み)でしょ」と軽く考えて大丈夫です。

また、スクラムは基本情報技術者にて、チームの役割やツールまで出題されます(スクラムマスター、バックログなど)。

今後覚えること、新しく出題される用語は増えますから、整理しながら学習を進めていきましょう。

\全てのNoteへのリンク集/

p.s. 普段は >> 専門学校とIT就職のブログ << をやってます。

でわでわ(・ω・▼)ノシ

この記事が参加している募集

スキしてみて

学習方法・問題特集のNoteは全て無料提供を続けます▼ もしご覧になったNoteが有益だったり、私の志に共感されたりしましたら、サポート頂けますと励みになります▼ もちろんコメントでも結構です(・ω・▼)ノシ