• 検索結果がありません。

はじめに(pdf)

N/A
N/A
Protected

Academic year: 2021

シェア "はじめに(pdf)"

Copied!
7
0
0

読み込み中.... (全文を見る)

全文

(1)

本書はソフトウェア工学の人間的側面に焦点をあてる.本書を著したゆえんは ソフトウェアの世界が発展するにつれ,ソフトウェア工学はプロセスや技術自体 だけではなく,ソフトウェア開発プロセスにかかわる人々に,より深い配慮をは らう必要が生じてきている事実による. その認識の下で本書は,ソフトウェア開発プロセスの主役,すなわち個人,チ ーム,顧客および組織の視点から,ソフトウェア工学の世界に光をあてようと試 みた. 事実,コードや技術も同じく開発プロセスの主役の立場にあり,本書にも登場 するが,それらに目を向けるときも議論は基本的に人間的側面にたっている.

本書の目的

本書は,ソフトウェア開発者のための書であり,読者がソフトウェア産業の実 務家であるか否かを問うてはいないが,ソフトウェアチームのメンバがソフトウ ェア工学の人間的な多様な側面についての認識を高めることを目的とするもので ある.しかし,ソフトウェア工学のあらゆる面をカバーするものでもなければ, 余すところなく包括的な参考情報を提供しようとするものでもない. 本書を著した目的はむしろ以下にある.すなわち, ◆ソフトウェア工学の豊かでかつ複雑な人間的側面を明らかにする ◆ソフトウェア開発の途上,ソフトウェア工学の人間的側面に関して生ずる問 題,ジレンマ,疑問および矛盾に対する読者の認識を高める これらの目的の達成のために,本書では3つの混合概念―意識,内省,抽象化 ―を示唆しようと試みた. 着想としては,非常に複雑である主題に対して,多様なレベルの抽象化により, 必要な話題に関して継続的な内省(深く,冷静にかえりみる)を繰り返すことに よってソフトウェア開発者の開発環境への意識を高めることにある. これらの3つの概念の重要性は,ソフトウェア開発環境およびプロセスの独自 性とそれらの特徴である認知的複雑性および社会的複雑性に起因している.

(2)

本書を著したゆえん

ソフトウェア工学は多面的である.しかし,ソフトウェア工学の人間的側面は その重要性に値する注目をまだ十分には得ていないと思われる.ソフトウェア工 学は 1968 年 NATO の Garmisch(ドイツ)における会議でようやくその呼称が 市民権を得た,まだ若い発展途上分野である. この会議はコンピュータシステムの増大する複雑性にかかわる問題と,そのよ うな状況に対応する人間の限界について討議するもので,ソフトウェア開発の複 雑性への認識が深まった.たとえば,[Zelkowitz,Shaw および Gannon79]は, その序文で,ソフトウェア開発のあらゆる面についてその複雑性を十分理解・認 識できるよう一冊の本に書き著すことは不可能であることを指摘している. 興味深いことに,この分野の本質はいまだに問われ続けている.この分野は芸 術の領域とみなされることもある.たとえば,Knuth はその著書「The Art of Computer Programming」[Knuth 97]の中で,プログラムを作るプロセスの魅力 的な特質を詩や音楽を書くことになぞらえて説明している.

一方,ソフトウェア開発プロセスに焦点をあて,工学的視点を強調する人たち もいる.ソフトウェア工学の多面性はまた,学問の体系を表現するさまざまなア プローチがあることによっても明らかである.たとえば,この分野の知識体系と 位置付けは以下の3つの専門組織が提唱している.

● Carnegie Mellon 大学のソフトウェア工学研究所(Software Engineering Institute: SEI)(http://www.sei.cmu.edm/)

● SWEBOK(Software Engineering Body of Knowledge :ソフトウェア工学の 知識体系)(http://www.swebok.org/)

● CCSE(Computing Curricula Software Engineering)/IEEE ― CS & ACM (http://sites computer. org./ccse/)

最近になって,ソフトウェア工学の人間的側面が注目を浴びてきている.ソフ トウェア工学のこの側面は,Brooks の「The Mythical Man ― Month」(邦訳:人 月の神話,1975 年発刊 1995 年改訂)に登場しているが,同書の 20 周年版の序 文で Brooks は 20 年後に至ってもまだ同書が人気があることに驚きを著してい る.彼の言は,ソフトウェア開発の教訓を将来のソフトウェア開発プロジェクト に適用することがいかに難しいかを示唆するものである.この難しさは,この学 術分野の多面性とソフトウェア開発プロセスが特有であることによるのであろ う.本書はそこに目を向ける. 実は我々は,現在がソフトウェア工学の人間的側面を議論する絶好の時である と信じている.先進技術のバブルがはじけ,ソフトウェアコミュニティはようや く時代の教訓を学ぶ準備が整った.また,ソフトウェア工学の革新の段階として

(3)

も,プロセスにかかわる人々についてもっと綿密に考えるべき時期に至ったよう である.

本書のカバーする範囲

すでに述べたように,ソフトウェア工学の人間的側面の重要性は今日広く認識 され始めている.たとえば,多くのソフトウェアシステムの失敗の裏には,人間 的要因がある.この話題の複雑性を考えて,本書はソフトウェア工学の認知的・ 社会的視点に焦点をあて,チームワーク,顧客/ソフトウェア技術者の関係,お よびソフトウェア開発の学習プロセスなどの話題に取り組む.

本書は人間とコンピュータの相互作用(Human Computer Interface : HCI) についての書ではない.HCI は人とソフトウェアの相互作用について焦点をあて るが,本書はソフトウェア開発の途上における人と人との相互作用に焦点をあて ている.

本書の対象読者

本書はソフトウェア開発に何らかの経験を有する人々を対象としている.経験 を定量化することはできないが,ある規模以上のプログラムの開発経験をもち, ソフトウェア工学の手法を知っていることが望ましい.本書の議論の基本的なと ころを理解するためには,前提として,ソフトウェア開発の経験が必要であり, 各章で示した多くの課題は個人の経験に対する内省的思考をベースにしている.

本書の構成

本書は目次に示すように開発環境,ソフトウェア工学の世界,ソフトウェアと 人間の相互作用,ソフトウェア工学のビジネス分析,および工学教育の5部構成 とした. 以下に各部の概要を示す. 第Ⅰ部 ソフトウェア開発環境 第1章「ソフトウェア工学の特性」では,人間的側面を強調しつつソフトウェ ア工学の特性について述べる.ソフトウェア開発の認知的視点および社会的視点 を明らかにするために,ソフトウェア開発者の典型的な2日間をとりあげ,彼ら がいかに,技術的ではなく,人間的側面に多くの時間を費やしているかを浮き彫 りにする.そのような状況こそが本書を書くに至った誘因である. 第2章「ソフトウェア工学の手法」は,ソフトウェア開発の手法についてであ る.従来的な手法と併せてアジャイルな手法も参照して,人間的側面から分析す

(4)

る.本章の目的は,特定のソフトウェアプロジェクトで適用するソフトウェア開 発手法を評価するには技術的要因と人間的要因の両者を考慮しなければならない ことを明らかにすることにある. 第3章「チームワーク」は,ソフトウェア開発の重要課題であるチームワーク に焦点をあてる.ソフトウェア開発チームの形態と構成を示し,ソフトウェア開 発チーム間のコミュニケーションに関連する課題について検討する. 第4章「製品としてのソフトウェア」の主役は顧客である.対価を支払う商品 としてのソフトウェア製品を分析する.そもそも本書を書いた動機の1つは,顧 客が,多くの場合,必要とするソフトウェアを手中にしえていない周知の事実か らきている.現実は,部分的には,顧客ニーズに対するソフトウェア開発者側の 誤解として説明できる.本章はそのような問題を克服するツールを提案する.た とえば,さまざまなデータ収集ツールを用いて情報を収集,分析することにより 開発者がソフトウェア要求についての理解をいかに向上できるかを明らかにす る. 第Ⅱ部 ソフトウェア工学の世界 第5章「ソフトウェア工学の倫理規定」は,文字通り倫理規定に注目し,ソフ ト開発の世界からみたさまざまなシナリオを分析する.人間の挙動に倫理の問題 をあてはめて考える場合には,必ずしも正しい答えがいつも簡単には得られると は限らない. 第6章「ソフトウェア工学の国際的視点」は,国際的視点に立ち,世界の情報 技術市場に影響を与えたいくつかの事象および2つの国,すなわちある意味でソ フトウェア開発に関してユニークな,インドとイスラエルについて述べる.多く のソフトウェア企業は国際的市場を有している.さまざまなソフトウェア技術者 が異なる文化一般について,特に異なるソフトウェア開発の文化についての認識 をもつことにより,ソフトウェア開発のプロセスは向上すると我々は信じてい る. ここでは,ソフトウェア技術者が他の国や他の文化の人々と協力する際に当然 配慮しなければならない地域的および文化的特性があって,それによってソフト ウェア開発は影響を受けている事実を明らかにする.この章ではまた,情報技術 における「性差の問題」を議論する. 第7章「ソフトウェア工学についてのさまざまな視点」は,ソフトウェア工学 一般およびソフトウェア開発プロセス固有の視点に目を向ける.この章の目的は ソフトウェア開発についてのさまざまな中心的課題の存在を示し,ソフトウェア

(5)

開発のプロセスに対するアプローチを分析するツールを示す. 第8章「ソフトウェア工学の歴史」は,ソフトウェア工学を歴史的角度から要 約し,初期の時点(1968 年のドイツにおける NATO 会議)から今日までのこの 分野の軌跡を要約する.この章はこの分野のダイナミックな特性を明らかにし, 当然少なからざる影響を及ぼしたであろう人間的側面を強調する. 第Ⅲ部 ソフトウェアと人間の相互作用 第9章「プログラム理解,コードインスペクションリファクタリング」と第 10 章「ソフトウェア工学の学習プロセス」では,再びソフトウェア開発チーム メンバと彼らの活動に目を向ける.第9章ではプログラム理解の問題をレビュー し,さまざまなプログラム理解の理論を示しコードインスペクションプロセスを 検討する.これら2つの活動に対する認識が高まるにつれ,コードの読解性およ びソフトウェア工学全般についての人間的側面により注目が集まる. 第 10 章では,ソフトウェア開発にかかわる特別の学習プロセスについて検討 する.それはソフトウェア工学の継続的な発展からきているもので,ソフトウェ ア技術者は新しい事柄について継続的に学び続けなければならない.具体的には 2つの問題を扱う.第1は内省的プラクティスとしてのソフトウェア工学である. ソフトウェア工学プロセスに内省的視点をもち込むことは,ソフトウェア工学の 分野と通常ソフトウェア技術者が成すべき仕事の分析に役立つ.この章では,内 省的思考形態がいかにソフトウェア技術者の基本的活動のある部分を改善するか について検討する.本章の第2の部分は学習組織一般とそれらのソフトウェア組 織にとっての意味についてふれる.知識と情報はソフトウェア組織にとって重要 な資産である.したがって,他の多くのより有形的な資産と同じように管理し, 配慮しなければならない. 第 11 章はソフトウェア開発原理に焦点をあてる.抽象化の概念に議論を絞り, 具体的には抽象化とソフトウェア工学の人間的側面一般,および特にソフトウェ ア開発の認知的視点,について議論する. 第 12 章では再びコードについて検討する.具体的には,高品質ソフトウェア の特性とソフトウェア工学の人間的側面について分析する.加えてこの章では, デバッグに注目して,ソフトウェア開発の効果的な視点について検討する. 第Ⅳ部 ソフトウェア工学のビジネス分析 ここではソフトウェアのビジネス面,すなわち,ソフトウェアプロジェクト管 理,ビジネスとしてのソフトウェアおよびインターネットとソフトウェア工学の

(6)

人間的側面について扱う.ソフトウェア産業のビジネス的視点によってソフトウ ェア工学の人間的側面が受けるであろう影響について浮き彫りにする. すなわち,第 13 章ではソフトウェアプロジェクト管理の中でも特に時間管理, 第 14 章ではソフトウェアの利益性,第 15 章では電子商取引について検討する. この章での焦点はエンドユーザに向けられている.したがって,前の章では開発 者―顧客の相互作用を議論したが,ここでは電子商取引の認知的また社会的視点 に目を向けて開発者とエンドユーザとの結びつきを追求する.この章の第2の部 分では,インターネットの超時間的特性とそのことのソフトウェア開発の人間的 側面への適用に焦点をあてる. 第Ⅴ部 ソフトウェア工学の教育 第 16,17,18 章はソフトウェア工学教育について扱うもので,ケーススタデ ィと学生のための概要プロジェクトおよびソフトウェア工学教育についての議論 である.第 16,17 章の分析は,学生や実務家がソフトウェア開発プロジェクト に参加する際の意識,感受性および分析スキルに益するはずである.なお,分析 は前の章で学んだ理論に基づいている. 第 18 章「ソフトウェア工学教育についての所感」では,ソフトウェア工学教 育一般およびソフトウェア工学の人間的側面についてのコースの構成について特 に思うところを示した.なお,第 19 章は文字通り本書にかかわる文献と参照資 料である.

各章の構成

本書の各章は,教育用での利用を念頭においているが,同時に実務家にとって 洞察を得やすい構成としたつもりである.各章とも類似の構成で,目的を概説し た後に本文を示し要約でしめくくっている.各章の冒頭で議題を明らかにしてい るが,そのことには2つの面がある.すなわち,第一は読者の当該話題に対する 関心を高めることであり,第二にはそれらの話題について事前に考え始めるよう にし向けることである.

本書の用い方

本書は学生に対する教科書としても,また実務家用にも用いることができる. 本書の読者にとっての特定の前提はおいていないが,前述のように,ある程度の ソフトウェア開発経験があることが望ましい. 本書の各章は,ソフトウェア工学の人間的側面に目を向けようと考えるならば, 他のコースと組み合わせて個別に利用することもできる.たとえば,第8章はご

(7)

く自然にソフトウェア工学手法のコースに統合できるであろう. 実務家にとっては,当然ながら,特別な話題について学習したり,あるいはチ ームがソフトウェア工学の人間的側面についての認識を深めるために用いること ができる. 本書が教育界で用いられようと産業界で用いられようと,各章の順序にあまり こだわる必要はない.それぞれの章は,他の章に依存している部分があるとして も,一応自己完結的にまとめてあり,必要に応じて関連する章との関係も示して ある.

参照

関連したドキュメント

・中央図書館と本格的な 自習室を新庁舎内に 設置 その横にインターネ ットを見られるパソ コン10 台程設置の 部屋 ・IT 設備

本表に例示のない適用用途に建設汚泥処理土を使用する場合は、本表に例示された適用用途の中で類似するものを準用する。

基本計画は、基本構想で定めるめざすまちの姿と 5 つの基本目標を実現するため、12 年間(平 成 28 年度~平成

ところで、ドイツでは、目的が明確に定められている制度的場面において、接触の開始

主として、自己の居住の用に供する住宅の建築の用に供する目的で行う開発行為以外の開

(a) ケースは、特定の物品を収納するために特に製作しも

調査対象について図−5に示す考え方に基づき選定した結果、 実用炉則に定める記 録 に係る記録項目の数は延べ約 620 項目、 実用炉則に定める定期報告書

バーチャルパワープラント構築実証事業のうち、「B.高度制御型ディマンドリスポンス実