dinsdag, november 22, 2005

Website development

Als je ergens midden in zit zie je vaak goed de details. Maar je moet afstand nemen om de grote lijnen te zien. En op die manier heb ik na kunnen denken over het maken van een websites, maar nu van een afstand ;)

Hoewel UML prima geschikt is voor OO ontwikkeling is er geen model specifiek voor web-development. Terwijl er toch een groot aantal webapplicaties ontwikkeld worden. Een van de grootste krachten van UML zijn de use-cases. Samen met de klant kun je zo op een hoog abstract niveau de functionaliteit van een systeem bepalen. En als je eenmaal die overeenstemming hebt weet je iig dat je het over hetzelfde hebt.

Nu zijn use-cases voor een website niet erg handig, het gaat vaak niet alleen om wat een gebruiker kan, maar ook waar en hoe het eruit ziet. Daarom wordt er vaak een design gemaakt. En wordt het design leidend gemaakt in het ontwikkel proces. Echter is een design vaak toereikend. Uitzonderingssituaties worden vaak niet gevonden of ontworpen. Eigenlijk zou je het moeten combineren met use-cases. En zo blijf je bezig. Er zijn verschillende tools die het mogelijk maken om een website te ontwerpen. Maar die gaan vaak uit van een statische boomstructuur waarop je componenten als tekst, plaatjes, javascript en formulieren kunt zetten. Vaak hebben ze nog een optie om onderlinge links aan te geven. Maar daar houd het al snel op. Veel te gedetailleerd en absouluut niet flexibel of handig voor dynamische sites.

Soms moet je iets simpels maken om het beheersbeer te maken. Als je op een hoog niveau naar een website kijkt is het niets anders dan een aaneenschakeling van pagina's. En elke pagina heeft content en acties die de gebruiker op deze pagina uit kan voeren. Elke actie heeft een reactie op het systeem (anders is het geen actie).

Als je op deze manier met een klant om tafel gaat zitten kun je per pagina bepalen wat er op moet komen en wat welke acties de gebruiker kan doen. Per actie beschrijf je kort wat er gebeurd. Daarna kan dit model dienst doen als bron voor het design, als uitgangspunt bij bepalen van de usecases en calculatie van de kosten.

Geen opmerkingen: