ソフトウェア開発管理技術 ITパスポート対策マネジメント系-開発技術編②
6 views
2023-10-152023-10-14
開発モデル・手法
ウォーターフォールモデル
水が高い所から低い所へ流れていくように、計画の順序に従って一つずつ工程を進めていく古典的な開発モデルです。原則として終了した前工程に戻ることはできませんので、柔軟性に欠けますが計画が立てやすいなどのメリットがあります。
プロトタイピングモデル
時間をかけずにプロトタイプ(試作品)を作り、ユーザに使って貰い意見を聴きながら改善していく手法です。早い段階でユーザーに確認してもらえるので、ユーザーの要求と大きくずれたものが出来上がってしまうリスクを減らすことができます。
スパイラルモデル
システムをいくつかのサブシステムに分割し、それぞれのサブシステム毎に設計~テストという一連の工程を繰り返しながら進めていく手法です。
RAD
Rapid Application Developmentの略で、開発ツールや既存の部品(モジュール)を利用することやプロトタイプ開発とスパイラルモデルを組合わせることで、高速でソフトウェアを完成させる手法を指します。
リバースエンジニアリング
既存の製品を分解、解析することで、その製品の構造や仕様を明らかにし、得られた知見を開発にいかしていく手法です。他者製品に対してリバースエンジニアリングを行う際は、著作権法や不正競争防止法に抵触しないか確認する必要があります。
DevOps
Development(開発)と Operations(運用)を組合わせた造語で、ソフトウェアの開発担当者と運営担当者が密接に連携しながら継続的に品質の改善や機能の追加を図っていく体制を指します。
従来の機能別に分離された組織では、運用で問題が発覚してもそれがフィードバックされるまで時間がかかっていましたが、DevOps体制を導入することで開発スピードの向上や改善の早期反映が図れるとされます。
アジャイル開発
アジャイルは特定の手法を表す言葉ではなく、迅速性や柔軟性などを特徴とする非従来型の開発手法の総称です。アジャイルと呼ばれる手法には次のようなものがあります。
エクストリームプログラミング(XP)
詳細な設計を行ってからコーディングを始めるのではなく、フィードバックを重視し、簡単な設計、実装、テストを何度も繰り返して段階的に完成度を高めていく開発手法です。
XPで定義されている実施項目(プラクティス)には以下のものがあります。
ペアプログラミング | 二人一組で相互に相談やコードのレビューを行いながらプログラムを作成する。 |
---|---|
テスト駆動開発 | プログラムを書く前にそのプログラムに対するテストを作成しておき、それをパスできるよう実装を行っていく。 |
リファクタリング | 外部から見える振る舞いは変えず、プログラムの内部を改善して保守性や処理速度を向上させる。 |
継続的インテグレーション | 開発したコードを頻繁にシステムに統合し、自動でテストを行い素早く問題を把握する。 |
スクラム
少人数でチームを組み、スプリントと呼ばれる短い開発周期で、反復的に開発を進める手法です。期間中には、毎日必ずデイリースクラムと呼ばれる短時間のミーティングを行うことで、情報共有を図ります。
プログラミングの手法
構造化プログラミング
プログラム全体を機能ごとに分解し、順接、分岐、反復の制御構造に従って処理の流れを記述する最もスタンダードな手法です。細かく分割するので開発や保守が容易で、プログラムは基本的に上から下に実行されるため読んで理解しやすいのが特徴となっています。
オブジェクト指向
データ(属性)とそのデータに対する処理(メソッド)をひとまとめにしたものであるオブジェクトを組合わせることでプログラムを開発していくという手法です。
まず、抽象的なオブジェクトの型であるクラスを定義しておいて、実際には、そのクラスにデータをいれて生成するインスタンスを使用するといった方法をとることでオブジェクトを様々な場所で使えるようになってます。
オブジェクト指向に関連する用語には以下のようなものがあります。
クラス | オブジェクトの抽象的な型。 |
---|---|
インスタンス | クラスをを実体化し使える状態にしたもの。 |
カプセル化 | データとメソッドを一体化し外部からアクセスできない状態にすること。 |
メソッド | オブジェクトが持つ処理機能。 |
継承 | 別のクラスの持つ属性やメソッドを引き継ぐこと。上位のクラスをスーパークラス、下位のクラスをサブクラスという。インヘリタンスとも。 |
ポリモーフィズム | あるメソッドの呼び出しに対してそれぞれ異なる処理をする性質。多相性、多態性。 |
UML
Unified Modeling Languageの略で、オブジェクト指向で開発を行うときなどに、システムを視覚的に表すために使用されます。クラス図、アクティビティ図、ユースケース図、状態図などがあります。
クラス図
クラスの定義やクラス間の関係を表した図になります。
ユースケース図
利用者(アクタ)がどのような操作をするのかを記述した図がユースケース図になります。
開発プロセスに関するフレームワーク
開発プロセスに関する代表的なフレームワークには以下のものがあります。
共通フレーム
報処理推進機構(IPA)が発行しているソフトウェア開発、取引における齟齬を無くすためのガイドラインで、作業項目、用語の定義や標準化が行われています。最新のバージョンは2013年に公表された共通フレーム2013 (SLCP-JCF2013)となっています。
CMMI
Capability Maturity Model Integrationの略で、組織がシステム開発のプロセスを適切に管理する能力を有しているかを5段段階のレベルでモデル化したものです。能力成熟度モデル統合と訳されます。
確認問題(過去問)
ITパスポート試験令和2年問46
開発担当者と運用担当者がお互いに協調し合い,バージョン管理や本番移行に関する自動化のツールなどを積極的に取り入れることによって、仕様変更要求などに 対して迅速かつ柔軟に対応できるようにする取組を表す用語として,最も適切なものはどれか。
ITパスポート試験令和元年問49
アジャイル開発の特徴として,適切なものはどれか。
ITパスポート試験令和3年問41
クラスや継承という概念を利用して,ソフトウェアを部品化したり再利用することで,ソフトウェア開発の生産性向上を図る手法として,適切なものはどれか。
ITパスポート試験平成30年秋問39
自社開発して長年使用しているソフトウェアがあるが, ドキュメントが不十分で保守性が良くない。 保守のためのドキュメントを作成するために、 既存のソフトウェアのプログラムを解析した。この手法を何というか。
ITパスポート試験平成28年秋問46
ソフトウェア開発モデルには, ウォータフォールモデル, スパイラルモデル, プロトタイピングモデル, RAD などがある。 ウォータフォールモデルの特徴の説明として,最も適切なものはどれか。
ITパスポート試験平成27年秋問38
システム開発の初期の段階で, ユーザと開発者との仕様の認識の違いなどを確認するために, システムの機能の一部やユーザインタフェースなどを試作し, ユーザや開発者がこれを評価することによって曖昧さを取り除くシステム開発モデルはどれか。
ITパスポート試験令和5年問40
ソフトウェア開発における DevOps に関する記述として、最も適切なものはどれか。
ITパスポート試験令和4年問38
XP(エクストリームプログラミング)の説明として,最も適切なものはどれか。
ITパスポート試験令和3年問48
既存のプログラムを,外側から見たソフトウェアの動きを変えずに内部構造を改善する活動として,最も適切なものはどれか。
ITパスポート試験令和元年問40
アジャイル開発の方法論であるスクラムに関する記述として,適切なものはどれか。
ITパスポート試験令和元年問39
共通フレームの定義に含まれているものとして,適切なものはどれか。
これだけで受かるITパスポート
https://ja.mondder.com