以下は、ソフトウェアエンジニアリングの概要とトピック ガイドとして提供されています。
ソフトウェア工学–ソフトウェアの開発、運用、保守に対する体系的かつ規律ある定量化可能なアプローチの適用。つまり、ソフトウェアへの工学の応用です。 [1]
ACM コンピューティング分類システムは、分野のトピックを整理する多階層オントロジーであり、セマンティック Web アプリケーションで使用したり、分野の事実上の標準分類システムとして使用したりできます。主要セクション「ソフトウェアとそのエンジニアリング」では、ソフトウェア エンジニアリングの概要とオントロジーが提供されます。
ソフトウェアアプリケーション
ソフトウェアエンジニアは、人々が使用するソフトウェア(アプリケーション、オペレーティング システム、システム ソフトウェア) を構築します。
アプリケーションは、開発者に新しい方法で問題を解決するようプレッシャーをかけることで、ソフトウェア エンジニアリングに影響を与えます。たとえば、消費者向けソフトウェアは低コストを重視し、医療用ソフトウェアは高品質を重視し、インターネット コマース ソフトウェアは迅速な開発を重視します。
- ビジネスソフトウェア
- 分析
- データベースと密接な関係のあるデータマイニング
- 意思決定支援システム
- 航空券の予約
- 銀行業務
- 商業
- コンパイラ
- コミュニケーション
- 電子メール
- インスタントメッセンジャー
- VOIP
- カレンダー- スケジュールと調整
- 連絡先マネージャー
- コンピュータグラフィックス
- 暗号化
- データベースはほぼすべての分野をサポート
- 組み込みシステムソフトウェア エンジニアと従来のエンジニアの両方が、組み込み製品用のソフトウェア制御システムを作成します。
- 自動車用ソフトウェア
- 航空電子工学ソフトウェア
- 暖房換気空調(HVAC)ソフトウェア
- 医療機器ソフトウェア
- 電話
- テレメトリー
- エンジニアリング従来のエンジニアリングの分野では、ソフトウェアが広く使用されています。エンジニアは、計算機よりもスプレッドシートをよく使用します。エンジニアは、橋や送電線などの独自のプロジェクトを設計、分析、シミュレーションするためにカスタム ソフトウェアツールを使用します。これらのプロジェクトは、作業が電子文書として存在し、分析、設計、実装、テストの各段階を経るため、多くの点でソフトウェアに似ています。エンジニア向けのソフトウェア ツールでは、コンピューター サイエンスの原理だけでなく、微積分、物理学、化学の原理も使用されています。
- ファイル
- ファイナンス
- ゲーム
- 情報システムは、ほぼすべての分野をサポートします
- ロジスティクス
- 製造業
- 音楽
- ネットワーク管理
- ネットワークとインターネット
- オフィススイート
- オペレーティングシステム
- ロボット工学
- 信号処理、信号のエンコードおよび解釈
- シミュレーションは、ほぼすべての分野をサポートします。
- エンジニアリング、ソフトウェアシミュレーションは、物理的なエンジニアリング モデルよりも構築コストが安く、変更も柔軟に行うことができます。
- 科学
- 科学
- 交通管制
- トレーニング
- 視覚化、ほぼすべての分野をサポート
- 投票
- ワールドワイドウェブ
ソフトウェアエンジニアリングのトピック
プログラミング言語技術に基づくプログラミングパラダイム
データベース
グラフィカルユーザーインターフェース
プログラミングツール
- 構成管理とソースコード管理
- CVs について
- 転覆
- ギット
- 気まぐれな
- RCCS
- GNU アーチ
- LibreSource シンクロナイザー
- チーム ファウンデーション サーバー
- Visual Studio チーム サービス
- ビルドツール
- 作る
- レーキ
- カバル
- アリ
- ケーデス
- ナント
- メイヴン
- ファイナルビルダー
- グラドル
- チーム ファウンデーション サーバー
- Visual Studio チーム サービス
- ビジュアルビルドプロ
- 編集者
- パーサー作成ツール
- 静的コード解析ツール
図書館
デザイン言語
- 統一モデリング言語(UML)
パターン、多くの一般的なプログラミングおよびプロジェクト管理手法を文書化します
プロセスと方法論
- アジャイル
- ヘビー級
- クリーンルーム
- ISO/IEC 12207 — ソフトウェアライフサイクルプロセス
- ISO 9000およびISO 9001
- プロセスモデル
- メタモデル
プラットフォーム
プラットフォームは、コンピュータのハードウェアとオペレーティング システムを組み合わせたものです。プラットフォームがより強力になり、コストが下がるにつれて、アプリケーションとツールはより広く利用できるようになります。
- 醸造
- クレイ スーパーコンピュータ
- DEC ミニコンピュータ
- IBM メインフレーム
- Linux PC の場合
- クラシックMac OSおよびmacOS PC
- マイクロソフト
- パーム PDA
- サン・マイクロシステムズ Solaris
- Windows PC ( Wintel )
- シンビアンOS
その他の実践
- コミュニケーション
- メソッドエンジニアリング
- ペアプログラミング
- パフォーマンスエンジニアリング
- プログラミングの生産性
- リファクタリング
- ソフトウェア検査/コードレビュー
- ソフトウェアの再利用
- システム統合
- チームワーク
その他のツール
コンピュータサイエンスのトピック
熟練したソフトウェア エンジニアは、ソフトウェアにとって何が可能で何が不可能か、何が容易で何が困難かなど、 コンピューター サイエンスに関する多くの知識を持っています。
- アルゴリズムは、特定の問題を解決するための明確に定義された方法です。
- コンパイラ理論
- データ構造、データを保存および取得するための明確に定義された方法。
- 計算可能性、いくつかの問題はまったく解決できない
- 複雑性、いくつかの問題は原理的には解決可能だが、実際には解決できない
- 形式手法
- 適応システム
数学のトピック
他の
ライフサイクルのフェーズ
- 開発 ライフサイクルフェーズ
- 要件収集/分析
- ソフトウェアアーキテクチャ
- コンピュータプログラミング
- テスト、バグの検出
- 品質保証、プロセスへの準拠を保証します。
- 製品ライフサイクルフェーズとプロジェクトライフサイクル
- リリース 開発段階、リリースサイクルの終わり近く
- ソフトウェア開発ライフサイクル
成果物
多くの SE プロジェクトでは、成果物を開発する必要があります。ソフトウェア エンジニアがこれらの成果物をすべて自分で作成することはほとんどありません。通常、彼らはライター、トレーナー、インストーラー、マーケティング担当者、テクニカル サポート担当者など、これらの成果物の多くを作成する他の人たちと協力します。
- アプリケーションソフトウェア — ソフトウェア
- データベース- スキーマとデータ。
- 各ロールの ドキュメント、オンラインおよび/または印刷物、FAQ、Readme、リリースノート、ヘルプ
- 管理および保守ポリシー、何をバックアップ、チェック、構成する必要があるかなど。
- インストーラー
- 移住
- 以前のインストールからのアップグレード
- 競合他社のインストールからのアップグレード
- 各役割のトレーニング資料
- コンピュータ サポート グループのサポート情報。
- マーケティングおよび販売資料
- ホワイトペーパーでは、アプリケーションで使用されるテクノロジーについて説明します。
ビジネスの役割
経営トピック
ビジネストピック
- 質の高いプログラム
ソフトウェアエンジニアリングの専門職
ソフトウェアエンジニアリングの歴史
パイオニア
多くの人々が SE のテクノロジー、実践、またはアプリケーションに重要な貢献をしました。
- ジョン・バッカス:Fortran、最初の最適化コンパイラ、BNF
- Victor Basili : 体験工場。
- FLバウアー:スタック原則、ソフトウェアエンジニアリングという用語を普及させた
- Kent Beck :リファクタリング、エクストリームプログラミング、ペアプログラミング、テスト駆動開発。
- ティム・バーナーズ=リー:ワールド・ワイド・ウェブ
- バリー・ボーム:SE 経済学、COCOMO、スパイラル モデル。
- Grady Booch :オブジェクト指向 設計、UML。
- Fred Brooks : Managed System 360およびOS 360。The Mythical Man-MonthおよびNo Silver Bullet を執筆。
- ラリー・コンスタンティン:構造化設計、結合、凝集
- Edsger Dijkstra : 『構造化プログラミングに関するノート』、『プログラミングの規律』、 『有害と考えられる Go To ステートメント』 、アルゴリズム、形式手法、教育学を執筆。
- Michael Fagan :ソフトウェア検査。
- Tom Gilb :ソフトウェア メトリクス、ソフトウェア検査、進化型配信 (「Evo」)。
- アデル・ゴールドスタイン:世界初の電子デジタルコンピュータであるENIACの操作マニュアルを書き、世界初の人間型コンピュータを訓練した。
- ロイス・ハイブト:FORTRAN、最初のパーサーを書いた
- マーガレット・ハミルトン:「ソフトウェアエンジニアリング」という用語を考案し、ユニバーサルシステム言語を開発した。
- メアリー・ジーン・ハロルド:回帰テスト、障害箇所特定
- Grace Hopper : 最初のコンパイラ (Mark 1)、COBOL、Nanoseconds。
- Watts Humphrey :能力成熟度モデル、パーソナル ソフトウェア プロセス、ソフトウェア エンジニアリング協会フェロー。
- ジャン・イクビア:アダ
- マイケル A. ジャクソン:ジャクソン構造化プログラミング、ジャクソンシステム開発
- Bill Joy : Berkeley Unix、vi、Java。
- アラン・ケイ:スモールトーク
- Brian Kernighan : C と Unix。
- ドナルド・クヌース: 『The Art of Computer Programming』、TeX、アルゴリズム、文芸的プログラミングを執筆
- ナンシー・レベソン:システムの安全性
- ベルトラン・マイヤー:契約による設計、Eiffel プログラミング言語。
- Peter G. Neumann : RISKS ダイジェスト、ACM Sigsoft。
- David Parnas : モジュール設計、社会的責任、プロフェッショナリズム。
- ジェフ・ラスキン:オリジナルのMacintosh GUIを開発し、The Humane Interfaceを著した。
- Dennis Ritchie : CとUnix。
- Winston W. Royce :ウォーターフォール モデル。
- メアリー・ショー:ソフトウェアアーキテクチャ。
- リチャード・ストールマン:フリーソフトウェア財団の創設者
- Linus Torvalds : Linuxカーネル、フリーソフトウェア/オープンソース開発。
- Will Tracz: 再利用、ACM ソフトウェア エンジニアリング ノート。
- ジェラルド・ワインバーグ: 『コンピュータプログラミングの心理学』を執筆。
- Elaine Weyuker : ソフトウェアテスト
- ジャネット・ウィング:正式な仕様。
- Ed Yourdon :構造化プログラミング、『The Decline and Fall of the American Programmer』を執筆。
参照
著名な出版物
- About Face : The Essentials of User Interface Design ( Alan Cooper著) 、ユーザー インターフェイス デザインについて。ISBN 0-7645-2641-3
- Watts Humphrey著の「The Capability Maturity Model」。Software Engineering Institute向けに執筆され、管理とプロセスに重点を置いています。( Managing the Software Process ISBN 0-201-18095-2を参照)
- オープンソース開発に関するEric Raymondの「The Cathedral and the Bazaar」 。
- エド・ヨードン著『アメリカ人プログラマーの衰退と没落』は、米国におけるソフトウェア開発の終焉を予言している。ISBN 0-13-191958-X
- デザインパターン、 Erich Gamma、 Richard Helm、 Ralph Johnson、 John Vlissides著。ISBN 0-201-63361-2
- エクストリームプログラミング解説ケント・ベック 著ISBN 0-321-27865-8
- Edsger Dijkstraによる「Go To ステートメントは有害であると考えられる」。
- 「インターネット、イノベーション、オープンソース:ネットワークのアクター」— Ilkka TuomiによるFirst Monday の記事(2000) 出典
- フレッド・ブルックス著『The Mythical Man-Month』プロジェクト管理について。ISBN 0-201-83595-9
- オブジェクト指向分析と設計、Grady Booch著。ISBN 0-8053-5340-2
- トム・デマルコとティム・リスター 著『Peopleware』。ISBN 0-932633-43-9
- EWダイクストラ著「実用的エンジニア対科学的デザイナー」 [1]
- トム・ギルブ著「ソフトウェアエンジニアリング管理の原則」進化のプロセスについて。ISBN 0-201-19246-2
- ジェラルド・ワインバーグ著『コンピュータプログラミングの心理学』。独立コンサルタントとして執筆したもので、IBM での勤務時代について一部記述されています。ISBN 0-932633-42-0
- リファクタリング: 既存コードの設計を改善する、Martin Fowler、Kent Beck、John Brant、William Opdyke、Don Roberts著。ISBN 0-201-48567-2
- 『The Pragmatic Programmer: from Journeyman to master』Andrew Hunt、David Thomas 著ISBN 0-201-61622 -X
- ソフトウェアエンジニアリング知識体系(SWEBOK) ISO/IEC TR 19759
関連分野
- コンピュータサイエンス
- 情報工学
- 情報技術
- 伝統的なエンジニアリング
- ソフトウェアエンジニアリング
- 芸術と科学
- アプリケーションソフトウェア
- プログラミング
- システムエンジニアリング
参照
- ソフトウェアエンジニアリング記事のインデックス
- 検索ベースのソフトウェアエンジニアリング
- SWEBOKソフトウェアエンジニアリング知識体系
- ソフトウェアエンジニアリングのためのCCSEコンピューティングカリキュラム
- コンピュータ用語の語源、コンピュータ用語の起源
- 複雑さまたはスケーリング
- セカンドシステム症候群
- 最適化
- ソースコードエスクロー
- 機能の相互作用の問題
- 認定資格(ソフトウェアエンジニアリング)
- エンジニアリング災害#ソフトウェアによる障害
- ソフトウェア開発の概要
- ソフトウェア開発哲学のリスト
参考文献
外部リンク
- ACM コンピューティング分類システム
- ソフトウェア エンジニアリング知識体系ガイド (SWEBOK)
- 専門組織
- 英国コンピュータ協会
- 計算機協会
- IEEE コンピュータ協会
- プロフェッショナリズム
- SE倫理規定
- テキサス州の専門ライセンス
- 教育
- CCSE学部カリキュラム
- 標準
- IEEE ソフトウェアエンジニアリング標準
- インターネットエンジニアリングタスクフォース
- ISO
- 政府機関
- 欧州ソフトウェア研究所
- ソフトウェアエンジニアリング研究所
- アジャイル
- アジャイルソフトウェア開発を推進する組織
- テスト駆動開発
- エクストリームプログラミング
- その他の組織
- ソフトウェアエンジニアのためのオンラインコミュニティ
- ソフトウェアエンジニアリング協会
- 人口統計
- SEに関する米国労働統計局
- 調査
- カリフォルニア大学サイトのDavid Redmilesのページ
- 他の
- ガルミッシュでのNATO会議の全文(PDF)
- コンピュータリスクPeter G. Neumannのリスクコラム。
