Development Process Model:
- Prototype: Build a prototype that proves the concept and embodies all or part of the understood problem solution but no more than that. Observe: DoTheSimplestThingThatCouldPossiblyWork
- ReverseEngineer: Create and modify requirements and design from the prototype and user feedback. This creates the documentation.
- Refactor: Adjust implementation for clarity and simplicity of design.
- Test: UnitTest and IntegrationTest until the SoftwareEngineers are happy.
- Validate: BlackBoxTest? in the user environment until requirements are covered.
In large scale projects, the
DivideAndConquer principle is applied before attempting to prototype, if possible. The objective is to produce a comfortable chunk that is practical to prototype. The process is recursive until this comfort objective is felt for each subcomponent.
In VeryLargeScale? systems, the need to prototype a MetaModel may be present. Complexity of inter-relationships of components may present a significant case. Here, a MetaModel realized by a collection of TestStub?s that simulate portions of the ExternalBehavior? as presented to the interface (such as message timings) may be desirable. For example, a function that draws a complex shape or queries a complex database may return a message when completed. The granular level is only interested in the completion message. Putting in a test stub with a simple pseudo-random number generator to produce reasonable reply timing may be sufficient to test functionality of the MetaModel as realized in code.
--KirkKitchen
CategoryAnalysis