Sunday 3 July 2011

Debates within software engineering

Debates within software engineering

Ambiguity and controversy

Typical formal definitions of software engineering are:
  • "the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software".[23]
  • "an engineering discipline that is concerned with all aspects of software production"[24]
  • "the establishment and use of sound engineering principles in order to economically obtain software that is reliable and works efficiently on real machines"[25]
The term has been used less formally:
  • as the informal contemporary term for the broad range of activities that were formerly called programming and systems analysis;[26]
  • as the broad term for all aspects of the practice of computer programming, as opposed to the theory of computer programming, which is called computer science;[27]
  • as the term embodying the advocacy of a specific approach to computer programming, one that urges that it be treated as an engineering discipline rather than an art or a craft, and advocates the codification of recommended practices.[28]
Many people believe that software engineering implies a certain level of academic training, professional discipline, adherence to formal processes, and especially legal liability that often are not applied in cases of software development. A common analogy is that working in construction does not make one a civil engineer, and so writing code does not make one a software engineer. It is disputed by some - in particular by the Canadian Professional Engineers Ontario (PEO) body, that the field is not mature enough to warrant the title "engineering". The PEO disputed that "software engineering" was not an appropriate name for the field since those who practiced in the field and called themselves "software engineers" were not properly licensed professional engineers, and that they should therefore not be allowed to use the name.[29]

No comments:

Post a Comment