ソフトウェアエンジニアリングは、コンピュータ科学と工学の両方の分野であり、ソフトウェアアプリケーションの設計、開発、テスト、保守 に重点を置いています。[ 1 ]エンジニアリングの原理とコンピュータプログラミングの専門知識を応用して、ユーザーのニーズを満たすソフトウェアシステムを開発します。[ 2 ] [ 3 ] [ 4 ] [ 5 ]
ソフトウェアエンジニアは、ソフトウェア開発プロセス[ 2 ] [ 6 ]を適用して、ソフトウェアシステムを定義、実装、テスト、管理、保守します。
1960年代以降、ソフトウェア工学は独立した工学分野として認識されるようになった。[ 7 ]
ソフトウェアエンジニアリングの発展は、苦闘の連続と見なされていた。問題点としては、予算超過、納期遅延、大規模なデバッグとメンテナンスの必要性、消費者のニーズを満たせない、あるいはそもそも完成しないといったことが挙げられた。
1968年、NATOはソフトウェアエンジニアリングに関する最初の会議を開催し、ソフトウェア開発における新たな課題に取り組み、信頼性が高く保守しやすいソフトウェアを作成するためのガイドラインとベストプラクティスを体系化する上で重要な役割を果たした。[ 8 ]
ソフトウェア エンジニアリングという用語の起源は、さまざまな情報源に帰せられています。この用語は、1965 年 6 月号の「Computers and Automation」に掲載された企業が提供するサービスの一覧に登場し[ 9 ]、1966 年 8 月号のCommunications of the ACM (第 9 巻、第 8 号) の Anthony A. Oettinger による「ACM 会員への会長からの手紙」でより正式に使用されました。[ 10 ] [ 11 ] [ 12 ]また、1968 年の NATO 会議のタイトルにも、フリードリヒ L. バウアー教授によって関連付けられています。[ 13 ]マーガレット ハミルトンは、アポロ計画中に「ソフトウェア エンジニアリング」という分野を説明し、彼らの活動に正当性を与えました。[ 14 ]当時、「ソフトウェア危機」があると認識されていました。[ 15 ] [ 16 ] [ 17 ]第 40 回国際ソフトウェア エンジニアリング会議 (ICSE 2018) では、フレデリック ブルックス[ 18 ]とマーガレット ハミルトン[ 19 ]による全体会議の基調講演で「ソフトウェア エンジニアリング」の 50 年を祝いました。
1984年、米国ペンシルベニア州ピッツバーグのカーネギーメロン大学のキャンパスに本部を置く、連邦政府資金による研究開発センターとしてソフトウェアエンジニアリング研究所(SEI)が設立されました。 [ 20 ]ワッツ・ハンフリーは、ソフトウェアエンジニアリングプロセスを理解し管理することを目的としたSEIソフトウェアプロセスプログラムを設立しました。[ 20 ]導入されたプロセス成熟度レベルは、米国政府がソフトウェア開発チームの能力をどのように評価するかを定義する能力成熟度モデル統合開発(CMMI-DEV)となりました。
ソフトウェアエンジニアリングに関する現代的で一般的に受け入れられているベストプラクティスは、ISO/IEC JTC 1/SC 7小委員会によって収集され、ソフトウェアエンジニアリング知識体系(SWEBOK)として公開されています。 [ 6 ]ソフトウェアエンジニアリングは、主要なコンピューティング分野の1つと考えられています。[ 21 ]
エッジコンピューティング、モノのインターネット(IoT)、サイバーフィジカルシステムといった概念が普及している現代のシステムにおいて、ソフトウェアは重要な要素です。したがって、ソフトウェアエンジニアリングはシステムエンジニアリングの分野と密接に関連しています。システムエンジニアリング知識体系(SEBOK)は、以下のことを主張しています。
ソフトウェアは現代のシステムアーキテクチャのほとんどにおいて重要な位置を占めており、複雑なシステムコンポーネントを統合するための主要な手段となることが多い。ソフトウェアエンジニアリングとシステムエンジニアリングは、単に関連のある分野というだけでなく、密接に絡み合っている。優れたシステムエンジニアリングは、優れたソフトウェアエンジニアリングを実現するための重要な要素である。
ソフトウェアエンジニアリングの代表的な定義には以下のようなものがある。
この用語は、よりくだけた意味でも使われている。
ソフトウェアエンジニアリングの定義や、それが工学分野として正当であるかどうかについては、個々の評論家の間で意見が大きく分かれている。デビッド・パーナスは、ソフトウェアエンジニアリングは実際には工学の一形態であると述べている。[ 31 ] [ 32 ]スティーブ・マコーネルはそうではないが、そうあるべきだと述べている。[ 33 ]ドナルド・クヌースは、プログラミングは芸術であり科学であると述べている。[ 34 ]エドガー・W・ダイクストラは、ソフトウェアエンジニアリングとソフトウェアエンジニアという用語は米国で誤用されていると主張している。[ 35 ]
要求工学とは、ソフトウェアの要求事項の引き出し、分析、仕様策定、および検証に関するものです。ソフトウェアの要求事項は、機能要件、非機能要件、またはドメイン要件に分類できます。
機能要件は、期待される動作(つまり出力)を記述します。非機能要件は、移植性、セキュリティ、保守性、信頼性、拡張性、パフォーマンス、再利用性、柔軟性などの問題を指定します。これらは、インターフェース制約、パフォーマンス制約(応答時間、セキュリティ、ストレージ容量など)、運用制約、ライフサイクル制約(保守性、移植性など)、および経済制約に分類されます。非機能要件を指定する際には、システムまたはソフトウェアがどのように動作するかの知識が必要です。ドメイン要件は、プロジェクトの特定のカテゴリまたはドメインの特性に関係します。[ 36 ]
ソフトウェア設計とは、ソフトウェアの高レベルな計画を立てるプロセスです。設計は、場合によっては以下のレベルに分けられます。
ソフトウェア構築には、通常、設計を実装するためのプログラミング(コーディングとも呼ばれる)、単体テスト、統合テスト、デバッグが含まれます。 [ 2 ] [ 6 ]「ソフトウェアテストはデバッグと関連していますが、異なります。」[ 6 ]
ソフトウェアテストは、テスト対象のソフトウェアの品質に関する情報を利害関係者に提供するために実施される経験的かつ技術的な調査です。[ 2 ] [ 6 ]ソフトウェアテストは、リスクベースの活動と見なすことができます。
構築とは別に説明される場合、テストは通常、プログラムを書いたプログラマーではなく、テストエンジニアまたは品質保証担当者によって実行されます。テストはシステムレベルで実行され、ソフトウェア品質の一側面とみなされます。テストプロセスにおけるテスターの目標は、テストの総数を管理可能なセットに最小限に抑え、どのリスクを優先的にテストすべきか、どのリスクは後回しにできるかについて十分な情報に基づいた決定を下すことです。[ 38 ]
プログラム分析とは、性能、堅牢性、セキュリティなどの側面に関してコンピュータプログラムを分析するプロセスである。
ソフトウェア保守とは、リリース後のソフトウェアのサポートを指します。これには、エラー修正、最適化、未使用および破棄された機能の削除、既存機能の強化などが含まれますが、これらに限定されません。[ 2 ] [ 6 ]
通常、メンテナンスはプロジェクト費用の40%から80%を占める。[ 39 ]

コンピュータプログラミングの知識は、ソフトウェアエンジニアになるための前提条件です。2004年、IEEEコンピュータソサエティはSWEBOKを作成し、ISO/IECテクニカルレポート1979:2005として発行しました。これは、4年間の実務経験を持つソフトウェアエンジニアが習得すべき知識体系を記述したものです。[ 40 ] 多くのソフトウェアエンジニアは、大学の学位を取得するか、職業訓練校で訓練を受けることでこの職業に就きます。学部レベルのソフトウェアエンジニアリング学位のための標準的な国際カリキュラムは、IEEEコンピュータソサエティとAssociation for Computing Machineryの合同コンピューティングカリキュラムタスクフォースによって定義され、2014年に更新されました。[ 21 ]多くの大学がソフトウェアエンジニアリングの学位プログラムを提供しています。2010年現在、米国には、キャンパス型ソフトウェア工学学士課程が244校、オンライン課程が70校、修士課程が230校、博士課程が41校、資格取得課程が69校ありました。
大学教育に加え、多くの企業が情報技術分野でのキャリアを目指す学生向けにインターンシップ制度を提供しています。こうしたインターンシップを通して、学生はソフトウェアエンジニアが日々直面する実際の業務を体験することができます。同様の経験は、軍隊におけるソフトウェアエンジニアリングの分野での勤務を通して得ることも可能です。
ソフトウェア工学の学位を持つ実務家は少数ながら増加傾向にある。1987年、インペリアル・カレッジ・ロンドンのコンピューティング学科は、世界初の3年制ソフトウェア工学学士課程を導入した。翌年には、シェフィールド大学が同様のプログラムを設立した。[ 41 ] 1996年、ロチェスター工科大学は米国初のソフトウェア工学学士課程を設立したが、ライス大学、クラークソン大学、ミルウォーキー工科大学、ミシシッピ州立大学と同じ2003年までABET認定を取得できなかった。[ 42 ]
それ以来、多くの大学でソフトウェア工学の学部課程が設立された。学部ソフトウェア工学学位のための標準的な国際カリキュラムであるSE2004は、 Association for Computing MachineryとIEEE Computer Societyからの資金提供を受けて、2001年から2004年にかけて運営委員会によって定義された。2004年現在米国では約50の大学がソフトウェア工学の学位を提供しており、コンピュータ科学と工学の原理と実践の両方を教えている。最初のソフトウェア工学修士課程は1979年にシアトル大学に設立された。それ以来、多くの大学でソフトウェア工学の大学院学位が取得できるようになっている。同様にカナダでも、カナダ専門技術者評議会のカナダ工学認定委員会(CEAB)がいくつかのソフトウェア工学プログラムを認定している。
さらに、ソフトウェア エンジニアリングのオンライン高度学位が多数登場しており、カリフォルニア州立大学フラートン校のコンピュータ サイエンスおよびエンジニアリング学科が提供するソフトウェア エンジニアリングの理学修士 (MSE) 学位などがある。スティーブ マコーネルは、ほとんどの大学がソフトウェア エンジニアリングではなくコンピュータ サイエンスを教えているため、真のソフトウェア エンジニアが不足していると考えている。[ 43 ] ETS (École de technologie supérieure) 大学とUQAM (Université du Québec à Montréal) は、ソフトウェア エンジニアがカバーする知識体系を記述する ISO 標準となったソフトウェア エンジニアリング知識体系 ( SWEBOK )を開発するよう IEEEから委任された。[ 6 ]
プロのソフトウェア エンジニアの免許や認定に関する法的要件は、世界中で異なります。英国では、ソフトウェア エンジニアという職名を名乗ったり使用したりするための免許や法的要件はありません。カナダの一部の地域、例えばアルバータ州、ブリティッシュ コロンビア州、オンタリオ州[ 44 ] 、ケベック州では、ソフトウェア エンジニアはプロフェッショナル エンジニア (P.Eng) の称号や情報システム プロフェッショナル (ISP) の称号を持つことができます。ヨーロッパでは、ソフトウェア エンジニアは欧州エンジニア(EUR ING) の専門称号を取得できます。ソフトウェア エンジニアは、英国コンピュータ協会を通じて公認エンジニアとして専門資格を取得することもできます。
米国では、NCEESが2013年にソフトウェアエンジニアリングのプロフェッショナルエンジニア試験の提供を開始し、ソフトウェアエンジニアがライセンスを取得して認められるようになった。 [ 45 ] NCEESは参加者の不足のため、2019年4月以降に試験を終了した。[ 46 ]義務的なライセンス制度は現在も広く議論されており、物議を醸すものと認識されている。[ 47 ] [ 48 ]
ソフトウェアエンジニアリングの米国における二大専門組織であるIEEEコンピュータソサエティとACMは、ソフトウェアエンジニアリングの専門職に関するガイドを発行している。IEEEの「ソフトウェアエンジニアリング知識体系ガイド – 2004年版」(SWEBOK)は、この分野を定義し、IEEEが実務に携わるソフトウェアエンジニアに期待する知識を記述している。最新版はSWEBOK v4である。[ 6 ] IEEEはまた、「ソフトウェアエンジニアリング倫理規定」も公布している。[ 49 ]
2022年時点で世界には推定2690万人のプロのソフトウェアエンジニアがおり、2016年の2100万人から増加している。[ 50 ] [ 51 ]
多くのソフトウェアエンジニアは、従業員または契約社員として働いています。ソフトウェアエンジニアは、企業、政府機関(民間または軍事)、非営利団体で働いています。一部のソフトウェアエンジニアは、フリーランスとして独立して働いています。組織によっては、ソフトウェア開発プロセスの各タスクを実行する専門家を抱えているところもあります。他の組織では、ソフトウェアエンジニアに多くのタスクまたはすべてのタスクを実行させる必要があります。大規模なプロジェクトでは、1つの役割のみに特化している場合があります。小規模なプロジェクトでは、複数の役割またはすべての役割を同時に担っている場合があります。多くの企業は、夏休み期間中の大学や専門学校の学生をインターンとして採用したり、エクスターンシップを実施したりしています。専門分野には、アナリスト、アーキテクト、開発者、テスター、テクニカルサポート、ミドルウェアアナリスト、プロジェクトマネージャー、ソフトウェア製品マネージャー、教育者、研究者などがあります。
ほとんどのソフトウェアエンジニアとプログラマーは週40時間働いていますが、2008年にはソフトウェアエンジニアの約15%とプログラマーの約11%が週50時間以上働いていました。 [ 52 ]これらの職業では、コンピューター端末の前に長時間座ってキーボードを打つ他の労働者と同様に、エンジニアやプログラマーは眼精疲労、腰痛、血栓症、肥満、手根管症候群などの手首や手の問題にかかりやすいため、怪我をする可能性があります。[ 53 ]
米国労働統計局(BLS)は、2018年に米国で雇用されているソフトウェア開発者の数を1,365,500人と数えた。[ 54 ]ソフトウェアエンジニアリングは比較的新しい研究分野であるため、正式な教育はコンピュータサイエンスのカリキュラムの一部として教えられることが多く、多くのソフトウェアエンジニアはコンピュータサイエンスの学位を取得している。[ 55 ] BLSは、2024年から2034年までのソフトウェアエンジニアの成長率を15%と推定しているが、これは2023年から2033年までのコンピュータソフトウェアエンジニアリングの増加率17%という予測を下回っている。[ 56 ]これは、2022年から2032年までのソフトウェアエンジニアリングのBLS推定値25%を下回っている。[ 56 ] [ 57 ]また、2010年から2020年までのBLS推定値30%よりもさらに低い。[ 58 ]この傾向により、米国のコンピュータ ソフトウェア エンジニアに回されるはずだった仕事が、インドなどの外国のコンピュータ ソフトウェア エンジニアにアウトソーシングされるため、雇用の伸びは過去 10 年ほど速くない可能性があります。[ 59 ] [ 52 ]さらに、米国労働統計局(BLS) の職業展望であるコンピュータ プログラマーの BLS 雇用展望では、2016 年から 2026 年にかけて -7% の減少、2019 年から 2029 年にかけてさらに -9% の減少、2021 年から 2031 年にかけて -10% の減少が予測されています。[ 59 ]そして、2022 年から 2032 年にかけて -11% の減少が予測されています。 [ 59 ]現在、2024 年から 2034 年にかけての予測は -6% の減少です。コンピュータ プログラミングは世界中のどこからでも行うことができるため、企業は賃金の低い国でプログラマーを雇用することがあります。[ 59 ] [ 60 ] [ 61 ]さらに、多くのソフトウェア分野における女性の割合は、他のエンジニアリング分野と比較して、長年にわたって減少しています。[ 62 ] [ 63 ]また、人工知能の最近の進歩が、将来の世代のソフトウェアエンジニアの需要に影響を与える可能性があるという懸念もあります。 [ 64 ] [ 65 ] [ 66 ] [ 67 ] [ 68 ] [ 69 ] [ 70 ]しかし、今後数十年の間に、米国市場の現在のソフトウェアエンジニアの多くがこの職業から離れたり、市場から年齢的に外れたりするため、この傾向は将来的に変化したり、鈍化したりする可能性がある。[ 59 ] [ 71 ]
ソフトウェアエンジニアリング協会は、セキュリティ、プロセス改善、ソフトウェアアーキテクチャなどの特定のトピックに関する認定を提供しています。[ 72 ] IBM、マイクロソフト、その他の企業も独自の認定試験を主催しています。多くのIT認定プログラムは特定のテクノロジーに特化しており、これらのテクノロジーのベンダーによって管理されています。[ 73 ]これらの認定プログラムは、これらのテクノロジーを使用する人材を雇用する組織に合わせて調整されています。
より広範なソフトウェアエンジニアリング全般のスキルに関する認定は、様々な専門団体を通じて取得可能です。2006年現在IEEE は、 575 名以上のソフトウェア専門家を認定ソフトウェア開発プロフェッショナル(CSDP)として認定しました。 [ 74 ] 2008 年に、認定ソフトウェア開発アソシエイト (CSDA) と呼ばれる入門レベルの認定を追加しました。[ 75 ] ACM とIEEE コンピュータ ソサエティは、1990 年代にソフトウェア エンジニアをプロフェッショナル エンジニアとしてライセンスする可能性を共同で検討しましたが、最終的に、そのようなライセンスはソフトウェア エンジニアリングの専門的な産業実践には不適切であると判断しました。[ 47 ]ジョン C. ナイトとナンシー G. レベソンは、 2002 年にライセンス問題についてよりバランスの取れた分析を発表しました。[ 48 ]
英国では、英国コンピュータ協会が、資格のある会員(MBCS )が取得できる、法的に認められた専門資格である公認ITプロフェッショナル(CITP)を開発しました。ソフトウェアエンジニアは、英国コンピュータ協会または工学技術協会の会員になる資格があり、これらの機関のいずれかを通じて公認エンジニアの資格を検討される資格があります。カナダでは、カナダ情報処理協会が、情報システムプロフェッショナル(ISP)と呼ばれる法的に認められた専門資格を開発しました。[ 76 ]カナダのオンタリオ州では、カナダ工学認定委員会(CEAB)認定プログラムを卒業し、オンタリオ州プロフェッショナルエンジニア協会( PEO)の専門実務試験(PPE)に合格し、少なくとも48か月の適切なエンジニアリング経験を持つソフトウェアエンジニアは、オンタリオ州プロフェッショナルエンジニア協会を通じてライセンスを取得する資格があり、プロフェッショナルエンジニア(P.Eng)になることができます。[ 77 ]ただし、PEOはオンラインまたは遠隔教育を認めておらず、コンピュータサイエンスプログラムとソフトウェアエンジニアリングプログラムの間には大きな重複があるにもかかわらず、両者を同等とはみなしていません。これが論争と資格戦争を引き起こしました。また、このことが、この分野におけるプロフェッショナルエンジニア(P.Eng)の資格保有者数を極めて低い水準に抑えている。この分野で働く専門家の大多数は、ソフトウェアエンジニアリング(SE)ではなく、コンピュータサイエンス(CS)の学位を取得している。SE以外の学位取得者にとって資格取得の道のりが困難であることを考えると、ほとんどの人は資格取得を目指そうとしない。
アウトソーシングの初期の影響と、発展途上国における国際的な人材の比較的低いコストにより、北米やヨーロッパの企業からインド、そして後に中国、ロシア、その他の発展途上国へとソフトウェア開発活動が大規模に移転しました。このアプローチにはいくつかの欠点があり、主なものは、クライアントと開発者の間の人間的な交流を妨げる距離/時差と、大規模な雇用移転でした。これは、ソフトウェアエンジニアリングの職業の多くの側面に悪影響を及ぼしました。たとえば、先進国の学生の中には、オフショアアウトソーシング(他国からソフトウェア製品やサービスを輸入すること)や外国人ビザ労働者に取って代わられることを恐れて、ソフトウェアエンジニアリング関連の教育を避ける人もいます。[ 78 ]さらに、ハイテク労働者の過剰供給により、996労働時間システムと「007」スケジュールが想定される仕事量として広く採用されるようになりました。[ 79 ]現在のところ、統計ではソフトウェアエンジニアリング自体への脅威は示されていませんが、関連する職業であるコンピュータプログラミングは影響を受けているようです。[ 80 ]それにもかかわらず、フォロー・ザ・サン・ワークフローを通じてオフショアおよびニアショアのリソースを賢く活用する能力は、多くの組織の全体的な運用能力を向上させてきました。 [ 81 ]北米人が仕事を終える頃には、アジア人がちょうど仕事に着いたところです。アジア人が仕事を終える頃には、ヨーロッパ人が仕事に着いたところです。これにより、残業代を支払ったり、重要な人的資源である睡眠パターンを乱したりすることなく、ビジネス上重要なプロセスを24時間体制で継続的に監視できる能力が提供されます。
グローバルアウトソーシングにはいくつかの利点がある一方で、グローバルな、そして一般的に分散した開発は、開発者間の距離に起因する深刻な困難に直面する可能性があります。これは、この種の距離の主要な要素として、地理的、時間的、文化的、コミュニケーション(異なる場所で異なる言語や英語の方言が使用されていることを含む)が特定されているためです。[ 82 ]過去15年間、グローバルソフトウェア開発の分野で研究が行われ、この複雑な活動に関連する利点と問題を強調する関連研究が多数発表されています。ソフトウェアエンジニアリングの他の側面と同様に、この分野および関連分野での研究は継続中です。
ソフトウェアエンジニアリングの分野には、さまざまな賞があります。
工学知識を普及させ、この分野を成熟させるためのメカニズムとして、免許制度、認証制度、体系化された知識体系を求める声もある。[ 86 ]
ソフトウェアエンジニアリングの概念は非常に新しいため、ほとんど理解されておらず、ソフトウェアエンジニアリングの教科書、論文、プログラマーや職人のコミュニティを含め、広く誤解されていると主張する人もいる。[ 87 ]
ソフトウェアエンジニアリングの根本的な問題は、そのアプローチが経験的に不十分であることにあると主張する人もいる。なぜなら、アプローチの現実世界での検証が通常存在しないか、非常に限られているため、ソフトウェアエンジニアリングは「理論的な環境」でのみ実行可能であると誤解されることが多いからである。[ 87 ]
今日のソフトウェア開発における多くの概念の創始者の一人であるエドガー・ダイクストラは、2002年に亡くなるまで「ソフトウェアエンジニアリング」という概念を否定し、それらの用語は彼が「根本的な新しさ」と呼んだコンピュータ科学の本質を表すのに不適切な類推であると主張した。
これらの現象の多くは「ソフトウェアエンジニアリング」という名称でまとめられてきました。経済学が「悲惨な学問」として知られているように、ソフトウェアエンジニアリングは「破滅の学問」として知られるべきでしょう。その目標が自己矛盾しているため、目標に近づくことすらできないからです。もちろん、ソフトウェアエンジニアリングは自らを別の価値ある大義として提示していますが、それは見せかけです。その文献を注意深く読み、その信奉者が実際に行っていることを分析すれば、ソフトウェアエンジニアリングが「プログラミングができない人のためのプログラミング方法」をその憲章として受け入れていることがわかるでしょう。[ 88 ]
私たちは、ハードウェアエンジニアリングであれソフトウェアエンジニアリングであれ、工学専門職のメンバーとして、つまり「科学的」アプリケーションと「ビジネス」アプリケーションの間のような人為的で無関係な境界のない専門職として、自分たちを認識しなければなりません。必ずしも全員がそうである必要はなく、必ずしも誰かが常にそうである必要もありません。
最初のNATOソフトウェアエンジニアリング会議のアイデア、特に当時ほとんど知られていなかった「ソフトウェアエンジニアリング」という用語を(意図的に挑発的な)タイトルとして採用するというアイデアは、もともと
フリッツ・バウアー
教授によるものだったと私は考えています。
{{cite web}}: CS1 maint: 数値名: 著者リスト (リンク){{cite web}}: CS1 maint: 数値名: 著者リスト (リンク)1)この研究所は、ソフトウェアエンジニアリングの実践状況を改善するために、 1984年12月に米国国防総省(DoD)から競争入札を経てカーネギーメロン大学に授与されました。(2)SEIは、実績のある成熟したソリューションを広く普及させています。例としては、能力成熟度モデル(CMM)などがあります。
{{cite book}}: CS1 maint: 複数の名前: 著者リスト (リンク)ソフトウェアエンジニアリングは、システム仕様の初期段階から、システムが運用開始された後の保守に至るまで、ソフトウェア生産のあらゆる側面に関わる工学分野です。この定義では、次の2つの重要な概念が強調されています。(1)工学
分野
― 組織的および財政的な制約の中で理論、方法、ツールを適用すること。(2)
ソフトウェア生産のあらゆる側面
― 技術開発プロセス、プロジェクト管理、および支援ツール、方法、理論の作成を含む。
ソフトウェア組織は、コードの価値を長期的に維持するために、どのような手法を導入できるでしょうか?エンジニアは、コードベースをより持続可能なものにし、ソフトウェアエンジニアリングという分野自体をより厳密なものにするにはどうすればよいでしょうか?
ソフトウェアエンジニアリングは、現状の提唱と分析への依存から脱却することによってのみ、エンジニアリング分野として進歩できると私たちは考えています。
年にミュンヘン工科大学の FL Bauer によってこの用語が造語されたとき、私はそれを歓迎した。[...] 私は「ソフトウェア エンジニアリング」という用語の導入を、ソフトウェア システムの設計が数学エンジニアにとって最高の活動であるという事実を適切に反映したものと解釈した。[...]。この用語が米国に伝わるとすぐに、その技術的な内容はすべて取り除かれた。そうせざるを得なかったのは、元の意味では全く受け入れられなかったからである。[...その間、ソフトウェアエンジニアリングという言葉はほとんど意味をなさなくなってしまった。Data General社が一夜にして全プログラマーを「ソフトウェアエンジニア」という崇高な地位に昇格させたことが、それを如実に示している。
引用文献の総量は、学部教育の修了と 4 年間の実務経験を通じて習得するのに適した量となるように意図されています。
パネルの勧告が提出された後、ACM評議会は、もともと土木技術者向けに開発された免許取得済みの専門技術者の枠組みは、ソフトウェアエンジニアリングの専門的な産業慣行に合致せず、最も優秀なソフトウェアエンジニアの多くが免許を取得することを妨げるだろうと結論付けた。
{{cite web}}: CS1 maint: 複数の名前: 著者リスト (リンク)