組込み

2009年7月31日 (金)

組込みコース紹介(3)モデリング

Masuda みなさん、こんにちは
(株)富士通ラーニングメディアの増田です。

前回のテストの話からから少し時間がたってしまいましたが、
今回は、組込みソフトウェア開発におけるモデリングについてお話しさせて頂きます。

まず、以下のCDプレーヤーに関する仕様書を読んでください。
私は基本的に文章が苦手なんですが、そんな私でなくても一度読んだだけでは、
この仕様を理解するのは結構難しくありませんか?
私にとっては理解するというより、これを読もうと考えるだけで少し頭がくらくらしてしまいます。

Photo_3

でも、これはどうでしょう?

Photo_2

この図は、先ほどのCDプレーヤの仕様書と全く同じ内容を
コンテキストダイヤグラムというモデリングの手法を用いて表現したものです。
これなら、文章の苦手な私でもなんとか理解できそうです。
みなさんはいかがですか?

こういった理解のしやすさは、バグの混入を防止するうえで大きな意味をもっています。
自分の頭の中で整理しやすいのですから、バグが入り込む余地が少なくなるのは必然ですよね。
また、自分自身が理解しやすいものは、当然、他人も理解しやすいですから、レビューや、テスト設計といった場面で、レビュアーやテスト技術者にとっても非常に大きな力を発揮します。
このように考えてくるとモデリングという手法は、組込みソフトウェアの設計においていいことずくめに見えてきます。

でも、いったいどうやって、このモデリングスキルを身につければいいんだろうか?
今、そう考えてしまった方もおおいのではないでしょうか?
確かにこのモデリングのスキルを身につけるにはたくさんの場数が必要なことも
事実なんですがそれを効率よく学習することは不可能ではありません。
そのお手伝いをさせていただくのが、

の各コースになります。
「コンテキストダイヤグラム」、「データフローダイヤグラム」、「構造図」、「状態遷移図」、
「状態遷移表」、「クラス図」、「コミュニケーション図」といったモデリング設計手法の基礎から、「要求モデル」、「分析モデル」、「設計モデル」の考え方を開発プロセスへ適用するといった応用まで、体系的に学習することが可能ですので、
興味のある方は、是非、お試しあれ!

次回は、コーディングについて、考えてみたいと思います。

| | コメント (0) | トラックバック (0)

2009年6月25日 (木)

組込みコース紹介(2)テスト

Masuda_3 みなさん、こんにちは
(株)富士通ラーニングメディアの増田です。

 
前回は、レビューについて、お話をさせていただきましたが、
  今回は、組込みソフトウェア開発におけるテストについて少し・・・・

  みなさんの中には、テストについて、自分なりに色々と工夫して、
 自分なりのやり方をこれまでずっとやってきたけれど、
 また、テストケース(或いは、試験項目)について何度もレビューを
してもらったけれど、そのテストケースの設計方法について、
真剣に勉強したり、教えてもらったりしたことってなかった
よなっていう方、
いらっしゃるのではないでしょうか?
 
  ・他の会社では、世の中では、いったいどんな風な設計をしているんだろうか?
  ・今、自分のやっていることは、世の中のスタンダードに比べて
   いったいどうなんだろうか?
  ・そもそも一般的なスタンダード(業界標準)というものはあるんだろうか?
  ・今のやり方で本当に大丈夫なんだろうか?
  ・もっと効率のよいやり方はないのだろうか?

 
 多かれ少なかれ、こういった疑問を抱かれている方は、結構多いのではないでしょうか?
 事実、私が実施した講習会でも、結構ベテランの技術者のかたが、
初心に戻って一から勉強したくて、という方がいらっしゃいます。

 実際の私の開発経験の中でも、例えば、試験設計において、境界値分析が
しっかりできていないことによる不具合が、中堅となって開発になれてきた頃の
技術者に発生するなんていうことがありました。
もちろん、できないわけではなく、開発量の多さや馴れなどから基本が
疎かになり、単に、やらなかったのです。
 
初心忘るべからずといいますが、
  ホワイトボックス
  ブラックボックス
  カバレッジ
  サイクロマチックなどなど・・・
本当に基本的なことですが、一からもう一度振り返ってみる、
というのも大事なことかもわかりませんね。
 
 そして、もう一つ、テスト工程には、開発プロセス全体を改善するためのヒントが
たくさんちりばめられている
んです。
というか、レビューやテスト工程を活用することこそ、 開発プロセス改善の王道
とも言うべきなのです。

自分たちの開発力を向上させていきたいんだけど、
いったいどこから手をつけていくべきなのか、それがわからないという方は、
是非、着目したいただきたいポイントです。

というわけで、
 ・テストの設計技法を一から勉強してみたい。
 ・標準的なテスト設計ってどういうものか確認したい

という方には、
「組込みソフトウェア開発初心者のためのテスト入門」
を紹介させていただきます。
チャタリングやエアコンのリモコン-室内機間通信など、組込みプログラム
開発事例を題材とした説明と実習で効果的なテスト技術を学ぶことができます。

また、
 ・テストをどのように開発プロセスの改善につなげていけばいいのか?
 ・テストを管理するということはどういうことなのか?
 ・テスト管理の勘所はどこなのか?

という方には、以下のコースはいかかでしょうか?
「組込みソフトウェア技術者のためのテストマネジメント」
組込みシステムである通信機器の開発を題材とした説明とグループ演習で
テスト管理手法を効果的に学ぶことができます。

次回は、組込みソフトウェア開発におけるモデリングについて考えてみたいと思います。

| | コメント (0) | トラックバック (0)

2009年6月18日 (木)

組込みコース紹介(1)レビュー

Masuda みなさん、こんにちは
(株)富士通ラーニングメディアの増田です。

 今回は、レビューについて、お話をさせていただきます。

みなさんは、開発の中でレビューをしっかり実施されていますか?

 やらなければならないのはわかっているんだけど、
なかなか時間がとれなくて・・・というかたも結構いらっしゃるのではないでしょうか?

 私が講習会でお聞きしている範囲でも、なかなか手が回らないんですよ、
というお話を伺うことがあります。
 経産省/IPA-SECの調査(2008年版組込みソフトウェア産業実態調査)でも、
第三者によるレビュー/インスペクションを実施していないという回答が
設計工程でも2割以上もありました。

 実際問題として、レビュー時間を確保するのは、非常に大変で、
強い意志がないとなかなか難しいという現場も多いと思います。

 或いは、レビューはするんだけど、なんとなく形骸化してしまって、
どうも積極的になれない、その有用性がイメージできないという方も
いらっしゃるのではないでしょうか?

そこで、何故、レビューが行われないのか、或いは、形骸化してしまうのか、
その理由を考えてみることにします。


1.レビューを行う時間がないから

 もっとも多い理由が、これなのではないでしょうか?
これは、多くの場合は、もともとのスケジュール(線表)にレビューが
組み込まれていないことが多いようです
スケジュール上、予定されていなければ、それを実施することは難しいですよね。

 製品出荷スケジュールを立てるときには、レビューやレビューによる手戻りも
組み込んだスケジュールを確保する。
 
或いは、受託請負開発であれば、見積もりに、しっかりとこれらを盛り込んだ
見積もりを作成し、お客様の理解を得る。

まずは、これがスタートラインではないでしょうか?


2.レビューの効果がわからないから
 レビューの効果は漠然と実施しているだけではわかりにくいものです。

 しかし設計時に発生した不具合の除去コストを1とすると、
製造・試験工程では6.5、
そして、出荷後ともなると54以上にもなってしまうという調査結果もあります。

 手戻りによる失敗コストよりも、レビューによる予防コストが
いかに効果的なのかをしっかり理解するためにも、
レビュー(予防)コスト工数とその成果を手戻り工数などと比較しながら
しっかりとデータとして把握
しておきたいものです。

 さらに、もっと言えば、レビューをすり抜けてしまった不具合についても
その原因を分析し、何故レビューで検出できなかったのか考える
ことによって、
より効果的なレビューを行えるようになり、レビューの効果があがるだけではなく、
よりレビューに対して積極的に取り組めるようになるのではないでしょうか?


 ・レビューの必要性を理解し、効果的に行うにはどうしたらいいのか?

 ・基本に立ち返り、レビューについて考えてみたい。
そんなあなたのお手伝いをさせていただくための研修コースをご紹介させていただきます。

「組込みソフトウェア開発初心者のためのレビュー入門」

エアコン室内機などの組込みプログラム開発事例を題材とした説明と実習で
効果的なレビュー技術を学ぶことができます。

次回は、テストについて考えてみたいと思います。

| | コメント (0) | トラックバック (0)

2008年3月18日 (火)

組込み研修ランキング(2)

20_3みなさん、こんにちは!
(株)富士通ラーニングメディアの福田です。

前回に引き続き、「組込み一直線」の記事に関連して、当社の組込み研修の人気コースをご紹介します。

2007年4月~2008年2月の当社組込み系コースの人気ランキングです。
今回は、1位から5位までをご紹介します。

 1位 Windows Embedded CE 6.0 基礎
 2位 C言語コーディング作法
 3位 組込みソフトウェア開発初心者のためのC言語プログラミング 
 4位 組込みソフトウェア開発初心者のための組込みシステムの基礎              
  5位 組込みソフトウェア開発初心者のためのリアルタイムOS入門
    (μITRON編)

1位のコースは、日本初のマイクロソフト社認定のWindows Embedded CE 6.0トレーニングコースです。応用コースは9位にはいっていました(組込みランキング(1)参照)
ブログでも、一度取り上げています。こちらをご参照ください。
5位以上は、初心者向けのコースが多くランキングしています。

研修計画にお役立ていただければ幸いです!

▼ご感想やご意見、
  また「このようなテーマを取り上げてほしい」など、
 お気軽にコメントにてお寄せください!

※コメント・トラックバックは、当社確認後表示となります。
 コメント・トラックバックが表示されるまでお時間いただくことをご了承ください。
 コメント・トラックバックにつきまして、営利目的の場合はご遠慮ください。

※無断転載・無断転用はご遠慮いただきたくお願いいたします。

当社のホームページはこちら
(株)富士通ラーニングメディアへのリンク

| | コメント (0) | トラックバック (0)

2008年3月11日 (火)

組込み研修ランキング(1)

20_3みなさん、こんにちは!
(株)富士通ラーニングメディアの福田です。

だいぶ暖かくなってきました。
しかし、まわりでは逆に風邪がはやっているような・・・
季節の変わり目、体調にはお気をつけください。

さて、「組込み一直線」の連載、いかがだったでしょうか?
「組込み一直線」の記事に関連して、今回は、当社の組込み研修の人気コースを2回に分けてご紹介します。

2007年4月~2008年2月の当社組込み系コースの人気ランキングです。
今回は、10位から6位までをご紹介します。

 6位 組込みソフトウェア開発初心者のための電気入門
 7位 組込みソフトウェア技術者のための電子回路/測定技術の基礎
 8位 組込みソフトウェア開発初心者のためのテスト入門 
 9位 Windows Embedded CE 6.0 応用              
10位 組込みソフトウェア開発初心者のためのレビュー入門

9位のコースは、日本初のマイクロソフト社認定のWindows Embedded CE 6.0トレーニングコースです。
ブログでも、一度取り上げています。こちらをご参照ください。
また、6位、7位は、電気関連のコースです。この分野もブログで取り上げています。
こちらを、ご参照ください。

研修計画にお役立ていただければ幸いです!

▼ご感想やご意見、
  また「このようなテーマを取り上げてほしい」など、
 お気軽にコメントにてお寄せください!

※コメント・トラックバックは、当社確認後表示となります。
 コメント・トラックバックが表示されるまでお時間いただくことをご了承ください。
 コメント・トラックバックにつきまして、営利目的の場合はご遠慮ください。

※無断転載・無断転用はご遠慮いただきたくお願いいたします。

当社のホームページはこちら
(株)富士通ラーニングメディアへのリンク

| | コメント (0) | トラックバック (0)

2008年3月 6日 (木)

組込み一直線
「プロジェクトマネージャー」として大成するには(4)

Masuda みなさん、こんにちは
(株)富士通ラーニングメディアの増田です。

ASCII.jp キャリア(http://ascii.jp/cate/21/)に連載の記事、組込み一直線をご紹介します。今回は最終回です。

前回はこちら

*******************

外部委託先の見極め
 組込み系に限らずプロジェクトマネージャーは、コストや予算の管理が大切な業務です。ただし、たとえ外部に開発の一部、あるいは、すべてを委託する場合においても、コストを下げるのが最終的な目標になってはいけません。安さだけでなく、委託先の仕事の実力や姿勢、開発内容との相性や実績などを見極め、総合的に信頼できるところに頼むことが重要です。それを見極める眼力もプロジェクトマネージャーに必要な要素になります。

 委託先を選ぶポイントの1つとして、昨今関心が向けられているものに「セキュリティに対する意識」もあります。組込み系開発の場合、OSに使用されるのはWindowsなどのような一般的なものではなく、ITRONやVxWorks、Symbianなどです。これらはWindowsと比べて、使う人が圧倒的に少なく、ウイルスなども少ないことから、セキュリティに関してそれほど注意が払われていない傾向がありました。しかし、今後はそうもいかないでしょう。また、それにも増して、個人情報や秘密情報の取り扱いについてきっちり対応がなされているか、といった「セキュリティ意識の高さ」は、業者を見極める判断材料となります。

 このように組込み系開発のプロジェクトマネージャーは、とにかく仕事の範囲が非常に広く、それゆえ求められるスキルも広範囲に及びます。オールラウンドに知識を持ち、さらにそれぞれに対して深い知識が必要でしょう。多くの現場を経験し、それら総合力を高めることが、プロジェクトマネージャーとして大成するには必要です。

 全8回にわたって解説してきました「組込み一直線」は今回で終わりとなります。常にアンテナを張り、新しい設計手法やツールなどをウォッチしながらも、現場を大切に、真摯に取り組んでいただきたい、そして、ものづくりの喜びをみなさんに味わっていただきたいと思います。

現場で成果を上げるポイント
・特許権や著作権、派遣法、下請法などの法律を理解する
・ソフトウェア開発の各部門でどれくらいの費用がかかるのか、コスト感覚を身につける
・委託先選びの1つのポイントは「セキュリティに対する意識」

*******************

次回からは、組込み関連コースの人気コースをご紹介します!

▼ご感想やご意見、
「このようなテーマを取り上げてほしい」など、お気軽にコメントにてお寄せください!

※コメント・トラックバックは、当社確認後表示となります。
 コメント・トラックバックが表示されるまでお時間いただくことをご了承ください。
 コメント・トラックバックにつきまして、営利目的の場合はご遠慮ください。

※無断転載・無断転用はご遠慮いただきたくお願いいたします。

当社のホームページはこちら
(株)富士通ラーニングメディアへのリンク

| | コメント (0) | トラックバック (0)

2008年3月 4日 (火)

組込み一直線
「プロジェクトマネージャー」として大成するには(3)

Masuda みなさん、こんにちは
(株)富士通ラーニングメディアの増田です。

今回も引き続き、ASCII.jp キャリア(http://ascii.jp/cate/21/)に連載の記事、組込み一直線をご紹介します。

*******************

 組込み系の現場で成果を上げるためのポイントや必要なスキルについて、「開発エンジニア」、「テストエンジニア」、「プロジェクトマネージャー」とお送りしてきた「組込み一直線」。前々回前回では、組込み系ソフトウェア開発のプロジェクトマネージャーにとって、コミュニケーション──特にハードウェアのプロジェクトマネージャーとの情報交換──の重要性を中心に、プロジェクトマネージャーの仕事を見ていきました。今回と次回は、現場で起こりがちなマネジメントのミスの事例から、プロジェクトを成功に導くスキルを紹介します。

不測の事態を予見するスキル

 前々回前回解説したとおりプロジェクトマネージャーにとって一番重要なコミュニケーションスキルには、ハードウェアに関する知識や仕事の進め方を把握することが必要あります。把握せずにプロジェクトを進めてしまうと、コミュニケーションが取れていると思っているだけで、実は背後にある状況が理解できていないなんてことが起こるでしょう。

 私が実際に担当したプロジェクトで、ソフトウェアをハードウェアに組込んで試験をしたところ、どうしてもうまく動作しないという経験をしたことがあります。ソフトウェアの不具合の可能性についていろいろ調べみましたが、原因を発見できなかったのです。そこで、ハードウェアが原因の可能性があるかもしれないと考え、ハードウェアのプロジェクトマネージャーに聞くと「まだ動作の確認や試験をしていません、申し訳ない」と伝えられました。全体スケジュール上、こちらは当たり前のように済んでいると考えていたハードウェアの動作確認が、ハードウェア開発の遅延によりまだ終わっていなかったのです。これも、ハードウェアの開発に関する意識の低さやコミュニケーションの欠如が招いたトラブルと言えるでしょう。

 また、この他にも現場ではさまざまな問題が発生する可能性があり、それに応じたスキルがプロジェクトマネージャーには必要となります。 リスクを予測するスキルという点では、不測の事態への対応力があらゆる工程で求められます。例えば検査をするときに、外部から調達する部品が期日に到着しないことも起こり得ます。そのとき、部品到着まで検査を延期するのではなく、同様の部品を使い、別の方法で検査を実施する柔軟な対応が必要になることもあります。もちろん、部品が到着しないということ自体をまず避けるべきですが、もしものことを想定し、リスクを回避する方策を用意しておくべきなのです。予算や調達だけでなく、あらゆる不測事態に対するリスクヘッジも大切なことです。

 忘れがちなものとしては、特許のクリアランスがあります。小さなプロジェクトだと、そういった作業をスケジュールに入れていないこともよくあり、自社で開発したと考えていたものが、実はすでに特許として認められており、勝手に使えない技術だった……ということになりかねません。そうすると、許諾に時間が必要になったり、許諾が降りてもコストがかさんだり、場合によってはその技術を使わずに改めて開発をしなければならないという事態になるかもしれません。特に特許権、著作権については、十分に注意を払う必要があります。また、特許以外にも外部委託に関わる法律──派遣法や下請法──などについても、しっかり対応していないと、知らないうちに法的に問題があるということが起こり得ます。組込みに限った話ではありませんが、特に組込み系開発は外部の会社に仕事を依頼することが多いので、外部との関係や法律遵守は必ず抑えておきたいプロジェクトマネージャーのスキルでしょう。

 組込み系開発の場合、予算が開発中に何度も変わる事があります。多くは減額され、現場は速やかな対応を迫られるでしょう。例えばマーケティングの結果、プロダクト開発の予算を多く取っていたのを、その後の経済状況の変化により縮小せざるを得なくなるということが起こります。その場合、一部の機能を減らして対応するのか、それとも機能を保ちつつハードウェアを変更してコスト削減を図るのか、またソフトウェア開発工程を工夫して開発費を削るのかなど、的確な判断が必要です。つまりそれには的確なコストを算出できることがスキルとして必須になるでしょう。予算の変動を起こりうることと考え、ソフトウェア開発の各部門でいくら費用が掛かっているか、もしそれをやめるといくら削られるかなどのコスト感覚は、プロジェクトマネージャーに必要不可欠なスキルなのです。

*******************

次回も、引き続き「プロジェクトマネージャ」についてです。

▼ご感想やご意見、
「このようなテーマを取り上げてほしい」など、お気軽にコメントにてお寄せください!

※コメント・トラックバックは、当社確認後表示となります。
 コメント・トラックバックが表示されるまでお時間いただくことをご了承ください。
 コメント・トラックバックにつきまして、営利目的の場合はご遠慮ください。

※無断転載・無断転用はご遠慮いただきたくお願いいたします。

当社のホームページはこちら
(株)富士通ラーニングメディアへのリンク

| | コメント (0) | トラックバック (0)

2008年2月28日 (木)

組込み一直線
「プロジェクトマネージャー」として大成するには(2)

Masuda みなさん、こんにちは
(株)富士通ラーニングメディアの増田です。

今回も引き続き、ASCII.jp キャリア(http://ascii.jp/cate/21/)に連載の記事、組込み一直線をご紹介します。

今回も、「プロジェクトマネジメント」についてです。

前回の記事はこちら

*******************

さまざまなステークホルダーとの関わり
 前回に述べたとおり、プロダクトマネージャーやハードウェアのプロジェクトマネージャーとの折衝も重要ですが、部品や測定器などのベンダーや外部の委託開発会社とのコミュニケーションも忘れてはなりません。これは一般的にソフトウェア開発のプロジェクトマネージャーとの違いでもあります。例えば、部品やそのドライバソフトの自分たちのアーキテクチャとの相性や実績などは、もちろん事前検証も必要ですが、ベンダーとのしっかりしたコミュニケーションがあってのことです。また、開発を委託する場合も、その会社の技術力と自分たちのハードウェアアーキテクチャとの相性を見極めたり、製品のコンセプトをしっかり伝えるためにもコミュニケーション力が要求されるでしょう。

 組込み系のプロジェクトマネージャーは、とにかくいろいろな人とコミュニケーションを取る必要が数多くあり、その場面ごとで話し合いをし、的確な決断をしなければなりません。そのために幅広い知識と多くの経験が要求されるのです。開発がコンカレントということを意識し、ステークホルダなどさまざまな人々とのコミュニケーションをもってプロジェクトの調整をしっかりできるかどうかがポイントになります。 

現場で成果を上げるポイント
・コンカレントを意識して、特にハードウェアのプロジェクトマネージャーと意思の疎通(すり合わせ)を図る
・ハードウェア開発の基礎知識を身につける

*******************

次回も、引き続き「プロジェクトマネジメント」についてです。

▼ご感想やご意見、
「このようなテーマを取り上げてほしい」など、お気軽にコメントにてお寄せください!

※コメント・トラックバックは、当社確認後表示となります。
 コメント・トラックバックが表示されるまでお時間いただくことをご了承ください。
 コメント・トラックバックにつきまして、営利目的の場合はご遠慮ください。

※無断転載・無断転用はご遠慮いただきたくお願いいたします。

当社のホームページはこちら
(株)富士通ラーニングメディアへのリンク

| | コメント (0) | トラックバック (0)

2008年2月26日 (火)

組込み一直線
「プロジェクトマネージャー」として大成するには(1)

Masuda みなさん、こんにちは
(株)富士通ラーニングメディアの増田です。

今回も引き続き、ASCII.jp キャリア(http://ascii.jp/cate/21/)に連載の記事、組込み一直線をご紹介します。

*******************

 「開発エンジニア」、「テストエンジニア」と組込み系の現場で成果を上げるためのポイントや必要なスキルを紹介してきた「組込み一直線」。4回にわたり、開発エンジニアやテストエンジニアが目指すキャリアの1つである「プロジェクトマネージャー」を取り上げます。組込み系の特徴であるコンカレントな開発現場で、プロジェクトマネージャーに求められるのはよりいっそうの調整力です。そこではじめの2回では、プロジェクトをコントロールするための基礎として必要なコミュニケーションを中心に、現場で成果を上げるためのポイントを紹介します。 

1プロダクトに2人のプロジェクトマネージャー

 大きな枠組みで言うと、組込み系のプロジェクトマネージャーだからといって特に必要なスキルというものはなく、IT系のプロジェクトマネージャー向けにも使われるPMBOK(Project Management Body of Knowledge)の知識エリアで定義されているような、スケジュールマネジメント、コストマネジメント、スコープマネジメントなどのスキルが求められます。しかしそのような中でも組込み系の現場ではとりわけ「コミュニケージョンスキル」、つまり「対人的な調整力」を身に着けておく必要があると言えるでしょう。

 組込み系のプロジェクトマネージャーの大きな特徴として、“2人のプロジェクトマネージャーが開発に携わる”ことがあげられます。ハードウェアを開発するプロジェクトマネージャーと、そのハードウェア(ターゲット)で作動するソフトウェアを開発するプロジェクトマネージャーです。また、これに加えてプロダクトを統括するプロダクトマネージャーが存在する場合もあります。それぞれが役割分担をして1つのプロダクトを作り上げていくのです。そのため、組込み系の開発が「すり合わせ開発」と呼ばれることもあるように、複雑とも言える関係の中での調整していく力が非常に重要になります。この“すり合わせ”をキーワードとして、組込み系ソフトウェアのプロジェクトマネージャーを考えてみて下さい。

組込み系ソフトウェアのプロジェクトマネージャーがすべき“すり合わせ”
 組込み系の開発では、実際の開発の前にどういった市場やユーザーをターゲットにするのかというところから戦略を立て始めます。そしてそこからどのようなハードウェアが必要になって、そのために必要なソフトウェアは何か、と考えを組み立てていくのです。お客さんから「こんなものを作ってほしい」と依頼される、いわゆる受託型の開発スタイルではないので、目的地(コンセプト)を決めることがプロジェクト当初にやるべきことになります。

 例えばアーキテクチャを考える場合に、ある機能をソフトウェアかハードウェアのどちらかで実現する必要があるとします。この場合、コスト、時間、人的資源などを鑑み、プロダクトマネージャーやハードウェアプロジェクトマネージャーと一緒になって考えます。立場によってソフトウェアの制御と、ハードウェアでの制御がのどちらにするのかといった判断は意見が割れることが多々あるでしょう。そこで、プロダクトマネージャーのリードのもと、3者が協力して的確な着地点を見つけることが必要となるわけです。

 上記以外にも組込み系ソフトウェアのプロジェクトマネージャーがすべき開発前の準備は実に多岐に渡りますが、開発がスタートすればさらに他の調整をしなければなりません。ソフトウェアの開発は、ハードウェアとコンカレント(同時進行)であるため、とりわけハードウェアのプロジェクトマネージャーと密にコミュニケーションを取ることが大切になります。進捗状況やコストのことなど、相互に伝達と確認をしっかりとして、認識をすり合わせなければなりません。このためハードウェアに関する知識も必須と言えます。どんな部品を使うのかはもちろん、どういう動作をするのか、コストはどれくらいか、ハードウェアを開発するのにどういった工程で、それぞれどれくらい時間が必要かなど、ハードウェアの開発の進め方も知っておくべきです。そこがしっかり把握できていると、ハードウェアのプロジェクトマネージャーとコミュニケーションを取って、あらかじめ自分たちのリスクを予見することもできます。

*******************

次回も、引き続き「プロジェクトマネージャ」についてです。

▼ご感想やご意見、
「このようなテーマを取り上げてほしい」など、お気軽にコメントにてお寄せください!

※コメント・トラックバックは、当社確認後表示となります。
 コメント・トラックバックが表示されるまでお時間いただくことをご了承ください。
 コメント・トラックバックにつきまして、営利目的の場合はご遠慮ください。

※無断転載・無断転用はご遠慮いただきたくお願いいたします。

当社のホームページはこちら
(株)富士通ラーニングメディアへのリンク

| | コメント (0) | トラックバック (0)

2008年2月21日 (木)

組込み一直線
「テストエンジニア」で一歩先行くためには(2)

Masuda みなさん、こんにちは
(株)富士通ラーニングメディアの増田です。

今回も引き続き、ASCII.jp キャリア(http://ascii.jp/cate/21/)に連載の記事、組込み一直線をご紹介します。

今回も、「テストエンジニア」についてです。

前回の記事はこちら

*******************

仕事のできる「バグ人間」って? 
テストエンジニアのとるべきキャリアアップの道筋とは

 テストエンジニアとして頭一つ抜けるには、まずは境界値分析や状態遷移テストなどのさまざまなテスト手法や統計的手法(直交法、田口メソッド、シックスシグマなど)など、テストに関する知識を身につけることです。そうして基礎力を身につけた上で、次はテストの勘所を押さえることが大切になります。これは日々の業務を通して取得していくのが一番の近道でしょう。また、開発の経験がなくても開発に関しての知識を習得したり、仕様について勉強することなども大事です。開発や仕様の知識がある方が的を得たテストケースの作成やテストの実施できますからね。ただ与えられた検査をするのではなく、その意味や意義を考えながらテストをすることは、バグ発見の確率を高めます。

 テストエンジニアの中には、「彼が試験すると、問題が発生してしまう」という“バグ人間”がいます。他の人が同じ事をやっても、どうしても発見できないバグを見つけるスキルを持っている人です。その人のやり方を見ていると、たとえばボタンを連続して3回押すという検査でも、ただ一定のリズムで押すのではなく、1回目と2回目の間に時間をおいたり、2回目を長時間押し続けてから3回目を押すなど、普通ではないやり方をしています。その人は「本当に大丈夫か?」という疑念を抱きながら、さまざまな状況を自ら設定して検査を行なっているのです。このような意識の持ち方、検査の行ない方はとても重要なことです。

 また、検査の内容をしっかりと記録するということも重要です。バグを発見した場合、どういう手順で検査を行なったのか、直近の作業だけでなく、そこに至る過程をもっと前の状況から記録しておきます。そうしないとそのトラブルを再現しようとしても、再現できなかったり、原因が特定できなかったりすることが起こり得ます。すぐれたテストエンジ二アは人が見つけられないバグを発見し、そのバグについて再現性のあるレポートがしっかり書け、問題解決のヒントを提供してくれる人だと言えるでしょう。

 テストエンジニアのキャリアアップの道筋は、テストエンジニアのプロを目指すという方法がまずあるでしょう。たとえば納入先の検査である「受け入れテスト」は、最終段階なので熟練者が行ないます。ただ、このような熟練者(プロ)もいろいろなエンジニアとしての経験を積んだ上でのキャリアです。また、テストの計画、管理、分析などを行なうテスト管理者という道もあるでしょう。いずれにしても、テストエンジニアだけでいたのでは大きな成長は難しいと言えます。開発を経験し、開発のプロを目指すとか、全体をマネージメントするプロジェクトマネージャーを目指すというのもよいでしょう。今はエンジニアとして経験が浅くても、このテストエンジニアをスタートに、ぜひとも組込み系エンジニアのプロを目指して欲しいと思います。

現場で成果を上げるポイント
・限られたコストと時間内で効率よく改善の提案をする
・基礎力とともに日々の現場からテストの勘所を磨く
・テストエンジニアだけでなく、さまざまな経験を積む

*******************

次回は、「プロジェクトマネジメント」についてです。

▼ご感想やご意見、
「このようなテーマを取り上げてほしい」など、お気軽にコメントにてお寄せください!

※コメント・トラックバックは、当社確認後表示となります。
 コメント・トラックバックが表示されるまでお時間いただくことをご了承ください。
 コメント・トラックバックにつきまして、営利目的の場合はご遠慮ください。

※無断転載・無断転用はご遠慮いただきたくお願いいたします。

当社のホームページはこちら
(株)富士通ラーニングメディアへのリンク

| | コメント (0) | トラックバック (0)

2008年2月19日 (火)

組込み一直線
「テストエンジニア」で一歩先行くためには(1)

Masuda みなさん、こんにちは
(株)富士通ラーニングメディアの増田です。

今回も引き続き、ASCII.jp キャリア(http://ascii.jp/cate/21/)に連載の記事、組込み一直線をご紹介します。

*******************

 組込み系の現場で成果を上げるためのポイントや必要なスキルを紹介している「組込み一直線」。
今回から2回は、製品が市場に出てから不具合を修正するのが非常に困難な組込み系ソフトウェア開発において、品質を握る存在となる「テストエンジニア」を取り上げます。テストエンジニアが現場で担う役割りや陥りやすいテストの失敗の原因とは何か。そしてテストエンジニアとしてキャリアアップしていくのに必要なマインドとスキルとはどのようなものかに迫ります。

適正な時間とコストで目的の品質に導くのがテストエンジニア
 テストエンジニアとは、その名のとおりテスト、つまり不具合(バグ)を検出し、品質を検証するエンジニアのことを言います。しかし一口にテストと言ってもさまざまです。「品質」のテストでは、要件が満足できているかを確認する機能性の検査や、信頼性、使用性、効率性、保守性などの非機能性の検査があります。また、「手法」のテストでは機能を確認するためのブラックボックステストや、処理の流れや構造を確認するためのホワイトボックステスト、経験ベースのエラー推測、最終的にお客様に満足していただけるレベルであるかを検査する総合(受け入れ)テスト、不具合を修正後にその修正によって新たな問題がないかを検査する回帰(リグレッション)テストなどがあげられます。このように、多種多様な検査を経て、組込み系ソフトウェアの品質は高まっていくのです。

 とはいえ、品質を高めるために時間やコストを無制限に使えるわけではありません。そこでテストエンジニアには、どこまでいつまでテストをするか、適正な時間とコスト内で効率的なテストを行ない、目的とする品質に近づけていくスキルが必要となります。つまり、言い換えればテストエンジニアはいかに「限られた時間内で効率よく改善の提案ができるか」で、評価が決まる仕事だと言えます。

現場でよくあるマイナスポイント
 実際のテストの現場でありがちなのは、しっかりしたテストケース(入力するデータ、処理内容、想定する結果をセットにしたもの)を作らず、あいまいな行なわれ方をしているという点でしょう。思い付いたケースから検証が行なっていくので、その結果バグが見つかったとしてもしっかりと順序立てた手順が踏めておらず、網羅性に欠けていたり、記録として不確かで不具合の流出原因もしっかりと分析できないことも多いようです。またそのような現場では、往々にして作業の進捗が把握できておらず、スケジュール管理もあいまいと言えます。その結果、後で大きな問題を引き起こしてしまいがちで、お客様はもちろん、会社や開発者自身にとっても不幸な結果となってしまうのです。組込み系のソフトウェアは、製品が世に出てからの修正をすることが非常に困難で、回収となれば何十億円という負担が発生してしまうこともあります。また、社会に与える影響も大きいので、仕事に対する意識をより高く持たなくてはなりません。

 テストはこのように重要な項目に関わらず、コスト面などから、一般的にエンジニア経験の浅い人が担当することが多いようです。そういう状況もあり、微妙な不具合を発見するのは難しかったりするのも現実です。しかし、そこで優秀なテストエンジニアとして確かなスキルを身につければ、エンジニアとして大きく成長できるでしょう。

*******************

次回も、引き続き「テストエンジニア」についてです。

▼ご感想やご意見、
「このようなテーマを取り上げてほしい」など、お気軽にコメントにてお寄せください!

※コメント・トラックバックは、当社確認後表示となります。
 コメント・トラックバックが表示されるまでお時間いただくことをご了承ください。
 コメント・トラックバックにつきまして、営利目的の場合はご遠慮ください。

※無断転載・無断転用はご遠慮いただきたくお願いいたします。

当社のホームページはこちら
(株)富士通ラーニングメディアへのリンク

| | コメント (0) | トラックバック (0)

2008年2月15日 (金)

組込み一直線
「開発エンジニア」で一歩先行くためには(2)

Masuda みなさん、こんにちは
(株)富士通ラーニングメディアの増田です。

今回も引き続き、ASCII.jp キャリア(http://ascii.jp/cate/21/)に連載の記事、組込み一直線をご紹介します。

今回も、「開発エンジニア」についてです。

前回の記事はこちら

*******************

一歩抜け出すには、特定のスキルをあげること
 組込み系開発の仕事で求められるスキルで第一にあげられるのがコミュニケーション能力と言えるでしょう。開発に関わるあらゆる人、たとえば先に述べたような外部でミドルウェアやCPUなどの部品やOSを提供してくれるメーカーや内部のハード開発者など、実にさまざまな人とコミュニケーションを取る機会があるからです。彼らとは開発のすり合わせを行なったり、そこから仕様書に書かれていること以上の情報を得なくてはなりません。しかし、このためにはメーカー担当者らと会話の理解度のレベルが同じである必要があります。そのための知識や情報を持っておくことは大切です。

 知識、情報を持つことにおいては、組込み系開発エンジニアとしての個々の勉強以外に教育が重要になります。社内外のさまざまな講習会やOJT(On the Job Training)によって、組込み系開発に関するナレッジを蓄積していくことです。そうすることで個々の得意分野や専門性も出てくるでしょう。

 高める専門性は、ロボット制御やネットワーク制御などの特定技術に詳しいドメインスペシャリストや、開発プロセス改善スペシャリスト、高い品質を提供するためのQAスペシャリスト、効率よい開発環境を提供する環境エンジニアなどが注目です。これらの専門性を備えていれば、組込み系開発プロジェクトを円滑に進めるキーパーソンとして重宝がられるでしょう。

 組込み系に限ったことではありませんが、他者から見てわかりやすい、見えやすいスキルを身につけるとよいでしょうね。ドメインスペシャリストや環境エンジニアなどは、どんな仕事ができるのか、どのようなスキルがあるのかがわかりやすいと言えます。まずはその道のスペシャリストになることが、組込み系開発エンジニア・リーダーへの近道です。

*******************

次回は、「テストエンジニア」についてです。

▼ご感想やご意見、
「このようなテーマを取り上げてほしい」など、お気軽にコメントにてお寄せください!

※コメント・トラックバックは、当社確認後表示となります。
 コメント・トラックバックが表示されるまでお時間いただくことをご了承ください。
 コメント・トラックバックにつきまして、営利目的の場合はご遠慮ください。

※無断転載・無断転用はご遠慮いただきたくお願いいたします。

当社のホームページはこちら
(株)富士通ラーニングメディアへのリンク

| | コメント (0) | トラックバック (0)

2008年2月 7日 (木)

組込み一直線
「開発エンジニア」で一歩先行くためには(1)

Masuda みなさん、こんにちは
(株)富士通ラーニングメディアの増田です。

現在、組込みソフトウェア開発の教育を担当しています。
約20年、主にネットワーク機器のソフトウェア開発に携わってきました。

今回より、ASCII.jp キャリア(http://ascii.jp/cate/21/)に連載の記事、組込み一直線をご紹介します。

*******************

 経済産業省の調べによると、組込み系エンジニアは毎年10万人単位で人材が不足しているとのこと。詳しくみると現場では各フェーズをまとめるリーダーの不足が深刻になっているようです。実際に組込み系エンジニアとして働く者の視点で言えば、各部署でリーダーを目指すことが、多くのエンジニアが望むキャリアアップでしょう。そこでこの連載では、組込み系エンジニアの職種を「開発エンジニア」「テストエンジニア」「プロジェクトマネージャー」の3つに大別し、それぞれの現場で成果を上げるためのポイントや必要なスキルを紹介します。まず取り上げるのは、「開発エンジニア」についてです。

ハード上での開発ができない「組込み系開発」
 組込み系開発エンジニアの仕事について、解説する前に今一度「組込み系」とは何かについて確認しておく必要があります。組込み系とは、ある特定の目的や用途のために作られたハードウェア(携帯電話やデジタルカメラなどの専用装置)専用のソフトウェアのことを指します。

仕様どおりに動かない部品に注意!
 組込み系開発エンジニアの仕事では、いろいろなLSI(Large Scale Integration)部品やデバイスドライバ、ミドルウェアなどの部品を駆使して作り上げていきます。そこで必要になるのが、それら部品についての知識です。各部品の特性や相性などを理解していないと、性能を引き出すことができませんし、それ以前に稼働させられないことも考えられます。新たに仕事をするときに、部品の仕様書などの理解にも大きく影響します。組込み系開発エンジニアの仕事をするなら、ハードウェアであるターゲットが属する分野のある程度の知識や情報は持っておくべきでしょう。

 しかし、ただ情報を持っていればうまくいくのかというと、そうでもありません。実はそれらの部品やミドルウェアは、ドキュメントが不十分であることが多く、また仕様書どおりに動かないものも珍しくありません。私が経験したことでこんなことがありました。

 組込み系の開発では、OSの処理速度の即時性(リアルタイム性)が求められることが多く、そのスピードはたとえば、μs(マイクロセコンド:1/1,000,000秒)・パー・オーダーのレベルを実現しなければならないこともあります。しかし、ある制御信号に関する処理が間欠的にうまく動かない。プログラム・バグや回路のバグ、ハードウェア部品の不具合の可能性を考えながら、ロジアナ(ロジックアナライザー)などの測定器で原因を調査しました。すると、即時性を実現するための組込み用OS(リアルタイムOS)を使って開発を進めていたのですが、その即時性が実現できていないことが原因であることが判明しました。そこでOSのメーカー担当者に現場に来てもらい詳しく話を聞くと「その速度は、ある特定のCPUを使うときだけに実現される速度で、それ以外は適用されない」と、当たり前のように言うのです。私たちは違うCPUを使っていたので、その速度は出なかったというわけです。しかし、そのことは仕様書には書かれていません。

 つまり、組込み系開発では、ドキュメントや仕様書に書かれていることをすべて頭から信じるのではなく、使う前に情報を収集する、あるいは、自分たちで実際に確かめる検証作業を大切にするといったリスクヘッジが必要と言えるでしょう。よい言い方ではありませんが、ある程度疑ってかかるということも時としては必要なわけです。ただし、何でも疑えばいいというのではありません。すべてを検証していたら時間がかかりすぎます。まず知識と情報があって、その上で実際に使ったり測定をしたりなど自分で確かめた上でのことです。そのためにはソフト、ハード、測定など、組込み系開発の仕事に関わる広く深い知識が必要ですし、メーカーの人との十分なコミュニケーションも必要不可欠です。

*******************

次回も、引き続き「開発エンジニア」についてです。

▼ご感想やご意見、
「このようなテーマを取り上げてほしい」など、お気軽にコメントにてお寄せください!

※コメント・トラックバックは、当社確認後表示となります。
 コメント・トラックバックが表示されるまでお時間いただくことをご了承ください。
 コメント・トラックバックにつきまして、営利目的の場合はご遠慮ください。

※無断転載・無断転用はご遠慮いただきたくお願いいたします。

当社のホームページはこちら
(株)富士通ラーニングメディアへのリンク

| | コメント (0) | トラックバック (0)

2007年11月29日 (木)

Windows Embedded CE で変わる組込み開発

Suzuki みなさん、こんにちは

(株)富士通ラーニングメディアの鈴木です。

5回目は「Windows Embedded CE 6.0で変わる組込み開発」についてです。

前回の記事はこちら

Windows Embedded CE 6.0 は、マイクロソフト社の組込み機器向けリアルタイム OS です。Windows Embedded CE 6.0を使用することで、組込みシステム開発メーカーは、市場投入期間の短縮化と開発コストを削減しつつ、豊富なメディアや通信コンポーネントを使用した機器を開発することができます。今回は Windows Embedded CE 6.0 の開発についてご紹介いたします。

単一のツールですべての開発工程をサポート

通常の組込み開発の場合は、プログラミング、デバッグ、テストなどで使用するツールがばらばらだったり、もしくは同一ツールでも機能が別売りになっていたりする場合も多いですが、Windows Embedded CE 6.0 の場合はすべての作業を Visual Studio 2005 上で行えます。
Windows Embedded CE 6.0 標準にサポートしているツールには以下のようなものがあります。

❑ファイル ビューア … 開発 PC からターゲットデバイスに対しファイルをやり取りするツールです
 200711291_2













❑ヒープ ウォーカ … 各プロセスが持つヒープの詳細情報を確認できます
200711292




















❑ズームイン … ターゲットデバイスの画面をキャプチャします
200711293_2
















❑プロセス ビューア … 各プロセスが持つスレッドとモジュールの詳細情報を確認できます200711294_2













❑レジストリ エディタ … ターゲットデバイス上のレジストリに変更を加えることができます
200711295

















❑システム情報 … ターゲットデバイス上のシステム情報を確認できます
200711296_2










❑パフォーマンス モニタ … ターゲットデバイス上のパフォーマンスを計測できます
200711297_2












❑スパイ … ターゲットデバイス上のアプリケーションウインドウが受信したメッセージを確認できます

200711298
















❑カーネル トラッカ … ターゲットデバイス上のスレッドとプロセスの状態をリアルタイムに確認できます
200711299_2


















機能のコンポーネント化により、開発工数を短縮

2007112910_2Windows Embedded CE 6.0では各OSの機能がコンポーネント化されています。必要なコンポーネントをカタログ項目ビューから選択することにより必要最小限の組込みOSを作成することができます。
コンポーネントを選択する際、あるコンポーネントが動作するには別のコンポーネントも必要な場合があります。このように、コンポーネント同士が依存関係を持っている場合でも、Windows Embedded CE 6.0は自動的に依存関係のあるコンポーネントを追加してくれます。右図の 【チェックマーク(緑色)】(注1)が追加したコンポーネントで、【四角(緑色)】(注2)が依存関係のために自動的に追加されたコンポーネントです。

2007112911
 










豊富なCPU・ボードに対応

Windows Embedded CE 6.0は、ARM系、SH系、MIPS系、x86系など、実に200種類以上のボードに対応しているとのことです。もちろんCPUやボードが変更になればBSPを始めハードに近い部分の修正は避けられませんが、共通で利用できる部分も多く、アーキテクチャの変更にも柔軟に対応できます。なによりも開発環境が全く同じであるというのが、心強いですね。

シェアードソースコード

Windows Embedded CE 6.0では、OS内部のソースコードも公開されています。そのため、障害が発生した場合は、OSの内部ソースも含め追跡して障害を突き止めることができ、万が一OS内部のソースコードに障害の原因がある場合でも、迅速に対応することができます。

最後になりますが、Windows Embedded CE 6.0は単に組込みOSを指すだけでなく、非常に多くの機能を持ったツール群も含んでいます。これらすべてを使いこなすのはなかなか難しいかもしれません。

ここで、弊社の研修をご紹介させていただきます。

まずは手始めに弊社の「Windows Embedded CE 6.0基礎」(1日間)をお勧めします。このコースは日本初のマイクロソフト社認定のWindows Embedded CE 6.0トレーニングコースです。

基礎で大まかな流れを把握していただき、「Windows Embedded CE 6.0応用」(3日間)でさらに理解を深めていただくことができます。各コースの詳細な内容に関しては、それぞれのリンク先をご確認ください。

▼ご感想やご意見、
  また「このようなテーマを取り上げてほしい」など、
 お気軽にコメントにてお寄せください!

※コメント・トラックバックは、当社確認後表示となります。
 コメント・トラックバックが表示されるまでお時間いただくことをご了承ください。
 コメント・トラックバックにつきまして、営利目的の場合はご遠慮ください。

※無断転載・無断転用はご遠慮いただきたくお願いいたします。

当社のホームページはこちら
(株)富士通ラーニングメディアへのリンク

| | コメント (0) | トラックバック (0)

2007年11月22日 (木)

電気

Suzuki みなさん、こんにちは

(株)富士通ラーニングメディアの鈴木です。

4回目は、「電気」です。

前回の記事はこちら

「電気」とは

 電気と聞いてみなさんはどう思われますか。古臭い分野で、もはや時代遅れの領域、工学系の学校でも人気にかげりの出てきた学問。そんなイメージをもたれてはいないでしょうか。あるいは、「ビリビリして怖い」「下手に触ったら壊しちゃいそう」なんて思っていませんか。でも実際には私たちの生活に密着して、切っても切り離せないんですね。どうしてでしょう。
 電気はエネルギーの一つです。エネルギーといえば他にもいろいろあって、例えば熱もエネルギーですし、高いところからものを落とすことで、重力をエネルギーとして使うこともできます。エネルギーはそれを使っていろいろな仕事をさせることができるのですが、普通は作る場所と使う場所は異なります。ですから、エネルギーは簡単に運搬、移動できると便利なんです。ところが、熱や重力はあまり移動に適しません。そこで、電気の出番です。電気は配線を接続するだけで簡単に場所を移動することができます。あるいは電波を使えば、ワイヤレスで場所を移動することができます。また小さなエネルギーとしてものすごく微少な量を扱うことも得意です。モバイル機器の普及などは、この特長をうまく利用している例ですね。
 このような電気の特長をうまく使って、これまでに真空管や半導体を経てマイコンが生まれました。組込みシステムのハードウェアは、このマイコンや電子部品を使って作られているというわけです。

ソフトウェアとハードウェアの境界

 組込みシステムを作っていくには、ソフトウェアだけを単独で開発していくことはあまりありません。通常は、組込みシステムが動作するハードウェアも並行して開発していくことになります。すでにあるハードウェアを用いてソフトウェアを開発していく、いわゆるエンタープライズ系の開発とは、ここが大きく異なります。エンタープライズ系のソフトウェア開発では、何らかの障害が発生した場合、まずソフトウェアに原因があると考えることができます。これはハードウェアがすでに完成しているため、障害の原因要素から省いて考えることができるためです。一方組込みソフトでは、ハードウェアも並行開発しているため、必ずしもハードウェアに間違いがないとは言い切れません。したがって障害の原因として、ハードに原因があるのかないのかを切り分けられる力はとても大切です。例えば、そもそも配線がつながっていなければ、うまく動作するわけはありませんから、その原因究明にソフトのデバッグを行っていても、多大な時間の浪費にしかならないですよね。
200711221













開発の現状

 ところが、実際の開発の現場ではこのような時間の浪費が多くなされています。なぜなら組込みソフトウェア技術者がハードウェアに対する知識や技術が十分でないため、ハードウェアに起因する不具合を見極められないからです。しかしながらこれは当然のことです。もともとソフトウェア技術者は必ずしもハードウェアに関する教育を体系的に学んでいるとは限らないからです。最近では文系出身者が組込みソフトウェア技術者になっていることだって珍しくありません。そういった方々は電気について学んだ経験がほとんどないでしょう。中学校の理科か高校の物理で少しかじった程度でしょうから、はるか昔の記憶の彼方に消え去ってしまってもなんら不思議はありません。

200711222
















記憶をほじくりかえそう

 そうは言っても、忘れていたままではもったいないですね。はるか昔とはいえ、せっかく学んだことで、かつ大きな武器になるのだったら使わない手はありません。ほんの少しだけ時間を使ってきっかけを作ってあげれば、すぐに思い出すことができるはずです。そうすれば、開発時間の無駄な浪費を省くことができるのと同時に、不必要に遠慮することなくハードウェア技術者とも自信を持ってコミュニケーションできるようになります。基本が分かっていれば、今度はハードウェア技術者は新しいことをどんどん教えてくれることでしょう。それが組込みソフトウェア技術者としての能力を向上させることに結びつくことは明らかです。ぜひとも高校の物理の教科書をひっくり返して、記憶のすみをほじくりかえしてみてください。

次回は組込みOSで着目されているWindows Embedded CEについてお話しします。キーワードは「日本初」です。お楽しみに。

▼ご感想やご意見、
  また「このようなテーマを取り上げてほしい」など、
 お気軽にコメントにてお寄せください!

※コメント・トラックバックは、当社確認後表示となります。
 コメント・トラックバックが表示されるまでお時間いただくことをご了承ください。
 コメント・トラックバックにつきまして、営利目的の場合はご遠慮ください。

※無断転載・無断転用はご遠慮いただきたくお願いいたします。

当社のホームページはこちら
(株)富士通ラーニングメディアへのリンク

| | コメント (0) | トラックバック (1)

2007年11月15日 (木)

組込みシステムにおけるプロジェクトマネジメント

Suzuki みなさん、こんにちは

(株)富士通ラーニングメディアの鈴木です。

3回目は、「組込みシステムにおけるプロジェクトマネジメント」についてご紹介いたします。

前回の記事はこちら

組込みシステム開発における「プロジェクトマネジメント」を、エンタープライズ系の開発との違いに焦点を絞って考えてみたいと思います。

ソフトとハードのコンカレント開発

  組込みシステム開発におけるプロジェクトマネージャ(PM)は、お客様から仕様の提示を受ける、または、お客様とともに仕様を考えるというエンタープライズ系の開発とは異なります。組込みシステムでは、お客様、または、マーケットを想定して自分たちで仕様を考えることになります。その時、仕様を、ハードウェアで実現するのか、あるいは、ソフトウェアで実現するのか、開発費、製造コストの両面で、ハードウェアPMとソフトウェアPM(あるいは、プロダクトマネージャ)が一緒になって考える必要があります。
第2に、ソフトウェアPMは、ハードウェアからのインプット情報や試験用ターゲット機器の提供時期について、ハードウェアPMとしっかり情報共有し、常に神経質に、その開発状況を把握しながら、リスクの管理をする必要があります。
第3に、ハードウェア開発者とソフトウェア開発者が、一緒に試験を進めることも多いのですが、それぞれのPMは、自分たちの品質だけではなく、他者の品質にも十分注意して、部下に対する指示を行う必要があります。

問題対応

第4に、試験等で発生した問題対応についても、ハードウェア開発者とソフトウェア開発者が一緒になって調査や解決手段の検討をするのが、格段に効率がよいようです。簡単なインタフェースの変更で済む場合は、ハードウェアの不具合をソフトウェアで吸収したほうがシステムで考えた場合はいい場合もあるでしょう。また、ソフトで複雑な制御を仕様追加するより、ハードウェア的にバッファメモリを増やして、製造コストを多少犠牲にしても開発コストを抑えたほうがいい場合もあるでしょう。こういったことを、システム全体で最適解にまとめていくには、ハード/ソフト双方のPMがコミュニケーションを含めうまく機能している必要があります。

コストとスケジュール

第5に、コストを考えるとき、開発コストだけではなく、当然のことながら、部品や製造も考慮した製品コストも検討する必要があります。先ほど触れたように、ソフトとハードの両面で考えることも必要です。
第6に、スケジュールを考えるとき、開発だけに着目するのではなく、部品の供給や製造を含めたスケジュールの管理が必須です。開発と同様に、製造などについてもトレードオフの関係になることが多いコストとスケジュールを、切り離して考えることはできません。もちろん、これらは、マーケットとの兼ね合いも含めて考える必要があります。

ブートやドライバの開発

ソフトウェアPMが、注意したほうがいい特殊な開発として、汎用OSなどでBSPやLSPとして扱われている、ブートやデバイスドライバの開発が挙げられると思います。これらは、ハードウェアに非常に密接な部分なので、トラブルが起きた場合には、スケジュールに大きく影響を与えてしまうことも珍しくありません。そういう意味で、しっかりリスク管理すべき項目の一つといえるでしょう。

以上で、今回の「プロジェクトマネジメント」のご紹介は終わりです。みなさん、なんとなく、「プロジェクトマネジメント」、特に、組込みシステムにおける「プロジェクトマネジメント」について、イメージがつかめましたでしょうか?また、経験者の方にとって、共感できる内容はあったでしょうか?

次回のテーマは、「電気」です。ソフトウェア開発者でハードウェアはさっぱり、という方にもわかりやすくお話します。お楽しみに。

▼ご感想やご意見、
  また「このようなテーマを取り上げてほしい」など、
 お気軽にコメントにてお寄せください!

※コメント・トラックバックは、当社確認後表示となります。
 コメント・トラックバックが表示されるまでお時間いただくことをご了承ください。
 コメント・トラックバックにつきまして、営利目的の場合はご遠慮ください。

※無断転載・無断転用はご遠慮いただきたくお願いいたします。

当社のホームページはこちら
(株)富士通ラーニングメディアへのリンク

| | コメント (0) | トラックバック (0)

2007年11月 8日 (木)

モデルベース開発

Suzuki みなさん、こんにちは

(株)富士通ラーニングメディアの鈴木です。

2回目は、「モデルベース開発」についてご紹介いたします。

前回の記事はこちら

リモコンカーを動かそう
「モデルベース開発」の説明の前に、まずは、研修の際に開発の対象となるリモコンカーについてご説明します。写真ではボディを取り外しているため、オフロードカーに見えますが、れっきとしたレーシングカーです。スピードを競う訳ではないのですが、性能はバッチリです。キャッツ株式会社が研修用に作成したもので、家庭用のリモコンを使用し、右/左、前進/後進などを操作することができます。車体にある2つのボードは、1つが赤外線制御用、もう1つが駆動用となっていて、ボード間は、なんとCAN(車載ネットワークプロトコル)で接続されています。リモコンカーを走らせることによって、通信制御、センサー制御、モーター制御などのソフトウェアを、楽しく学習することができます。

200711081_2













組込みシステム開発の現状は
リモコンカーを走らせるのは楽しいことですが、「モデルベース開発」研修の目的は別にあります。
組込みシステムでは、通常、ハードウェアとソフトウェアを並行して開発していきます。ハードウェアが完成してからソフトウェアを作るのでは、まず納期に間に合わないため、ハードウェアが完成する前に、ソフトウェアの作成にかかります。しかし、プログラムの動作を確認するには、ある程度のハードウェアが完成している必要があります。
ハードウェアが正常に動作するかどうかは、実際に、もの(ハードウェア)を動かして確認するのが一番ですが、もっと早い段階でプログラムが仕様どおりに動作するか確認できます。一般的には、開発者同士でレビューを行うことで、設計書の漏れなどを見つけ出します。レビューを行い、ソフトウェアとしての品質を高めていくのです。

「モデルベース開発」とは
複数のモデル(図)を使用して、ソフトウェアを開発していくことを「モデルベース開発」といいます。組込みシステムには、システムがある状態を持ち、外部からのイベントによってその状態が変化するといった動作を行う開発をすることが多くあります。たとえば、ビデオプレーヤのボタン操作(ボタンを押すと、再生・停止をする)などをイメージしていただければ、理解しやすいでしょう。このように状態が遷移する場合は、その様子が分かる「状態遷移表」というモデル図を使用します。
ソフトウェア開発では、いろいろなモデルを使用し、ソフトウェアの動作を目で見えるようにしていく作業が必要になってきます。

200711082_4













ツールを使用し、効率的にプログラムを開発しよう
この「状態遷移表」は、システムの動作を分かりやすく整理したモデルです。この動作が仕様どおりなのかをプログラムを動かす前に確認できれば、ソフトウェアの品質を早い段階から向上させ、効率よくプログラムを作成することができます。そこで、「モデルベース開発」の研修では、状態遷移表作成ツールとして、キャッツ株式会社が提供するZIPC(ジップシー)を使用します。ZIPCでは、状態遷移表の設計から、シミュレートによる動作確認までを、プログラムを作成するまえに行うことができるため、効率的、かつ、高品質なソフトウェア開発を行うことができます。さらに、プログラムを自動生成し、実機を使用したエミュレートまで行うことが可能です。

200711083_4


















システムがどのような状態を持つべきなのかは、システムを設計する人が考えていきます。すなわち、システム設計者の考え方によって、そのシステムの品質が左右されるわけです。
最後に、「状態遷移表」を作成するうえでのポイントをお話して、「モデルベース開発」のご紹介を終わりにしたいと思います。

「状態遷移表」を作成するうえでのポイント
・ 表内の状態数をあまり増やさない
・ 複数の独立した表に分割する
・ 可読性を考慮し、シンプルに作成する

❑関連コースはこちら
組込みソフトウェア開発におけるモデルベース設計~状態遷移設計を中心にして~

▼ご感想やご意見、
  また「このようなテーマを取り上げてほしい」など、
 お気軽にコメントにてお寄せください!

※コメント・トラックバックは、当社確認後表示となります。
 コメント・トラックバックが表示されるまでお時間いただくことをご了承ください。
 コメント・トラックバックにつきまして、営利目的の場合はご遠慮ください。

※無断転載・無断転用はご遠慮いただきたくお願いいたします。

当社のホームページはこちら
(株)富士通ラーニングメディアへのリンク

| | コメント (0) | トラックバック (0)

2007年11月 1日 (木)

ものづくりの楽しさを、LEGOを使って学ぶ

Suzuki_2 みなさん、はじめまして

(株)富士通ラーニングメディアの鈴木です。

組込みソフトウェア開発の研修の企画、実施などを担当しています。今回は、「LEGOを使って学んだものづくりの楽しさ」についてご紹介いたします。

LEGOマインドストームとの出会い

私が、LEGOマインドストームを本格的にさわり始めたのは、会社でETロボットコンテストに出場したことがきっかけです。ETロボットコンテストとは、通称「ETロボコン」の名前で親しまれており、組込みソフトウェア技術者の技術力の向上と、交流を目的とした大会です。競技内容は、設計図の良さを競う「モデリング部門」と、ライントレースの速さを競う「タイムトライアル部門」があります。

LEGOマインドストームは、LEGOブロック内にコンピュータを内蔵し、プログラムを転送することで、モーターの制御や、センサーの制御をすることが可能な学習用ロボットです。この「LEGOロボット」を使い、黒いラインを光センサーでトレースして、コースを走ることができます。

20071101_2











ちょっと宣伝させていただくと、富士通ラーニングメディアでも、このLEGOロボットを活用したLEGO研修を提供しています。

「モノが動く」ことで起こる組込み開発特有の難題に立ち向かう

組込みシステム開発では、実際にモノが動くため、パソコン上で動かすアプリケーションとは違った問題が発生することがよくあります。「LEGOロボット」の場合は、車体が光センサーからの入力を受け、走行方法を決めますが、会場の明るさによって、午前中はうまく動いたのに、午後はおかしな動作をした、といったこともあります。その他にも慣性が働くなどの外的な要因の影響を受けるという組み込み特有の難しさもあります。個人的には、電池の残量によって、動作が変わる、という現象にはかなり苦労させられました。

LEGO研修の場でも、タイムを良くしたいチームから、「電池換えてください!!」とよくご要望があります。新しい電池になると、スピードが出すぎて今までのプログラムではオーバーランするなど、新たな苦労が頭を悩ませます。「性能」と「信頼性」のバランスが大事ですね。

現場では難しい、開発工程の全体像を知ることができる

組込みシステム開発は、企画・設計工程、実装工程、テスト工程などを経て、製品の完成に至りますが、開発現場の声として、「担当業務が特定の範囲になってしまい、開発工程全体を理解することが難しい」というお話をうかがいます。その背景には、年々開発規模が増大傾向にあり、すべての工程を担当することは難しいという現状があります。「ETロボコン」やLEGO研修では、要件分析からテストまで担当できるので、開発工程の全体を体験することができます。特に重要視したいのが、設計工程とテスト工程です。開発工程の前半(設計工程)で品質を作りこんでおくことで、手戻りによる影響を少なくし、開発工程の後半(テスト工程)で、安全に走行させるための入念なテストを行ないます。

「ETロボコン」を活用して、技術力向上や交流を広げる

「ETロボコン」を通じて、技術面はもちろんのこと、いろいろな方とお話をしたり、情報交換する機会を持つことが出来ました。関西地区ではローカルでLEGO大会を開催するくらい、ファンが大勢います。こういった活動は今後も継続していきたいと思っています。

長い間「LEGOロボット」に触っていると愛着が沸いてきて、たまに「LEGOロボット」の機嫌が良い日や悪い日を感じたり・・・。気のせいですね。

こういった実体験を元に、LEGO研修をよりよいものにして、お客様へフィードバックしていきたいと思っています。

▼ご感想やご意見、
  また「このようなテーマを取り上げてほしい」など、
 お気軽にコメントにてお寄せください!

※コメント・トラックバックは、当社確認後表示となります。
 コメント・トラックバックが表示されるまでお時間いただくことをご了承ください。
 コメント・トラックバックにつきまして、営利目的の場合はご遠慮ください。

※無断転載・無断転用はご遠慮いただきたくお願いいたします。

当社のホームページはこちら
(株)富士通ラーニングメディアへのリンク

| | コメント (0) | トラックバック (0)