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

Reply via email to