Software Architectuur Over de samenhang der dingen = Over de connecties tussen componenten Over de afhankelijkheden tussen modules Over de belangen van belanghebbenden Over de ontwikkeling van versies
inhoud Toelichting op artikelen in de reader ‘modulariteit’ en ‘interface’
De reader Wat is software architectuur en waarom is het belangrijk? Wat zijn kwaliteitskenmerken en wie hebben er belang bij? Op welke manier(en) beschrijf je software en waarom?
Wat is software architectuur en waarom is het belangrijk? Werking en structuur van software Kwaliteiten van software Architectuur beschrijving: Beschrijving van de werking en structuur van software. Met het oog op verschillende belangen/criteria/doelgroepen
Software architectuur Vergelijk gebouwen neerzetten Basis waarop meerdere versies ontwikkeld kunnen worden Kwaliteitskenmerken Verschillende belangen in de gaten houden
Samenhang der dingen Tussen fases in de ontwikkeling Tussen ontwikkelaars Tussen verschillende producten
Pijltjes en blokjes Onderdelen, modules, componenten. Connecties, afhankelijkheden, dataflow, controlflow. Alles om een eenvoudig schematisch overzicht te geven. Straks meer hierover.
kwaliteitskenmerken Functioneel –Use cases, scenario’s, specificaties, Niet-functioneel –Runtime Perfomance Betrouwbaarheid Beveiliging Usability –Anders Onderhoudbaarheid Testbaarheid Herbruikbaarheid Configureerbaarheid Schaalbaarheid
belanghebbenden Eindgebruikers Ontwikkelaar Opdrachtgever Toeleverancier Beheerder Ondersteuning Assessoren Communicatoren Tester En wie zijn de belanghebbenden in jouw project?
En hoe beschrijf je software op een effectieve manier voor de verschillende belanghebbenden met het oog op diverse kwaliteitscriteria Viewpoints ! Niet één maar verschillende beschrijvingen, ieder met een eigen doel
Pijltjes en blokjes Een beschrijving begint met een schematische weergave van ‘de’ structuur van de applicatie. Twee belangrijkste ‘viewpoints’ 1.Werking ( functional viewpoint ) 2.Bouwplan ( developmental viewpoint ) Maar ook: 3.Informatie (datamodellen, stromen, rechten)
Voorbeelden uit de klas
UML Standaard voor het tekenen van pijltjes en blokjes
modulariteit Een systeem bestaat uit onderdelen –Onderdelen zijn vervangbaar/herbruikbaar Ieder onderdeel heeft één functie –Wel omschreven Onderdelen zijn onderling afhankelijk –Zo min mogelijk Onderdelen zijn aan elkaar gekoppeld –Onafhankelijk van implementatie
Trapaapjes
Interface Hoe is het ene onderdeel aan het andere gekoppeld? Lijst functies/methodes –Naam –Parameters –Datatypen Betekenissen en relaties Protocollen/connecties –HTTP/XML, HTTP/SOAP, procedure-call, events
basisprincipe voor goed ontwerp: interface eerst, dan implementatie Bepaal eerst hoe de onderling dingen samenhangen, dan pas hoe de dingen intern werken. Of: Maak eerst afspraken tussen ontwikkelaars van modules, ga dan de modules maken.
opdracht Maak twee diagrammen voor je applicatie –Werking –bouwplan Specificeer de interfaces en afhankelijkheden