ストラタジーナム メニュー

2008年8月6日水曜日

OCRESブログ 第12回 ソフトウェア工学 傾向と対策 その1

筆者は、団塊の世代と団塊ジュニアの世代のちょうど中間点、人口分布で言うと、2つの人口のピークの谷間で、最も出生数が少なかった世代に位置します。そして、社会人に成って以降は、同年輩の人間と話をするよりも、この2つのピークの世代との接触の方が、会社の内外を問わず、圧倒的に頻度が高くなってしまうのは一種の宿命のようなものなのでしょう。
まず新入社員の時の初めての上司が、大体、この「課長 島耕作」を代表とする熱血的な団塊の世代でしたし、管理職になって初めて迎えた新入社員が、どことなく愁いを帯びた団塊ジュニアの世代でした。

そして、この団塊ジュニアの世代が新入社員だった頃は、暗い瞳で、よくバブルの頃の事を訊かれました。
その当時の彼らにとっては、就職する前に蜃気楼のように消えてしまった幻の桃源郷のように感じていたのかもしれません。
しかし、筆者の場合、バブル時代を思い返しても、あまり好い思いをした記憶がありません。
確かに、当時、筆者の勤めていた企業でも、タクシーチケットがバンバン使えましたが(国土交通省ほどではないですが)、残念ながら肝心のタクシーが繁華街から払底していて全く捕まらず、仕方がないので、六本木や赤坂から、自宅のあった世田谷まで何回も歩いて帰った事があります。
また、その当時の取引先の会社の重役さんで、有名な千葉リーヒルズに豪邸を建てた方がおられましたが、バブルが終わるとあっと言う間に彼の会社もなくなり、当人の消息も分からなくなってしまいました。
ごく一部の幸運な例外を除き、バブルの時代に羽振りが良かった人ほど、バブル崩壊後の揺り戻しがきつかったようで、バブル時代たいした事がなかった人(筆者を含む)は、崩壊の影響もたいした事がなく、その後も生き延びています。

ソフトウェア工学 傾向と対策 その1

次の表は、先日発行の「組込みシステムのためのソフトウェアエンジニアリング(基礎編)」の目次を抜粋したもので、OCRESの試験範囲を色で示しています。(OCRES中級は赤、上級は青色)
なお、OCRESの試験範囲をこの書籍で示しているのは、本書をあくまで指標として使っているだけなので、ほかの書籍や授業、トレーニング・コースで勉強しても全く問題ありません。
ただ、学習範囲の過不足を確認する上で、一度目を通しておいた方が安全である事は確かです。





さて、第1章と第2章は概論にあたる部分ですので、既に組込み系の経験がある人は、読み飛ばしても問題はありません。しかし、他の分野から参入される方は、一通り読んでおいた方が良いでしょう。

第3章は要件分析、第4章はソフトウェア設計に当てられていますが、ここにOCRESの試験の性格が如実に現れており、ビューポイント法やユースケース法、あるいはオブジェクト指向設計等の方法論の部分が完全に試験範囲から外れています。
実は、OCRESでは、このような方法論に属する分野はペーパー試験に向かないエリア、あるいは、設問を作る事が無意味なエリアと考えられております。
実際、学校や企業では、方法論に属する分野は、事例研究や演習等、実際に手を動かして学習する分野であり、方法論の知識をがどの程度持っているかを聞くこと事態に意味がなく、実際のアウトプットそのものを評価すべきである、という考え方が圧倒的です。
また、事例研究や演習の場でも、こじんまりまとまった解答よりも、ユニークなアプローチや面白い考え方を提示した方が高得点が得られる傾向があります。
従って、OCRES試験の特長は、方法論は無用と考えているのではなく、ペーパー試験には向かない分野と考えている、という点にご注意ください。

また、方法論で、もう一点注意しておかなければならない点があります。
現在、組込み系IT系を問わず、オブジェクト指向分析設計は、ソフトウェア開発の中心的な役割を演じていますが、これは決して他の方法論、例えばデーターフローや機能設計等、のアプローチを完全に駆逐した事を意味している訳ではありません。
方法論というのは、一般的に言って、常に一長一短があり、設計者、アーキテクトは、それぞれの特徴を知りながら、使い分けや、時には併用が必要になって来ます。
OCRES試験の上級編で、「4.4 ソフトウェア設計の機能的構造化」の節を試験範囲として指定していますが、これはヨードン法の系列に属する機能構造設計法につながる前提知識の分野です。
これは、OCRESが、いわゆるオブジェクト指向型開発だけで十分とは考えていない事を表しています。

演習や事例研究に関しては、この「傾向と対策シリーズ」の最後で、具体的なコース体系を提示しながら解説したいと思います。

さて、最後の第5章は、リアルタイムOSに関する知識から出題されます。
歴史的に言って、リアルタイム系組込み系システムは、単なるアプリケーション開発ではなく、アプリケーション付きOSの開発と言った方が適切なほどOSと密接な関係があります。
使用するOSもIT系と比べると決してファンシーな機能がついている訳ではなく、スケジューラがOSについてなかったり、あるいは、機能が不十分であったりして、スケジューラそのものを自分で書かなければならなかったり、また、排他制御を(OS任せにすると遅いので)アプリケーションで解決しなければならなかったりします。
第5章の出題は、こういったリアルタイムOSの基礎的な分野から出題されます。
上級編では、さらに分散システムや、スケジューリング・ポリシーの問題も出題されます。