OO Ontwikkeling

Maandag, 16 oktober 2000
Het zijn vragen die in elk project terug komen. Deze week m'n persoonlijke antwoorden.

Input voor OO software ontwikkeling

  1. Conceptueel model

    Logisch Ontwerp Het conceptueel model is het resultaat van modellering op logisch niveau.
  2. GUI design

    Geschetst prototype Voor een web applicatie kan dit een HTML prototype zijn
    • met de exacte layout, look & feel en met de juiste cascaded style sheet. Voor een internet applicatie moet de HTML code een variabele schermgrootte aan kunnen.
    • met entiteit en attribuut naam op de plaats van variabele informatie en een beschrijving van afgeleide gegevens.
    • een beschrijving van bijzonderheden, zoals ingewikkelde access paths of complexe logica.
    • een gebruiker die achter het ontwerp staat, na een Discount Usability Test.
Iteratie, een kenmerk van Rapid Application Develoment Voor een efficiënt ontwikkeltraject moeten zowel het conceptueel ontwerp als het GUI ontwerp stabiel zijn. Rapid Application Development kenmerkt zich door iteratie, diverse ontwerp versies, waarbij de ene versie voortbouwt op de vorige.

Een goede ontwerper zal het ontwerp in de ontwerp fase fijn slijpen, voordat het programmeren begint. Natuurlijk is het altijd mogelijk om software aan te passen, maar dat is naar verhouding vrij duur en tijdrovend. Liever in 1x goed.

Stappen bij OO software onwikkeling

Het volgende diagram toont een zeer efficiënte aanpak met minimale afhankelijkheid tussen de stappen.

Een OO aanpak, met een drie lagen architectuur biedt meer mogelijkheden om parallel te ontwikkelen.

  1. Begin met Object modellering van Classen, en parallel daaraan het ontwerp van het fysieke database model.
  2. De Object classes krijgen dummy get methodes. De GUI programmeurs kunnen hiermee alvast beginnen te coderen. Zij hoeven zich geen zorgen te maken om de implementatie van de methodes. Die implementatie komt later wel. Dit is een mooi voorbeeld hoe encapsulatie de afhankelijkheden kan minimaliseren.
  3. De database specialist en OO specialist spreken een interface af, om gegevens uit de data-laag naar instances van objecten te mappen. Een voorbeeld van zo'n interface is een alias voor kolommen in een SQL result set, of een XML achtige hiërarchische boomstructuur.
  4. In de database en objectenlaag komt nu de echte coding in plaats van de dummy methodes. In de GUI-laag verandert er niets. Toch begint het systeem echt te werken, data element voor data element, scherm voor scherm.
Wanneer alle methodes af zijn kan de geïntegreerde systeem test beginnen.

De software ontwikkelaars hebben elke methode, elk scherm al getest. De test van de hele applicatie concentreert zich dan ook meer op het geheel. Werkt de combinatie van de schermen goed?

Tot de volgende week!
Henk Jan Nootenboom