月刊ビジネスコミュニケーションによるエキスパートブログ
HOME | ABOUT |
atom rss2.0

« previous next »

猿でもわかるソフトウェア工学

2009.12.25|猿でもわかるICT このエントリーをはてなブックマークに追加Yahoo!ブックマークに登録この記事をクリップ!BuzzurlにブックマークBuzzurlにブックマーク

工学にはいろんな分野がある。大学の工学部の学科名で考えると手っ取り早い。古くからは機械・化学・建築あるいは電気・電子工学がある。コンピュータが出てきて情報工学ができ、今ではマネーブームに乗って金融工学なんていうのも現れてきている。今回取り上げる「ソフトウェア工学」は、コンピュータのソフトウェア開発手法を研究対象とする情報工学の一つで、ソフトウェアの開発から保守・運用に至るまでのプロセスを体系的・学問的・定量的に扱う。

言うまでもなく我々の生活の陰で大小様々なソフトウェアが動いている。そのソフトの大敵が“バグ”と呼ばれる開発誤りである。ほんの僅かなバグによって銀行ATMが止まり、飛行機が飛べなくなり、通信が途絶えたりする。また、いろいろなサービスや製品を開発する際にソフトウェアの占める割合は増々大きくなっており、ソフトウェア開発コスト負担増も頭の痛いところである。ソフトウェア工学は一言でいえば、「どれだけバグの少ない(無い)確実なソフトを、如何に安く速く開発するか」の実現を目指す技術なのである。

種類にもよるが、一月に一人で開発できるソフトウェアの規模(プログラムの行数)は2000行程度と言われている。これに対し、世の中には大規模ソフトウェアと呼ばれる数十万から数百万行にも及ぶプログラムがザラにある。そこで何十何百人というエンジニア・プログラマが一体となって開発しなくてはならない。そのため、ソフトウェア開発工程と呼ばれる手順に則ってしっかり管理する。ソフトウェアライフサイクルと呼ばれている流れである。まず、目的をどうやって実現するか文書化する(要求分析)。次にどういう部品を作りどう組み合わせるか仕様書を作る(設計)。そして、仕様に基づきプログラムを作成(コーディング )。出来たプログラムが仕様通りに動くか検査(テスト)。そして、実際にソフトウェアを使用し、必要に応じ機能を追加・変更する(運用・保守)。

ソフトウェア工学では、このライフサイクルの確実・簡易な管理手法や支援ツールを研究しバグの消滅と開発コスト低減・迅速化を目指している。玩具や家電品の組込ソフトから大規模オンラインソフトまで様々なソフトがあり、目的や用途に応じた種々管理手法が検討されている。究極はソフトウェア開発の完全自動化である。ロボットがロボットを作るのと同様、ソフトがソフトを作るのである。既に設計やテストの一部が自動化されつつあるという。

と、ここまで書いているとパソコン画面の隅っこに「ソフトウェア更新の準備ができました」とのマイクロソフトからのお馴染みのメッセージが出てきた。これは“バグ”とは言わないのだろうが、毎週毎週よくもまあ直す箇所があるものだ。ソフトウェア工学の立場からこれはどう解釈すればよいのだろうか!?

トラックバック

このエントリーのトラックバックURL:
http://www.bcm.co.jp/mt/mt-tb.cgi/961

コメントを投稿

(投稿頂いたコメントは内容を確認させて頂くので、公開まで時間がかかります。また、適切でないと思われるコメントは公開されない場合があるので、予めご了承下さい。)

Latest