開発プロセスに関するフレームワーク
開発プロセスを標準化する必要性
Section titled “開発プロセスを標準化する必要性”ソフトウェアの開発は、発注する側(委託側)と開発する側(受託側)が協力して進めることが一般的です。しかし、両者の間で「どの工程で何をすべきか」の認識がずれていると、作業の抜け漏れやトラブルが発生しやすくなります。
こうした問題を防ぐために、ソフトウェア開発のプロセス(工程)を標準化し、共通の枠組みとして整理したものがフレームワークです。ここでは、ITパスポート試験で出題される2つの重要なフレームワークを学びます。
共通フレーム(SLCP)
Section titled “共通フレーム(SLCP)”共通フレームは、ソフトウェアの開発や保守に関わる作業を体系的に整理し、各工程で行うべき作業項目を定義した日本の標準ガイドラインです。正式には共通フレーム2013と呼ばれる版が現在の基準となっています。
共通フレームの英語名はSLCP(Software Life Cycle Process)で、直訳すると「ソフトウェアライフサイクルプロセス」、つまりソフトウェアの企画から廃棄までの一連の流れを対象としています。
共通フレームが生まれた背景を具体例で考えてみましょう。たとえば、ある企業が外部のIT企業にシステム開発を依頼するとします。このとき、発注する側を取得者(委託側)、開発する側を供給者(受託側)と呼びます。取得者は「要件定義をしっかりやってほしい」と考え、供給者は「要件は発注者が決めるもの」と考えているかもしれません。こうした認識のずれが、開発の遅延や品質低下の原因になります。
共通フレームは、取得者と供給者の双方が「共通の物差し」として参照できる作業項目の一覧を提供します。「この工程ではこの作業を行う」という共通認識を持つことで、役割分担や責任範囲を明確にし、スムーズな開発を実現します。
graph LR
A["取得者<br>(委託側)"]:::primary
B["供給者<br>(受託側)"]:::primary
subgraph CF["共通フレーム(SLCP)"]
C1["企画"]:::base
C2["要件定義"]:::base
C3["設計"]:::base
C4["開発"]:::base
C5["テスト"]:::base
C6["運用・保守"]:::base
C1 --> C2 --> C3 --> C4 --> C5 --> C6
end
A -->|"共通の物差し<br>として参照"| CF
B -->|"共通の物差し<br>として参照"| CF
classDef base fill:#f8fafc,stroke:#94a3b8,stroke-width:1px,color:#333;
classDef primary fill:#eff6ff,stroke:#2563eb,stroke-width:2px,color:#1e40af;
classDef alert fill:#fef2f2,stroke:#dc2626,stroke-width:2px,color:#991b1b;
試験で出るポイント
共通フレームの説明として正しいのは「システムの開発や保守の各工程の作業項目を定義したもの」です。「成果物の文書化に関する詳細な規定」や「信頼性・保守性の尺度の規定」は誤りの選択肢として出題されています。「作業項目の標準化」がキーワードです。
CMMI(能力成熟度モデル統合)
Section titled “CMMI(能力成熟度モデル統合)”もう一つの重要なフレームワークがCMMI(Capability Maturity Model Integration)です。日本語では能力成熟度モデル統合と訳されます。
共通フレームが「何をすべきか(作業項目)」を定義するのに対し、CMMIは「組織の開発プロセスがどれだけ成熟しているか」を評価し、プロセス改善につなげるためのモデルです。
身近なたとえで考えてみましょう。料理初心者は、レシピを見ても手順どおりに作れなかったり、毎回味がばらついたりします。一方、熟練した料理人は、手順が体系化されていて、いつでも同じ品質の料理を安定して提供できます。CMMIはこのように、組織のソフトウェア開発の「腕前」を段階的に評価する枠組みです。
CMMIの成熟度レベル(5段階)
Section titled “CMMIの成熟度レベル(5段階)”CMMIでは、組織のプロセスの成熟度を5段階の成熟度レベルで評価します。レベルが高いほど、開発プロセスが安定し、品質の高いソフトウェアを効率的に作れる組織であることを意味します。
| 成熟度レベル | 名称 | 特徴 |
|---|---|---|
| レベル1 | 初期 | プロセスが整備されておらず、成功は個人の能力次第。結果が予測できない |
| レベル2 | 管理された | 基本的なプロジェクト管理が行われている。過去の成功例を繰り返せる |
| レベル3 | 定義された | 組織全体で標準プロセスが文書化・共有されている |
| レベル4 | 定量的に管理された | プロセスを数値で測定・分析し、品質を定量的にコントロールしている |
| レベル5 | 最適化している | 継続的にプロセスを改善し、新技術や手法を積極的に取り入れている |
graph TB L5["レベル5<br>最適化している"]:::alert L4["レベル4<br>定量的に管理された"]:::primary L3["レベル3<br>定義された"]:::primary L2["レベル2<br>管理された"]:::base L1["レベル1<br>初期"]:::base L1 -->|"プロジェクト管理<br>の導入"| L2 L2 -->|"組織全体で<br>標準化"| L3 L3 -->|"数値による<br>測定・分析"| L4 L4 -->|"継続的な<br>プロセス改善"| L5 classDef base fill:#f8fafc,stroke:#94a3b8,stroke-width:1px,color:#333; classDef primary fill:#eff6ff,stroke:#2563eb,stroke-width:2px,color:#1e40af; classDef alert fill:#fef2f2,stroke:#dc2626,stroke-width:2px,color:#991b1b;
レベル1の組織では、優秀なエンジニアがいるときだけ良い結果が出ますが、その人が異動すると品質が落ちてしまいます。レベル3以上になると、誰が担当しても一定の品質が保てる仕組みが整っています。
試験で出るポイント
CMMIの5段階は細かく暗記する必要はありませんが、「レベルが上がるほどプロセスが組織的・定量的・継続改善的になる」という流れを理解しておきましょう。また、スクラム(アジャイル開発の手法)の説明をCMMIとして出す引っかけに注意してください。
共通フレームとCMMIの違い
Section titled “共通フレームとCMMIの違い”共通フレームとCMMIは、どちらもソフトウェア開発プロセスに関するフレームワークですが、目的が異なります。
| 項目 | 共通フレーム(SLCP) | CMMI |
|---|---|---|
| 目的 | 作業項目の共通語彙・標準化 | 組織のプロセス成熟度の評価・改善 |
| 焦点 | 「何をすべきか」を定義 | 「どれだけうまくできているか」を評価 |
| 対象 | 取得者と供給者の間の共通認識 | 組織のプロセス改善 |
| 活用場面 | システム開発の委託・受託時 | 組織の開発力を客観的に把握したいとき |
共通フレームは「開発の作業内容を揃える辞書」、CMMIは「組織の実力を測る成績表」とイメージすると、両者の違いをつかみやすくなります。
試験で出るポイント
共通フレームとCMMIの違いを問う問題では、「共通フレーム=作業項目の標準化」「CMMI=プロセスの成熟度評価」という目的の違いを押さえておけば正解を選べます。
過去問で実力チェック
Section titled “過去問で実力チェック”過去問に挑戦
Q. 共通フレームの定義に含まれているものとして,適切なものはどれか。
- ア 各工程で作成する成果物の文書化に関する詳細な規定
- イ システムの開発や保守の各工程の作業項目
- ウ システムを構成するソフトウェアの信頼性レベルや保守性レベルなどの尺度の規定
- エ システムを構成するハードウェアの開発に関する詳細な作業項目
解答(令和元年)
正解: イ
Q. アジャイル開発の方法論であるスクラムに関する記述として,適切なものはどれか。
- ア ソフトウェア開発組織及びプロジェクトのプロセスを改善するために,その組織の成熟度レベルを段階的に定義したものである。
- イ ソフトウェア開発とその取引において,取得者と供給者が,作業内容の共通の物差しとするために定義したものである。
- ウ 複雑で変化の激しい問題に対応するためのシステム開発のフレームワークであり,反復的かつ漸進的な手法として定義したものである。
- エ プロジェクトマネジメントの知識を体系化したものであり,複数の知識エリアから定義されているものである。
解答(令和元年)
正解: ウ