ソフトウェア工学概論/ソフトウェアエンジニア
ソフトウェア エンジニア -- Software Engineer
[編集]ソフトウェア工学は、ソフトウェア工学の原理を応用して、コンピュータやソフトウェアを含むものを動作させるソフトウェアやシステムの設計・開発・テスト・評価を行う技術者であるソフトウェア エンジニアによって行われる。 エンジニアという言葉をめぐっては、いくつかの論争がある[1]なぜなら、それはあるレベルの学術トレーニング、専門的規律、公式プロセスの遵守、特に法的責任を意味し、しばしばソフトウェア開発のケースには適用されないからである。2004年、米国労働統計局は、米国で職に就いているソフトウェア エンジニアを 760,840 人と数えた。同時期に米国では、他のすべての工学分野を合わせて約 140 万人のエンジニアが働いていた[2]。
概要 -- Overview
[編集]1990年代半ば以前は、ソフトウェア実務者は実際の仕事とは関係なく、自分たちをプログラマーあるいは開発者と呼んでいた。多くの人が自分たちをソフトウェア開発者やプログラマーと呼ぶことを好むが、それはこれらの用語の意味するところが広く認められているからであり、一方でソフトウェアエンジニアはまだ議論されている。著名な計算科学者であるE. W. Dijkstraは論文の中で、「ソフトウェアエンジニア」という用語の造語は不適切な類推であり、有用な用語ではないと書いている、"The existence of the mere term has been the base of a number of extremely shallow --and false-- analogies, which just confuse the issue...Computers are such exceptional gadgets that there is good reason to assume that most analogies with other disciplines are too shallow to be of any positive value, are even so shallow that they are only confusing."(「単なる用語の存在が、問題を混乱させるだけの極めて浅薄で誤った多くの類推の基になってきた。 ...コンピュータは例外的な道具であり、他の学問分野との類似のほとんどは、有益な価値を持つにはあまりにも浅く、混乱を招くだけであるとさえ考えられる。」)[3]。
プログラマーという用語は、良質のソフトウェアを書くためのツールやスキル、教育、倫理観を持たない人を指す言葉としてしばしば使われてきた。これに対し、多くの実務家はプログラマーという言葉に付随する汚名から逃れるために、自らをソフトウェアエンジニアと呼んだ。
ソフトウェアエンジニアというラベルは、企業の世界では非常に自由に使われています。しかし、実際にソフトウェアエンジニアとして活躍している人の中で、認定された大学の工学部の学位を持っている人はごくわずかである。実際、Association for Computing Machineryによれば、「現在、米国で本格的なソフトウェアエンジニアとして活躍している人のほとんどは、ソフトウェア工学ではなくコンピュータ・サイエンスの学位を持っている」とされる[4]。
教育 -- Education
[編集]現在、実務者の約半数はコンピュータサイエンスの学位を持っている。少数ではあるが、ソフトウェア工学の学位を持つ実務家も増えつつある。1987年、ロンドン大学インペリアルカレッジは、英国および世界で初めて3年間のソフトウェア工学の学士号を導入した。それ以来、ソフトウェア工学の学士号は多くの大学で確立されている。ソフトウェア工学の学士号のための標準的な国際カリキュラムは、最近ACM[5]によって定義されました。2004年現在、米国では約50の大学がソフトウェア工学の学位を提供しており、コンピュータサイエンスと工学の原理と実践の両方を学ぶことができる。ETS大学とUQAMはIEEEによってSoftWare Engineering Body of Knowledge (SWEBOK) [6] の開発を命じられ、これはソフトウェアエンジニアがカバーする知識体系を記述したISO標準となった。
ビジネスでは、ソフトウェア工学の実践者の中には経営情報システム(Management Information Systems ; MIS)の学位を持っている人もいる。組込みシステムでは、電気工学やコンピューター工学の学位を持っている人もいる。組込みソフトウェアはハードウェアの詳細な理解を必要とすることが多いからである。医療用ソフトウェアでは、医療情報学、一般医学、または生物学の学位を持っている人がいる。数学、理学、工学、技術系の学位を持っている人もいる。哲学(特に論理学)や他の非技術的な学位を持っている人もいるし、学位を持っていない人もいる。
職業 -- Profession
[編集]ソフトウェアエンジニアの多くは、社員または請負業者として働いている。企業、政府機関(文民または軍)、および非営利団体で働く。フリーランスとして個人で仕事をするソフトウェアエンジニアもいる。組織によっては、ソフトウェア開発プロセスの各タスクを実行する専門家を抱えているところもある。それ以外の組織では、ソフトウェアエンジニアがそれらの多くまたはすべてを行うことを要求している。大規模なプロジェクトでは、人々は一つの役割だけに特化することもある。小規模なプロジェクトでは、複数の、あるいはすべての役割を同時にこなす人もいる。
ソフトウェアエンジニアやその他の情報技術(IT)専門家の将来の雇用見通しについては、かなりの議論がある。たとえば、Future of IT Jobs in America[7] と呼ばれるオンライン先物市場では、ソフトウェアエンジニアを含むIT関連の仕事が2002年より2012年のほうが多いかどうかを答えようと試みている。
政府の統計は現在ソフトウェア工学そのものへの脅威を示していませんが、関連するキャリアであるコンピュータプログラミングは影響を受けているようである[8]。 キャリアカウンセラーによっては、純粋な技術スキルよりも「人間力」やビジネススキルに焦点を当てるよう学生に勧める人もいる。 [9] ソフトウェア工学がグローバル化の影響を受けないのは、準管理職的な側面があるかららしい[10]。
脚註
[編集]- ^ Sayo, Mylene. “[http://www.peo.on.ca/enforcement/June112002newsrelease.html What's in a Name? Tech Sector battles Engineers on "software engineering"]”. 2008年7月24日閲覧。
- ^ Bureau of Labor Statistics, U.S. Department of Labor, USDL 05-2145: Occupational Employment and Wages, November 2004
- ^ http://www.cs.utexas.edu/users/EWD/transcriptions/EWD06xx/EWD690.html E.W.Dijkstra Archive: The pragmatic engineer versus the scientific designer
- ^ http://computingcareers.acm.org/?page_id=12 ACM, Computing - Degrees & Careers, Software Engineering
- ^ http://sites.computer.org/ccse/ Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering
- ^ http://www.computer.org/portal/web/swebok Guide to the Software Engineering Body of Knowledge
- ^ Future of IT Jobs in America
- ^ As outsourcing gathers steam, computer science interest wanes
- ^ Software developer growth slows in North America | InfoWorld | News | 2007-03-13 | By Robert Mullins, IDG News Service
- ^ Dual Roles: The Changing Face of IT