| シリーズの一部 |
| ソフトウェア開発 |
|---|
| この記事はシリーズの一部です |
| エンジニアリング |
|---|
ソフトウェア工学は、コンピュータサイエンスとエンジニアリングの両方の分野であり、ソフトウェアアプリケーションの設計、開発、テスト、保守に重点を置いています。[ 1 ]ソフトウェア工学では、工学の原理とコンピュータプログラミングの専門知識を適用して、ユーザーのニーズを満たすソフトウェアシステムを開発します。[ 2 ] [ 3 ] [ 4 ] [ 5 ]
テクノロジー業界では、ソフトウェアエンジニアという肩書きは、多くの場合、野心的な意味合いで使われますが、そのような役割の多くは基本的にプログラミングのポジションであり、従来のエンジニアリングに関連する正式な規制がありません。[ 6 ]
ソフトウェアエンジニアは、ソフトウェア開発プロセス[ 2 ] [ 7 ]を適用します。このプロセスには、ソフトウェアシステムの定義、実装、テスト、管理、保守、およびソフトウェア開発プロセス自体の開発が含まれます。
歴史
1960年代初頭、ソフトウェア工学は独立した工学分野として認識されるようになりました。[ 8 ]
ソフトウェアエンジニアリングの発展は、困難な課題と見なされていました。予算超過、納期超過、大規模なデバッグとメンテナンスの必要性、消費者のニーズを満たせない、あるいは完成すらしないソフトウェアなど、様々な問題が山積していました。
1968年、NATOはソフトウェア開発における新たな課題を議論する最初のソフトウェア工学会議を開催しました。この会議は、信頼性と保守性に優れたソフトウェアを開発するためのガイドラインとベストプラクティスを策定する上で重要な役割を果たしました。[ 9 ]
ソフトウェアエンジニアリングという用語の起源は様々である。この用語は、1965年6月号の「Computers and Automation」誌に掲載された企業提供サービス一覧に掲載された[ 10 ]。その後、1966年8月号のCommunications of the ACM(第9巻第8号)に掲載されたAnthony A. Oettingerによる「President's Letter to the ACM Membership」の中で、より正式に使用された。[ 11 ] [ 12 ] [ 13 ]また、1968年にフリードリヒ・L・バウアー教授がNATO会議のタイトルに使用した用語でもある。[ 14 ]マーガレット・ハミルトンは、アポロ計画の過程で、彼らの活動に正当性を与えるために「ソフトウェアエンジニアリング」という分野について説明した。[ 15 ]当時、「ソフトウェア危機」が起こっていたと考えられていた。[ 16 ] [ 17 ] [ 18 ]第40回国際ソフトウェア工学会議(ICSE 2018)では、フレデリック・ブルックス[ 19 ]とマーガレット・ハミルトン[ 20 ]による基調講演で「ソフトウェア工学」の50周年を祝いました。
1984年、ソフトウェア工学研究所(SEI)は、米国ペンシルベニア州ピッツバーグのカーネギーメロン大学キャンパスに本部を置く連邦政府資金による研究開発センターとして設立されました。 [ 21 ]ワッツ・ハンフリーは、ソフトウェア工学プロセスの理解と管理を目的としたSEIソフトウェアプロセスプログラムを設立しました。[ 21 ]導入されたプロセス成熟度レベルは、開発のための能力成熟度モデル統合(CMMI-DEV)となり、米国政府がソフトウェア開発チームの能力を評価する方法を定義しました。
ソフトウェアエンジニアリングに関する現代の一般的に受け入れられているベストプラクティスは、ISO/IEC JTC 1/SC 7小委員会によって収集され、ソフトウェアエンジニアリング知識体系(SWEBOK)として公開されています。 [ 7 ]ソフトウェアエンジニアリングは、主要なコンピューティング分野の1つと考えられています。[ 22 ]
エッジコンピューティング、モノのインターネット(IoT)、サイバーフィジカルシステムといった概念が普及している現代のシステムでは、ソフトウェアが重要な要素となっています。そのため、ソフトウェアエンジニアリングはシステムエンジニアリングの分野と密接に関連しています。システムエンジニアリング知識体系(Systems Engineering Body of Knowledge)は、次のように主張しています。
ソフトウェアは現代のシステムアーキテクチャの多くにおいて重要な役割を果たしており、複雑なシステムコンポーネントを統合するための主要な手段となることがよくあります。ソフトウェアエンジニアリングとシステムエンジニアリングは、単に関連のある分野というだけでなく、密接に絡み合っています。…優れたシステムエンジニアリングは、優れたソフトウェアエンジニアリングを実現するための重要な要素です。
用語
意味
ソフトウェア エンジニアリングの注目すべき定義は次のとおりです。
- 「科学的および技術的な知識、方法、経験をソフトウェアの設計、実装、テスト、および文書化に体系的に適用すること。」—労働統計局—IEEEシステムおよびソフトウェア工学–語彙[ 23 ]
- 「ソフトウェアの開発、運用、保守に体系的かつ規律があり、定量化可能なアプローチを適用すること。」— IEEE標準ソフトウェア工学用語集[ 24 ]
- 「ソフトウェア制作のあらゆる側面に関わる工学分野」—イアン・サマービル[ 25 ]
- 「信頼性が高く、実際のマシン上で効率的に動作するソフトウェアを経済的に入手するための健全なエンジニアリング原則の確立と使用。」—フリッツ・バウアー[ 26 ]
- 「複雑なコンピュータプログラムの設計、実装、保守を扱うコンピュータサイエンスの一分野。」—メリアム・ウェブスター[ 27 ]
- 「『ソフトウェアエンジニアリング』とは、コードを書く行為だけでなく、組織が長期にわたってそのコードを構築し維持するために使用するすべてのツールとプロセスを網羅しています。[...] ソフトウェアエンジニアリングは、『時間をかけて統合されたプログラミング』と考えることができます。」 — Googleのソフトウェアエンジニアリング[ 28 ]
この用語は、あまり公式でない意味でも使用されています。
- かつてはコンピュータプログラミングやシステム分析と呼ばれていた幅広い活動を指す非公式な現代用語として[ 29 ]
- コンピュータプログラミングの実践のあらゆる側面を表す広義の用語であり、コンピュータサイエンスのサブ分野として正式に研究されているコンピュータプログラミングの理論とは対照的である[ 30 ]
- コンピュータプログラミングに対する特定のアプローチの提唱を体現する用語として、コンピュータプログラミングを芸術や工芸ではなく工学分野として扱うことを推奨し、推奨されるプラクティスの体系化を提唱する用語として[ 31 ]
適合性
ソフトウェア工学をどのように定義するか、あるいは工学分野としての正当性について、個々の論評家の間では激しい意見の相違が見られます。デビッド・パルナスは、ソフトウェア工学は実際には工学の一形態であると述べています。[ 32 ] [ 33 ]スティーブ・マッコーネルは、そうではないが、そうあるべきだと述べています。[ 34 ]ドナルド・クヌースは、プログラミングは芸術であり科学でもあると述べています。[ 35 ]エドガー・W・ダイクストラは、米国ではソフトウェア工学とソフトウェアエンジニアという用語が誤用されていると主張しました。 [ 36 ]
作業負荷
要件分析
要件エンジニアリングとは、ソフトウェアの要件の抽出、分析、仕様策定、検証を指します。ソフトウェア要件は、機能要件、非機能要件、ドメイン要件のいずれかになります。
機能要件は期待される動作(すなわち出力)を記述する。非機能要件は、移植性、セキュリティ、保守性、信頼性、拡張性、性能、再利用性、柔軟性といった事項を規定する。これらは、インターフェース制約、性能制約(応答時間、セキュリティ、ストレージ容量など)、運用制約、ライフサイクル制約(保守性、移植性など)、経済制約といった種類に分類される。非機能要件を規定する際には、システムまたはソフトウェアの動作原理に関する知識が必要となる。ドメイン要件は、特定のカテゴリまたはプロジェクトのドメインの特性と関係する。[ 37 ]
デザイン
ソフトウェア設計とは、ソフトウェアの高レベルの計画を立てるプロセスです。設計はいくつかのレベルに分けられることがあります。
- インターフェース設計では、システムとその環境間の相互作用と、システムの内部動作を計画します。
- アーキテクチャ設計では、システムの主要コンポーネントの役割、特性、コンポーネント間のインターフェースなどを計画します。
- 詳細設計では、プロパティ、関係、アルゴリズム、データ構造などの内部要素を計画します。[ 38 ]
工事
ソフトウェア構築には通常、プログラミング(コーディング)、単体テスト、統合テスト、デバッグなど、設計を実装するためのプロセスが含まれます。[ 2 ] [ 7 ]「ソフトウェアテストはデバッグと関連していますが、異なります。」[ 7 ]
テスト
ソフトウェアテストは、テスト対象のソフトウェアの品質に関する情報を関係者に提供するために実施される実証的かつ技術的な調査です。[ 2 ] [ 7 ]ソフトウェアテストはリスクベースの活動と見なすことができます。
構築とは別に説明される場合、テストは通常、それを書いたプログラマではなく、テストエンジニアまたは品質保証担当者によって行われます。テストはシステムレベルで行われ、ソフトウェア品質の一側面とみなされます。テストプロセスにおけるテスターの目標は、テストの総数を管理可能な範囲に最小限に抑え、どのリスクを優先してテストすべきか、どのリスクを待つべきかについて、十分な情報に基づいた判断を下すことです。[ 39 ]
プログラム分析
プログラム分析とは、パフォーマンス、堅牢性、セキュリティなどの側面に関してコンピュータ プログラムを分析するプロセスです。
メンテナンス
ソフトウェアメンテナンスとは、リリース後のソフトウェアのサポートを指します。これには、エラー修正、最適化、未使用機能や廃止機能の削除、既存機能の強化などが含まれますが、これらに限定されません。[ 2 ] [ 7 ]
通常、メンテナンスはプロジェクトコストの40%から80%を占めます。[ 40 ]
教育

コンピュータプログラミングの知識は、ソフトウェアエンジニアになるための前提条件です。 2004年にIEEEコンピュータ協会はSWEBOKを作成しました。これはISO/IEC技術レポート1979:2005として公開されており、4年間の経験を持つ大学院のソフトウェアエンジニアが習得することを推奨する知識体系を説明しています。[ 41 ] 多くのソフトウェアエンジニアは、大学の学位を取得するか、専門学校でトレーニングを受けてこの職業に就きます。 学部レベルのソフトウェアエンジニアリングの学位のための1つの標準的な国際カリキュラムは、IEEEコンピュータ協会と計算機協会のコンピューティングカリキュラムに関する共同タスクフォースによって定義され、2014年に更新されました。[ 22 ]多くの大学でソフトウェアエンジニアリングの学位プログラムがあり、2010年の時点で、米国には244のキャンパスソフトウェアエンジニアリング学士プログラム、70のオンラインプログラム、230の修士レベルのプログラム、41の博士レベルのプログラム、69の証明書レベルのプログラムがありました。
多くの企業は、大学教育に加えて、情報技術分野でのキャリアを目指す学生向けにインターンシップを提供しています。これらのインターンシップでは、典型的なソフトウェアエンジニアが日々直面する実際の業務を学生に体験させることができます。同様の経験は、ソフトウェアエンジニアリングにおける兵役を通じても得ることができます。
ソフトウェアエンジニアリングの学位プログラム
ソフトウェアエンジニアリングの学位を持つ実務家の数は少数ながら増加している。1987年、インペリアル・カレッジ・ロンドンのコンピューティング学部は、世界初の3年間のソフトウェアエンジニアリングの学士号プログラムを導入した。翌年、シェフィールド大学も同様のプログラムを設立した。[ 42 ] 1996年、ロチェスター工科大学は米国初のソフトウェアエンジニアリングの学士号プログラムを設立したが、ABETの認定を取得したのは2003年、ライス大学、クラークソン大学、ミルウォーキー工科大学、ミシシッピ州立大学と同じ年だった。[ 43 ]
それ以来、多くの大学でソフトウェア エンジニアリングの学部課程が設けられてきました。学部ソフトウェア エンジニアリングの学位のための標準的な国際カリキュラムであるSE2004 は、2001 年から 2004 年にかけて、Association for Computing MachineryおよびIEEE Computer Societyの資金提供を受けて運営委員会によって定義されました。2004 年の時点で、米国の約 50 の大学が、コンピュータ サイエンスとエンジニアリングの原理と実践の両方を教えるソフトウェア エンジニアリングの学位を提供しています。最初のソフトウェア エンジニアリングの修士号は、 1979 年にシアトル大学で設けられました。それ以来、大学院ソフトウェア エンジニアリングの学位は、さらに多くの大学で提供されるようになりました。同様にカナダでは、Canadian Council of Professional Engineersの Canadian Engineering Accreditation Board (CEAB) が、いくつかのソフトウェア エンジニアリング プログラムを承認しています。
さらに、カリフォルニア州立大学フラートン校のコンピュータサイエンスおよびエンジニアリング学部が提供するソフトウェアエンジニアリングの理学修士(MSE)など、ソフトウェアエンジニアリングの高度なオンライン学位が数多く登場しています。スティーブ・マッコーネルは、ほとんどの大学がソフトウェアエンジニアリングではなくコンピュータサイエンスを教えているため、真のソフトウェアエンジニアが不足していると述べています。[ 44 ] ETS(École de technologie supérieure)大学とUQAM(Université du Québec à Montréal)は、IEEEによってソフトウェアエンジニアリング知識体系(SWEBOK)の開発を委託され、これはソフトウェアエンジニアがカバーする知識体系を記述したISO標準となっています。[ 7 ]
職業
プロフェッショナル・ソフトウェア・エンジニアのライセンスや資格認定に関する法的要件は、世界各国で異なります。英国では、「ソフトウェア・エンジニア」という職名を取得または使用するためのライセンスや法的要件はありません。カナダのアルバータ州、ブリティッシュ・コロンビア州、オンタリオ州、[ 45 ] 、ケベック州など、一部の地域では、ソフトウェア・エンジニアはプロフェッショナル・エンジニア(P.Eng)資格や情報システム・プロフェッショナル(ISP)資格を取得できます。欧州では、ソフトウェア・エンジニアは欧州エンジニア(EUR ING)という専門資格を取得できます。また、ソフトウェア・エンジニアは、英国コンピュータ協会を通じて公認エンジニアの資格を取得することもできます。
米国では、NCEESが2013年にソフトウェアエンジニアリングのプロフェッショナルエンジニア試験を開始し、ソフトウェアエンジニアのライセンス取得と認定を可能にしました。[ 46 ] NCEESは、参加者の不足により、2019年4月以降試験を終了しました。[ 47 ]ライセンスの義務化は現在も大きく議論されており、物議を醸しています。[ 48 ] [ 49 ]
米国を拠点とするソフトウェアエンジニアリングの二大専門団体であるIEEEコンピュータソサエティとACMは、ソフトウェアエンジニアリングの専門職向けのガイドを発行しています。IEEEの「ソフトウェアエンジニアリング知識体系ガイド 2004年版」(SWEBOK)は、ソフトウェアエンジニアリングの分野を定義し、IEEEが実務に携わるソフトウェアエンジニアに期待する知識を説明しています。最新バージョンはSWEBOK v4です。[ 7 ] IEEEは「ソフトウェアエンジニアリング倫理規定」も公布しています。[ 50 ]
雇用
2022年現在、世界には2690万人のプロのソフトウェアエンジニアがいると推定されており、2016年の2100万人から増加しています。[ 51 ] [ 52 ]
多くのソフトウェア エンジニアは、従業員または契約社員として働いています。ソフトウェア エンジニアは、企業、政府機関 (民間または軍事)、非営利団体で働いています。ソフトウェア エンジニアの中には、フリーランスとして働く人もいます。組織によっては、ソフトウェア開発プロセスの各タスクを実行するスペシャリストを抱えているところもあります。また、ソフトウェア エンジニアにそれらの多くまたはすべてを行うことを求める組織もあります。大規模プロジェクトでは、人々は 1 つの役割のみに特化する場合があります。小規模プロジェクトでは、人々は同時に複数またはすべての役割を担う場合があります。多くの企業は、大学生や短期大学の学生を夏休み中にインターンとして雇ったり、外部研修として雇ったりします。専門分野には、アナリスト、アーキテクト、開発者、テスター、テクニカル サポート、ミドルウェア アナリスト、プロジェクト マネージャー、ソフトウェア プロダクト マネージャー、教育者、研究者などがあります。
ソフトウェアエンジニアやプログラマーのほとんどは週40時間働いていますが、2008年にはソフトウェアエンジニアの約15%とプログラマーの11%が週50時間以上働いていました。 [ 53 ]これらの職業で潜在的な傷害が発生する可能性があるのは、長時間コンピュータ端末の前に座ってキーボードを打つ他の労働者と同様に、エンジニアやプログラマーは眼精疲労、背中の痛み、血栓症、肥満、手根管症候群などの手と手首の問題にかかりやすいためです。[ 54 ]
アメリカ合衆国
米国労働統計局(BLS)によると、2018 年に米国では 1,365,500 人のソフトウェア開発者が雇用されている。[ 55 ]研究分野としては比較的新しいため、ソフトウェア工学の正式な教育はコンピュータサイエンスのカリキュラムの一部として教えられることが多く、多くのソフトウェアエンジニアがコンピュータサイエンスの学位を取得している。[ 56 ] BLS は、2024 年から 2034 年にかけてソフトウェアエンジニアが 15% 増加すると予測しているが、これは 2023 年から 2033 年にかけてコンピュータソフトウェアエンジニアリングが 17% 増加するという BLS の予測よりも低い。[ 57 ]これは、2022 年から 2032 年にかけてのソフトウェアエンジニアリングの 25% 増加という BLS の予測よりも低い。[ 57 ] [ 58 ] [ 59 ]この傾向により、米国のコンピュータソフトウェアエンジニアに割り当てられていた仕事が、インドなどの国やその他の外国のコンピュータソフトウェアエンジニアにアウトソーシングされるため、雇用の伸びは過去10年ほど速くない可能性があります。[ 60 ] [ 53 ]さらに、米国労働統計局(BLS)職業展望のコンピュータプログラマーのBLS雇用見通しでは、2016年から2026年にかけて-7%の減少、2019年から2029年にかけてさらに-9%の減少、2021年から2031年にかけて-10%の減少、[ 60 ]その後、2022年から2032年にかけて-11%の減少が予測されています。 [ 60 ]現在、2024年から2034年にかけての予測は-6%の減少です。コンピュータプログラミングは世界中のどこからでもできるため、企業は賃金の低い国でプログラマーを雇うことがあります。[ 60 ] [ 61 ] [ 62 ]さらに、多くのソフトウェア分野における女性の割合も、他のエンジニアリング分野と比較して長年にわたって減少しています。[ 63 ]さらに、近年の人工知能の進歩が将来のソフトウェアエンジニアの需要に影響を与える可能性があるという懸念もあります。 [ 64 ] [ 65 ] [ 66 ] [ 67 ] [ 68 ] [ 69 ] [ 70 ]しかし、今後数十年の間に、米国市場で現在活躍している多くのソフトウェアエンジニアが職業を辞めたり、年齢を重ねて市場から去っていくため、この傾向は将来的に変化したり、鈍化したりする可能性があります。[ 60 ] [ 71 ]
認証
ソフトウェア工学研究所は、セキュリティ、プロセス改善、ソフトウェアアーキテクチャといった特定のトピックに関する認定資格を提供しています。[ 72 ] IBM、Microsoftなどの企業も独自の認定試験を後援しています。多くのIT認定プログラムは特定の技術に焦点を当てており、それらの技術を提供するベンダーによって運営されています。[ 73 ]これらの認定プログラムは、これらの技術を使用する人材を雇用する機関向けにカスタマイズされています。
一般的なソフトウェアエンジニアリングスキルのより広範な認定は、様々な専門団体を通じて受けることができます。2006年現在、IEEEは575人以上のソフトウェア専門家を認定ソフトウェア開発専門家(CSDP)として認定しました。[ 74 ] 2008年には、認定ソフトウェア開発アソシエイト(CSDA)として知られるエントリーレベルの認定を追加しました。[ 75 ] ACMとIEEEコンピュータ協会は1990年代に共同でソフトウェアエンジニアをプロフェッショナルエンジニアとしてライセンスする可能性を検討しましたが、最終的にそのようなライセンスはソフトウェアエンジニアリングの専門的な産業実務には不適切であると判断しました。[ 48 ]ジョン・C・ナイトとナンシー・G・レベソンは2002年にライセンス問題についてよりバランスの取れた分析を発表しました。[ 49 ]
英国では、英国コンピュータ協会が、Chartered IT Professional (CITP)という法的に認められた専門資格を開発しており、完全な資格を持つ会員 ( MBCS ) が取得できる。ソフトウェアエンジニアは、英国コンピュータ協会または工学技術協会の会員になる資格がある場合があり、どちらかの機関を通じてChartered Engineer のステータスを検討される資格がある。カナダでは、カナダ情報処理協会が、Information Systems Professional (ISP)という法的に認められた専門資格を開発している。[ 76 ]カナダのオンタリオ州では、カナダ工学認定委員会 (CEAB)認定プログラムを卒業し、PEO ( Professional Engineers Ontario ) の Professional Practice Examination (PPE) に合格し、少なくとも 48 か月の許容されるエンジニアリング経験を持つソフトウェアエンジニアは、 Professional Engineers Ontarioからライセンスを受ける資格があり、Professional Engineers P.Eng. になることができる。[ 77 ]ただし、PEO はオンライン教育や遠隔教育を一切認めておらず、コンピュータサイエンスのプログラムとソフトウェアエンジニアリングのプログラムの間には大きな重複があるにもかかわらず、それらを同等とは見なしていない。また、この法律により、この分野のP.Eng取得者数は非常に低く抑えられています。この分野で働く専門家の大多数は、SEではなくCSの学位を取得しています。SE以外の学位取得者にとって、資格取得の道のりが厳しいことを考えると、ほとんどの人は資格取得を目指しません。
グローバリゼーションの影響
アウトソーシングの初期の影響と、発展途上国の第三世界における国際的な人的資源の比較的低いコストにより、ソフトウェア開発活動は北米とヨーロッパの企業からインドへ、そして後に中国、ロシアなどの発展途上国へと大規模に移行した。このアプローチにはいくつかの欠陥があり、主に距離とタイムゾーンの違いにより顧客と開発者の人間的なやり取りが妨げられ、大規模な転職が発生した。これは、ソフトウェアエンジニアリング専門職の多くの側面に悪影響を及ぼした。たとえば、先進国の学生の中には、オフショアアウトソーシング(他国からソフトウェア製品やサービスを輸入すること)や外国人ビザの労働者に職を奪われることを恐れて、ソフトウェアエンジニアリング関連の教育を避ける人もいる。[ 78 ]さらに、ハイテク労働者の過剰により、996労働時間システムと「007」スケジュールが予想される作業負荷として広く採用されるようになった。[ 79 ]統計的には現在、ソフトウェアエンジニアリング自体への脅威は示されていないが、関連キャリアであるコンピュータプログラミングは影響を受けているようだ。[ 80 ]それでも、フォロー・ザ・サン・ワークフローを通じてオフショアおよびニアショアのリソースをスマートに活用する能力は、多くの組織の全体的な運用能力を向上させました。 [ 81 ]北米人が退社する頃には、アジア人はちょうど出勤しています。アジア人が退社する頃には、ヨーロッパ人は出勤しています。これにより、残業代を支払うことなく、また重要な人的資源である睡眠パターンを乱すことなく、ビジネスクリティカルなプロセスを24時間体制で継続的に人間が監視できるようになります。
グローバルアウトソーシングには多くの利点があるものの、グローバル(かつ一般的に分散型)開発では、開発者間の距離に起因する深刻な問題に直面する可能性があります。これは、この種の距離の主要な要素として、地理的、時間的、文化的、そしてコミュニケーション(場所によって異なる言語や英語の方言が使用されることを含む)が挙げられます。[ 82 ]過去15年間、グローバルソフトウェア開発の分野で研究が行われており、この複雑な活動に伴う利点と問題点を強調した膨大な関連論文が発表されています。ソフトウェアエンジニアリングの他の側面と同様に、この分野および関連分野でも研究が進行中です。
賞品
ソフトウェア エンジニアリングの分野にはさまざまな賞があります。
- ACM-AAAI アレン・ニューウェル賞- 米国。コンピュータサイエンス分野における幅広い貢献、またはコンピュータサイエンスと他分野との橋渡しとなる貢献に対して授与されます。
- BCS ラブレス メダル。コンピューティングの理解と発展に多大な貢献をした個人に授与されます。
- ACM SIGSOFT優秀研究賞は、「ソフトウェア工学の理論や実践に重要かつ永続的な研究貢献」をした個人に贈られます。 [ 83 ]
- ACM SIGSOFT賞の受賞多数。[ 84 ]
- Codie賞は、ソフトウェア業界における優れたソフトウェア開発に対してソフトウェア情報産業協会が毎年授与する賞です。
- 「ソフトウェア エンジニアリングに重点を置いた情報科学の理論と実践への貢献」に対してHarlan Mills 賞が授与されました。
- ICSE最も影響力のある論文賞。[ 85 ]
- Jolt Awardもソフトウェア業界向けです。
- ウェイン・スティーブンスを記念して贈られるスティーブンス賞。
批判
工学知識を広め、分野を成熟させるためのメカニズムとして、ライセンスや認証、体系化された知識体系を求める声もある。[ 86 ]
ソフトウェア工学の概念は非常に新しいため、ほとんど理解されておらず、ソフトウェア工学の教科書、論文、プログラマーや職人のコミュニティなどでも広く誤解されていると主張する人もいます。[ 87 ]
ソフトウェアエンジニアリングの根本的な問題は、そのアプローチが十分に実証的ではないということであると主張する人もいます。なぜなら、アプローチの現実世界での検証が通常存在しないか、非常に限られているため、ソフトウェアエンジニアリングは「理論的な環境」でのみ実行可能であると誤解されることが多いからです。[ 87 ]
今日のソフトウェア開発における多くの概念の創始者であるエドガー・ダイクストラは、2002 年に亡くなるまで「ソフトウェア エンジニアリング」という概念を拒否し、それらの用語は彼が「コンピューター サイエンスの根本的な新しさ」と呼ぶものに対して適切なアナロジーではないと主張しました。
これらの現象の多くは「ソフトウェア工学」という名で一括りにされてきました。経済学が「悲惨な科学」として知られるように、ソフトウェア工学は「破滅の運命にある学問」と呼ばれるべきです。目標が自己矛盾しているため、目標に近づくことすらできない破滅の運命にある学問です。もちろん、ソフトウェア工学は価値ある大義名分として自らを売り込んでいますが、それは見せかけに過ぎません。その文献を注意深く読み、信奉者が実際に何をしているのかを分析すれば、ソフトウェア工学が「できない人がプログラミングする方法」を自らの信条としていることに気づくでしょう。[ 88 ]
参照
勉強と実践
役割
専門的な側面
- 情報技術理学士
- ソフトウェア工学学士
- ソフトウェアエンジニアリングカンファレンスのリスト
- コンピュータサイエンスジャーナル(ソフトウェアエンジニアリングジャーナルを含む)のリスト
- ソフトウェアプログラミングジャーナルの一覧
- プログラミングソフトウェア開発ツールのリスト
- ソフトウェアエンジニアリング研究所
参考文献
引用
- ^ 「ソフトウェアエンジニアリングとは何か?」ミシガン工科大学。 2025年6月29日閲覧。
- ^ a b c d eアブラン他 2004 harvnb error: no target: CITEREFAbranMooreBourqueDupuis2004 (help)
- ^ ACM (2007). 「コンピューティングの学位とキャリア」 . ACM. 2011年6月17日時点のオリジナルよりアーカイブ。 2010年11月23日閲覧。
- ^ラプランテ、フィリップ (2007). 『ソフトウェアエンジニアリングについてエンジニアが知っておくべきこと』 ボカラトン: CRC. ISBN 978-0-8493-7228-5. 2011年1月21日閲覧。
- ^ 「ソフトウェアエンジニアの仕事とは?」Coursera 2022年10月31日
- ^イアン・ボゴスト(2015年11月5日)「プログラマーはエンジニアと呼ぶのをやめよう」アトランティック誌。
- ^ a b c d e f g h Bourque, Pierre; Fairley , Richard E. (Dick), 編 (2014).ソフトウェアエンジニアリング知識体系バージョン3.0 (SWEBOK) ガイドIEEE Computer Society .
- ^ Farone, Alison (2020年8月4日). 「コーディングとソフトウェアエンジニアリングの歴史」 . Hack Reactor . 2025年6月29日閲覧。
- ^ 「コーディングとソフトウェアエンジニアリングの歴史」Hack Reactor . 2022年3月24日時点のオリジナルよりアーカイブ。2021年5月6日閲覧。
- ^ 「コンピュータとオートメーション:コンピュータディレクトリとバイヤーズガイド、1965年」(PDF)bitsavers.org . 2023年7月15日閲覧。
- ^ 「ACM会員への会長からの手紙」(PDF) 。 2025年2月27日閲覧。
私たちは、必ずしも全員ではなく、必ずしも誰か一人が常にそうである必要もありませんが、ハードウェアエンジニアリングであれソフトウェアエンジニアリングであれ、エンジニアリングという専門職の一員であることを認識しなければなりません。この専門職には、「科学的」アプリケーションと「ビジネス」アプリケーションのような、人為的で無関係な境界線はありません。
- ^ Oettinger, AG (1966). 「ACM会員への会長の手紙」 . Commun. ACM . 9 (8). Association for Computing Machinery: 545– 546. doi : 10.1145/365758.3291288 . ISSN 0001-0782 . S2CID 53432801 .
- ^ 「ソフトウェアエンジニアリングの起源」. 2013年4月4日. 2017年11月17日閲覧。
- ^ Randall, Brian. 「1968/69年NATOソフトウェアエンジニアリングレポート」 . 2017年11月17日閲覧。
- ^ Lori Cameron (2008年10月5日). 「マーガレット・ハミルトン:最初のソフトウェアエンジニア」 .技術ニュース. IEEEコンピュータ協会.
- ^イアン・サマービル(2015年3月24日)『ソフトウェアエンジニアリング』(第10版)ピアソン・エデュケーション・リミテッドISBN 978-0-13-394303-0。
- ^ Peter, Naur; Randell, Brian (1968年10月7日~11日).ソフトウェアエンジニアリング:NATO科学委員会主催会議報告書(PDF) . ドイツ、ガルミッシュ:NATO科学部. 2008年12月26日閲覧。
- ^ Randell, Brian (2001年8月10日). 「1968/69 NATOソフトウェアエンジニアリング報告書」 . Brian Randellの大学ホームページ. ニューカッスル大学コンピュータサイエンス学部. 2008年10月11日閲覧.第1回NATOソフトウェアエンジニアリング会議のアイデア、特に当時ほとんど知られていなかった「ソフトウェアエンジニアリング」という用語を(意図的に挑発的な)タイトルとして採用するというアイデアは、
Fritz Bauer
教授の発案だったと私は考えています
。
- ^ 2018年国際ソフトウェア工学会議、創立40周年とソフトウェア工学50周年を祝う(2018年5月31日)。「ICSE 2018 – 全体会議 – Fred Brooks」。YouTube 。 2018年8月9日閲覧。
{{cite web}}: CS1 maint: numeric names: authors list (link) - ^ 2018年国際ソフトウェア工学会議、創立40周年とソフトウェア工学50周年を祝う(2018年5月31日)。「ICSE 2018 – 全体会議 – マーガレット・ハミルトン」。YouTube 。 2018年8月9日閲覧。
{{cite web}}: CS1 maint: numeric names: authors list (link) - ^ a b Linda Hutz Pesante (2003年1月1日). Anthony Ralston; Edwin D. Reilly (編). 「ソフトウェア工学研究所 (SEI)」 . Encyclopedia of Computer Science . Chichester , West Sussex, UK: John Wiley and Sons Ltd. : 1611– 1613. ISBN 978-0-470-86412-8( 1)この研究所は
、1984年12月に
米国国防総省(DoD)から
カーネギーメロン
大学に競争入札で委託され、ソフトウェアエンジニアリングの実践状況を改善することを目的としていました。…(2)SEIは、実証済みの価値を持つ成熟したソリューションを広く普及させる活動を行っており、その例としては、能力成熟度モデル(CMM)などがあります。…

- ^ a bコンピューティングカリキュラムに関する合同タスクフォース、IEEEコンピュータ学会、計算機協会(2015年2月23日)。ソフトウェア工学2014:ソフトウェア工学の学部課程向けカリキュラムガイドライン(PDF)。コンピューティングカリキュラムシリーズの第1巻。IEEEコンピュータ学会および計算機協会。
{{cite book}}: CS1 maint: multiple names: authors list (link) - ^システムおよびソフトウェアエンジニアリング - 語彙、 ISO / IEC / IEEE std 24765:2010(E)、2010年。
- ^ IEEE標準ソフトウェアエンジニアリング用語集、 IEEE std 610.12-1990、1990年。
- ^サマービル、イアン(2007) [1982]. 「1.1.2 ソフトウェアエンジニアリングとは何か?」 .ソフトウェアエンジニアリング(第8版). ハーロウ、イギリス: ピアソン・エデュケーション. p. 7. ISBN 978-0-321-31379-9
ソフトウェア工学は、システム仕様の初期段階から運用開始後のシステム保守に至るまで、ソフトウェア開発のあらゆる側面を扱う工学分野です。その定義は、2つの重要な概念を強調しています。(1)
工学分野
— 組織的および財政的制約の中で理論、手法、ツールを適用すること。(2)
ソフトウェア開発のあらゆる側面
— 技術開発プロセス、プロジェクト管理、そして支援ツール、手法、理論の創出を含む。
- ^「ソフトウェア工学」.情報処理. 71 : 530–538 .
- ^ 「ソフトウェアエンジニアリングの定義」 www.merriam-webster.com . 2019年11月25日閲覧。
- ^ウィンターズ、タイタス、マンシュレック、トム、ライト、ハイラム (2020). 「序文、プログラミングの時代」. Google におけるソフトウェアエンジニアリング. O'Reilly Media, Inc. pp. xix– xx, 6– 7. ISBN 978-1-492-08279-8私たちは、「ソフトウェアエンジニアリング」とは、コードを書く行為だけでなく、組織が長期にわたってコードを構築・維持するために使用するすべてのツールとプロセスを包含するものだと考えています。
ソフトウェア組織は、コードを長期的に価値あるものに保つために、どのようなプラクティスを導入できるでしょうか?エンジニアはどのようにしてコードベースの持続可能性を高め、ソフトウェアエンジニアリングの分野自体をより厳密なものにできるでしょうか?
- ^ Akram I. Salah (2002年4月5日). 「ソフトウェア工学における学術プログラムのエンジニアリング」(PDF) . 第35回Midwest Instruction and Computing Symposium . 2006年9月13日閲覧.: 「ソフトウェアエンジニアリングは、プログラミングの単なる美化された名前だと考える人もいます。プログラマーであれば、名刺に『ソフトウェアエンジニア』と書くかもしれませんが、『プログラマー』とは決して書かないでください。」
- ^ Mills, Harlan D., JR Newman, CB Engle, Jr., "An Undergraduate Curriculum in Software Engineering," Deimel, Lionel E. (1990). Software Engineering Education: SEI Conference 1990, Pittsburgh, Pennsylvania, USA, April 2–3, .. Springer. ISBN 978-0-387-97274-9。、26ページ:「実際問題として、ソフトウェアエンジニアリングは、ソフトウェア開発および保守の実務専門家にとって必要な準備であると考えています。コンピュータ科学者は、さらなる理論的研究のための準備をしています...」
- ^ Barbara Kitchevnham; David Budgen; Pearl Brereton; Stephen Linkman (2005). 「証拠に基づくソフトウェアエンジニアリングの実現」ACM SIGSOFT ソフトウェアエンジニアリングノート30 ( 4): 1– 3. doi : 10.1145/1082983.1083175 .
私たちは、ソフトウェアエンジニアリングがエンジニアリング分野として進歩するためには、現在の主張と分析への依存から脱却する必要があると考えています。
- ^ Parnas, David L. (1998). 「ソフトウェアエンジニアリングプログラムはコンピュータサイエンスプログラムではない」 . Annals of Software Engineering . 6 ( 1–4 ): 19– 37. doi : 10.1023/A:1018949113292 . S2CID 35786237 . 、19 ページ:「ソフトウェア エンジニアリングをコンピューター サイエンスのサブフィールドとして扱うのではなく、{土木工学、機械工学、化学工学、電気工学、...} のセットの要素として扱います。」
- ^ Parnas, David L. (1998). 「ソフトウェアエンジニアリングプログラムはコンピュータサイエンスプログラムではない」 . Annals of Software Engineering . 6 ( 1–4 ): 19– 37. doi : 10.1023/A:1018949113292 . S2CID 35786237 . 、20 ページ:「この論文では、従来の工学分野のプログラムをモデルにしたソフトウェア エンジニアリングの認定専門プログラムの導入により、教育によって信頼性の高いソフトウェア製品を開発する準備が整った卒業生の質と量の両方が向上すると主張しています。」
- ^マコーネル、スティーブ(2003年8月)『プロフェッショナル・ソフトウェア開発:スケジュール短縮、プロジェクト改善、製品品質向上、キャリアアップ』ボストン、マサチューセッツ州:アディソン・ウェスレー、ISBN 0-321-19367-9。、39ページ:「私の意見では、その質問への答えは明白です。プロフェッショナルなソフトウェア開発はエンジニアリングであるべきです。本当にそうでしょうか?いいえ。しかし、そうあるべきでしょうか?間違いなく、そうです。」
- ^ Knuth, Donald (1974). 「芸術としてのコンピュータプログラミング」(PDF) . Communications of the ACM . 17 (12): 667– 673. doi : 10.1145/361604.361612 . S2CID 207685720 . 1974 年のチューリング賞講演の記録。
- ^ダイクストラ、エドガー・W ; マリオ・ベランドによる転記(2004年11月23日)[初出1993年12月3日]。「戦争はまだ続いている(原稿オースティン、1993年12月3日)」。EW ダイクストラ・アーカイブ。テキサス大学オースティン校、コンピュータサイエンス学部。2007年2月17日閲覧。
1968年にミュンヘン工科大学のF・L・バウアーがこの用語を作った時、私はそれを歓迎しました。[...] 「ソフトウェアエンジニアリング」という用語の導入は、ソフトウェアシステムの設計が数学エンジニアの卓越した活動であるという事実を適切に反映していると解釈しました。[...] この用語が米国に到着するとすぐに、その技術的な内容はすべて取り除かれました。そうするしかなかったのです。なぜなら、本来の意味においては全く受け入れられなかったからです。[...] ] その間に、ソフトウェア エンジニアリングという言葉は、ほとんど意味のない言葉になってしまいました。これは、Data General 社が、一夜にして全プログラマーを「ソフトウェア エンジニア」という高貴な地位に昇進させたことからも明らかです。
- ^ 「ソフトウェアエンジニアリング | ソフトウェア要件の分類」 . GeeksforGeeks . 2018年6月19日. 2021年5月6日閲覧。
- ^ 「ソフトウェアエンジニアリング | ソフトウェア設計プロセス」 . GeeksforGeeks . 2019年5月24日. 2021年5月6日閲覧。
- ^ Jamil, Muhammad Abid; Arif, Muhammad; Abubakar, Normi Sham Awang; Ahmad, Akhlaq (2016年11月). 「ソフトウェアテスト技術:文献レビュー」. 2016年第6回イスラム世界のための情報通信技術に関する国際会議 (ICT4M) . pp. 177– 182. doi : 10.1109/ICT4M.2016.045 . ISBN 978-1-5090-4521-1。
- ^ 「ソフトウェアメンテナンスとは何か?ソフトウェアメンテナンスの定義、ソフトウェアメンテナンスの意味」。The Economic Times 。 2021年5月6日閲覧。
- ^ Alain Abran、James W. Moore、Pierre Bourque、Robert Dupuis、Leonard L. Tripp編 (2005) [2004]. 「第1章 ガイドの紹介」 .ソフトウェアエンジニアリング知識体系ガイド. IEEE Computer Society . 2016年5月9日時点のオリジナルよりアーカイブ。 2010年9月13日閲覧。
引用文献の総量は、学部教育修了後4年間の経験を積むことで習得できる程度を想定している。
- ^ Cowling, AJ 1999. ソフトウェア工学の学部課程の最初の10年間. Ann. Softw. Eng. 6, 1–4 (1999年4月), 61–90.
- ^ 「ABET認定エンジニアリングプログラム」 2007年4月3日. 2010年6月19日時点のオリジナルよりアーカイブ。2007年4月3日閲覧。
- ^マコーネル、スティーブ(2003年7月10日)『プロフェッショナル・ソフトウェア開発:スケジュールの短縮、製品の高品質化、プロジェクトの成功率向上、キャリアアップ』 ISBN 978-0-321-19367-4。
- ^ウィリアムズ、ニューサウスウェールズ州 (2001年2月19~21日). 「オンタリオ州プロフェッショナルエンジニア協会によるソフトウェアエンジニアリング実務者のライセンス取得へのアプローチ」.ソフトウェアエンジニアリング教育訓練、2001年議事録. 第14回ソフトウェアエンジニアリング会議. ノースカロライナ州シャーロット: IEEE . pp. 77~ 78.
- ^ 「NCEESソフトウェアエンジニアリング試験仕様」(PDF) 。 2013年8月27日時点のオリジナル(PDF)からアーカイブ。 2012年4月1日閲覧。
- ^ 「NCEES、PEソフトウェアエンジニアリング試験を廃止」。全米工学・測量試験委員会(NCEES)。2018年3月13日。 2018年8月6日閲覧。
- ^ a bバーバラ・シモンズ. 「過去のACM会長がACMへの貢献を振り返る」 . 科学と職業としてのコンピューティングの発展75周年を祝う.計算機協会. 2024年5月18日閲覧.
委員会の勧告が提出された後、ACM評議会は、もともと土木技術者向けに開発された公認プロフェッショナルエンジニアの枠組みは、ソフトウェアエンジニアリングの専門的な産業慣行に適合しておらず、最も優秀なソフトウェアエンジニアの多くが公認プロフェッショナルエンジニアの資格取得を阻む可能性があると結論付けました。
- ^ a b John C. Knight; Nancy G. Leveson (2002年11月1日). 「ソフトウェアエンジニアは資格を持つべきか?」Communications of the ACM . 45 (11): 87– 90. doi : 10.1145/581571.581601 .
- ^ 「ソフトウェアエンジニアリング倫理規定」(PDF) 。 2015年1月23日時点のオリジナル(PDF)からアーカイブ。 2012年3月25日閲覧。
- ^ Labs, Qubit (2022年11月29日). 「世界と米国にはプログラマーが何人いるのか? [2023]」 . Qubit Labs . 2023年2月7日閲覧。
- ^ 「世界の開発者人口と人口動態調査 2016 V2」エバンス・データ・コーポレーション2017年1月19日閲覧。
- ^ a b Rosenthal, Rachel (2020年8月4日). 「テック企業はアメリカにスキルギャップがあると信じ込ませたい」 . Bloomberg . 2021年10月8日閲覧。
- ^ 「コンピュータソフトウェアエンジニアとコンピュータプログラマー」 。 2009年12月17日閲覧。
- ^ 「ソフトウェア開発者」。職業展望ハンドブック。米国労働統計局。2019年9月4日。 2019年12月11日閲覧。
- ^ 「コンピューティングの分野と専攻」(PDF) .計算機協会. 2019年9月6日閲覧。
- ^ a b「ソフトウェア開発者:職業展望ハンドブック」米国労働統計局。
- ^ 「コンピュータソフトウェアエンジニア」労働統計局 2010年3月19日. 2013年7月26日時点のオリジナルよりアーカイブ。2012年7月20日閲覧。
- ^ 「ソフトウェア開発者」労働統計局 2014年1月8日. 2012年7月21日閲覧。
- ^ a b c d e「コンピュータプログラマー:職業展望ハンドブック:米国労働統計局」。2019年5月3日時点のオリジナルよりアーカイブ。 2017年1月17日閲覧。
- ^ 「出版物別アーカイブ:数字を超えて:米国労働統計局」www.bls.gov。
- ^ 「間もなく絶滅する組み込みソフトウェアエンジニア」 designnews.com 2018年5月10日。
- ^ 「hp の開発者ポータル | HP 国際女性週間: 1980 年代以降、コンピューター サイエンス分野の女性が減少している」。developers.hp.com 。
- ^ 「ChatGPTのようなツールのせいでソフトウェアエンジニアの雇用が危ぶまれる?Google CEOサンダー・ピチャイの見解」 Business Today 2023年4月6日 2023年5月12日閲覧。
- ^ 「ChatGPTはこれらの仕事を時代遅れにする可能性がある」 2023年1月25日。 2023年5月12日閲覧。
- ^ケイ、グレース「ソフトウェアエンジニアはAIに置き換えられることにパニックに陥っている」 Business Insider 2023年5月12日閲覧。
- ^ファウラー、ゲイリー。「評議会の投稿:ChatGPTは雇用にどのような影響を与えるか?」 Forbes 。2023年5月12日閲覧。
- ^伊藤亜貴. 「ChatGPTは、私たちが知っているコーディングの終焉を意味する」 . Business Insider . 2023年5月12日閲覧。
- ^ Zinkula、Aaron Mok、Jacob. 「ChatGPTが私たちの仕事を奪うかもしれない。AIに取って代わられる可能性が最も高い10の役割」 Business Insider . 2023年5月12日閲覧。
{{cite web}}: CS1 maint: multiple names: authors list (link) - ^ Cohen, Mikaela (2023年4月15日). 「ChatGPTとAIによって最も脅かされるテクノロジー職」CNBC . 2023年5月12日閲覧。
- ^ "「プログラミングを学ぼう」が見事に裏目に出て、コンピューターサイエンス専攻者の失業率が突然急上昇。2025年5月31日。
- ^ 「SEI認定ページ」 . Sei.cmu.edu . 2012年3月25日閲覧。
- ^ Wyrostek, Warren (2008年3月14日). 「2008年のIT認定における10大問題」 . InformIT . 2009年3月3日閲覧。
- ^ IEEEコンピュータ協会. 「2006 IEEEコンピュータ協会IFIP総会報告書」(PDF) . 2007年4月10日閲覧。
- ^ IEEE (2008年11月12日). 「CSDA」. 2010年4月20日閲覧。
- ^カナダ情報処理協会. 「ISP指定」 . 2007年3月15日閲覧。
- ^ 「Professional Engineers Ontario: PEOのウェブサイトへようこそ」 Peo.on.ca . 2012年3月25日閲覧。
- ^ Thibodaux, Patrick (2006年5月5日). 「アウトソーシングが勢いを増すにつれ、コンピュータサイエンスへの関心は薄れる」 Computerworld.com . 2016年12月6日閲覧。
- ^ 「AIスタートアップ企業の労働時間はますます厳しくなっている」。
- ^ Robert Mullins (2007年3月13日). 「北米のソフトウェア開発者の成長は鈍化:調査によると、2010年までにアジアがソフトウェア開発者の雇用でトップに立つ」 InfoWorld .ソフトウェア開発.
- ^ 「Gartner Magic Quadrant」(PDF) . Cognizant.com. 2008年9月20日時点のオリジナル(PDF)からアーカイブ。 2012年3月25日閲覧。
- ^ Casey, Valentine (2010-08-20). 「仮想ソフトウェアチームによるプロジェクト管理」 . Journal of the Brazilian Computer Society . 16 (2): 83– 96. doi : 10.1007/s13173-010-0013-3 . S2CID 14383734 .
- ^ 「Outstanding Research Award」 . SIGSOFT . 2024年4月1日閲覧。
- ^ David Lo ( SIGSOFT Awards Chair); Thomas Zimmermann ( SIGSOFT Chair) (2024年1月17日). 「SIGSOFT Awards 2024」 . ACM SIGSOFT Blog . 2024年4月1日閲覧。
- ^ 「ICSE 最も影響力のある論文賞」ACM SIGSOFT 。
- ^ Donald J. Bagert (1999年4月). 「視点:ソフトウェアエンジニアのライセンス取得をリードする」Communications of the ACM . 42 (4): 27– 29. doi : 10.1145/299157.299163 .

- ^ a bバリー・ボーム(2002年9月~10月). 「ソフトウェアエンジニアリングは価値に基づくコンタクトスポーツである」. IEEE Software . 19 (5): 95– 96. doi : 10.1109/MS.2002.1032863 .
- ^ Dijkstra, EW (1988). 「コンピューティングサイエンスを本当に教えることの残酷さについて」 . 2014年1月10日閲覧。
出典
- Pierre Bourque、Richard E. (Dick) Fairley編 (2014).ソフトウェアエンジニアリング知識体系バージョン3.0 (SWEBOK) ガイド. IEEE Computer Society .
- Alain Abran、James W. Moore、Pierre Bourque、Robert Dupuis、Leonard L. Tripp編 (2004).ソフトウェアエンジニアリング知識体系ガイド. IEEE Computer Society . 2016年5月9日時点のオリジナルよりアーカイブ。 2010年9月13日閲覧。
- イアン・サマービル(2015年3月24日).ソフトウェアエンジニアリング(第10版). ピアソン・エデュケーション・リミテッド. ISBN 978-0-13-394303-0。
さらに読む
- Pierre Bourque、Richard E. (Dick) Fairley編 (2014).ソフトウェアエンジニアリング知識体系バージョン3.0 (SWEBOK) ガイド. IEEE Computer Society .
- ロジャー・S・プレスマン、ブルース・マキシム(2014年1月23日)『ソフトウェアエンジニアリング:実践者のアプローチ』(第8版)マグロウヒル社、ISBN 978-0-07-802212-8。
- イアン・サマービル(2015年3月24日).ソフトウェアエンジニアリング(第10版). ピアソン・エデュケーション・リミテッド. ISBN 978-0-13-394303-0。
- Jalote, Pankaj (2005) [1991]. 『ソフトウェア工学への統合的アプローチ』(第3版). Springer. ISBN 978-0-387-20881-7。
- ブルーゲ、ベルント、デュトワ、アレン (2009).オブジェクト指向ソフトウェア工学:UML、パターン、Java の使用(第3版). プレンティス・ホール. ISBN 978-0-13-606125-0。
- オシャナ、ロバート (2019-06-21).組込みシステムのためのソフトウェアエンジニアリング:手法、実践的技術、そして応用(第2版). キドリントン、オックスフォード、イギリス. ISBN 978-0-12-809433-4。
外部リンク
- Pierre Bourque、Richard E. Fairley編 (2004).ソフトウェアエンジニアリング知識体系バージョン3.0(SWEBOK)ガイド, https://www.computer.org/web/swebok/v3 . IEEE Computer Society .
- オープンシステムエンジニアリングとソフトウェア開発ライフサイクルフレームワーク 2010年7月18日アーカイブWayback Machine OpenSDLC.org 統合クリエイティブコモンズSDLC
- カーネギーメロン大学ソフトウェア工学研究所