カテゴリ:8.システム開発 > 8.8 開発手法・開発管理

■H29秋AP
問51 ソフトウェア開発プロジェクトで行う構成管理の対象項目はどれか。
ア 開発作業の進捗状況
ウ プログラムのバージョン
イ 成果物に対するレビューの実施結果
エ プロジェクト組織の編成
【正解】ウ

シラバスにおける、「4. 構成管理・変更管理」には以下があります。
------------
リリース管理及び出荷
構成品目の完全性が保証された後は,ソフトウェアや関連文書の新しい版の出荷などの
手続を行うこと,ソフトウェアのコードや文書はソフトウェアの寿命のある間保守するこ
とを理解する。

用語例 バージョン管理,保管期間
------------

■H28春AP午前
問50 エクストリームプログラミング(XP:eχtreme Programming)における“テスト駆動開発”の説明はどれか。
ア 最初のテストでバグを抽出すること
イ テストケースを順次改善すること
ウ テストでのカバレージを優先すること
エ プログラムを書く前にテストケースを作成すること
【正解】エ

■H27秋AP午前
問49 エクストリームプログラミング(XP) におけるリファクタリングの説明はどれか 。
ア 外部から見た動作を変えずにプログラムをより良く作り直すこと
イ コーチがチームメ ンバの意識を高めること
ウ プログラミングとテストを繰り返し行うこと
エ プログラムを作成するよりも先にテストケースを考えること
【正解】ア
 リファクタリングは、外部から見える動作を変えずに内部構造(プログラム)を書き直すことです。
参考ですが、選択肢エは「テスト駆動開発」の説明です。

■H27春AP午前
問50 エクストリームプログラミング(XP) のプラクティスとして,適切なものはどれ か。
ア 1週間の労働時間は,チームで相談 して自由に決める。
イ ソースコードの再利用は,作成者だけ が行う。
ウ 単体テストを終えたプログラムは,す ぐに結合して,結合テストを行う。
エ プログラミングは1人で行う。
【正解】ウ

■H26春AP午前
問49 エクストリームプログラミング(XP)におけるリファクタリングの説明はどれか 。
ア 外部から見た動作を変えずにプログラムをより良く作り直すこと
イ コーチがチームメンバの意識を高め ること
ウ プログラミングとテストを繰り返し行う こと
エ プログラムを作成するよりも先にテス トケースを考えること
【正解】ア

■H25春AP午前
問49 ソフトウェアのリファクタリングの説明はどれか。
ア 外部から見た振る舞いを変更せずに保守性の高いプログラムに書き直す。
イ ソースコードから設計書を作成する。
ウ ソフトウェア部品を組み合わせてシステムを開発する。
エ プログラムの修正が他の部分に影響 していないかどうかをテストする。
【正解】ア

■H24春AP午前
問48 プログラムに“事実"と"規則"を記述 し,プログラム言語の処理系がもつ導出原理によって結論を得るプログラミングパラダイムであって,エキスパートシステムの開発に適しているものはどれか。
オブジェクト指向プログラミング
イ 関数 型プログラミング
ウ 手続型プログラミング
エ 論理型プログラミング
【正解】エ

ソフトウェア再利用に関して、応用情報技術者試験シラバスでは以下とあります。
③ ソフトウェア再利用
ソフトウェアの開発生産性や品質向上のためには,部品化や再利用が必要であり,部品化を進める際には,部品は再利用されるという前提に立って設計や作成に取り組む必要があること,ソフトウェアパッケージを活用することによって,開発生産性や品質向上が可能になることなどを理解する。また,ソフトウェア部品の種類,特徴,部品設計のポイントを理解する。

リバースエンジニアリングに関して、応用情報技術者試験シラバスでは次のように述べられています。
リバースエンジニアリング
既存のソフトウェアを分析して,基本的な設計方針を解釈するリバースエンジニアリングがあること,リバースエンジニアリングの結果に基づいて,元のソフトウェアの権利者の許可なくソフトウェアを開発,販売すると,元の製品の知的財産権を侵害する可能性があること,利用許諾契約によっては,リバースエンジニアリングを禁止している場合もあることなどを理解する。

用語例 互換性,コールグラフ


過去問では、「ソースプログラムを解析してプログラム仕様書を作る(H18共通AM問15)」と述べられている。
1
■H28秋AP午前
問49 ソフトウェアを保守するときなどに利用される技術であるリバースエンジニアリングに該当するものはどれか。
ア ソースプログラムを解析してプログラム仕様書を作る。
イ ソースプログラムを探索して修正箇所や影響度を調べる。
ウ ソースプログラムを見直して構造化されたプログラムに変換する。
エ ソースプログラ ムを分かりやすい表現に書き換える。
【正解】ア

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

■H24春AP午前
問50 リバースエンジニアリングの説明はどれか
ア 既存のプログラムからそのプログラムの仕様を導き出すこと
イ 既存のプログラムから導き出された仕様を修正してプログラムを開発すること
ウ  クラスライブラリ内の既存のクラスを利用してプログラムを開発すること
エ 部品として開発されたプログラムを組み合わせてプログラムを開発すること
【正解】ア

1.アジャイルagile)開発

アジャイル開発とは、以下のアジャイルソフトウェア開発宣言に基づく開発のことです。

agilemanifesto.org


この開発を実現する代表的な手法に、XP(エクストリームプログラミング)開発やスクラム開発などがあります。

アジャイルagile)開発に関して、応用情報技術者試験シラバスでは、次のように述べられています。

アジャイル
迅速かつ適応的にソフトウェア開発を行う軽量な開発手法であるアジャイルの特徴を理解する。

用語例 アジャイルソフトウェアの原則,XP(エクストリームプログラミング),テスト駆動開発ペアプログラミングリファクタリング継続的インテグレーション

少し補足します。
agile=俊敏な という意味である。
・「とりあえず作ってしまい、後から直す」
・反復型開発といって機能を分割し、短いサイクルで開発
ウォーターフォールでは開発規模が大きくなりすぎる。
・プロトタイプは模型だが、アジャイルは乱雑であっても作り上げる。
・過去問では、アジャイル開発の特徴として「開発の初期段階の設計よりもコーディングとテストを重視しており、常にフィードバックを行って修正・再設計していく(H18AM問13)」と述べられている。

過去問(H25春AU午後1問1)を見てみましょう。

S社では,これまで自社の開発標準に従って,ウォータフォール型の開発を行ってきた。今後は,介護ビジネスなど,新たな事業分野への進出に柔軟に対応するために,“アジャイル開発”を採用することにし,今回,短期間で営業支援システムを開発することにした。
アジャイル開発を採用した経緯〕
 営業支援システムの開発に当たって,介護ビジネスを推進する営業企画部とシステム部が,開発予算と稼働時期について相談した。システム部は,要件定義から本番稼働までに約1年掛かるという見通しであった。一方,営業企画部は,これから新しいビジネスを立ち上げるので,要件定義で全ての要件を確定するのは難しいと主張した。
 そこで,システム部長は,開発を進めながら要件を柔軟に追加・変更して,ビジネスの変化に対応できるアジャイル開発の採用を提案した。その際,アジャイル開発の特徴について,営業企画部に対して次のように説明した。
(1)開発方法論よりも,関係者間の対話を重視して,開発を進める。
(2)ドキュメントの作成よりも,動作するプログラムの開発を優先する。
(3)計画に従うことよりも,ビジネスの変化への柔軟な対応を重視する。
 システム部長は,営業企画部の了解を取り付けた上で,経営陣の承認を得た。 

 後半にあるアジャイルの開発の特徴に関しては、アジャイルソフトウェア開発宣言(http://agilemanifesto.org/iso/ja/manifesto.html )として4つ掲載されている中の一つです。

過去問(H29春AP午後問8)を見てみましょう。

〔採用するプラクティスの検討〕
アジャイル型開発で用いられるチーム運営や開発プロセス,プログラミングなどの実践手法をプラクティスと呼ぶ。本システム開発における,システム要件や開発体制の特徴は次のとおりである。これに基づいて,採用するプラクティスを検討する。
・スコープの変動が激しい
テレビやコマーシャルなどの影響によって,要求の変更が頻繁に発生する。そのために,本システムの品質に責任をもち,優先順位や仕様を素早く決める役割をもつプロダクトオーナを任命する。そして,本システムの要求全体と優先順位
を管理するために[ a:プロダクトバックログ]を採用し,反復する一つの開発サイクル(以下,イテレーションという)において,開発対象となる要求を管理するために[ b:スプリントバックログ ]を採用する。
・求められる品質が高い
一般消費者向けSNSという性質上,その不具合は利用者離れを引き起こしかねない。一定レベル以上の品質を保つために,継続的インテグレーション(以下,CIという)を採用する。
・チームメンバの半数のスキルが未成熟
アサインされたプロジェクトメンバには,アジャイル型開発のベテラン社員と,スキルが未成熟な若手社員が含まれる。チームの中で業務知識やソースコードについての知識をお互いに共有して,品質や作業効率を向上させるために,[ c:ペアプログラミング ]を採用する。 


アジャイル開発(というか、前半3つはXP)のキーワードとして、過去問ではいくつか登場します。
リファクタリング
・過去問(H29春FE午前問50)では、「ソフトウェア開発の活動のうち,アジャイル開発においても重視されているリファクタリング」の説明として、「ソフトウェアの保守性を高めるために,外部仕様を変更することなく,プログラムの内部構造を変更する」とあります。
 先に動くプログラムを作ってしまい、後から、動作や機能(外部仕様)を変更することなく、内部のコードを整形するのである。過去問(H25春AP午前問49)では、「ソフトウェアのリファクタリングの説明」として、「外部から見た振る舞いを変更せずに 保守性の高いプログラムに書き直す」とあります。
・後からプログラムを書きなおすので、すでに開発が完了した部分を再びテストする「回帰テスト」(リグレッションテスト)を行うことを前提としています。過去問(H29秋AP問48)でも、リファクタリングに関して、「アジャイル開発のプラクティスのうち,回帰テストを行うことを前提とする」という記載があります。

ペアプログラミング
品質の向上や知識の共有を図るために,2人のプログラマがペアとなり,その場で相談したりレビューしたりしながら,一つのプログラムの開発を行う。

テスト駆動開発
 テストをパスするプログラムを作り、あとからリファクタリングすることで、開発スピードを高める。
。過去問(H29春FE午前問50の不正解選択肢)では、「動作するソフトウェアを迅速に開発するために,テストケースを先に設定してから,プログラムをコーディングする」とある。
別の過去問(H28春AP午前問50)では、「エクストリームプログラミング(XP:eχtreme Programming)における“テスト駆動開発”の説明」として、「プログラムを書く前にテストケースを作成すること」とある。

イテレーション
・「iteration」は「反復」という意味です。
イテレーションは、「反復する一つの開発サイクル」のことで、2週間や1ヶ月という短い期間が設定されます。この短い期間で、開発側とユーザ側がプログラムの動作を確認しながら要件を確定していくので、ソフトウェアに存在する顧客の要求との不一致を解消したり,要求の変化に柔軟に対応したりすることができます。
・過去問(H29年春AP午前問49)では、「アジャイル開発で“イテレーション”を行う目的」として、「ソフトウェアに存在する顧客の要求との不一致を解消したり,要求の変化に柔軟に対応したりする」とあります。
・過去問(H29春AP午後問8)では、「反復する一つの開発サイクル(以下,イテレーションという)」とあります。
a



イテレーションに関して、過去問(H25春AU午後Ⅰ)では、以下の記載があります。

2.開発企画書の概要
  開発プロジェクトが作成した開発企画書の概要は,次のとおりである。
 (1)本番稼働環境のインフラと,アプリケーションの開発スコープが決まったら,要件定義工程以降は,ユーザチームが機能を評価するためのプログラムの開発を最優先する。
 (2)要件定義工程以降は,次の①~④のプロセスを繰り返す。繰返しの単位を“イテレーション”という。イテレーションの中で,プログラムの動作を確認しながら要件を確定していく。
  ① 開発チームとユーザチームは,ユーザチームの要求を検討し,今回のイテレーションで開発する機能を検討し,要件を確定する。
  ② 開発チームは,確定した要件について,機能設計,プログラミング,単体テスト及びレビューを行う。
  ③ ユーザチームは,確定した要件が実現されているかどうか確認するためのテストを行う。
  ④ 管理チームとユーザチームは,テスト結果を確認し,成果物と進捗状況を確認する。
 (3)イテレーションは4週間を1単位として,6回実施する。
 (4)イテレーションを実施している途中では,随時変更が発生するような設計ドキユメントは作成しない。
(5)基盤チームは,イテレーションの中で使用する開発ツール及びコミュニケーションツールを準備する。S社では,これまでのウォータフオール型の開発方法論に比べて,アジャイル開発の方法論は厳密に定義されているわけではない。そこで,開発ツールの使用方法及びチーム間のコミュニケーションについては,修正を加えながら開発を進めていくことにする。これらのツールを使用して,進捗管理,品質管理,バージョン管理などを行い,情報を共有することでプロジェクトの状況を可視化することができる。
(6)最後のイテレーションで実装された機能を,最終的に営業支援システムで実現する要件として決定する。 

2.アジャイルagile)開発の過去問を解いてみよう

(1)H26秋AP午前問49

問49 アジャイルソフトウェア開発などで導入されている”ペアプログラミング”の説明はどれか。

ア 開発工程の初期段階に要求仕様を確認するために,プログラマと利用者がペアとなり,試作した画面や帳票を見て,相談しながらプログラムの開発を行う。
イ 効率よく開発するために,2人のプログラマがペアとなり,メインプログラムとサブプログラムを分担して開発を行う。
ウ 短期間で開発するために,2人のプログラマがペアとなり,作業と休憩を交代し ながら長時間にわたって連続でプログラムの開発を行う。
エ 品質の向上や知識の共有を図るために,2人のプログラマがペアとなり,その場 で相談したりレビューしたりしながら,一つのプログラムの開発を行う。






【正解】エ

どこかの大手IT会社でもこの手法でうまくいったとかれていた(思い出し中)。

(2)H29秋AP

問48 アジャイル開発のプラクティスのうち,回帰テストを行うことを前提とするものはどれか。
ア 日次ミーティング
イ ふりかえり
ウ ペアプログラミング
エ リフアクタリング






【正解】エ

(3)H29秋AP

問50 アジャイル開発におけるプラクティスの一つであるバーンダウンチャートはどれか。ここで,図中の破線は予定又は予想を,実線は実績を表す。
180405_H29秋AP問50






【正解】ア

(4)H29春AP午前

問49 アジャイル開発で“イテレーション”を行う目的のうち,適切なものはどれか。
ア ソフトウェアに存在する顧客の要求との不一致を解消したり,要求の変化に柔軟に対応したりする。
イ タスクの実施状況を可視化して,いつでも確認できるようにする。
ウ ペアプログラミングのドライバとナビゲータを固定化させない。
エ 毎日決めた時刻にチームメンバが集まって開発の状況を共有し,問題が拡大したり,状況が悪化したりするのを避ける。






【正解】ア

(5)H26秋AP午前

問49 アジャイルソフトウェア開発などで導入されている“ペアプログラミングの説明はどれか。
ア 開発工程の初期段階に要求仕様を確認するために,プログラマと利用者が ペアとなり,試作した画面や帳票を見て,相談 しながらプログラムの開発を行う。
イ 効率よく開発するために,2人のプログラマがペアとなり,メインプログラムとサブプログラムを分担して開発を行う。
ウ 短期間で開発するために,2人のプログラマがペアとなり,作業と休憩を交代 しながら長時間にわたって連続でプログラムの開発を行う。
エ 品質の向上や知識の共有を図るために,2人のプログラマがペアとなり,その場で相談したりレビューしたりしながら,一つのプログラムの開発を行う。






【正解】エ
 ペアプログラミングは、言葉の通り、2人のプログラマがペアになります。イやウのように、プログラムを分担するのではなく、一つのプログラム開発を、相談しながら一緒に作り上げます。

応用情報技術者試験シラバスでは、マッシュアップに関して次のように述べられています。
マッシュアップ
マッシュアップは,複数の提供元によるAPI を組み合わせることで,新しいサービスを
構築する手法であることを理解する。また,マッシュアップの考え方,生産性,品質面での特徴,留意事項を理解する。
用語例 Web2.0
もともとは音楽用語で、音楽を組み合わせること。
ITの世界でも同様で、APIを利用してシステムやWebサービスを組み合わせること。
過去問では「公開されている複数のサービスを利用して、新たなサービスを提供する」(H22ST午前1問16)と述べられている。
私の過去の開発においては、顧客管理システムにおける住所と地図サービス会社の地図をリンクさせ、地図ボタンを押すと地図が表示する仕組みに関与した。(単に、引数を渡すだけであるが)
マッシュアップすれば、全て開発することに比べて、短時間で開発できる。
ており、複数のSaaSを組み合わせて利用できれば、利便性が向上する。
Youtubeにコメントを付けられるようにしたニコニコ動画は、マッシュアップの一つであろう。
mashup

■H26春AP午前
問50 マッシュアップに該当するものはど れか。
ア 既存のプログラムから,そのプログラムの仕様を導き出す。
イ 既存のプログラムを部品化し,それら の部品を組み合わせて,新規プログラムを開発する。
ウ クラスライブラリを利用して,新規プログラムを開発する。
エ 公開されている複数のサービスを利用して,新たなサービスを提供する。
【正解】エ

■H25秋AP午前
問50 マッシュアップを利用してWebコンテンツを表示している例として,最も適切なものはどれか。
ア Webブラウザプラグインを組み込み,動画やアニメーションを表示する。
イ 地図上のカーソル移動に伴い,ページを切り替えずにスクロール表示する。
ウ 電車経路の探索結果上に,各路線会社のWebページへのリンクを表示する。
エ 店舗案内のページ上に,他のサイトが提供する地図情報を表示する。
【正解】エ
 マッシュアップは,複数のサービスを組み合わせるて新しいサービスを提供します。選択肢エにある他のサイトが提供する地図情報を表示するのもマッシュアップの一つです。アのプラグインは、追加プログラムのことですから、他のサービスを組み合わせているわけではありません。

■H24春AP午前
問49 マッシュアップを利用してWebコンテンツを表示している例として,最も適切なも のはどれか。
ア 検索キーワードの候補を,サーバから取得 した過去の検索履歴を使って表示する。
イ 地図上のカーソル移動に伴い,ページを切 り替えずにスクロール表示する。
ウ 電車経路の探索結果上に,各路線会社のWebページへのリンクを表示する。
エ 店舗案内のページ上に,他のサイトが提供する地図情報を表示する。
【正解】エ

ソフトウェア開発モデルに関して、応用情報技術者試験シラバスには以下とあります。
① ソフトウェア開発モデル
ソフトウェア開発の効率化や品質向上のために用いられるソフトウェア開発モデルの考え方,必要性を理解し,ソフトウェア開発モデルの特徴を理解する。

用語例 ウォータフォールモデル,スパイラルモデル,プロトタイピングモデル,RAD(Rapid Application Development),アジャイル,DevOps,ソフトウェアプロダクトライン,繰返し型モデル,段階的モデル(Incremental Model),進展的モデル(Evolutionary Model)
たくさんの開発手法がある。

ウォーターフォールモデル
水(ウォーター)が上流から下流に流れる(フォール)ように上流工程(要件定義)~下流工程(テスト)までを行う。
・過去問では、ウォーターフォールモデルの特徴として「システムの開発全体を幾つかの工程に分割し、各工程の終了を確認してから次の工程へと進む(H18AM問13)」と述べられている。
・具体的な工程とは、過去問(H29春FE午後)では、「開発は,ウォータフォールモデルに基づいて,外部設計,内部設計,プログラム開発(単体テストを含む),結合テスト及び総合テストの五つの工程に分ける」とある。

過去問(H28春FE問56)では、「ウォータフォール型のソフトウェア開発において,運用テストで発見された誤りの修復に要するコストに関する記述として,「外部設計及び内部設計の誤りは,プログラムだけでなく,マニュアルなどにも影響を与えるので,コーディングの誤りに比べて修復コストは高い」とあります。

◆プロトタイプ
・試作品(プロトタイプ)を作る。
・過去問(H27春IP問32不正解選択肢)では、プロトタイピングモデルに関して、「システム開発の早い段階で試作品を作成し,利用者の意見を取り入れながら要求や仕様を確定する手法である。」と述べられています。
・午後2試験H10問2を参考にまとめると以下になります。
1.プロトタイプとは
・手法としてはプロトタイピング。試作品そのものはプロトタイプ。
・開発すべき機能を”早期に”実証することで、ユーザニーズに合致したシステムをより効率的に開発する。
・エンドユーザが評価するためのプロトタイプもあれば、開発者による検証のためのプロトタイプもある。
・評価後に使い捨てにされる場合や、そのまま最終システムの骨格として使われる場合もある。
・机上のレビューでも問題ないと思うが、ユーザインターフェース(特に操作性)に関してはプロトタイプが有効だと思う。
2.プロトタイピングの効果
1)ユーザニーズの正確な把握
開発の初期工程で、ユーザニーズの確認がより正確にできるので、後工程でのシステム設計の仕様変更が減少する。
2)機能・性能・操作性の検証(こっちが主かな)
これらを事前に検証できるため、開発リスクの低減に役立つ。
開発してから、「使いにくい」というクレームになる。
※紙に比べて臨場感があり、ユーザの満足感、一体感が生まれる
3.デメリット
・余分な費用、期間を要する場合がある。活用にあたっては目的や検証課題を明確にする。

◆スパイラルモデル
・Boehmが提唱
・システムを管理しやすいサブシステムに分け、サブシステム毎にウォータフォールモデルを採用すると考えている。こうすれば、開発規模を最小限にして開発するため、リスクが最小化される。開発するサブシステムを順次増やしていけば、リスクを抑えながら開発を規模を拡大できる。
・スパイラル(螺旋)の言葉通り、ウォーターフォールモデルを何度も繰り返す。
・過去問では、スパイラルモデルの特徴として「一連の開発工程を何度も繰り返しながら開発機能の規模を拡大し、開発コストの増加などのリスクを最小化する(H18AM問13)」「サブシステムごとに開発プロセスを繰り返し,利用者の要求に対応しながら改良していく手法である。(H27春IP問32不正解選択肢)」と述べられている。

◆成長モデル
・原型を早期に開発し、その後、”成長”させる。
・プロトタイプと似ているが、プロトタイプは試作品であるが、完成品を早期に作る点が違う。

クリーンルームモデル
品質保証に重点を置く

アジャイルagile)開発
こちらに記載
http://sm.seeeko.com/archives/65908985.html

おまけ
◆RAD(Rapid Application Dvelopment)
・開発期間を短縮する方法
・プロトタイピングやCASEツールなどを活用する。
・H17共通13「ライフサイクルの無期限な繰り返しを防ぐため、タイムボックスと呼ばれる一定の開発期間を設定する」

ソフトウェアライフサイクルプロセス(SLCP:Software Life Cycle Process)がよく出題される。
最近はSLCP-JCF2007

過去問では、共通フレーム 2007(SLCP-JCF 2007) の目的として、
「ソフトウェア開発作業全般にわたって “共通の物差し” を使うことによって、作業範囲・作業内容を明確にし、取得者と供給者の取引内容を明確にすること(H20共通AM問38」と述べられている。

これは、ソフトウェア開発というのは取得者(発注者)にとってはよく分からないもの。そこで、取得者(発注者)と供給者(受注者)の取引を分かりやすくする必要がある。

取得プロセス、供給プロセスから始まり、システム開発のプロセスでは、
企画、要件定義、開発、運用、保守の5つのプロセスを規定している。

これらはもっと詳しく定義されているが、過去問をもとに簡単にだけ紹介する。

1.4 企画プロセス
 1.4.1 プロセス開始の準備
 1.4.2 システム化構想の立案
 「現行システムの内容、流れの調査及び課題の分析、抽出(H21SA午前12)」
 1.4.3 システム化計画の立案
 「システム開発を担当する開発組織の再編方針と責任部署の決定(H21SA午前12)」
 「システム稼動時期の設定と全体開発スケジュールの作成(H21SA午前12)」
1.5 要件定義プロセス
 「システム化の対象となる業務要件の定義作業(H21SA午前12)」
1.6 開発プロセス
1.7 運用プロセス
1.8 保守プロセス

それぞれの意味は、Capability(能力)、Maturity(成熟) Model(モデル)、Integration(統合)であり、意味は能力成熟度モデル統合である。私はCMMIよりCMM(Capability Maturity Model)という言葉のほうが馴染み深い。旧来はCMMという言葉が用いられていたが、CMMに多数の専門家の意見を統合(Integration)したものがCMMIだ(と思う)。

CMMとは会社の成熟度を5段階で評価するモデルである。
過去問では、CMMI(Capability Maturity Model Integration)の目的として「ソフトウェアを開発する組織のプロセス成熟度モデルを使って、プロセスの改善を図る(H18AM問14)」と述べられている。

CMMが意味する能力とは、ソフトウェア開発能力を指すことが多いが、実際にはソフト開発にとどまらないようだ。ソフト開発能力では、CMMレベル3を取得している会社は、日本に数社しかない。よって、CMMレベル3を認定されている企業は重宝される。

それ以外に、社内において成熟度を測る手法そのものが「こんなの意味あるの?」とずっと思っていたが、結構使われている。
例えば、ITの成熟度やセキュリティの成熟度などを部署ごとに細かく評価し、事業計画の中で何年間でレベルを上げていきましょう。などと利用する。

・レベル1:何もされていない。
・レベル2:最低限の管理(過去問(H19秋 共通午前問11)では、「成果物やサービス提供の状況が管理者層から見えている」)
・レベル3:そこそこ良い状態(過去問(H19秋 共通午前問11)では、「組織横断的に実施されるプロセスの首尾一貫性が保たれている」) ← 一般的な会社ではここが限界でしょう。
・レベル4:定量化されている。(過去問(H19秋 共通午前問11)では、「プロセスの実績が定量的に予測可能である。」)
・レベル5:自発的に改善される。(過去問(H19秋 共通午前問11)では、「プロセスの変動に対し、プロセス実績は継続的に改善されている」) ← こんな会社ありえない。

■H29秋AP問49、H27春AP午前問49、H24秋AP午前問47
問49 CMMIの説明はどれか。
ア ソフトウェア開発組織及びプロジェクトのプロセスの成熟度を評価するためのモデルである。
イ ソフトウェア開発のプロセスモデルの一種である。
ウ ソフトウェアを中心としたシステム開発及び取引のための共通フレームのことである。
エ プロジェクトの成熟度に応じてソフトウェア開発の手順を定義したモデルである。






【正解】ア
ア:CMMIは、ソフトウェア開発組織及びプロジェクトのプロセスの成熟度を評価するためのモデルです。
イ:ソフトウェア開発のプロセスモデルには、ウォータフォールモデルやプロトタイプモデルなどがあります。
http://sm.seeeko.com/archives/15877390.html
ウ:ソフトウェアライフサイクルプロセス(SLCP:Software Life Cycle Process)
http://sm.seeeko.com/archives/15877397.html
エ:OPM3のこと?

↑このページのトップヘ