一部誤植を修正しました。
一部、編集が崩れている部分は現在手入れ中です。いましばらくお待ちください。
リアルタイム組み込みソフトウェアの用語の木
小川清, 斉藤直希1, 吉川直邦, 伊藤正樹, 後田直樹, 藩建華,2
1 名古屋市工業研〒456-0058名古屋市熱田区六番3-4-41
2 大同工業大〒457-8530名古屋市南区滝春町10ー3
システムLSI設計技術109ー3(2003.3.10)
Keyword microITRON,TOPPERS,ReaI-timeOS,EmbeddedsoftwareThesaurus
Abstract
ThesaurusonRealTimeEmbeddedsoftwareusingmicrolTRONandTOPPERS.
E-mail {ogawa.kiyoshi.saito.naoki}@nmiri.city.Nagoya.jp {d99e124,d99e171,d99d016,d99d023}@daido-it.ac・jp
DaidOlnstituteofTechn010gy】0-3takiharu-cho,minami-ku,457-8530NagoyaJ叩an
NagoyaMunicipaIIndustriaIResearchlnstitute3-4-引Rokuban,Atsuyta-ku,Nagoya,456-0058Japan
OGAWAKiyoshi,SAITONaoki, YOSHIKAWANaokuni,ITOMasaki,USHIRODANaoki,HANKenka
Thesauruson RealTime Embedded software
キーワードuITRON,TOPPERS,リアルタイムOS,組み込みソフトウェア、用語の木
あらまし
ITRON、TOPPERSを例にリアルタイム組み込みソフトウェア開発のための用語の木を作成した.
1.はじめに
組込みソフトウェアの開発者で、pcの汎用OSに馴染んでから組込み開発に従事することになる人たちが増えている。PC(パソコン)は汎用OSを組み込んで販売している場合が多い。そのため、汎用OS上でのソフトウェア技術者は、ハードウェアの知識、場合によってはOS、コンパイラの知識なしに、ソフトウェア開発を行うことがある。
また、大量に普及しているコンヒ。ュータ関連の雑誌・書籍では、略語,カタカナ語が多用され、固有名詞と標準用語とが混在し、同一文書内で、用語の示す範囲が文脈によって異なることがある。ソフトウェア技術者教育で、OS、コンパイラ言語の知識を教えずにOS、コンパイラの利用者としての教育が行われている場合がある。ソフトウェア技術者で、開発環境、開発対象の違いにより、用語の意味が異なる場合がある。
名古屋市工業研究所では、大同工業大学との大学生に対する教育と、中小企業との技術者の教育を取り組んでおり、組み込みソフトウェア技術者教育において、用語の木を作成しながら、用語における課題を検討してきた。意味ネットワークは、それぞれの立場によって、異なり、用意に木を構成することはできない。しかし、リアルタイムOSを中心にの開発者とリアルタイムOSの利用者(応用ソフトの開発者)に絞って、用語の木を作成することを検討する。
特定の開発目的のためには、リアルタイムOSを用いない場合もある。その際にも、リアルタイムOSで検討されている特性、機能には利用可能が概念も多い。
本研究では、リアルタイムOSを前提に、組み込み開発を行う際に必要な用語の木の作り方を“ITRONとTOPPERSの文書、プログラムを基に、考慮する点を明確にした。
2. リアルタイムOS
組込みシステムで、リアルタイムOSを利用するには、メモリ容量が制約となることがある。ソフトウェア技術者が組み込みシステムを開発する場合に、リアルタイムOSの機能が一つの境界線になりうる。リアルタイムOSを利用しない場合でも、リアルタイムOSで実装している技術の部分的な利用が可能な場合があるからである。
リアルタイムOSの仕様としては、はRON[5」がよく参照されており、そのオープンソースとしてTOPPERS/JSPカーネル一がある。TOPPERS/JSPカーネルは,豊橋技術科学大学組込みリアルタイムシステム研究室を中心とするTOPPERSプロジェクトにおいて開発したITRON4.0仕様のStandardプロファイルに準拠したリアルタイムカーネルである.
名古屋市工業研究所の研修では、2002年度から組み込みソフトウェア研修を実施しており、大同工業大学の学生への研修としてTOPPERS/JSPカーネルを取り組んでいる。企業向けの組み込みソフトウェア研修の一貫として、TOPPERS/JSPカーネルの普及の切り口として、ITRON文書と合わせて用語の木を作成しなが
3 組み込み開発における分類
組込み技術者教育における用語の課題を、開発における立場の違いによって分類するとともに、開発の対象、システムの特性、規模、開発で用いる言語・環境ごとに分類を作成した。
3.1 対象システムの範囲
組込みシステムで、焦点を当てるシステムの範囲が、どこまでかによって、検討する事項が異なる。例えば、組み込むシステムの機械装置との比率、電源を含める必要があるかどうか、ノイズ・発熱を考慮する必要があるかどうか。ここでは、5つに分類した。開発ソフトウェアは,ENV2開発言語と関連がある。
TRG.ー電源
TRG1.1商用電源、
TRG1.2電池、
TRG1.3
TRG2対象装置
TRG3コンピュータ周辺回路
TRG4開発環境、開発用ソフトウェア
TRG5実行ソフトウェア
電源には、
ら利用することを検討している。
システムの特性は、ISO/IEC9に6の品質特性に基づいて分類した。リアルタイム性は、効率性の1つであるが、時間は他の単位との違いから、リアルタイム性
3.2システムの特性
電子機器は、複合化または単機能化により、製品分類が数年で変化する場合があるため、どのような分類がよいかは、システムの特性と合わせて検討するとよい。
のように、細分類ができる。
置は、例えば、
TRG2.1家庭電化製品、
TRG2.2通信機器,
TRG2.3事務機器,
TG2.4輸送機械、
TRG2.5工作機械、
TRG2.6建機TRG
2.7化学機器、
TRG2.8医療機器、
TRG2.9食品機械、
TRG2.IO繊維機械、
TRGII 映像機器、
TRG2.に音響機器
発電機という細分類を付与することができる。対象装
CHR8利用時の品質
CHR7移植性
CHR6保守性
CHR5資源効率性
CHR4リアルタイム性
CHR3使用性
CHR2信頼性
CHRI機能性
を取り上げた。
他の副特性もすべて分類するとよい。例えば、利用時の品質には、
CHR8.1有効性、
CHR8.2生産性、
CHR8.3安全性、
CHR8.4満足性
という副特性を細分類にしてもよい。各特性、副特性には、具体的な指標を考え、細々分類とするとよい。リアルタイム性では、必要とする時間の単位と、OSを利用するかどうかの区分が考えられる。
3.3 開発規模
開発対象が、単品生産か、大量生産か。開発要員が、一人での開発か、100人以上での開発か。開発環境を専用に購入できる予算規模か、他のシステムの開発環境を流用するか。開発規模、期間、費用によって、リアルタイムOSを利用するかどうかの判断をすることがあるかもしれない。
SCL1開発対象の生産個数
SCL.2開発要員数
SCL.3開発期間
SCL4開発費用
開発期間には、
SCL2.1計画期間、
SCL2.2試験期間、
SCL2.3開発期間
を含む。試験期間が開発期間よりも
若い番号にしたのは、開発の入力の試験が、対象の開
発、試験に先立っと考えたからである。
3.4 開発環境
開発環境は、試験環境との関係、実行環境との関係
を明確にするとよい。
ENVI開発用OS
ENV2開発用言語
ENV3仕様記述言語
ENV4開発環境
ENV5試験環境
ENV6実行環境
例えば、仕様記述言語には、ENV2.l英語、ENV2.2
日本語、ENV2.3仕様記述専門用語を細分類する。
4 用語の木
4.1 略号
略語には同一の表記で、複数のフルスペルに対応しているものがある。類似の表記で、同一の分野で異なる意味の略号もある。略号は、何度も出てくる用語を短縮し、場所と時間を節約することが目的である。また、数字のコードに比べて、意味が取りやすい利点もある。
本分類でも略号を用いているのは、数字のコードは意味がわかりにくいためである。英語の略号よりも、漢字によるコードも有用かもしれない。例えば、TRG:対象、CHR:特性、SCL.規模、ENV:環境という具合である。場合によっては、漢字による分類記号の作成を検討する。
4.2カタカナ語
カタカナ語では、文脈に応じた使い分けがされている場合には、厳密な意味を持っ場合と、意味の重複した用語が存在する場合がある。これらの用語を構造的に定義することにより、相互の意思疎通を円滑にすることができる。カタカナ語の利点は、英語による技術を、早期に取り入れることが可能なことである。従来利用していた体系とは切り離して考察できることである。
欠点としては、意味の重複・欠落、処理、管理の重複・欠落が生じたり、誤解を生むところがある。[7]
カタカナ語には、英語のフルスペルを付け、英語、日本語での上下関係の違いを付記するとよい。
4.3 検討方法
本研究では、用語の木の表記方法の検討を行い、あいまいな知識しか持っていない段階から順に作成できるよう検討し提案する。英語文献、日本語文献、プログラムの3つを対象として、それそれ用語の木を作成する。
4.4 日本語の用語の木
日本語の場合には、単語の切り出しが難しい。例えば、電子ファイルであっても、簡単な方法が利用しずらい。テキスト処理として、漢字、ひらがな、カタカナ、アルファベットの区切りで切り出して一次資料とするか、英語で作成した辞書を翻訳して、見だし語とする。
4.5 プログラムの用語の木
プログラム中の関数、変数の関係を明確にするために英語で用いた方法と同様に、単語の切り出しをする。
関数、変数、定数に記号を用いている場合には、記号を含めておくとよいかどうかを検討する。用語の分析の段階では、記号をすべて削除した上で、命名規則の妥当性を確認するのに用いることができる。プログラムの理解のためには、関数、変数、定数の記号を含め体系が違う文書の場合には、独立に切り出し、それぞれを比較するようにする。
5.2 英単語の切り出し(抽出)
全単語の集計表を作成する。大文字小文字を変換し、記号を削除する。AWKのスクリプトで単語の出現回数を計算する。複数形、過去形、形容詞の副詞形、動詞の名詞形を集約するプログラムを使って、集約していた。そのため1度しか出現しないものには、変化形が含まれている。それ以外では、図、表、事例に登場するだけの用語の可能性がある。また、定義のみで使っている場合もある。仕様書の性格からすれば、定義とその利用の2度以上出現する用語が多いはずである。ITRON仕様書の例では、3600語(関数、変数、符号、固有名詞を含む)のうち3分の1が出現頻度1回であるが、その半分以上が、固有名詞か符号類である。
自然言語における出現頻度1回の用語プログラミング言語では、構文解析で、左辺値としてしか出現しない、定義されているが使われていない、定義されずに使われているという警告に相当する可能性を持っている。
5.3 略号のフルスペル付与
略号は、そのフルスペルが何かを調べる。英日の機械翻訳ソフトにかけ、単語の切り出し方、用語の文脈依存性を検討する。文脈によっては略号として用いているものと、フルスペルとして用いているもの、プログラム上の定数、変数、関数として用いているものがある。
5.4 STOPWORDの除去
A,the,のように、英文でよく出現する用語は、Stop wordとして用語から削除する。
表1
単語
the
to
Stopwordの例
頻度
8033
2611
2290
1930
1899
単語
and
for
be
from
頻度
1674
1243
962
949
783
た用語の木を作成する。
5 英語の用語の木の作成
5.1 単語切り出し文献の特定
標準文書、仕様定義文書から単語を切り出す。
用語
表1は、ITRON仕様書におけるstopwordの多い方
から10語である。文書中に出現する約3600語のうち、
この10語だけで、文書中の約99000語(関数、変数、
符号を含む)の22%を占めている。
何がSTOPWORDかは、文書の性格による。例え
ば、inがアセンプラで命令語である場合には、STOP WORDとして除去しない方がよい。頻度を利用する場合には、頻度の計算には、grep(globalregularexpression print)で用いているKWIC(KeyWordlnContext)の方法により、文脈を判定するとよい。
5.5 固有名詞、規格用語かどうかの判断
専門用語かどうかを判断する前に、登録商標をはじめとする固有名詞、定義のある規格用語かどうかを判定し、引用を付与する。固有名詞は、定義があいまいな場合は、混乱の原因になる可能性があるが、具体性がある場合には、理解の助けとなる。各概念を、固有名詞で例示するとよい。単語によっては、規格用語と一般用語が混在している場合もある。
組込みシステムに関連する製品、サービスは、多岐に渡っている。そのため、固有名詞で内容を定義していないものがあったり、定義している内容を調べることが困難なものがある。商品名の場合には、定義の変更を明確にせずに、内容を変えている場合がある。
5.6専門用語かどうかの判定
stopwordだけではなく、一般用語と考えられるもの
は、用語辞書から除外する。専門用語かどうかの判定は文脈に依存する。専門性は、2で分類した、対象(TRG)、システムの特性(CHR)、規模(SCL)、開発環境(ENV)に関する分類を付与する。
例えば、STATEは、専門用語として状態を表すこともあるが、一般名詞としてcurrentstateのように、現在の状態を記述する文章中に表れることもある。動詞として記述するという一般用語として用いている場合もある。
5.7 熟語
用語の木は、単語単位ではなく、熟語単位とすることが必要である。重要な熟語は、目次に掲載されているものである。目次から、熟語を切り出すとよい。よい文献は、索引にも重要な熟語が存在している。共出現率が高い用語は、熟語を形成する可能性が高いため、文中、文節中の共出現頻度を計算して、熟語の可能性を検討することもできる。単語に専門的な意味を付加している場合には、その単語も見だし語(header)とする
列関係の4つを考える。
無関係AandB=物
同等関係(同義語)AandB
上下関係
並列関係
AnotB
AandB=B,
AnotB
=notゆ
0
BnotA=notゆ
AnotB=not0,
AandB=not0,
例えば、下位語(NarrowerTerm)はNTとする。
Dispatchpendingstate
NTDispatchingdisablestate
NTCPUlockedstate
NTExecutionwithhigherprecedence
上下関係では、Dispatchpendingstateは、ディスパッチする側の状態で、dispatchingdisablestateは、ディスパッチされる側の状態である。
抽出してきた内容にあった意味を調べる、類語・関連語を調べ、わかりにくい用語は図にしてまとめると
よい。
ドウェア
ァームウェ
ファ
ーム、
ソフトウェア
ソフトの関係
6編集方法
図1&ハード、
とよい。
State
Dispatchpendingstate
Dispatchdisablestate
5.8 用語の包含関係
包含関係には、無関係、
2つの概念の共通部分をどのように編集するとよ
いかを検討した。図1の概念を出発点として具体例で説明する。
6 関連語として定義
何か関係のある語は、関連語(RT:RelatedTerm)と
して分類しておけばよいので、用語の意味がよくわか
らない段階でも、分類可能である。RTが膨大になる可
能性があるため、RTが何語以上になったら、再分類す
るという規則を作っておくとよい。
同等関係、
上下関係、
並
ードウェア
RTファームウェア、ソフトウェア
ファームウェア
RTソフトウェア、ハードウェア
ドウェア
固有名詞は、それを表す一般名詞の下位語に位置付
6.2 両方の下位語として定義
RTソフトウェア、ファームウェア
上位語(BT:BroaderTerm)を記載するかどうかは、全
上下関係が明確であることが理解できれば、下位語(NT:NarrowerTerm)として整理する。
6.3 ANDによる表記
NTTOPPERS
MITRON
NTなITRON
リアルタイムOS
ける。
BTソフトウェア
BTハードウェア
ファームウェア
NTファームウェア
ソフトウェア
NTファームウェア
ドウェア
体の用語の量による。
各概念に、共通部分とのANDを表記して、掲載する。利点としては、上位概念のどういう特性を持った部分集合であるかがわかる点である。
ドウェア
ANDンフトウェア
ソフトウェア
ANDハードウェア
ファームウェア
ファームウェア
電子回路のハードウェアを実現するソフトウェアには、CADがある。回路の作り方のソフトウェアはハ
ドウェアのためのソフトウェアであって、ハー
ェアANDソフトウェアという定義の仕方も可能である。
6.4 is-a 関係の定義
2つの概念関係のうち、上下関係をis-a関係として表記する。逆の関係はa-siで表記する。
ドウェア
ファームウェア
ードウェア
ファームウェア
a-S1
でCコンパイラの技術を利用している場合は次のようになる。
6.6 u“-a関係の定義
is-a,has-a関係だけでは、ソフトウェア、システムの関係を記述するのに十分ではない。例えば、OSの開発が、実体としてはハードウェアの一部であることを表現できる。
ファームウェアは、ソフトウェアを含んではいる
a-siソフトウェア構成要素
サービスコール
で、視点が異なる可能性がある。
ルを開発する人と、そのサービスコールを利用する人
む用語定義を確認した。実際には、そのサービスコー
1)サービスコールを例に、is-a,has-a,use-a関係を含めこれを採用した。
6.7事例と検討
位)。used(92位)とよく用いられている用語であるた
る。前述の用語頻度一覧では、is(2位),has(45
略号に使われている。Use-a,a-esuと混用の可能性があ
Use,UF(usefo「)は、シソーラスにおいて、参照用の
2つの関数が、相互に呼び合っている場合には、相互にuse-a,a-esuを付与する。
a-esuOS
Cコンパイラ
use-aCコンノヾイラ
OS
has-aソフトウェア
ファームウェア
a-sahファームウェア
ソフトウェア
係で表記する。逆の関係はa-sahで表記する。
2つの概念関係のうち、構成要素の関係をhas-a関
6.5has-a関係の定義
同義語は、is-a,a-siの併記で表現できる。
a
a
a
a
型
ール)
use-a・マクロ
Ⅱse-a関数呼び出し(C)
has-a型、順番、名前、データ型(引数、戻り値)
a-siカーネル(システムコ
ーs1一般定数式パラメータ
-siプリプロセッサ定数式パラメータ
-s1自動割付け非対応整数値パラメータ
自動割付け対応整数値パラメータ
-s1
2)表2は、出現頻度の高い用語を、3.1から3.4までで定義した分類に基づいて値を代入してみた。この値が正しいかどうかよりも、その値を代入した評価の視点の違いから、複数人による開発の視点の違い、役割による視点の違いを確認することが可能である。
表2
用語
task
state
ServーCe
error
call
頻出用語と分類との関係
頻度対象
特性規模
1930
10471ー5
1007
6881ー5
6284.5
1,2,3,4,5
4,5,678
2,4,5,6,7,8
1ー6,8
1,2,4,7,8
5
2
1
2
環土竟
1ー6
1,3,4,5.6
1,4,5,6
1,2,4,5,
3)デバッグのための機能
リアルタイムOSでも、応用ソフトウェアの開発者は、OS、デパイスドライバのすべてが同梱されているードウェアの購入者には、これらを区分せすにソフ
OSとデパイスドライバの関係は、両方ともソフトウェアの下位語として定義可能である。パッケージとして販売されているOSには、デバイスドライバからいくっかの応用ソフトウェアまで同梱されていることがある。そのため、購入者にとってのOSとは、OSの箱に入ったものすべてである。
デバッグのための機能と、マルチタスクを実現するための機能を、どこで分類するとよいか。デパッグでは、ICEを使う場合と、シリアルで監視する場合とでは対応できる場合が異なる。
7 まとめ
トウェアが開発可能かもしれない。
ITRONに出てくる用語と、TOPPERS/JSPカーネルに出てくる用語、関数、変数を抽出し用語辞典を作成することにより、組み込みソフトウェア開発における用語を分析・分類した。
文書によっては、記号の利用の仕方、変数名の利用の仕方で、切り出し易い文書と、切り出しにくい文書が存在している。いずれにしても、専門家が、その用語を評価し、どのような分類になるかを定義するか、関係者が用語を分類することにより、相互の理解の相違を確認するための手段として用いることができることが分かった。
今後の課題
具体的な作業をしながらの理解であるため、現在やっている作業に偏った検討になっている可能性がある。
ソフトウェアを開発しながらシソーラスを作成する教育を行う場合には、OSとデバイスドライバ、アプリケーションソフトウェアの境界とその設計方法、実現方法について理解していることが重要である。
ファームウェア関連、割込み(例外)関連の用語が、どのような分類にするとよいか、1つのシステムに、ファームウェアが2つ以上存在する場合をはしめ、複雑な場合と単純な場合の違いを検討したい。
現在、TOPPERS/JSPカーネルのソースコードを直接利用しながら、ITRONの機能の理解を進めている。
具体的には、無線通信機能を持った端末の開発を想定し、実装方法を検討している。通信関連、試験関連の仕様についても、順次対象とし、ITRO、、TOPPERS全体の概念構造と、具体的な開発対象の生産性、品質の向上を図りたい。
#「参考文献」
タベース検索技術者試験・傾向と対策,小川清・安藤彰敏編著,紀伊国屋書店
[2]言語教育モデルによるプログラミング教育ツールの設計、青木賢太郎、小川清、廣瀬哲也、言語処理学会年次大会,1997
[3]データベース検索技術シソーラスの作成、小川清、山崎貴和、ドクメンテーションシンポジウム、1995
国組み込みソフトウェア技術者教育の課題と方向性、小川清、渡部謹ニ、斉藤直希、電気関係学会東海支部,2002
[5] TRON4.0仕様、ITRONプロジェクト,1999
[6】TOPPERS,http:〃www.ertl.ics.tut.ac.jp/TOPPERS/
[7] 分かりにくい外来語を分かりやすくするための言葉遣いの工夫についての提案(中間報告)
http:〃www.kokken.20・jp/public/gairaigo/gaityukanOOl•P
関連事項
Wikipedia : 文章書き方 学生編 日本語(24)
https://qiita.com/kaizen_nagoya/items/e411d2704efde863e82e
Wikipediaに書く文章で気をつけていること。
https://qiita.com/kaizen_nagoya/items/25e78e48e406f803bb55
Wikipediaに書く文章で気をつけていること。
https://qiita.com/kaizen_nagoya/items/25e78e48e406f803bb55
大切なことを書いている文献を直接参考文献に書くのではなく、参考文献の参考文献を調べて、どちらがより本質的な議論をしているかで、より本質的な議論をしている文献を先に書き、補足している文献を次に書くように。
参考文献駆動執筆(references driven writing)・デンソークリエイト編
https://qiita.com/kaizen_nagoya/items/b27b3f58b8bf265a5cd1
参考文献の参考文献の参考文献の一覧を作るのに。
https://qiita.com/kaizen_nagoya/items/093fa43ed9595190b961
なぜ参考文献に標題、発行年、URLを入れるか
https://qiita.com/kaizen_nagoya/items/f312746485b86a2e4292
参考文献一覧作成 ファイルの存在の確認とPDF・画像からの変換(OCR)
https://qiita.com/kaizen_nagoya/items/8edaf4ca410ef2ccdbc7
Qiitaに記事を書く時と論文を書く時の共通部分と相違点
https://qiita.com/kaizen_nagoya/items/9af258c8d0f994de1316
ある疑問の解決の方法 参考文献
https://qiita.com/kaizen_nagoya/items/d3df667c7d13d4d5b73c
IT業界における国際規格等の利用。仮説(22)
https://qiita.com/kaizen_nagoya/items/0e2ab72fbddc391d4f41
Qiitaに記事を書く時と論文を書く時の共通部分と相違点
https://qiita.com/kaizen_nagoya/items/9af258c8d0f994de1316
Qiita(18)記事を書くときに注意していること
https://qiita.com/kaizen_nagoya/items/3a6e08309231aa05fb27
「wikipediaからのページからリンク一覧を取得する方法」を動かしてみた
https://qiita.com/kaizen_nagoya/items/ef4a8d21ec98851d10a0
@kazuo_reve 文章の推敲・校正の個人的なノウハウ
https://qiita.com/kazuo_reve/items/b15d99759d75f942b9f0
大事なことはすべてWikipediaから学んだ
https://qiita.com/jkr_2255/items/4544bc1d1a2d32fda848
SudachiPyで偶然短歌を作った話
https://qiita.com/hatt_takumi/items/b4e45c43cb565f3a970a