kwitters zei:
Dit lijkt mij de agile way van developen, maar dan niet zo negatief voorgesteld

. De code-test cycles zitten duidelijk wel in agile development (al dan niet geautomatiseerd met unit tests).
De methode die ik beschreef is "ambachtelijk programmeren". Niet echt professioneel te noemen, eerder "prutsen tot het werkt".
Uit het document dat je gaf maak ik eerder op dat agile development draait om het idee dat specificaties niet 100% gekend zijn op voorhand. Dat idee impliceert nergens dat men "schrijf - test - fix" moet gebruiken. Dat idee impliceert enkel dat men naar boven moet kunnen reizen in het methodologie-plan.
Dit is een mogelijk methodologieplan met wiskundige modellering:
http://wiki.di.uminho.pt/wiki/pub/LerNet/KickOffMeeting/alfa05sl.pdf. Slide 6 toont het model, dat duidelijk geen waterfall model is, maar een model dat op elk moment nieuwe requirements kan incorporeren.
Ik wil ook even wijzen op het feit dat in je link duidelijk staat dat de methoden van "agile development" niet nieuw zijn en dat ze enkel ontstaan zijn uit het idee van enkele mensen die menen dat er vroeger reeds goede software geschreven is zonder engineering. Inderdaad, het kan, maar het is verre van professioneel. De enige reden waarom het aanvaard wordt is omdat we nooit anders gekend hebben, cfr alle operating systems met hun bugs. Maar noem je dat "succesvolle" software? Ik alleszins niet.
Je specificaties ondubbelzinnig neerschrijven in uw model lijkt mij een duidelijk waterfall model. Agile development neemt op voorhand aan dat de specificaties al fout zijn. Dus nee, agile development en software engineering zijn 2 verschillende zaken.
Het model hierboven toont duidelijk aan dat formele methoden niet eisen dat specificaties onveranderlijk zijn.
Je hebt sowieso altijd specificaties nodig, anders weet je niet wat te bouwen. Of men uitgaat van het principe dat specificaties fout zijn of niet, verandert weinig aan de mogelijkheid om de implementatie van de specificaties wiskundig te kunnen bewijzen. Nogmaals, het veranderlijke van specificaties is net een argument voor het gebruiken van wiskundige methoden bij software development. Het kan immers voorvallen dat men denkt dat men een nieuwe specificatie heeft, maar dat blijkt dat de nieuwe specificatie equivalent is aan de voorgaande (te bewijzen met de nodige tools, die momenteel echter nog niet gereed zijn voor industrieel gebruik), waardoor men geen tijd moet steken in het herschrijven van de applicatie om te voldoen aan de nieuwe specificatie.
Dan is er nog het punt van agile development dat ze graag "face-to-face" converseren over het programma (dat claimt wikipedia althans) en daarom weinig op papier zetten. Ook daar bieden formele, ondubbelzinnige specificaties toch een waardevol hulpmiddel om de communicatie bij te sturen. Zo kan men immers beter begrijpen wat de ander bedoelt (hoeveel keren hebben mensen niet moeite om een ander te begrijpen door de ambiguïteit van de taal?).
Formele methoden kunnen dus duidelijk een waardevolle aanvulling vormen voor het agile-development iteratief proces.
Okee, hij heeft dan een ingenieurs-"aanpak". Maar zal de gehele kwaliteit van zijn schilderij dan volledig bepaald worden door zijn ingenieurs-aanpak, of zijn er ook niet-ingenieur (niet wiskundige of formele) zaken die de kwaliteit van zijn schilderij bepalen?
Natuurlijk zal de kwaliteit van het schilderij ook afhangen van hoe de schilder zijn kleuren mengt en ze aanbrengt. Net zoals de kwaliteit van software niet volledig afhangt van hoe goed het model is, maar ook van hoe goed de implementeerder zijn code kan schikken, of hoe een huis niet afhangt van hoe de architect zijn tekening maakt, maar ook van hoe goed de metser de stenen kan metsen.