新人技術者のためのロジカル・シンキング入門(2) ―― プログラミングにおける良いデータ構造

冴木元

tag: 組み込み

技術解説 2008年3月 5日

ここでは,組み込みソフトウェアにおけるデータ構造とその管理方法について解説する.どのようなデータ構造をとるかをシステム開発の早い段階で決めておくことで,保守性の高いプログラムを設計できる.指針を立てるためには,自分が設計するシステム,あるいは機能ブロックがどのような性質のデータを扱うのか,プログラミング言語で実装するにはどの種類の変数(外部変数,ローカル変数,テーブルなど)を使えばよいのかを十分に検討することがたいせつである.  (編集部)

技術解説・連載「新人技術者のためのロジカル・シンキング入門」 記事一覧
第1回 いかにしてバグの原因を突き止めるか
第2回 プログラミングにおける良いデータ構造
第3回 「必要とされる設計書」の作り方
第4回 直したバグがゾンビのごとく復活する
第5回 ソース・コード規約の作り方
第6回 ハードウェア基礎の基礎
第7回 「ひたすら流すだけのテスト」にさよなら
第8回 CPUの演算量をひたすら削る
第9回 メモリ転送速度の最適化設計
第10回 「工学の知」を実務に生かす


●お知らせ
 本連載記事を元に加筆・再編集した書籍『組み込みエンジニアのためのロジカル・シンキング入門』が好評発売中!

 

● どこもかしこも外部変数

 Bさんはプロジェクトに参加するにあたって,ソース・コードを資料として渡されていました.「どれどれ」と思いながらプログラムを読み進めたBさんは,まもなく頭を抱えることになります.外部変数と思われる変数があちこちに散らばっていて,関数の挙動が読みにくかったからです.

 外部変数であるということは,ソース・コードのどこからでもリード/ライトが可能ということです.そのため,これらのソース・コードをデバッグしようとすると,ソース・コードの中にかたっぱしからgrep 注1をかけて,ソース・コードのどこからのアクセスが最初かを特定しなければなりません.

注1;特定文字列の照合(パターン・マッチング)を行うコマンド.

 立ち上げ時からこのプロジェクトを率いているベテランSEのPさんにこのことを話すと,「そのとおりなんだ.若い連中は開発の基本がわかっていないよね.もう一度基本に立ち返って開発を立て直すためにレビューが必要なんだ」とのことでした.

 でもよく考えてみると,Pさんがそれなりに早い段階で方針を定めていれば,ソース・レビューを行う以前に,こういうソース・コードは生まれなかったのではないでしょうか....「Pさんに評論家以上の役割を期待するのは無理かな」と,Bさんはふとため息を漏らしてしまうのでした.

 これからBさんが担当する機能ブロックは,既存のコードを多数流用する必要があります.もし開発の切れ目で時間がある程度とれるのであれば,なんとか保守性を高めたソース記述にしたいのですが,どうすればよいのでしょうか?

  1. 【1】外部変数の役割とは
  2. 【2】外部変数に対する解決策
  3. 【3】DSPソフト開発のデータ管理方針
  4. 【4】自分のブロックが原因かどうかを判定
組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! 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日