上手です。3/24/2001にメラーさんの講演が行われました。
以下そのメモ・感想です。ご参考まで。
前段
東大 飯塚先生の「組込みソフトウェア管理者・技術者育成研究会へのお誘い」
リアルタイムおよぶ組込みシステムをどう学ぶか?
How Do People Learn About RealTime and Embedded Systems?
Stephen J. Mellor
Project Technology, Inc.
質疑を含め、90分の講演でした。大変面白かったです。欧米での公的な教育の現
状が良くわかりました。ただし、結論は、「OJT」。
以下面白そうなところだけ紹介します。
大学の卒業生のスキル(#Computer Science 卒業と思われる)
・No good Abstraction Skill :抽象化のスキルが無い(要件の分析、フォーム
化、要件のソリューションの表現)
・No Communication Skill
整合性のある文章を書ける人がほとんどいない。移民が多いのも一因で、担当
した国防プロジェクトで、氏以外の人はみんな中国人で中国語で会話していたと
冗談をいってました。
・No Process Skill : プロセス技術が無い。(方法論)
・No Project Management Skills :プロジェクト管理
質問の回答が、ものすごく面白かったです。
Q:優秀な技術者のテクニカルでなく、メンタルな特徴は何か?
A:抽象化能力。
受注した。ばたばたコーディングした。そこで分析したら70%のコードはいらな
かった。彼は収拾し、終了前に次のプロジェクトに移っていく。
大きなプログラムでも同じこと。個人のプログラムでも同じこと。
Q:RAM,ROMが64Kなど大きくなり構造化手法では対処できない。OOが要求される。
一方、4K,8Kの開発も残り、これはCでしか組めない。この矛盾にどう対処するか?
A:OOの専門家が集まって「OOとは何か?」を討論したことがある。結論はカプセル
化だけだった。継承についてはdelegete できるし、Meyer はガベジコレクショ
ンを主張したが、組込みじゃ無理だしね。
じゃあ、これをどう適用するか?
<ボトムアップ手法>
カプセル化すれば良いのだからデータスキーマで解決する
(データ指向の構造をメモリ領域につくる)
実行時でなくコンパイル時に保護する手もある。
<トップダウン手法>
実行可能なUMLモデルのコンパイラをつくる。ターゲット言語はVHDLでもCでもい
い。現在の3020モデルコンパイラはオープンソースにする予定だ。
Q:品質保証はどうしているのか
A:コンポーネント毎に検証する。
レイヤー毎に検証する。
OSにバグが無いこと。
データが完全に隔離されていること。
データは文脈非依存にし、ステートは文脈依存にする。
(if then else , switch case はバグの巣:文脈依存)
コードを書くほどエラーも増える。だから
できるだけ、コードを自動生成することだ
現在の生成コードはハンドコーディングより0.2%多い(つまり同等)
自動生成できなければ、ルールを決める
欧米の自動車業界では「ハンドコーディングルール」を決めており、エンジン
制御などはこの統一ルールでコードを記述するようになる。
最後の部分は、QSO9000(ISO9001の自動車業界ローカルルール:きわめて厳格)
の動きと連動しているなと感じました。
#XP-jp系のメンバ6名で、TRONなどを肴に楽しくミニオフミをしました。
(では)