Learn More
By its very nature, software development consists of many knowledge-intensive processes. One of the most difficult to model, however, is requirements elicitation. This paper presents a mathematical model of the requirements elicitation process that clearly shows the critical role of knowledge in its performance. One meta-process of requirements elicitation,(More)
The classic waterfall model of software engineering is used throughout the production software development community. The escalating costs associated with software development and the unsatisfactory reliability, performance, and functionality of the resulting software have motivated software engineers to develop new alternate models of software development(More)
The two traditional types of software prototyping methods, throwaway prototyping and evolutionary prototyping, are compared, and prototyping's relation to conventional software development is discussed. Operational prototyping, a method that combines throwaway and evolutionary prototyping techniques by layering a rapid prototype over a solid evolutionary(More)
Effective requirements elicitation is essential to the success of software development projects. Many papers have been written that promulgate specific elici-tation methods. A few model elicitation in general. However, none have yet modeled elicitation in a way that makes clear the critical role played by situational knowledge. This paper presents a unified(More)
Because the product of software engineering is not physical, physical laws do not form a suitable foundation. Instead, software engineering has had to evolve its principles based solely on observations of thousands of projects. The following are probably the 15 most important principles: (1) make quality number one priority; (2) high-quality software is(More)