OCRES認定レベル/出題範囲
OCRESとは、組込みシステムの開発に従事する世界のアーキテクト開発者・プログラマを対象とした資格試験です。「OCUPファンダメンタル」の上位レベルとして、「OCRESインターメディエイト」「OCRESアドバンスト」の3段階のレベルで構成されます(図1)。
今回はOCRESの出題範囲を紹介します。OCRESインターメディエイトでは、分野としては、(1)ソフトウェア工学、(2)MDA、(3)UML、(4)CORBAに分類されます(表1)。それでは、1つずつそれらの概要を紹介します。
表1 OCRES認定レベル
分野 | 項目 | インターメディエイト | アドバンスト |
ソフトウェア工学分野 | 設計コンセプト | モジュール構造 | 機能構造 |
リアルタイムOS | スケジューリング | - |
共有資源管理 | - |
タスク間通信 | - |
メモリー管理 | - |
リアルタイムOSの実際上の問題 | リアルタイムOSの構造と機能 | スケジューリングポリシー |
パフォーマンス | 分析と評価 |
POSIX | 分散システム |
コーディングの問題 | - | コード開発とパッケージ |
- | 組込み系ハイレベル言語 |
性能工学 | - | 性能工学の重要性 |
- | 要件と目的 |
- | 性能モデリング |
MDA | MDA | MDA基本概念 | MDA変換 |
MDAとシステム開発 | PIM-PSMパターン |
MDAアプローチの実際 | MDAと標準 |
MDA基本モデル | - |
UML | UMLプロファイル(スケジュール、性能、時間) | 資源モデリング | 性能モデリング |
時間モデリング | リアルタイムCORBAアプリケーション |
同時性モデリング | モデル処理 |
スケジューラビリティ・モデリング | - |
UMLプロファイル(サービス品質(QoS)、フォールトトレランス) | QoSフレームワーク | QoSカタログ |
QoSメタモデリング | リスク・アセスメント |
UML QoSプロファイル | フォールトトレランス緩和策 |
CORBA | リアルタイムCORBA | 静的スケジューリング | 動的スケジューリング |
組込みCORBA(CORBA/e) | オブジェクトモデル | ポリシーオブジェクト |
IDLの文法とセマンティクス | リアルタイムアーキテクチャ |
ネーミングサービス | イベントサービス |
- | 軽量ログサービス |
- | 一般ORB間プロトコル(GIOP) |
軽量CORBAデータ配給サービス | サービス | コンポーネントモデル |
データ配給の基本 | DCPS(Data-Centric Publish-Subscribe) |
- | DLRL(Data Local Reconstruction Layer) |
その他 | 配備と構成 | - | 配備と構成(Deployment and Configuration) |
トランスポートフレームワーク | - | 拡張可能トランスポートフレームワーク |
(1)ソフトウェア工学
ソフトウェア工学分野としては、組込みリアルタイムシステムを開発するための基盤知識から構成されています。組込みソフトウェアの開発は、要求仕様に対して、どのようなモジュールに分割して、どのように並行動作させるか、ということを設計します。モジュールへの分割に際しては、構造化設計やオブジェクト指向設計の知識が必要です。構造化設計での機能分割やオブジェクト指向での責務分割により、ソフトウェア設計の構成要素となるモジュールへと分割され、それらを構造化して表現することで設計図ができます。
また、モジュールの品質尺度として、モジュラリティやコヒージョン(モジュール強度)そしてカップリング(モジュール結合)の視点で評価することになります。OCRESでは、こられの設計コンセプトが出題されます。設計コンセプトは、すべての組込みソフトウェアエンジニアに必要な知識であると言えます。
並行動作に関しては、多くの組込みソフトウェアではリアルタイムOSが搭載されていますので、そのスケジューリング方式などの基本要素が出題されます。デッドロックに関する出題もありますので、ある特定のタイミングのときにソフトウェアがハングアップしてしまうような再現性の低いバグに悩まされている現場の方にも役に立つはずです。
このように、OCRESでは、組込みソフトウェア開発では必須となる、設計コンセプトとリアルタイムOSに関する問題が出題されます。これらを知らずして、組込みソフトウェアエンジニアは名乗れないでしょう。
続いて、今のエンジニアには欠かせない3つの分野、すなわちMDA、UML、CORBAについて簡単に紹介します。
(2)MDA
MDAはモデル駆動アーキテクチャの略です。システムを、プラットフォームに非依存なモデル(PIM)とプラットフォームに依存するモデル(PSM)に分けて開発するということが基本的なコンセプトになっています。その2つのモデルの関係や変換の概念、アーキテクチャビューなどに関する要素が出題されます。
(3)UML
UMLは、統一モデリング言語の略です。
UMLの表記法はOCRESの前段となるOCUPで出題されますので、OCRESでは主にUMLプロファイルについての出題となります。UMLプロファイルでは、スケジュールやパフォーマンスという時間的な設計の概念と、サービス品質(QoS)としての非機能要件と制約の概念が出題されます。組込みシステムでは、表面的な機能要件よりも、システムの内部的な非機能要件の作り込みが肝心となってきます。非機能要件の設計をなんとかしたいとお考えの方は、UMLプロファイルの分類が1つの思考の助けになると思います。
(4)CORBA
CORBAとは、分散オブジェクトリクエストブローカアーキテクチャの略です。ネットワーク上に分散しているリソースを、どのように定義して取り扱うのか、という技術分野です。ネットワーク技術の基礎も含めて、軽量化のしくみやリアルタイム性などへの対応の概念が出題されます。組込み装置も、スタンドアロンで動く世界から、複数の組込み装置が連動する世界へと急速に変化してきており、そのようなネットワーク分散システムを開発するときには欠かせない知識要素です。
以上のように、OCRESでは、組込みソフトウェア開発に必須なソフトウェア工学、大規模化するソフトウェアをモデリングすることで取り扱うためのMDAとUMLそして、ネットワーク処理の基本を含む分散システムへの対応のためのCORBAから構成されています。多くの組込みソフトウェアエンジニアが、OCRESに挑戦することで、組込みソフトウェア開発の知識を身につけて、それを活用することで、より工学的で元気な開発現場が増えることを期待します。