書籍名 紹介文
組込みソフトウェア開発向けコーディング作法ガイド
組込みソフトウェア開発向けコーディング作法ガイド
(Amazon)
文字通り、コーディング作法について記述した書籍
高品質なC言語コーディングのためには、開発者の暗黙の了解でコードを記述するのではなく、コーディング規約を定め、規約に基づいてコードを記述することが有効です。しかし、コーディング規約を制定するためには、C言語の文法に精通している必要があることなど、高いスキルと多大な労力が必要です。また、開発者への理解を深め、普及・徹底を図ることに大きな障壁があることも事実です。本書は、C言語のコーディング規約を策定している方を対象にした「コーディング作法ガイド」です。本書は、品質特性に対応して分類した作法と、それに対応するルール群から構成されています。コーディング規約を策定する方は、ルール群の中から必要部分を取捨選択することにより、目的に見合ったコーディング規約を策定することが可能になりました。

目次を転記すると、
1 コーディング作法ガイドの読み方(概要/ソースコード品質のとらえ方/本ガイドの利用方法)/2 組込みソフトウェア向けコーディング作法:作法表(作法表の読み方/作法表中の用語/組込みソフトウェア向けコーディング作法)/3 組込みソフトウェアにありがちなコーディングミス(意味のない式や文/誤った式や文/誤ったメモリの使用/論理演算の勘違いによる誤り/タイプミスによる誤り/コンパイラによってはエラーにならないケースがある記述)/付録
ということで、初心者は勿論、中級者で自己流の書き方、特に入社してから他社とほとんど接点のないようなプログラマにお勧めです。
あと、「こいつのプログラム、一貫性ねえなあ」と思っている方は、さりげなくその人のデスクの上に置いておく、なんてのも面白いかもしれません。
組込みソフトウェア開発における品質向上の勧め (コーディング編)
組込みソフトウェア開発における品質向上の勧め (コーディング編)(Amazon)
(BK1)
ECESのIPAブースで頂いたものなのですが、市販されているようなので、ご紹介を。
組込みソフトウェア製品の品質を向上するための基本動作について、コーディング作業を中心に紹介した小冊子です。テーマは四つ。
  • ソフトウェア品質とは
  • ソフトウェア品質向上の考え方
  • ソースコード品質向上のための技術
  • コーディング作法とその利用方法
小冊子とはいえ、馬鹿にしてはいけません。開発チームあたり一冊は常備しておいてほしい良書です。
付録として、コーディング規約の一例が挙げられています。初心者から中級者の方で、コーディング規約を気にしないでコードを書いている方も多くいます。参考にするとよいでしょう。
また、組み込み用となってはいますが、他のプラットフォームの方にも有用だと思います。マネージャークラスの方にも読んでほしいですね。
C言語でH8マイコンを使いこなす
C言語でH8マイコンを使いこなす

(Amazon)

H8マイコン入門書関連書籍
(Amazon)
どうも最近、H8マイコン入門書関連書籍の人気が高いようです。
想像するに、最近のマイコンで組み込みの基礎を学ぶには無理があることに起因しているから、ではないでしょうか。
私も派遣名目で組み込みの現場で働いていますが、若い人がいきなり、組み込みOSから学んでいく様子を見て、「これで将来大丈夫なの?」なんて、要らぬ心配をしてしまったりします。
そこで浮上してくるのが、H8やZ80・V25など、一世を風靡した?名チップです。現在一線で使用されることの機会は余りないマイコンたちですが、性能や使いやすさは折り紙付き。
これらのマイコンで是非とも基礎から学んで欲しいものです。
余裕のある方は、アセンブラにもチャレンジして欲しいですね(H8マイコン入門書関連書籍のリンク先にあります)。ソースコードの解析にも役立つはずですよ。
unixコマンドのobjdumpが有用に使えるくらいを目指して欲しいですね。
プログラミング作法
プログラミング作法

(Amazon)

BK1で見てみる
第1章の「スタイル」からして、「関数マクロはなるべく使うな」「悪いコードにコメントをつけるな、書き直せ」など、もっともな指摘とTipsが登場し、うれしくなる。グサッとくる人、多いと思いますよ。
第4章「インターフェース」は他者向けプログラミングで商売する人には必読。それが顧客をつかむことになるからだ。第5章「デバッグ」第6章「テスト」は多くのプログラマーにとっての福音だ。ドラッグ状態から正常な生活に早急に戻る処方箋と考えていい。第8章の「移植性」に関しては、ここで述べられている「理想」にまで配慮できるプロがどれくらいいるのだろうか?と思うほどの内容である。
具体例も簡潔にまとめられているので、親切な印象を受けますね。
教育現場で教えられないことが常識となっている現在(教育者が現場に追いついていけていない?)、現場の方や教育者は勿論、PLなどの管理者にも読んで欲しい逸品です。
憂鬱なプログラマのためのオブジェクト指向開発講座―C++による実践的ソフトウェア構築入門
憂鬱なプログラマのためのオブジェクト指向開発講座―C++による実践的ソフトウェア構築入門
(Amzon)

オブジェクト指向という概念に基づいてソフトウェアを開発するための入門書。オブジェクト指向とは何かということから分析/設計の方法、コーディングの手順も紹介している。
全てのプログラマに読んで欲しい稀に見る名著の一つ。
C言語をある程度習得していて、次のステップとしてC++やオブジェクト指向を習得しようとしている方にお勧め。
UNIXプログラミングの道具箱―プロフェッショナルが明かす研ぎ澄まされたツール群の使いこなし
UNIXプログラミングの道具箱―プロフェッショナルが明かす研ぎ澄まされたツール群の使いこなし
(Amazon)

Linux、FreeBSD、Mac OS X、Solaris、HP-UXなどのUNIX系OSでソフトウェア開発する人を対象にプログラミングツールを紹介、開発現場で活用するまでのノウハウを解説した書籍。
統合開発環境GNU Emacs、ビルド、ソースコード管理、テスト、デバッグ、ドキュメントまで開発の最終ステップまでを解説。
UNIX環境でのプログラミングを難しいと感じている人、組み込みプログラムの開発でUNIXを利用しようとしている人、UNIXをより深く理解したいと考えているUNIX初心者にお勧め。
リアルタイムUML―オブジェクト指向による組込みシステム開発入門
リアルタイムUML―オブジェクト指向による組込みシステム開発入門
(Amzon)

リアルタイムシステム(組み込みシステム)にダイアグラム記法UMLをどのように適用するかを解説。UMLおよびオブジェクトシステムの入門書としても最適な内容になっている。
類書に見られないほどステートチャート図(状態図)を詳細に解説し、各オブジェクトの振る舞いの扱い方を詳細に解説しているのが特徴的。
また、一般的なUML入門書では、受発注システムに代表されるビジネスアプリケーションがテーマになっていることが多いのですが、とてもプログラマに適した題材が扱われているとは思えません。この書籍では、こういったことがないので(ターゲットが組み込みシステム開発者なので当然なのですが)、初めてリアルタイムシステムに関わるようなソフトウェア技術者には大変参考になります。
組み込みUML―eUMLによるオブジェクト指向組み込みシステム開発
組み込みUML―eUMLによるオブジェクト指向組み込みシステム開発
(Amzon)

「組み込みソフトウェアはこう作れ」という目的をはっきりと意思表示した良書。ひとつの制御機器キャンディソータを実例として開発工程,開発フロー,その成果物,そして,チーム構成など製品を作り上げ、市場に出荷するまでの一連の流れを説明してくれています。今まで、こういった書籍は殆ど市場になく、あったとしても、講習会レベルになってしまう、というケースが常識的でした。この常識を打ち破ったのがこの書籍といえるでしょう。
一応、UML解説書ということになってはいますが、組み込みエンジニアには勿論のこと、すべてのプログラマ、マネージャにお勧めしたい書籍です。
はじめて学ぶUML―オブジェクト指向の基礎からUMLの利用法まで、しっかりよくわかる!
はじめて学ぶUML―オブジェクト指向の基礎からUMLの利用法まで、しっかりよくわかる!
(Amazon)

UMLってソフトウェア技術者なら、一度は聞いたことあると思います。ただ、これは記述法のみ定義されたもので具体的なイメージがわかないものです。
この書籍は、これからUML入門したい、という方にお勧めです。これをクリアしたら、上に紹介している書籍にチャレンジして見ると理解しやすいと思います。
また、UMLを理解するうえで必要となる「オブジェクト指向」についても基本から解説されているので、オブジェクト指向入門としても役に立つでしょう。
最後に、UML技術者認定試験に準拠した練習問題も掲載しているので、同資格の受験を考えている方にもよい選択肢です。
C/C++による組み込みシステムプログラミング
C/C++による組み込みシステムプログラミング
初めてCやC++で組み込みシステムを開発する方向けの入門書。広く浅くといった内容ですので、研修とかがなくて、いきなり現場に配置されて困った、(最近では、OJTを名目に研修なしでいきなり現場に配属されるケースが多いのですが、人手不足でとてもOJTどころではない、というのが現状だったりしますね。)という方に、全体を把握してもらう意味で読んでもらってもよし、一通り開発し終わった後で読んでも、さらに理解が深まるでしょう。
C/C++によるプログラミングスタイルブック
よいプログラムとは何か。美しく分かりやすいプログラムを自然体で書くにはどうすればよいのか。本書は,主にC/C++プログラミングの初心者を対象として,よいプログラムを書くためのノウハウを,具体的・実践的な記述方法として解説する。
猫でもわかるWindowsプログラミング
プログラマに絶大な支持を受けている定番プログラミングサイト『猫でもわかるプログラミング』が、完全書き下ろしで遂に単行本化! C言語でWindows APIに直接アクセスするという根元的な手法で解説する、Windowsプログラミングのチュートリアルです。C言語を用いてはいますが、必ずしもCプログラマのためだけの本ではありません。MFCやDirectX、C#などに手を出す前に知っておくべきWindowsの内部的動作とプログラミングの本質を徹底的に解説しています。Windows APIのデスクトップリファレンスとしても使えるこの一冊。これから始める人も、以前挫折した人も、ぜひ“本当の”Windowsプログラミングの世界に足を踏み入れてみてください。
新版 秘伝C言語問答 ポインタ編
柴田望洋プログラミングシリーズ
C/C++言語を理解する上で,最大の難関といわれるポインタについて,あるゆる角度から解説した,Cユーザー必読の書。
少々古い本ですが、枯れた技術なので、まだまだ現役です。
C言語によるアルゴリズムとデータ構造
◆柴田望洋によアルゴリズム入門書の決定版。◆
初心者にもやさしいアルゴリズム入門書の決定版。アルゴリズムとデータ構造の基礎について、豊富な図表やC言語のプログラムを使って明解に解説。付録CD-ROMにアルゴリズムの動きが手に取るようにわかる『アルゴリズム体験学習ソフトウェア』を収録。
新装版 プログラミング講義C++ 例解演習
柴田望洋プログラミングシリーズ
C++の問題集「C++への道」が新装の上,お求めやすい価格に!! 大好評の『新装版 プログラミング講義C++』の全演習問題を中心に,さまざまな問題を収録した問題集。解答には,詳細で明快な解説が加えられており,問題を解きながら,C++の全体が理解できる構成になっている。
Delphi Graphic Secrets―Know‐how & Libraries
Delphi Graphic Secrets―Know‐how & Libraries
ドキュメントにもほとんど書かれていない、Delphi/Windowsでグラフィック処理を行う際のポイント、問題点とその解決策を明示。さらに、グラフィックプログラミングの諸問題を解決する珠玉の汎用コンポーネント&ライブラリ集も提供。Delphi中上級ユーザ必携! 誰も教えてくれなかったDelphi/Windowsのグラフィックプログラミングの秘密を詳説します。マニュアルやドキュメントにもほとんど書かれていない、Delphiでグラフィック処理を行う際のポイント、Windows NT系とWindows 9x系で動作が異なるなどの問題点とその解決策を明示するとともに、Windowsで文字の表示や画像処理を行う際につまづく問題点も詳細に解説。これを読めば、Delphiに限らず、Windowsにおけるグラフィック処理の仕組みも理解できるでしょう。さらに、Delphi付属のメモリマネージャの問題点を解決するオリジナルメモリマネージャなど、Delphi/Windowsのグラフィックプログラミングの諸問題を解決する珠玉の汎用コンポーネント&ライブラリ集「DHGL」も"フリー"で提供します(C++Builderにも対応)。Delphi中上級ユーザ必携の書であると同時に、Windowsの画像処理で悩んでいるWindowsプログラマにも指針を与えうる書です。
MFCやC/C++及びSDKベースのユーザーにも役立つ内容が満載です。
C言語による最新アルゴリズム事典 本書は、さまざまな種類の問題について、コンピュータ向きの解法(アルゴリズム)を集めたものである。たとえば大きさの順に整列する方法について調べるには、"整列"を引くと、整列の概要と個々の方法の名前がわかる。その中からたとえば"クイックソート"を引き直すと、クイックソートの説明とC言語のプログラムが見つかる。
何にしてもこの類のものを一冊所有しているとアルゴリズムの実装には大変役立ちますね。
サポートページからソースコードの入手も可能です。
圧縮アルゴリズム―符号化の原理とC言語による実装 Cマガジン誌の連載記事「画像処理を極めるアルゴリズムラボ」から、圧縮アルゴリズムに関する回を抜粋して、加筆・修正のうえ再構成。ファイルの圧縮はどのような原理で行われているのかを詳細に解説する。C言語によるプログラムの実例も紹介。


ページ先頭へ




■お知らせと連絡先

このウェブサイトで取り上げて欲しい話題や分かりにくい点などありましたら、
以下のメールアドレス宛にメッセージをいただければ、参考にさせていただきます。

メールアドレスは、work_komiあっとまーくyahoo.co.jpです。
(「あっとまーく」は、半角英数のあっとまーくに変換してね。)

また、XBOXをお使いの方は、ゲーマータグ(akbox)にてフレンドリクエストを受け付けています。