On Fri, Oct 15, 2010 at 3:20 AM, Casey Ransberger <[email protected]> wrote: > I wonder: what if all we did was write the tests? What if we threw some kind > of genetic algorithm or neural network at the task of making the tests pass?
I've been having a similar thought for a while now, but its not really the test as such, it is more the declarative nature of the test. How would the programming model look like if the system was derived from formalized requirements (tests)? How would the system be derived (genetic algorithm)? My thinking is more focused on the programming model and how to divide the artifact development between the correct people than actual algorithms for auomatic derivation. F.ex. architectures could be expressed as libraries, a constraint solver or genetic algorithm can be fed the high level requirements and mine the architecture libraries to generate a basic architecture. The generated architecture concepts can then be referenced in new requirements to derive functions. Now the trick is, i believe, in stratifying the requirements when formalizing them. Low-level requirements is often dependent on solutions picked from high-level requirements. I.e. the "color of the navigation menu should be red" is not at the same level as "the system presents a webshop." Still the dependency between the requirements is interesting to focus on. Would one revisit the choice of "webshop" maybe there is no "navigation menu" that can "be red". I anticipate that the problem in developming and maintaining such a system is to keep referential integrity between requirements. Navigating Java in a modern IDE f.ex. makes it easy to find all references of an identifier which is vital when assessing the imact of a change. In a similar style high level requirements that affect lower level requirements must be easy to trace. To achieve such a system I have been thinking of implementing a meta language system in which languages can be declared, mixed and anlyzed together. By declaring transformations between langaugas the system would allow derived concepts in one language to depend on declared expressions in another language and assert referential integrity. BR, John _______________________________________________ fonc mailing list [email protected] http://vpri.org/mailman/listinfo/fonc
