Lesplan module 01
Introductie software engineering
Inleiding
In deze module vertel je bij het whiteboard hoe je van Java broncode naar een werkend programma komt (afhankelijk van de voorkennis van de trainee(s)).
Doelen
-
Hoe schrijf je Java code
-
Wat is Java en de Java Virtual Machine
-
Hoe deel je je code met andere team leden
-
Hoe wordt jouw Java code een programma
-
Hoe zit een programma als ParnasSys, SOMtoday of EduArte in elkaar
-
Hoe wordt een systeem als ParnasSys gebouwd
Voorkennis
-
Geen
Voorbereiding
-
Zorg voor een whiteboard
-
Stel de student van te voren een aantal vragen om er achter te komen wat het niveau is
Inhoud
Van code naar applicatie
Leg hierbij uit wat Javac is en doet, wat een JVM is en doet en wat een JAR file is en doet. Teken het proces van source file naar class file en de rol van Eclipse.
Teken een applicatie met een database aan de onderkant, en een browser aan de bovenkant.
Leg uit wat de database doet en wat SQL daarbij voor rol speelt. Bijv. tabellen en kolommen. Leg uit dat het programma werkt met begrippen als Leerling en dat een Leerling gedrag heeft. Leg uit dat een tabel kolommen heeft als geboortedatum en naam, en dat je om de gegevens van de database naar de applicatie en de gebruiker te krijgen je gebruik maakt van code van anderen (Hibernate) en dat dat aangeleverd wordt als een JAR bestand, dat we gebruiken in onze applicatie.
Leg uit dat de applicatie o.a. HTML uitspuugt en daarvoor gebruiken we Wicket om van Java naar HTML te gaan, ook een bibliotheek van externen.
Om deze bibliotheken te beheren gebruiken we Maven. De bibliotheken komen van een centrale plek op het internet, en wij hebben daar een kopie van onder de naam Artifactory. Teken dit uit op het bord.
Reden voor Artifactory: als iedereen op de wereld met de centrale plek zou communiceren om de gegevens op te halen kost dat erg veel geld, en bandbreedte, dus maken we voor onze 50 interne ontwikkelaars een lokale kopie, die zelf met één connectie naar de centrale plek werkt.
Leg ook uit dat je vanuit huis niet zomaar bij onze Artifactory komt omdat daar ook onze eigen broncode op staat, en dat we niet willen dat Magister daar zomaar bij kan. Daar heb je het VPN voor nodig.
Applicatie architectuur
Leg uit wat een applicatie bij ons doet: JSON, JPGs, PDFs, HTML uitspuwen, JavaScript en CSS.
Daarna leg je uit hoe een applicatie er gelaagd uitziet. Sta erbij stil dat de bovenste laag alleen HTML genereert voor de browser, of berichten voor andere applicaties (XML, JSON, iOS applicaties, of bijv. DUO). Leg uit dat er een database onder de applicatie ligt, en dat er soms een scheiding is tussen de database en REST aan de ene kant, en de HTML generende applicatie (of iOS/Android applicaties) aan de andere kant.
Leg uit dat de database Oracle, MySql, Postgresql of SQLServer kan zijn. Leg uit dat voor de communicatie gebruik gemaakt wordt van JDBC. Hibernate gebruikt JDBC om van SQL Java objecten te maken.
Geef aan dat er verschillende lagen in de applicatie zijn:
-
Datalaag
-
Businesslaag
-
UI laag
Geef aan dat het Java proces op de server "Applicatie server" heet, en bij ons door Tomcat of Wildfly geïmplementeerd is. Illustreer de rol van de server door aan te geven dat deze honderden, duizenden gebruikers van de applicatie in goede banen leidt en er voor zorgt dat er op een standaard manier gecommuniceerd kan worden met andere componenten.
Ontwikkelproces
GIT
Naast het schrijven van code moet je je code wel delen met anderen. Daarvoor gebruiken we Git. Leg uit hoe git hier in dit proces werkt met github en je lokale laptop.
Vergeet ook niet te zeggen dat wanneer het alleen op je laptop staat, de code niet bestaat (want bus → geen code, koffie over laptop → geen code). Code moet naar github.
Hoe werk je ongeveer per dag? Haal wijzigingen van team binnen naar lokaal, doe je eigen wijziging, controleer, deel wijziging via pull request, code review, pas aan, deel, code review, repeat, test en naar master en de rest van het team.
Jenkins
Leg uit dat we een buildserver hebben met de naam Jenkins, en dat deze elke wijziging opnieuw bouwt om te controleren of er niets mis is.
OTAP
Dan gaat de code van ontwikkel naar test, naar acceptatie naar productie. Leg dit proces uit.
SCRUM
Leg kort het proces van SCRUM uit. Planning, sprint, daily standups, iteraties, demo en retrospective.
JIRA voor de bugs
Meldingen van gebruikers komen in JIRA, als je branches en dergelijke goed noemt, worden die automatisch gekoppeld aan JIRA zodat je dat later weer kan terug zien.
« Vorige module Volgende module »