Software engineering

related topics
{system, computer, user}
{theory, work, human}
{work, book, publish}
{school, student, university}
{law, state, case}
{math, number, function}
{company, market, business}

Software engineering (SE) is a profession dedicated to designing, implementing, and modifying software so that it is of higher quality, more affordable, maintainable, and faster to build. It is a "systematic approach to the analysis, design, assessment, implementation, test, maintenance and re-engineering of a software by applying engineering to the software".[1] The term software engineering first appeared in the 1968 NATO Software Engineering Conference, and was meant to provoke thought regarding the perceived "software crisis" at the time.[2][3] Since the field is still relatively young compared to its sister fields of engineering, there is still much debate around what software engineering actually is, and if it conforms to the classical definition of engineering.[4] The IEEE Computer Society's Software Engineering Body of Knowledge defines "software engineering" as the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software.[5] It is the application of Engineering to software because it integrates significant mathematics, computer science and practices whose origins are in Engineering.[6]

Software development, a much used and more generic term, does not necessarily subsume the engineering paradigm. Although it is questionable what impact it has had on actual software development over the last more than 40 years,[7][8] the field's future looks bright according to Money Magazine and, who rated "software engineering" as the best job in the United States in 2006.[9]


Full article ▸

related documents
Garbage In, Garbage Out
Usability testing
Ubiquitous computing
Douglas Engelbart
Collaborative software
Learning object
Software documentation
Short-term memory
Interactive art
John Mauchly
Parallel processing
Regression testing
High Performance File System
Fault tree analysis
Network Layer
System dynamics
Audio editing
Acoustic coupler
Windowing system
Mobile ad-hoc network
Video editing software