This is short for Purposes, Qualities, Realitites, Techie things, and Systems. Here is a formal description:
Notice that (in theory) P can be expressed as
Notice that since this is a model of systems rather than a model of designs, specifications, and implementations it is not natural to make a model of the relation (1st) implements (2nd). Instead the set of systems that are in P and/or R may be described by a separate universe of documentation and the (1st) implements (2nd) connects systems with their documentation. Thus a hierarchy of refinements may or may not exist between documentation, but between systems. Loe Freijs has presented an interesting theory of this relation and the structure of designs[ Freijs93].
Notice that much of the published information on software development
is about the T factors. These define the limitations on what the software
development team can do to produce a better system. Here are some of
the limitations that are subsumed under the T factors:
Net
My focus here is on the essence of the engineering ethic: making something more effective.
By Knaster-Tarski Theorem
[Knaster29]
The Do-Nothing Option
One T is doing nothing(Id(@S)). The T's available to us are a subset of all
possible changes that might be made, and if we can carry out two or more
changes then any sequence of them is also a valid change. So we can
assume that we have a monoid of T's
Dangerous Techniques
Certain operations annihilate the system that they operate on, in the sense
that there are maps in m:@S->@S such that for a given A:@S, m(A)={}. These are
not useful techniques and so we suppose these are not part of those we might
apply,
Effect of T on P
A technique can change the purposes that a system satisfies:
Fot t:T, τ(t)::=rel[ π:@Π, π':@Π] (for all s:π (t(s) in
π').
. . . . . . . . . ( end of section Properties of the T's) <<Contents | End>>
Assume that costs and qualities accumulate as successive changes are made.
A triple in S><T><S can model a particular change to the system, and can have a value associated with it by:
We have an induced relation between systems:
The Travelling Salesperson Problem demonstrates that finding an optimal design is an NP-complete problem. The Busy Beaver problem for Turing Machines is an optimization problem as well (longest time), so it is clear that some Optimization problems are unsolvable.
If we can treat S as a topological space with
Simon's Satisficing heuristic - good enough now, is better than the best never[Simon 69, Dasgupta 91].
Iterative Improvement or Evolution
A solution is stable with respect to a given quality if all changes can make it worse.
By analogy with Parieto's economic analysis there is probably a system from which all changes decrease some quality:
However some equilibria are not optimal.
Another attempt to optimize complex systems leads to the paradoxical trap of sub-optimization. In sub-optimization the problem is decomposed into parts and each part optimized separately. Although this is often successful there is no reason to expect the whole to be optimal as well. ...
. . . . . . . . . ( end of section Theory of Values) <<Contents | End>>
Structure
A design is structurally stable with respect to a factor if small changes in that factor leave the structure unchanged. Values of factors where this is not so are said to be on a 'catastrophe'[Thom, ...].
. . . . . . . . . ( end of section Structure) <<Contents | End>>
Proofs
Proof of 8
Proof of 9
See the definition of a monoid,
[ math_33_Monoids.html ]
}=::DESIGN
. . . . . . . . . ( end of section A Theory of Design) <<Contents | End>>
End