Design patterns en emergent architecture richt zich op de toepassing van design patterns om te voldoen aan niet-functionele eisen en om een softwarearchitectuur te verkrijgen die bestand is tegen software-evolutie op een emergent manier.
Het basisidee van de cursus is dat niet-functionele verbeteringen worden aangebracht door een softwareapplicatie te transformeren en te refactoren met behulp van patronen. Een belangrijk aspect is het vormen van interfaces voor componenten op een manier die integratie gemakkelijker maakt door achterwaartse compatibiliteit met bestaande clientcode te garanderen.
Het programma biedt een gezonde mix van theorie en oefeningen. In de oefeningen moeten de deelnemers een patroon selecteren om een bestaand ontwerp te verbeteren op een bepaald niet-functioneel aspect. Typische aspecten zijn schaalbaarheid, hergebruik, uitbreidbaarheid en portabiliteit. De laatste halve dag van de cursus behandelt verschillende architectuurpatronen van Buschmann et al. en laat zien hoe deze architecturen kunnen worden gerealiseerd met behulp van de ontwerppatronen door stapsgewijze transformaties uit te voeren.
De trainers Onno van Roosmalen en Martijn Ceelen hebben deze training onlangs aangepast aan scrum en andere agile processen.
Deelnemers moeten inzicht hebben in objectgeoriënteerde technieken, werkkennis hebben van een gangbare objectgeoriënteerde programmeertaal (C++, Java, C#), kennis hebben van syntaxis en semantiek van de meest gebruikte UML modelleerconcepten.
De cursus vereist het vermogen om te abstraheren van details in de broncode met behulp van UML klassendiagrammen. Regelmatig worden voorbeeldprogramma’s getoond. De cursus gaat vergezeld van broncode in Java en uitvoerbare bestanden met betrekking tot de casestudies.
Meer informatie en aanmelden