Provable Quality |
|
To realize a set of processes which deserves the name Provable Quality, we remain steadfast advocates of these core development steps:
Only when requirements are precisely known and agreed to by all parties is it possible to define the scope of development. Determining costs cannot be done without clearly defined boundaries.
In the course of detailing software system requirements we discover the requirements for doing business, information flows, physical processes, and the market payoff of business activities.
These issues and the prototypes described below enable ROI calculations.
Once the development boundaries are known, the application can be blocked out in terms of architecture and user interface storyboards. Prototype code and interfaces may be built and tested to determine precisely how requirements will be met.
Given the requirements, scope documents, prototypes, and storyboards, plus the information learned about business operations, we can determine:
Only when the above are determined to a satisfactory degree may viable decisions be made as to the feasibility of the project and the ultimate scope of the system.
Logical proofs are those that follow the principles of mathematical proof, i.e., Hypothesis, Conclusion, and Proof using known and constructed Theorems, Lemmas, and Corollaries. These proofs may be constructed for many elements of software systems such as algorithms (e.g., sorting and cubing), mathematical calculations (e.g., financial formulas), and complex conditional structures, to name a few procedural examples.
A common example of proof in software systems development is the set-theoretical proof of database structural design, wherein tables (sets), columns (elements), and relationships are converted to mathematical notation and proved in the language of set theory and first order logic.
Empirical proofs are experiments that assert some behaviour (the hypothesis, i.e., initial or hypothesized conditions) and seek to prove compliance (the conclusion or assertion, i.e., expected behaviour) via experiments that observationally prove or indicate the conclusion (or not). We do empirical proofs when it is not possible or too costly to prove a behaviour via pure logic.