Jump to content

Unsolved problems in software engineering

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by CKlunck (talk | contribs) at 03:17, 14 April 2005 (copyedit: "overhead experienced the integration" -> "overhead experienced during the integration"). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

There is not a canonical list of unsolved problems in software engineering; however, there is

  • a list of antipatterns, which might be thought of as statements of poor practice, in contradistinction to the list of design patterns
  • the poorly predictable relationship of project duration to program functionality
  • the systematic detection of software defects
  • the statistical tendency of project to run behind schedule and over-budget
  • the current complexity of most programming languages, in general
  • the current complexity of most applications, to the extent that when programmers leave, companies fail, if those companies have no one else who understands what the programmers have done.
  • the arbitrariness of most software concepts, which is related to historical hardware and software implementation, lack of common standards worldwide, and economic pressures.
  • adding additional manpower to a lagging software project (especially in later parts of the project) may actually cause further schedule slippage due to overhead experienced during the integration of new employees. See The Mythical Man-Month.
  • non-standard implementation of standards or specifications by multiple organizations result in a requirement for implementation specific code and special case exceptions as a necessity for cross-platform interoperability. Notable modern examples include web browser compatibility and web-services interoperability.