stapsgewijze verfijning
stapsgewijze verfijning verwijst naar de geleidelijke verfijning in kleine stappen van een programmaspecificatie in een programma. Soms heet het top-down ontwerp.De term stepwise refinement werd voor het eerst gebruikt in het artikel programme Development by Stepwise Refinement by Niklaus Wirth, de auteur van de programmeertaal Pascal en andere belangrijke bijdragen aan software design en software engineering, in the Communications of the ACM, Vol. 14 (4), 1971, blz.221-227.
Wirth zei: “het wordt hier beschouwd als een opeenvolging van ontwerpbeslissingen betreffende de ontleding van taken in subtaken en van gegevens in datastructuren.”
we gebruiken de term hier voornamelijk om de ontwikkeling van een methode uit zijn specificatie te beschrijven. We zullen kleine stappen zien, zoals het breken van een statement op hoog niveau in een reeks van statements, het introduceren van een lokale variabele, het vertalen van een Engelse statement in Java, en het introduceren van een methode.
tijdformaten veranderen
we ontwikkelen een functie om een tijdstip van de dag te vertalen van 24-uursformaat naar conventioneel AM-PM-formaat. Drie belangrijke soorten stapsgewijze verfijning worden gebruikt: het implementeren van een taak als een reeks van 3 subtaken, het maken van een verfijning in een case analyse in plaats van direct in Java, en het gebruik van het mañana Principe. De video duurt 6 minuten. Lees het hier. tijd.pdf.
Angliciseren een geheel getal
Angliciseren betekent aanpassen (een vreemd woord, naam of zin) aan het Engelse gebruik. Volgens het Merriam-Webster online dictionary was het eerste bekende gebruik van het woord in 1710. Hier ontwikkelen we een methode om gehele getallen te angliciseren —om gehele getallen als 1710 om te zetten in woorden: duizend zevenhonderd tien. Het is verbazingwekkend hoe stapsgewijze verfijning resulteert in een eenvoudige methode, en de ontwikkeling omvat recursie op een natuurlijke manier. De video 8,2 minuten lang. Lees het hier: anglicize.pdf
het evalueren van een expressie
we ontwikkelen een methode die de waarde van expressies als deze evalueert en retourneert: “52 + 71 -1 -652 “. Twee belangrijke technieken worden gebruikt (1) Structuur een lus om de structuur van de gegevens die het verwerkt weer te geven. (2) mañana Principe. De video duurt 4: 51 minuten. Lees het hier: eval.pdf
Edgar Allan Poe and “The Raven”
“The Raven is een gedicht van Edgar Allan Poe. Poe schreef ook een essay getiteld “The “Philosophy of Composition”, waarin hij beschrijft hoe hij “The Raven”ontwikkelde. Het is pure top-down ontwerp / stapsgewijze verfijning! Klik op de afbeelding aan de linkerkant om ons verslag van het te bekijken, met Paul Gries lezen delen van het gedicht. Klik voor de raaf en het essay:
in deze video ‘ s heb je gezien dat stapsgewijze verfijning op verschillende manieren wordt gebruikt:
1. Het uitvoeren van een taak als een opeenvolging van taken.
2. Het verfijnen van een moeilijk probleem in twee stappen in plaats van één: eerst een case analyse geven, dan vertalen naar Java.
3. Met behulp van het mañana principe: het zien van de noodzaak van een methode, het stoppen en schrijven roept het op, en dan later (morgen, mañana) het schrijven van de methode lichaam.
4. Afwisselend testen met ontwikkeling: na elke stap van de ontwikkeling, test of de ontwikkeling correct was.
5. Invoering van een lokale variabele voor efficiëntiedoeleinden.
6. Het breken van een ontwikkeling in verschillende stukken. Bijvoorbeeld, uitzoeken hoe om te gaan met het gehele getal 234 zonder zorgen te maken over anglizing het (produceren 234/100, “honderd”, en 234% 100) en dan uitzoeken hoe te angliciseren 234/100 en 234% 100.
7. Structureren van een lus om de structuur van de gegevens die het verwerkt weer te geven.
8. Scheiding van zorgen: een belangrijk punt is om zich te concentreren op één ding tegelijk en het goed te behandelen. De zinsnede separation of concerns werd bedacht door Edsger Dijkstra.