見出し画像

ITパスポート試験に向けて14日目【ソフトウェアの開発モデル】

今日は、ソフトウェアの開発モデルについて学びました。
システムの作り方は、システムの内容や開発者によって作り方が変わります。
ソフトウェア開発モデルとは、ソフトウェアの開発手順や開発方法をモデル化したもので、開発会社ごとに異なるソフトウェア開発の手順や方法を集約して分析し、その特徴的な部分を単純化してまとめたものです。

ウォーターフォールモデル
ソフトウェア開発のプロセスを上流工程から下流工程へ向かって一直線に順番に進める手法です。メリットは、計画が立てやすい点にあり、各工程が明確に分けられているうえに、前工程の完了後に次の工程を始めるという、一直線の進み方のため、開発のスケジュールが立てやすく全体の計画も容易に立てることができます。
デメリットは、修正作業が大変な点です。基本的に、一度作業が完了すると
元の上流工程に作業が戻ることを想定していないため、何かしらの理由でシステムの手直しが生じた場合、不具合があった工程まで戻ってやり直さなければなりません。

アジャイル開発
ウォーターフォールモデルのデメリットを解決するために誕生したのがアジャイル開発です。短期間にソフトウェアの開発とリリースを繰り返し、ビジネス環境の変化やユーザのニーズに柔軟に対応することができます。
アジャイル開発の特徴は、事前に綿密な計画を立てずに、品質は高くなくとも素早く市場に製品をリリースし、市場の反応を取り入れて仕様を変更し、改善した製品を再リリースします。このように、仕様変更を柔軟に行いながら小刻みに製品をリリースすることで、現在の製品に求められるスピードと品質に対応しようとする開発手法です。

OevOps
開発担当者と運用担当者が連携してシステムを開発する手法です。
開発者の目的は、よりよいシステムを作ること。運用者の目的は、システムを安定して運用すること。そのため開発者は品質向上のためにシステムの修正や新機能を追加しますが、これらの作業をするとしすてむが不安定になるため運用者は嫌がります。そのような衝突をツールや組織文化を用いて解決し、ユーザにより良い価値を届けるように取り組みます。

XP
アジャイル開発の手法の1つで、19のプラクティス(実践)が定義された開発手法です。19のプラクティスのうち、ITパスポート試験では3つの手法がよく出題されるようです。
・テスト駆動開発:通常プログラムを書いた後に行う単体テストを、順番を逆にして先に行い、テストを通るようにプログラムを書く開発手法です。
開発者はテストに合格するためのプログラムを書けばよいため、プログラムの目的が明確になります。プログラムが書き終わった段階でプログラムが単体テストに合格しているため、不具合が少ないのもメリットの1つです。
・ペアプログラミング:2人のプログラマが1つのパソコンを使ってソフトウェアを開発する手法です。1人がプログラムを書いているとき、もう1人はそれをチェックしていきます。2人が同じプログラムの内容を理解しながら作業を進めているため、1人が休んでも作業が止まることがない点がメリットとなります。
・リファクタリング:プログラムの機能仕様は変えずに、内部構造を変えることをいいます。外部から見たプログラム動作は変えずにプログラム内部のソースコードを改善していくため、ユーザ視点ではあまりメリットがないように見えますが、プログラムが整理されることで、不具合が減ったり保守が簡単になるメリットがあります。

ソフトウェアの開発モデルでは、
・ウォーターフォールモデルとは、上流工程から下流工程へ向かって一直線に順番に開発工程を進めるソフトウェア開発モデルのこと。
・アジャイル開発とは、短期間に開発とリリースを繰り返すため、ウォーターフォールモデルに比べて仕様変更に柔軟。
・DevOpsとは、開発担当者と運用担当者が連携してシステムを開発すること。
・リファクタリングとは、プログラムの機能仕様は変えずに、内部構造を変えること。

過去問道場でITパスポート試験の過去問を解いていると、上記の4点の開発の手法を問われる問題がよく出題されている印象です。とくに、ウォーターフォール開発とアジャイル開発については特に出題されるようなので、しっかりと覚えたいと思います。


この記事が気に入ったらサポートをしてみませんか?