Abstract: | The reliability notions that have worked so well for hardware do not work for software. It is not just reliability issues that makes software engineering different than most traditional engineering disciplines, but fundamental, usually unrecognized paradigms. Twelve assumptions that are rarely questioned in traditional engineering fields are explored and each is shown not to hold in software engineering. These differences between software engineering and traditional engineering are often at the core of misunderstandings between their practitioners. This revised version was published online in June 2006 with corrections to the Cover Date. |