Technologie en Interactie 3.2: software architectuur Manual IAM-TDI-V2-Technologie en Interactie. Jaar 0809 blok 2 Oktober 2008 Fons van Kesteren
1/8
Inhoud Technologie en Interactie 3.2: software architectuur .................................................. 1 Inhoud ................................................................................................................... 2 Doelstellingen ....................................................................................................... 3 Zelfstandig eigen maken van een nieuwe technologie ........................................ 3 Software architectuur en kwaliteitskenmerken ................................................... 3 Opdracht................................................................................................................ 4 MVC-framework ............................................................................................... 4 Opensource CMS............................................................................................... 4 ProUse CMS...................................................................................................... 5 Semantisch Web / web3.0.................................................................................. 5 Webrichtlijnen/ microformats ............................................................................ 5 AJAX / RIA....................................................................................................... 6 Programma............................................................................................................ 7 Criteria .................................................................................................................. 8
2/8
Doelstellingen Het vak ‘software architectuur’ heeft twee doelstellingen: - zelfstandig eigen maken van een eigen technologie - software architectuur en kwaliteitskenmerken evalueren
Zelfstandig eigen maken van een nieuwe technologie De wereld van technologie in interactieve media verandert ieder jaar. Een ontwikkelaar zal daarom in staat moeten zijn om zich nieuwe technologieën zelfstandig eigen te maken. Bedrijven zijn daarom ook meer geïnteresseerd in medewerkers die zichzelf nieuwe truckjes kunnen aanleren, dan in medewerkers die een bepaald truckje heel goed kunnen. Iedere developer moet in staat zijn zichzelf nieuwe truckjes aan te leren en doet dat op zijn eigen niveau en binnen zijn eigen interessegebied. Naast het jezelf aanleren zullen bedrijven ook graag zien dat je je kennis overdraagt op collega’s. Op deze manier worden jouw kennis en vaardigheden meer waard.
Software architectuur en kwaliteitskenmerken Er zijn vele wegen naar Rome. En zo zijn er ook vele methodes en technieken om een interactieve applicatie te bouwen. De ene methode is de andere niet. Hoe kan je nu slechte van goede oplossingen onderscheiden? Dit is één van de vragen waar een software architect zich mee bezig houdt. Er is niet zo gemakkelijk een antwoord op te geven. We zullen er in dit vak een begin mee maken. Ten eerste is het van groot belang de verschillende belanghebbenden te identificeren. Is een applicatie goed voor de gebruiker die ermee moet werken, de ontwikkelaar die er mee moet door ontwikkelen, de opdrachtgever die ervoor betaalt, de systeembeheerder die de beveiliging van zijn netwerk moet beheren? Het is de taak van de architect om al deze belanghebbenden bij elkaar te brengen en de belangen goed af te wegen. Daartoe moet hij vooral goed kunnen communiceren over de te maken applicatie. Software is pas ‘goed’ als je de werking ervan kunt uitleggen aan verschillende belanghebbenden.
3/8
Opdrachten Realiseer (een deel van ) je PRO-USE concept volgens één van de onderstaande oplossingsrichtingen. Dit doe je in een samenwerkingsgroepje van maximaal 3 of 4 klasgenoten, die allen dezelfde oplossingsrichting onderzoeken. Dit resulteert in - een werkende demo van de oplossing o ‘schone’ broncode van de oplossing - een documentatie met daarin o plan van aanpak o gebruikte bronnen en gereedschappen o beschrijving van de architectuur van de applicatie o evaluatie van kwaliteitskenmerken - een les voor de klas (+/- 30 minuten) o presentatie o handout o literatuur/websites - persoonlijk reflectieverslag Bij iedere opdracht wordt er gewerkt aan de kwaliteit van het eindproduct of van een deel van het eindproduct voor de PRO-USE opdracht. Er zijn verschillende oplossingrichtingen. De opdrachten verschillen in niveau en aard. Per team werk je aan één oplossingsrichting.
MVC-framework Moeilijk / Programmeren Voor programmeurs/scripters die in staat zijn creërend te programmeren ( dus meer dan kopiëren en aanpassen van bestaande code) en bekend zijn met OOP. Maak een oplossing met een ‘Model-View-Controler-framework’. Het MVC patroon is de laatste jaren erg populair is geworden onder webontwikkelaars. Een MVC framework is een raamwerk waarbinnen het gemakkelijk is websites volgens het MVC patroon te maken. Voorbeelden zijn: CakePHP, RubyOnRails, CodeIgniter. Sites die met zo’n framework zijn gebouwd zijn eenvoudiger te onderhouden omdat de structuur (het MVC patroon) voor iedere ontwikkelaar bekend is of eenvoudig is te leren
Opensource CMS Makkelijk / Programmeren. Voor programmeurs/scripters die wel thuis zijn in PHP/mySQL , maar het liefst bestaande code kopiëren en aanpassen aan eigen wensen. Maak een oplossing met een open source content management systeem, als Joomla, Typo, Drupal, PHPNuke. Met een gratis opensource systeem is het vaak eenvoudig om snel een website op te zetten. Deze CMS-en hebben vaak ook plugins of modules die in de opensource gemeenschap worden ontwikkeld. Het is niet altijd mogelijk om precies te maken wat je wilt, maar met een paar concessies kan je goede resultaten behalen.
4/8
PRO USE CMS Moeilijk / Ontwerp, analyse Voor programmeurs voor wie de code zelf niet zo interessant is, maar zich vooral willen bezighouden met het achterliggende ontwerp. Ontwerp een eigen CMS waarmee verschillende PRO-USE concepten kunnen worden gerealiseerd. Veel PRO-USE concepten hebben belangrijke functionele elementen gemeen. Bijvoorbeeld: inloggen, nieuwe items toevoegen, commentaar geven, categoriseren, etc. Er kan een platform ontworpen worden waarin alle gemeenschappelijke functies ondersteund worden en waarop snel een specifieke PRO-USE toepassing gemaakt kan worden door configuratie van templates en metadatamodellen. Met zo’n PRO-USE CMS ontwerp je optimaal herbruikbare code.
Semantisch Web / web3.0 Moeilijk / Theoretisch Voor wie een kijkje in de toekomst van het web wil nemen en niet bang is voor een beetje theorie, want het semantische web is vooral een toekomstvisie Onderzoek het semantisch web en maak je applicatie klaar voor ‘web 3.0’. In de visie op het internet als een ‘semantisch web’, is het internet vooral een heel grote database met aan elkaar verbonden informatie. Deze informatie wordt vooral beheerd en gebruikt door gebruikers (web 2.0) In de toekomst zal het web zelf intelligent kunnen worden, dan spreken we van het semantische web, omdat de informatie niet slecht ‘tekst’of ‘media-content’ is, maar ook softwarematig ‘begrepen’ kan worden. Het is nu al mogelijk om je content klaar te maken voor deze slimme software door gebruik te maken van XML, RDF, RDF/a, MicroFormats, e.d. Met andere woorden: maak je applicatie geschikt voor een nieuwe doelgroep: slimme software.
Webrichtlijnen / microformats Makkelijk / XHTML&CSS Bouw de front-end van je applicaties geheel volgens de webrichtlijnen van de overheid en waarbij je gebruik maakt van microformats. Ten behoeve van de duurzame toegankelijkheid van websites heeft de Nederlandse overheid een aantal zeer bruikbare criteria opgesteld voor HTML/CSS sites. Met deze richtlijnen worden websites beter toegankelijk voor mensen met een visuele of motorische handicap en voor zoekmachines. Daarnaast zijn de websites beter onderhoudbaar. Behalve deze richtlijnen zijn er ook vele zogenaamde microformats gedefinieerd waarmee informatie in een webpagina meer gestandaardiseerd is, waardoor er verrassende nieuwe toepassingen mogelijk worden.
5/8
AJAX / JQuerie / RIA Moeilijk / technisch Maakt een ‘rich-client’ applicatie voor je pro-use collectie. AJAX en Flash zijn technieken waarmee veel aandacht besteed kan worden aan de gebruikerservaring, dynamische user-interfaces en dynamische interactie tussen database en gebruiker. In een zogenaamde ‘rich-client’ applicatie worden veel bewerkingen uit gevoerd op de cliënt, in de browser. Hierdoor is een directere interactie met de gebruiker mogelijk. Dit in tegenstelling tot een ‘thin’-client applicatie waarin het meeste server-side gebeurt met bijv PHP. Hoe maak je een ‘rich’-client en hoe verloopt de communicatie met de server? Wat zijn de voor en nadelen van dergelijke applicaties?
6/8
Programma In het programma is veel ruimte voor eigen planning en inbreng. Het gaat tenslotte om het jezelf eigen maken van een technologie. Om het proces goed te kunnen beoordelen is er een aanwezigheidsverplichting en is er iedere week een verplichte oplevering van ‘huiswerk’. onderwerpen opleveren 1 Introductie Aanwezigheid 2 3
4
Groepsvorming, opdrachtkeuze, plan van aanpak Bronnen bespreken, plan specificeren, taken verdelen
5
Onderzoek, ontwerp van de oplossing, proof-of-concept Toets literatuur Software Architectuur
6
Consult/ functionering
7
Consult/ functionering
Kerst- en nieuwjaarsvakantie 8 Les voorbereiding, eerste versie van persoonlijk eindverslag
Debriefing en plan van aanpak Lijst met te raadplegen bronnen per persoon, gespecificeerde taakverdeling per persoon Voortgangsverslag afhankelijk van eigen taakstelling Minimaal een V Minimaal één goed probleem per persoon Minimaal één goed probleem per persoon
9
Miniles 1 – 3
Beta versies van individuele bijdragen aan alle eindproducten/verslagen Oplevering deliverables
10
Miniles 4 – 6
Oplevering deliverables
7/8
Criteria De eindbeoordeling wordt gegeven op de volgende criteria: 1 je hebt jezelf aantoonbaar iets nieuws eigen Reflectie verslag gemaakt en toont dat aan in een reflectieverslag. 2 het leerproces is inzichtelijk doormiddel van de Huiswerkopdrachten geleverde huiswerkopdrachten. 3 je demonsteert een werkende (deel-) applicatie. Applicatie 4 je levert opgeschoonde en leesbare broncode Broncode 5 je toont inzicht in architectuurconcepten en Tussentijdse toets kwaliteitskenmerken Documentatie 6 je documenteert de oplossing met één of meer Documentatie eenvoudige architectuur beschrijvingen ( een diagram met toelichting ) 7 je beoordeelt de kwaliteit van je oplossing aan Documentatie de hand van de kwaliteitskenmerken. 8 je draagt je bevindingen over op je Miniles + lesmateriaal collega’s/.klasgenoten.
8/8