Index: [Article Count Order] [Thread]

Date:  Sun, 25 Mar 2001 00:28:05 +0900
From:  Yutaka Kamite <y-kamite@....jp>
Subject:  [XP-jp:01766] メラーさん講演会 メモ
To:  XPML-jp <extremeprogramming-jp@....jp>
Message-Id:  <20010324232510.884A.Y-KAMITE@....jp>
X-Mail-Count: 01766

上手です。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などを肴に楽しくミニオフミをしました。

(では)