外から見た"組み込み"のしごと(1) ――紋切り型の考えかたでは理解できない

伊藤 昌夫

tag: 組み込み

コラム 2005年8月 2日

 社会生活では,いろいろな人と付き合います.その中には長い付き合いの人もいれば,短い付き合いの人もいます.よく知っている人はいいのですが,そうでない場合,その人のことを紋切り型で考えて済ませてしまうことがよくあります.「Aという会社の人」とか,「太っていてにぎやかな人」とか....とりあえず,そう考えておいたほうが楽だということがあります.こんな話もあります.銀行のシステムを作っている人は,行員でもないのに立ち居ふるまいが行員に似てくると言われます.見かけも似てくるし,考えかたも似てくるのだそうです.一つのコミュニティに長くいるとき,そうしたほうが楽だからだと思います.奇抜なかっこうであえて摩擦を生むよりも,きちんとしたかっこうでいたほうが楽には違いありません.

 組み込みシステムを開発するしごとについても,同じようなことが言えそうな気がします.

●組み込みシステム開発では狭い範囲を深く知る必要がある

 一般のソフトウェア開発の場合,今や基本ソフトウェア(OS)や処理系のバリエーションで悩むことは,ほとんどありません.最近,比較的普通に用いられているJ2EE(Java 2 Enterprise Edition)による開発では,Java,JSP(Java Server Pages)と何かデータベースを知っていれば事足りるかもしれません.ここに難しさはなくて,顧客や最終的なユーザをどう満足させるかというところに難しさがあります.人間はとてもわがままですから,どういうアプリケーションにするかでとても悩むことになります.

 一方,組み込みシステムの開発は,かなりようすが違います.不ぐあいがあったとき,基本ソフトウェアやハードウェアを疑わないといけないかもしれません.そもそも,「何ができるか」という情報がそれほど広く知られているわけではなく,基本ソフトウェアやハードウェアを供給しているメーカや自分の周りにいる経験者と話をしながら情報を収集しなくてはなりません.その規模は小さいものの,否応なくハードウェアを意識する必要があります.したがって,狭い範囲を深く知る必要があるということになります(図1)

DWM0090itom1zu1.gif
図1 組み込みソフトウェアと一般のアプリケーション

 一般のアプリケーション開発の世界では,個別のハードウェアなどにあまり依存しないこともあり,抽象的に設計を考えることが可能となっています.また,組み込みシステムほどにはリソース制約が厳しくないこともあり,効率よりも設計やプログラムのわかりやすさが優先されています.こうした理由から,構造化設計やオブジェクト指向設計といった手法がよく用いられています.

 一方,組み込みの世界では,抽象化以前に基本ソフトウェアの特定の命令やメモリ・マップ上の配置,タイミングといった個々の問題が重要となり,それらをどう扱い,どう解くかということについての一般的な手法が存在しにくくなっています.よくある組み込みシステム開発のくふうとは,例えば表計算ソフトウェアのマクロ機能を使ってメモリ配置やパラメータを自動生成するといったレベルです.もちろん,開発の現場ではもっと抽象度の高いアイデアを実践しているところもあることでしょう.例えば,ある程度形式的に書かれた仕様記述からコードを自動生成するといった方法です.しかし,よく宣伝されているこうしたやりかたは,すべて偉大な発明と言えるのでしょうか.

●組み込みシステム開発でも抽象化の発想が重要に

 多くの場合,偉大な発明と言い切ることは難しいと思います.そういったツールや考えかたは,汎用性に欠けていることが多いからです.組み込みの世界は多様で,そこにはシステムごとの特有の要素があります.ある部署である対象に対して有効なやりかたやしくみが別の部署では通用しない,といったことが多いのではないかと思います.

 結局のところ,抽象化/一般化が通用しない部分は個別に議論するしかありません.ただ,そこで「すべてを個別に...」と言ってしまうと,議論が進みません.やはり,抽象化の目を持ったまま個別を説明する,それをみんなで共有する,ということが重要ではないかと思います.冒頭の他人とのかかわりの例に照らし合わせて言うと,幅広く付き合ってみるということかもしれません.そうすれば,何か,組み込みシステムを特徴付ける型(それは紋切り型ではダメ)を用意することによって,その型に応じた手法やしくみを構築できるのではないかと思います.

(本コラムはDESIGN WAVE MAGAZINE 2005年5月号に掲載されました)


◆筆者プロフィール◆
伊藤昌夫(いとう・まさお).自動車会社,航空機関連会社のソフトウェア・エンジニアを経て,ニルソフトウェアを設立.ソフトウェア・プロセスおよび開発環境が専門で,そのためのコンサルテーションおよびツールの提供を行っている.設計における人間の認知活動に興味を持っている.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日