SSブログ

眠りたいSEの眠れないブログ

↑ フィード・ティッカーを使ってみましょう


サイクリングに関する内容はHiloker.netに移動しました。(古いものは、Hiroのサイクリング&写真記録庫
よろしければどうぞ。

ソフトウェア工学(エンジニアリング)について その1 [ソフトウェア工学的な話]

 私は初めてコンピュータを触ったのはちょうど8歳の時、友人がPC-6001mk2というパソコン(当時はマイコンと言っていた)を買ったのを触らせてもらったのが初めてだった。
 中学に入り、MSXというパソコンを購入して、BASICという言語でプログラムを作り、アセンブラをかじり、それこそ1日10時間以上パソコンをいじっていても苦にならないくらい遊んでたのを覚えている。
 高校に入り、ゲームやユーティリティ作りばかりをやっていて、友人と誰もが難しいと思っていたことを実現することに挑戦することが楽しかった。たとえばMSXを使っていたときはBasic言語の拡張に挑戦したり、漢字表示のできないPCで漢字を表示するための機能を開発したり、画面の回転処理をアセンブラで作りこんで、少しでも早くなるようなアルゴリズムの改良に気持ちを弾ませていたなど。その時に読んでいたのはハッカー向けのパソコンの内部資料(BIOS、I/Oアクセスの方法、果てはフロッピーディスクコントローラの制御方法などに至るまで)が中心だった。
 大学を卒業するときに自分が衝撃を受けたのは、スティーブ・マコネル氏の「Code Complete」を読んだ時だ。この本は1冊7,000円したので、ちょっと手が出しづらかったのだが、就職も決まったので、プロとして知っておく必要があると思って買ったのである。
 この本にはソフトウェアの開発を行うに当たって、必要なこと(特に開発について)がシステム開発のフェーズ(工程)単位にまとめられており、チームで開発を行うために必要なノウハウやデバッグの仕方、設計について、テストの考え方などさまざまなことが書かれていた。変数の名前1つ、コメント1つの意味・意義についてがまとめられていて、当時値段を理由に購入を戸惑っていたことを後悔したほどの内容だった。
 さて、前置きが長くなってしまったが、ソフトウェア工学とはどういうものかについて考えてみる。スティーブ・マコネル氏は「ソフトウェア開発プロフェッショナル」の中で「ソフトウェアでの科学と工学の違いは、他の分野での違いと同じである。科学者は真理を探求し、仮説を検証し、対象分野を深く掘り下げようとする。一方、技術者は現実の問題を解決するために、真理を探究し、有用なものを見つけ出し、周知の事実を適用するのだ。科学者が、最先端の研究を進め、いつも最前線に立っている必要がある。一方技術者は、信頼性が高く、効率のよい方式を熟知していなくてはならない。」とのことである。つまり実用に即したものであるとくことである。
 車を例に考えてみると、最先端の研究をすすめ、最前線の技術を投入した車といえば、その1つにレーシングカーがあげられる。レーシングカーは早く走るという点を追求した車で素材や技術など最新のものを投入して造られているだろう。また、「いかに早く」を追求した結果、居住性、燃費、コストパフォーマンスなどはある意味度外視されているだろうし、車にはプロのメカニック担当がついていて常に整備を怠らないようにしている。
 一方、普通に市場で入手可能な車を考えると、居住性、燃費、価格についてなどは重要な要素になるし、日常のメンテナンスに至っては私たちのような素人でも扱うことができるなど全く性質の異なるものである。
 前者のような車づくりが「コンピュータサイエンス(科学)」の範疇であるのにたいして、後者は「ソフトウェアエンジニアリング(工学)」の範疇であるということになる。
 次回以降、機会があればさらに考えていきたいと思う。
Code Complete第2版〈上〉―完全なプログラミングを目指して

Code Complete第2版〈上〉―完全なプログラミングを目指して

  • 作者: スティーブ マコネル
  • 出版社/メーカー: 日経BPソフトプレス
  • 発売日: 2005/03
  • メディア: 単行本
Code Complete第2版〈下〉―完全なプログラミングを目指して

Code Complete第2版〈下〉―完全なプログラミングを目指して

  • 作者: スティーブ マコネル
  • 出版社/メーカー: 日経BPソフトプレス
  • 発売日: 2005/03
  • メディア: 単行本
ソフトウエア開発プロフェッショナル

ソフトウエア開発プロフェッショナル

  • 作者: スティーブ・マコネル
  • 出版社/メーカー: 日経BP社
  • 発売日: 2005/01/20
  • メディア: 単行本

nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:[必須]
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。