Glossary of Terms
- Accidental complexity
The complexity in an application resulting from the use of mismatched tools or paradigms of software development.
- Different-language prototyping
A philosophy of prototyping in which the language used for the prototype is different from the language used for the application.
- Essential complexity
The complexity of an application due to the intrinsic qualities of the software itself.
- Multiparadigm language
A programming language that supports both the object-oriented and action-oriented paradigms.
- Paradigm shift
The movement toward a new model of programming from an older model.
- Programming paradigm
A model of developing software.
- Pure object-oriented language
A programming language that supports only the object-oriented paradigm.
- Same-language prototyping
A philosophy of prototyping in which the language used for the prototype is the same as the language used for the end product.
- Software prototype
A model of an application built to test the feasibility of a software design, implementation, or solution. It often omits features of extensibility, efficiency, and robustness in favor of a speedy implementation.
- Software prototyping
The act of producing an example of an end-product application in order to test or prove the feasibility of a particular software design, implementation, or solution.
- Iterative model (of software development)
A flexible model of designing software which recognizes that software development is an iterative process that must allow its practitioners the ability to modify existing results in order to fix earlier mistakes.
- Waterfall model (of software development)
A rigid model of designing software which focuses on milestones with well-defined deliverables. The development process is one-way, i.e., once a milestone is reached, earlier process steps cannot be revisited.