今日はなかなかサクサクと進んで嬉しいです。
本日も気合いを入れて参りましょう!
それでは、いってみよー!!
基本情報技術者~ソフトウェア開発手法~
ソフトウェアの開発モデル
同じソフトウェアを作るにしても、開発会社ごとに開発手法は異なります。基本情報技術者試験では、中でも「アジャイル開発」「スクラム」「XP」の3つの用語が頻出です。これらの用語を念頭に読み進めてみましょう。
ウォーターフォールモデル
ウォーターフォールモデルとは、ソフトウェアの開発プロセスを上流工程から下流工程へ向かって順に進める手法です。滝のように上から下へ作業が流れていくことからこの名前が付けられました。
メリットは、計画が立てやすい点です。
一方、デメリットは、修正作業が大変という点が挙げられます。
このデメリットを解消すべく作られた開発方法が、次にご紹介するアジャイル開発です。
アジャイル開発
アジャイル開発とは、短期間にソフトウェアの「要件定義」「設計」「プログラミング」「テスト」「リリース」を繰り返すことで、ビジネス環境の変化やユーザーのニーズに柔軟に対応する開発モデルです。アジャイル(Agile)には、「素早い」という意味があります。
スクラム
アジャイル開発の手法のひとつとして、「スクラム」というものがあります。
スクラムとは、開発作業を一定の期間(スプリント)に区切って、その期間中に実現すべき機能を明確にして、チーム全体でスクラムを組んで開発に取り組む手法です。スプリントは数回繰り返されます。また、スクラムには次の4つのイベントがあります。
イベント | 説明 |
---|---|
スプリントプランニング | スプリントの開始時に行われるミーティング。この目的を記した文章を「スプリントゴール」という。 |
デイリースクラム | スプリントの期間中に毎日行われる15分ほどのミーティング。「昨日やったこと」「今日やること」「今の課題」を共有する。 |
スプリントレビュー | スプリントの終了時に行われるミーティング。今回のスプリントで完成した成果物を評価する。 |
レトロスペクティブ | スプリントレビューの後に行われるミーティング。今回のスプリントを振り返る。 |
スクラムにおいて、これらのイベントを通じて、チームのコミュニケーションを強化し、柔軟かつ迅速な開発が行える環境を作ります。
リバースエンジニアリング
リバースエンジニアリングとは、すでに存在しているソフトウェアを解析して、その仕様や設計を取り出す技術です。
リバースエンジニアリングを用いる場合とは、システムが古すぎてソースが残っていなかったりい設計書が古かったり、残っていない場合です。リバースエンジニアリングからUMLのクラス図を作ったり、E-R図を作成したりして、新しい設計書を書き直します。
- フォワードエンジニアリングとリバースエンジニアリング
通常の工程で行う作業をフォワードエンジニアリングといいます。リバースエンジニアリングとフォワードエンジニアリングを組み合わせた手法を「リエンジニアリング」と呼びます。
リエンジニアリングにより、すでにあるプログラムを解析して、新たなプログラムを作成します。
マッシュアップ
マッシュアップとは、複数のWebサービスを組み合わせて、新しいサービスを作り上げる手法です。マッシュアップには、以下の3種類があります。
種類 | 説明 |
---|---|
プレゼンテーション マッシュアップ | 複数のWebサービスを表示する手法。 例)自社のサービスに飲食店のページを載せる際に、他のWebサービスが提供している地図を用いてお店までの経路を表示する。 |
データ マッシュアップ | 複数のWebサービスの出力を統合して表示する手法。 例)複数のWebサービスから経済データを集めてグラフを表示する。 |
ロジック マッシュアップ | 複数のWebサービスの出力を連結して表示する手法。 例)Webサービスから宿泊施設のリストを取得し、そのリストを使って、別のWebサービスから各宿泊施設の空室状況を取得し表示する。 |
XP
XP(eXtreme Programming)とは、アジャイル開発を行うための19のプラクティス(実践)が定義された開発手法のことです。
19個も!?と思った方へ、安心してください。基本情報技術者試験で取り扱われるのは、そのうちの「ペアプログラミング」と「リファクタリング」です。
XPの19のプラクティスを以下に示します。
分類 | プラクティス |
---|---|
共同 | ①反復 ②共通の用語 ③オープンな作業空間 ④回顧 |
開発 | ⑤テスト駆動開発 ⑥ペアプログラミング ⑦リファクタリング ⑧ソースコードの共同所有 ⑨継続的インテグレーション ⑩YAGNI |
管理者 | ⑪責任の受入れ ⑫援護 ⑬四半期毎の見直し ⑭ミラー ⑮最適なペースの仕事 |
顧客 | ⑯ストーリーの作成 ⑰リリース計画 ⑱受入れテスト ⑲短期リリース |
- ペアプログラミング
ペアプログラミングとは、2人のプログラマが1つのパソコンを使って開発を行う手法です。1人がプログラムを書いているとき、もう1人はそれをチェックします。
例えば、片方が仕事を休んだとしても、もう1人が作業を続けることができるというメリットがあります。
- リファクタリング
リファクタリングとは、プログラムの外部仕様は変えずに、内部構造を変えることです。例えば、ソースをこうしたほうが工数が減る等といった場合です。プログラムが整理されることで、不具合が減ったり、開発者の保守が楽になったりします。
ソフトウェア構成管理
ソフトウェア構成管理(Software Configuration Management:SCM)とは、ソフトウェアのバージョンを管理して、トラブルを未然に防ぐことです。
- 構成品目
ソフトウェア構成管理の管理対象となるものを、「構成品目」と呼びます。構成品目の具体例を以下に示します。
分類 | 構成品目 |
---|---|
システムソフトウェア 関連 | OS、データベースマネジメントシステム、各種ミドルウェア |
アプリケーション ソフトウェア関連 | アプリケーションシステム、サブシステム、プログラム、モジュール |
ファイル関連 | データベース、テーブル、レコード、フィールド |
マニュアル関連 | 業務運用マニュアル、システム運用マニュアル、システム(画面)操作マニュアル |
小休止!お試しトライ!過去問①
問1 XP
問題
ソフトウェア開発の活動のうち、アジャイル開発においても重視されているリファクタリングはどれか。
平成29年度
ア.ソフトウェアの品質を高めるために、2人のプログラマが協力して、一つのプログラムをコーディ
ングする。
イ.ソフトウェアの保守性を高めるために、外部仕様を変更することなく、プログラムの内部構造を
変更する。
ウ.動作するソフトウェアを迅速に開発するために、テストケースを先に設定してから、プログラム
をコーディングする。
エ.利用者からのフィードバックを得るために、提供予定のソフトウェアの試作品を早期に作成する。
解答
ア.から順番に見ていきます。
ア.ペアプログラミングの説明です。
イ.リファクタリングの説明です。
ウ.テスト駆動開発の説明です。
エ.プロトタイピングモデルの説明です。
従って、解はイ.となります。
最後に
ソフトウェア開発手法を学んでみて、皆様、いかがでしたでしょうか?
予想より短くて楽でしたね。
ちなみに、テキストを読まないと完全な学習は行えませんので、ぜひ下で紹介している本をご購入いただけたらと思います。
こちらが参考にさせていただいているテキストです。


ではでは、参考までに
コメント