コンテンツにスキップ

開発プロセスに関するフレームワーク

開発プロセスを標準化する必要性

Section titled “開発プロセスを標準化する必要性”

ソフトウェアの開発は、発注する側(委託側)と開発する側(受託側)が協力して進めることが一般的です。しかし、両者の間で「どの工程で何をすべきか」の認識がずれていると、作業の抜け漏れやトラブルが発生しやすくなります。

こうした問題を防ぐために、ソフトウェア開発のプロセス(工程)を標準化し、共通の枠組みとして整理したものがフレームワークです。ここでは、ITパスポート試験で出題される2つの重要なフレームワークを学びます。

共通フレームは、ソフトウェアの開発や保守に関わる作業を体系的に整理し、各工程で行うべき作業項目を定義した日本の標準ガイドラインです。正式には共通フレーム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(Capability Maturity Model Integration)です。日本語では能力成熟度モデル統合と訳されます。

共通フレームが「何をすべきか(作業項目)」を定義するのに対し、CMMIは「組織の開発プロセスがどれだけ成熟しているか」を評価し、プロセス改善につなげるためのモデルです。

身近なたとえで考えてみましょう。料理初心者は、レシピを見ても手順どおりに作れなかったり、毎回味がばらついたりします。一方、熟練した料理人は、手順が体系化されていて、いつでも同じ品質の料理を安定して提供できます。CMMIはこのように、組織のソフトウェア開発の「腕前」を段階的に評価する枠組みです。

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は、どちらもソフトウェア開発プロセスに関するフレームワークですが、目的が異なります。

項目共通フレーム(SLCP)CMMI
目的作業項目の共通語彙・標準化組織のプロセス成熟度の評価・改善
焦点「何をすべきか」を定義「どれだけうまくできているか」を評価
対象取得者と供給者の間の共通認識組織のプロセス改善
活用場面システム開発の委託・受託時組織の開発力を客観的に把握したいとき

共通フレームは「開発の作業内容を揃える辞書」、CMMIは「組織の実力を測る成績表」とイメージすると、両者の違いをつかみやすくなります。

試験で出るポイント

共通フレームとCMMIの違いを問う問題では、「共通フレーム=作業項目の標準化」「CMMI=プロセスの成熟度評価」という目的の違いを押さえておけば正解を選べます。


過去問に挑戦

Q. 共通フレームの定義に含まれているものとして,適切なものはどれか。

  • ア 各工程で作成する成果物の文書化に関する詳細な規定
  • イ システムの開発や保守の各工程の作業項目
  • ウ システムを構成するソフトウェアの信頼性レベルや保守性レベルなどの尺度の規定
  • エ システムを構成するハードウェアの開発に関する詳細な作業項目
解答(令和元年)

正解: イ

Q. アジャイル開発の方法論であるスクラムに関する記述として,適切なものはどれか。

  • ア ソフトウェア開発組織及びプロジェクトのプロセスを改善するために,その組織の成熟度レベルを段階的に定義したものである。
  • イ ソフトウェア開発とその取引において,取得者と供給者が,作業内容の共通の物差しとするために定義したものである。
  • ウ 複雑で変化の激しい問題に対応するためのシステム開発のフレームワークであり,反復的かつ漸進的な手法として定義したものである。
  • エ プロジェクトマネジメントの知識を体系化したものであり,複数の知識エリアから定義されているものである。
解答(令和元年)

正解: ウ

もっと過去問を解きたい方へ

フライトパスアプリなら、詳しい解説や分野別の過去問演習、SRS(間隔反復)学習ができます。

アプリで効率的に学習しよう