[ITパスポート]ライフサイクル(開発プロセス)[無料講座]

2020年2月29日

前回に引き続き、今回もITパスポートのライフサイクルについて学習していきます。

今回はその中でも開発プロセスについて着眼点を当てて深堀していきましょう。

くろん
くろん
開発って言うにはここが一番大事っぽいけど、どういったことをやるんだにゃ?
モナ
モナ
開発プロセスではいくつかあるモデルからどれが良いかを選んで進めていくニャ!

システムの開発プロセス

物を製造する時にもそれぞれ手順があるように、システムにおいても手順がある程度決まってきます。

限られた時間やメンバーで作り上げるためには段取りをしっかりとして最適化していく必要があります。

そのためにどのようなスケジュールで開発すればよいかを見ていきましょう。

システム開発モデル

システム開発プロセスでは最初に、開発モデルを決めることから始まります。

開発モデルとは開発工程を構造化し、計画・制御する枠組みの事で、そのようなモデルがいくつも今日までに考案されてきました。

それぞれのモデルに強みや弱みがあり、何を開発するか、どういった状況下で開発を進めるかによってモデルを選ぶ必要がります。

モデルの種類も多いですがITパスポートで問われるのは以下の3つなので、それらを見ていきましょう。

ウォータフォールモデル

ウォータフォールモデルはソフトウェア開発のそれぞれの工程ごとに成果物を残し、次の工程に引き継いでいく方式です。

工程から次の工程に向かって水が流れていくように進んでいき、基本的に後戻りすることがないためウォータフォール(滝)モデルと呼ばれます。

工程ごとに設計を完了し、設計書などのドキュメントを作成し次の工程へと引き渡します。最も基本的な方式と言われていましたが、後の工程で誤りが発見されると前の工程に戻らないといけない自体に陥ってしまい、コストが増加すると言ったデメリットを兼ね備えています。

プロトタイピングモデル

プロトタイピングモデルでは最初に試作品を作成し、ユーザに提示します。

この段階でユーザのニーズと提供者側の認知に相違が無いかを判断し、リスクを避けます。

要件定義とプロトタイピング間は何度でも行き来出来るため、戻る時に発生するコストが小さいと言ったメリットが挙げられます。

スパイラルモデル

スパイラルモデルではソフトウェア開発のそれぞれのフェーズをスパイラル状に繰り返すことでソフトウェアの開発を目指いしていくモデルです。

設計、開発、テストについて、順番にらせん状に繰り返していくため改善点を次のフェーズで適用できリスクが最小となるメリットが挙げられます。

最小単位に分割

開発プロセスの各工程の名称はITベンダやプロジェクトによって異なりますが、全体を構造化し、それぞれを分解して最小の単位に分けてコーディングしていくと言った流れは同じです。

この最小単位をモジュールまたはユニットと呼びます。

レビュー

システム開発の各工程の品質が要件を満たしているかどうか判断するために、それぞれの成果物を検査・評価する事をレビューと呼びます。

ラク
ラク
よくある映画レビューや商品レビューみたいな感じだな

レビューによってエラーを早期に検出する事が可能となり、要件定義や設計、プログラミングと言った各工程では必ずドキュメントが作成されます。

そこで、それぞれのドキュメントを元に各工程の終了時にレビューを行って次の工程に進みます。

ソフトウェアの品質特性

ユーザとしては出来上がった成果物は極力良い物を求めます。

ソフトウェア上での品質が良いとは一般的に要求した機能をしっかりと満たしているか、使いやすいか、欠陥(バグ)が無いかと言った点が重要です。

ソフトウェア製品の品質についてはその特性を様々な角度から分析したものをソフトウェア品質特性モデルと呼び、ISO9123に定義されています。

それぞれの品質特性を簡潔に説明します。

  • 機能性・・・仕様書通りの実行結果や操作が提供されているか
  • 信頼性・・・障害が起こりにくいか
  • 使用性・・・使いやすく、分かりやすいか
  • 効率性・・・時間やメモリ、ディスクと言った資源が有効に利用されているか
  • 保守性・・・故障やメンテナンス時に修正しやすいか
  • 移植性・・・別の環境で動作させやすいか

暗記事項

プロセス中心アプローチ・・・業務システムの設計手法の一つで、プロセスに着目して設計を行っていきます。システムに必要な機能を洗い出すため、広義に用いられています。

データ中心アプローチ・・・業務システムの設計手法の一つで、データに注目して設計を行います。データは業務プロセスと比較すると変化が少ないため、業務データの統一的なデータベースを作成できると言う点で、個々のシステム設計をシンプルに出来るといった考えから考案されました。

オブジェクト指向アプローチ・・・データとそれに対する手続きを、オブジェクトと呼ぶ一つのまとまりにして管理士、その組み合わせに着目して設計を行います。

RAD(Rapid Application Development)・・・ソフトウェア開発手法の一つで、少人数のチームでプロトタイプを繰り返し作成し、評価・改良を行う事で完成度を高めていく方式です。

アジャイル・・・ソフトウェアを素早く柔軟に開発できるための手法の総称で、短いプロセスを何度も反復して全体を組み合わせていく手法となります。

UML(Unified Modeling Language)・・・オブジェクト指向分析、設計においてシステムをモデル化する際の記法で、分析・設計・実装各工程で統一的な図を利用できます。図にはいくつか種類がありますが、ITパスポートでは深堀して問われることは少なくなっています。

リバースエンジニアリング・・・ソフトウェアやハードウェアを分解したり解析したりしてその仕組みや仕様、目的、構成などを明らかにします。設計→製品とは逆の流れになります。

CMMI(Capability Maturity Model Integration)・・・能力成熟度モデルで、5段階で評価するモデルになります。

スポンサーリンク

ライフサイクル(開発プロセス)・例題

実際に例題を解いて問題に慣れていきましょう。

問題

問1

一般的なウォータフォールモデルで開発を行うプロジェクトにおいて,プロジェクトの経過とともに必要となる要員の数と,変更や間違いが発生したときに訂正作業に掛かる1件当たりのコストについて図にしたもののうち,適切な組合せはどれか。(H.30/春)

要員の数 訂正作業に掛かる1件当たりのコスト
a b
a c
b d
d c

ア 
イ 
ウ 
エ 

問2

ソフトウェアの品質特性を,機能性,使用性,信頼性,移植性などに分類した場合,機能性に該当するものはどれか。(H.25/春)

ア 障害発生時にデータを障害前の状態に回復できる。
イ 仕様書どおりに操作ができ,適切な実行結果が得られる。
ウ 他のOS環境でも稼働できる。
エ 利用者の習熟時間が短い。

問3

リバースエンジニアリングの説明として,適切なものはどれか。(H.26/春)

ア 確認すべき複数の要因をうまく組み合わせることによって,なるべく少ない実験回数で効率的に実験を実施する手法
イ 既存の製品を分解し,解析することによって,その製品の構造を解明して技術を獲得する手法
ウ 事業内容は変えないが,仕事の流れや方法を根本的に見直すことによって,最も望ましい業務の姿に変革する手法
エ 製品の開発から生産に至る作業工程において,同時にできる作業を並行して進めることによって,期間を短縮する手法

解説(クリックで展開)

ライフサイクル(開発プロセス)・まとめ

今回はライフサイクルにおける開発プロセスについて学習を深めていきました。

3つのモデルとそれぞれのメリットデメリットは最低限でも抑えておきたいですね!

カズ
カズ
毎回何かしら試験に出てるから必須だよ!

次回はテストと保守に関して学習します。


スポンサーリンク