出版社/著者からの内容紹介
が違う作業です。ソフトウェア開発は文系の職種であるということを、まず認識
していただきたいと思います。ソフトウェア開発は製造業ではなく、サービス業
です。そう考えると、ソフトウェア開発がかかえる様々な問題の構造が見えてき
ます。(『まえがき』より)
内容(「BOOK」データベースより)
内容(「MARC」データベースより)
出版社からのコメント
ソフトウェア工学の画期的入門書!
組込みソフトウェアの開発現場が置かれている構造的問題を解決するソフトウェ
ア開発の方法とは? 開発の本質を知ることで、現場は変わる。組込みソフト
ウェア開発者のみならず、機械系、電気系設計者も読んでおきたい、ソフトウェ
ア工学の画期的入門書。
カバーの折り返し
ソフトウェア工学の画期的入門書!
ソフトウェア開発について考えるには、数式がたくさん出てくる難しい技術専門
書を読むよりはむしろ、「説得力のある会議資料の作り方」とか「仕事を効率よ
く進める法」といったビジネス書や新書を読む方がためになります。こうしたビ
ジネス書で述べているのは、情報の整理の方法や、イメージをうまく形にする
方法などです。こうしたことこそ、ソフトウェア開発における本質であるといえ
ます。
本書では、こうした背景を踏まえて、組込み系の開発者向けに、ソフトウェア
工学の基本的な概念を紹介することを主目的にしています。確かに組込み分野は
少し特殊な分野ですが、基本的な考え方は同じです。本書で概要を把握した後で
あれば、ソフトウェア工学の専門書もうまく読みこなせるのではないかと思いま
す。
著者について
1996年3月 東京大学工学系研究科精密機械工学専攻修士卒。
1999年3月 同博士課程退学。
1999年4月株式会社デンソーへ入社。
デンソーにて組込み系ソフトウェアの開発工程に関する仕事に従事。
2001年3月
同社退社。
以降、フリープログラマ/エンジニアとして活動している。
ソフト設計(Windowsアプリケーション、組込みマイコン系)回路設計(デジタ
ル回路、FPGA)が専門分野。著書に『Visual C++.NET逆引き大全500の極意
Windows XP/2000/NT対応』 (秀和システム、2005年)、 『SQLサーバー&コマンド
ユーザー便利帳--Microsoft SQL/Postgres/MySQL完全対応』(秀和システム、
2006年)、共著に『UML逆引き大全560の極意』(秀和システム、2004年)があ
る。
著者略歴 (「BOOK著者紹介情報」より)
1996年3月東京大学工学系研究科精密機械工学専攻修士卒。1999年3月同博士課程退学。1999年4月株式会社デンソーへ入社。デンソーにて組込み系ソフトウェアの開発工程に関する仕事に従事。2001年3月同社退社。以降、フリープログラマ/エンジニアとして活動している。ソフト設計(Windowsアプリケーション、組込みマイコン系)、回路設計(デジタル回路、FPGA)が専門分野(本データはこの書籍が刊行された当時に掲載されていたものです)
抜粋
近年、ほとんどの電子機器にマイコンが搭載されるようになり、組み込みソフ
トウェアの需要が増大しています。組込みソフトウェアの規模は年を追うごと
に大きくなり、またソフトウェアを開発しなくてはならない製品の数もどんど
ん増えています。8ビットマイコンの頃からの伝統的な開発スタイルでは、こう
した需要に応じきれなくなってきています。
最近になって、ソフトウェアの不具合に起因する問題が、ニュースでよく報じ
られるようになりました。銀行のシステムトラブルや、エレベータの誤動作な
ど、トップニュースで報じられた事件もいくつもあります。ニュースキャスター
はこうした問題を「企業努力が足りない」「プロ意識の欠如だ」などと言って片
付けてしまいますが、ソフトウェア開発の現場にいる方々は違った感想を持たれ
たはずです。この問題は努力で解決できる問題ではなく、いつ自分の身に降りか
かるかもわからないと、日々不安を感じながら開発を進めている方も多いのでは
ないでしょうか。
現実問題として、ソフトウェア開発現場の環境は年々悪化しています。月100
時間残業、200時間残業が当たり前になり、開発ルームは真夜中でも照明の消え
ることがない不夜城と化しています。こんな状態の中、死に物狂いで働いた結果
が「努力が足りない」では、たまったものではありません。
しかし、現実とは残酷なもので、残業が当たり前の過酷な開発現場で作られたソ
フトウェアほど質が悪い傾向にあります。開発に時間がかかるソフトウェアの
多くは、丁寧に時間をかけて開発しているのではなく、問題があるために時間が
かってしまっているのです。
ソフトウェア開発組織の多くは、構造的な問題をかかえています。この
問題は、努力と根性と残業では決して解決できません。問題のもとである「ソフ
トウェア開発の方法」を見直す必要があります。
組込みソフトウェアの開発には、ハードウェアやマイコン、制御技術などの
専門知識が必要なこともあって、電気系や機械系を専門とする技術者が多く携
わっています。そのため、電気回路の設計や機械の設計など、他の設計業務
の延長としてソフトウェア開発業務をとらえてしまいがちです。しかし、ソフト
ウェアの開発という作業は、他の設計とはまったく質が違う作業です。ソフト
ウェア開発は文系の職種であるということを、まず認識していただきたいと思い
ます。ソフトウェア開発は製造業ではなく、サービス業です。そう考えると、ソ
フトウェア開発がかかえる様々な問題の構造が見えてきます。
ソフトウェア開発について考えるには、数式がたくさん出てくる難しい技術
専門書を読むよりはむしろ、「説得力のある会議資料の作り方」とか「仕事を
効率よく進める法」といったビジネス書や新書を読む方がためになります。こう
したビジネス書で述べているのは、情報の整理の方法や、イメージをうまく形に
する方法などです。こうしたことこそ、ソフトウェア開発における本質であると
いえます。
ソフトウェアの開発方法について研究する学問領域には、ソフトウェア工学とい
う名前がついています。ソフトウェア工学の分野では、ソフトウェアの開発手法
について昔から様々な研究がなされ、一定の成果が出ています。しかし残念なこ
とに、ソフトウェア工学について学ぶ機会があまりないため、あまり一般には知
られていないのが現状です。
ソフトウェアを開発するのに、ソフトウェア工学の知識は不可欠のものではあり
ません。ただ漫然とプログラムコードを書いていけば、そのうちソフトウェアは
完成します。より質のよいソフトウェアをより早く開発するという目的において
さえ、理屈をこねまわすよりは実戦経験がモノを言う分野です。実際に、聞きか
じりのソフトウェア工学の最新知識を開発に適用しようとして、現場がかえっ
て混乱してトラブルが続出した例はいくらでもあります。
では、ソフトウェア工学を学ぶ意義はどこにあるのでしょうか? ソフトウェア
工学の意義は、ソフトウェアの開発について考えるときの指針を与えてくれると
ころにあります。ソフトウェアとは何であり、ソフトウェアを開発するとはどう
いうことかを知ることで、どうやったらソフトウェアの質を高めていけるかを筋
道立てて考えることができるようになります。ソフトウェア工学の知識がない
と、ソフトウェア開発はカンと経験が頼りの職人芸の世界になってしまいます。
ソフトウェア工学は、それに対して「なぜうまくいくのか」という理由を与えて
くれます。
ソフトウェア工学は、本を読んでその通りに実行すればうまく開発が進むという
わけではありません。自分で考え、自分たちの開発組織や開発対象に合わせ
て柔軟に手法をアレンジしていくことが必要です。
大きな書店に行くと、ソフトウェア工学関連の専門書もたくさん並んでいます。
しかし、こうした専門書の多くはパソコンのアプリケーションやネットワークシ
ステムの受託開発といった分野を主な対象にしていて、「ウェブサイトを作った
り会計ソフトを作ったりするのにはいいのかもしれないけれど、組込み系に適用
するには事情が違いすぎる」という感想を持たれるかもしれません。
本書では、こうした背景を踏まえて、組込み系の開発者向けに、ソフトウェア
工学の基本的な概念を紹介することを主目的にしています。確かに組み込み分野
は少し特殊な分野ですが、基本的な考え方は同じです。本書で概要を把握した
後であれば、ソフトウェア工学の専門書もうまく読みこなせるのではないかと思
います。
本書を執筆するにあたっては、堅苦しい内容を省き、読み物として楽しんで読め
るように努めました。仕事の合間にでも気軽に読んでいただければと思います。
2007年5月 岩田宗之