ソフトウエア‐こうがく【ソフトウエア工学】
読み方:そふとうえあこうがく
ソフトウェア工学
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/05/01 01:55 UTC 版)
ソフトウェア工学(ソフトウェアこうがく、英語: software engineering)はソフトウェアを対象とした工学である。すなわち、有用なソフトウェアが持つ特性・構造を探り、その構築・維持・管理に有用なプロセスを見出す学問である。
- ^ “IEEE Standard Glossary of Software Engineering Terminology,” IEEE std 610.12-1990, 1990, quoted at the beginning of Chapter 1: Introduction to the guide “Guide to the Software Engineering Body of Knowledge” (2004年2月6日). 2008年2月21日閲覧。
- ^ Pecht, Michael (1995年). Product Reliability, Maintainability, and Supportability Handbook. CRC Press. ISBN 0-8493-9457-0
- ^ Table 1 in Chapter 1,“Guide to the Software Engineering Body of Knowledge” (2004年2月6日). 2008年2月21日閲覧。
- ^ Table 2 in Chapter 1,“Guide to the Software Engineering Body of Knowledge” (2004年2月6日). 2008年2月21日閲覧。
- ^ Dijkstra, Edsger W; transcribed by Mario Béland (1993年12月3日; transcription last revised 2004年11月23日). “There is still a war going on (manuscript Austin, 3 December 1993)”. E. W. Dijkstra Archive. The University of Texas at Austin, Department of Computer Sciences. 2007年2月17日閲覧。 “When the term was coined in 1968 by F.L. Bauer of the Technological University of Munich, I welcomed it.”
- ^ "ライフサイクル(life cycle)システム,製品,サービス,プロジェクト又は人が作った他の実体の構想から廃止までの漸進的な発展。… 全てのソフトウェアシステムにはライフサイクルがある。" JIS X 0160:2021
- ^ "ライフサイクルモデル(life cycle model)段階に編成されることもあるライフサイクルに関係するプロセス及びアクティビティの枠組み" JIS X 0160:2021
- ^ "ライフサイクルプロセスと呼ばれる,システムのライフサイクルの定義に使用できる,一まとまりのプロセスの集合" JIS X 0160:2021
- ^ “IEEE Standard Glossary of Software Engineering Terminology,” IEEE std 610.12-1990, 1990.
- ^ Sommerville, Ian (2007年) [1982年]. “1.1.2 What is software engineering?”. Software Engineering (8th ed. ed.). Harlow, England: Pearson Education. pp. P. 7. ISBN 0-321-31379-8 . "Software engineeering is an engineering discipline that is concerned with all aspects of software production from the early stages of system specification to maintaining the system after it has gone into use. In this definition, there are two key phrases: 1. Engineeering discipline Engineers make things work. They apply theories, methods and tools where these are appropriate [. . .] Engineers also recognise that they must work to organisational and financial constraints. [. . .]
2. All aspects of software production Software engineering is not just concerned with the technical processes of software development but also with activities such as software project management and with the development of tools, methods and theories to support software production." - ^ F. L. Bauer (1972年). “Software Engineering”. Information Processing (North-Holland Publishing Co.) 71: 530–538.
- ^ Akram I. Salah (2002年4月5日). “Engineering an Academic Program in Software Engineering”. 35th Annual Midwest Instruction and Computing Symposium. 2006年9月13日閲覧。: "For some, software engineering is just a glorified name for programming. If you are a programmer, you might put 'software engineer' on your business card—never 'programmer' though."
- ^ Mills, Harlan D., J. R. Newman, and C. B. Engle, Jr., "An Undergraduate Curriculum in Software Engineering," in Deimel, Lionel E. (1990年). Software Engineering Education: SEI Conference 1990, Pittsburgh, Pennsylvania, USA, April 2-3,.... Springer. ISBN 0-387-97274-9, p. 26: "As a practical matter, we regard software engineering as the necessary preparation for the practicing, software development and maintenance professional. The Computer Scientist is preparing for further theoretical studies..."
- ^ David Budgen, Pearl Brereton, Barbara Kitchenham, Stephen Linkman (2004年12月14日). “Realizing Evidence-based Software Engineering”. 2006年10月18日閲覧。: "We believe that software engineering can only advance as an engineering discipline by moving away from its current dependence upon advocacy and analysis...."
- ^ Sayo, Mylene, What's in a Name? Tech Sector battles Engineers on "software engineering" 2008年7月24日閲覧。
- ^ Parnas, David L. (1998年). “Software Engineering Programmes are not Computer Science Programmes”. Annals of Software Engineering 6: 19–37. doi:10.1023/A:1018949113292 ., p. 19: "Rather than treat software engineering as a subfield of computer science, I treat it as an element of the set, {Civil Engineering, Mechanical Engineering, Chemical Engineering, Electrical Engineering,....}."
- ^ Parnas, David L. (1998年). “Software Engineering Programmes are not Computer Science Programmes”. Annals of Software Engineering 6: 19–37. doi:10.1023/A:1018949113292 ., p. 20: "This paper argues that the introduction of accredited professional programmes in software engineering, programmes that are modelled on programmes in traditional engineering disciplines will help to increase both the quality and quantity of graduates who are well prepared, by their education, to develop trustworthy software products."
- ^ McConnell, Steve (2003年8月). Professional Software Development: Shorter Schedules, Better Projects, Superior Products, Enhanced Careers. Boston, MA: Addison-Wesley. ISBN 0-321-19367-9, p. 39: "In my opinion, the answer to that question is clear: Professional software development should be engineering. Is it? No. But should it be? Unquestionably, yes. "
- ^ Knuth, Donald (1974年). “Computer Programming as an Art”. Communications of the ACM 17 (12): 667–673 . 1974年のチューリング賞講演
- ^ Dijkstra, Edsger W; transcribed by Mario Béland (1993年12月3日; transcription last revised 2004年11月23日). “There is still a war going on (manuscript Austin, 3 December 1993)”. E. W. Dijkstra Archive. The University of Texas at Austin, Department of Computer Sciences. 2007年2月17日閲覧。 “When the term was coined in 1968 by F.L. Bauer of the Technological University of Munich, I welcomed it. [. . .] I interpreted the introduction of the term “software engineering” as an apt reflection of the fact that the design of software systems was an activity par excellence for the mathematical engineer. [. . .]. As soon the term arrived in the USA, it was relieved of all its technical content. It had to be so for in its original meaning it was totally unacceptable [. . .] In the mean time, software engineering has become an almost empty term, as was nicely demonstrated by Data General who overnight promoted all its programmers to the exalted rank of “software engineer”!”
- ^ Parnas, David L. (1998年). “Software Engineering Programmes are not Computer Science Programmes”. Annals of Software Engineering 6: 19–37 ., p. 19
- ^ EDSAC#システムソフトウェアを参照
ソフトウェア工学
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/10/31 15:50 UTC 版)
ソフトウェア工学およびコンピュータプログラミングの分野では、間違ったソフトウェアの使い方をしても、危険な動作や間違った動作、意図しない動作をしないようにするための「防御的プログラミング」という技法がある。不正な入力データが来るかもしれないことを想定してプログラムを記述することで、不測のバグ(不具合)やセキュリティホール(脆弱性)が発生することを防止する。これはフールプルーフと同様の考え方である。 防御的プログラミングは、オペレーティングシステムやデバイスドライバ、ライブラリやアプリケーションソフトウェアなど、様々な層で適用される可能性があるが、プログラムに含まれるすべてのサブルーチンにおいて防御的プログラミングを完全に適用しようとすると膨大な作業工数がかかることになるし、またプログラムの安全性と実行速度はトレードオフの関係になる。そのため、サブルーチンの呼び出し元あるいは呼び出し先でのパラメータチェックなど、どの層が安全性について責任を持つべきか、ということに注目した「契約プログラミング」(契約による設計)といった技法も同時に用いられる。プログラミング言語の仕様として自動化されたチェック機構を設けることで安全性を担保することもある。
※この「ソフトウェア工学」の解説は、「フールプルーフ」の解説の一部です。
「ソフトウェア工学」を含む「フールプルーフ」の記事については、「フールプルーフ」の概要を参照ください。
ソフトウェア工学
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/01/18 09:59 UTC 版)
ソフトウェアエンジニアリングでは、 CI / CDまたはCICDは通常、継続的インテグレーションと継続的デリバリーまたは継続的デプロイのいずれかを組み合わせたプラクティスを指す。 CI / CDは、アプリケーションの構築、テスト、および展開の自動化を実施することにより、開発および運用アクティビティとチームの間のギャップを埋める。現代のDevOpsプラクティスには、継続的開発、継続的テスト、継続的インテグレーション、継続的デプロイ、および開発ライフサイクル全体にわたるソフトウェアアプリケーションの継続的モニタリングが含まれる。 CI / CDプラクティスまたはCI / CDパイプラインは、現代のDevOpsオペレーションのバックボーンを形成する。
※この「ソフトウェア工学」の解説は、「CI/CD」の解説の一部です。
「ソフトウェア工学」を含む「CI/CD」の記事については、「CI/CD」の概要を参照ください。
「ソフトウェア工学」の例文・使い方・用例・文例
ソフトウェア工学と同じ種類の言葉
固有名詞の分類
- ソフトウェア工学のページへのリンク