Inloggen Geen profiel? Registreer hier.

20151203 Software Architect - Zwijnaarde

Inschrijven
03/12/2015 18:30 — 03/12/2015 21:30

In deze opleiding van 16 sessies komen de vele aspecten waarin een software architect actief is en de kennisdomeinen waarin deze moet onderlegd zijn uitgebreid aan bod. Het is een diepgaande training om een bekwame en gewaardeerde software architect te worden die een leidende rol in een ontwikkelteam zal kunnen uitoefenen. Een sofware architect is verantwoordelijk voor het correct begeleiden van een software ontwikkelingstraject vanuit verschillende invalshoeken zoals: het correct gebruiken van Design Patterns in de code, de implementatie van een flexibele en onderhoudbare Service Oriented Architectuur (SOA), uitvoeren van een passende Object Oriented Analyse en het toepassen van bruikbare Agile Development Practices. Naast klassieke (web)applicaties, gehost vanuit een eigen IT infrastructuur, is er ook de invalshoek van een cloud architectuur van belang om moderne en schaalbare applicaties te bouwen. In een team van developers is een goed opgeleide architect van essentieel belang wil men het software project op een gecontroleerde en gestandaardiseerde manier tot een goed einde brengen.

De opleiding bestaat uit 5 verschillende modules waarbij de toekomstige Software Architect zowel theoretisch als praktisch getraind wordt door een ervaren Senior Software Architect die vanuit zijn ervaring in verschillende development teams de kennis en best practices zal bijbrengen.

PROGRAMMA

Module 1: Design Patterns

Het gebruik van Design Patterns in een software project leidt tot een beter onderhoudbare en flexibele codebase. Het goed inzetten van de juiste patronen vraagt gespecialiseerde kennis en inzichten.

In deze module komen de meeste gebruikte patronen aan bod:

  • Model-View-Controller,
  • Factory,
  • Adapter,
  • Proxy,
  • Singleton,
  • Facade and Visitor.

De patronen worden aan de hand van praktische C# voorbeelden in combinatie met ASP.NET en MVC aangeleerd.

Hands-on oefeningen of demo's die in module 1 'Design Patterns' aanbod komen zijn:

  • Coderen van kleine applicaties waarbij de patronen geïmplementeerd worden,
  • Toepassen vanuit theoretische kennis voor een gegeven requirements-analyse het correcte patroon (of combinatie van meerdere) herkennen en coderen in C# of VB.NET,
  • Het bouwen van een applicatie in 3 verschillende UI technologieën (Winforms, WPF en ASP.NET), waarbij telkens een ander UI design patroon (MVP, MVC, MVVM) zal gebruikt worden,
  • Het bouwen van een .NET Framework library met enkele technische componenten waarin de patronen als Singleton, Adaptor, Factory, Decorator en Observer gecombineerd worden,
  • Er wordt bekeken hoe bestaande frameworks (zoals Enterprise Library) zelf deze patronen toepassen,
  • Er wordt vanuit het Factory patroon dieper ingegaan op het Inversion of Control concept. Er wordt tevens vanuit de praktijk dieper ingegaan op enkele IOC frameworks.

Module 2: Service Oriented Architecture (SOA)

SOA is de meeste gebruikte architectuur in moderne applicaties. Het gebruik van services zorgt voor een 'loosely coupled' implementatie model waarbij user interface losgekoppeld is van de business logica. Dit zorgt voor een hoge flexibiliteit waarbij onafhankelijk van de gekozen user interface technologie een heel open oplossing kan gebouwd worden.

Aandachtspunten in SOA zijn:

  • Service abstraction,
  • Service statelessness,
  • Operation contracts,
  • Data transfer objects.

In deze module komen technologieën als SOAP, WS*, REST, WSDL aan bod en worden praktisch voorbeelden aan de hand van WCF (zowel SOAP als REST) uiteengezet.

Hands-on oefeningen die in module 2: 'SOA' aan bod komen zijn:

  • Er wordt een uitgebreide analyse oefening gemaakt vertrekkende vanuit bestaande requirements. Vanuit een aantal gegeven Use Case leert men Service Interfaces en Data Transfer classes af te leiden. Het resultaat wordt gedocumenteerd via het opzetten van een service description model,
  • SOA in de praktijk: In WCF wordt, via de Service Interfases en DTOs, een stateless implementatie geprogrammeerd. Tevens wordt er dieper ingegaan op WSDL en XSDs en worden er tools gebruikt om proxy code te genereren.
  • Er wordt een uitgebreide referentie architectuur (= Visual Studio Solution) opgezet met alle nodige SOA componenten en lagen. Hierbij wordt er dieper op 'Service decoupling' ingegaan. Deze referentie architectuur wordt uitgewerkt in C# (of VB.NET) en vormt de basis voor het verder ontwikkelen van de applicatie. De functionele code wordt door de docent beschikbaar gesteld.
  • Er worden clients gebouwd die zowel via SOAP als REST met de Service zullen communiceren.
  • In de referentie architectuur zullen er zowel client (UI, Proxies, caching, authorizatie) als server (interfaces, implementation, DTOs, exception shielding layer, hosting, ...) componenten uitgewerkt worden.
  • Er worden Services op verschillende platformen uitgerold: WCF self hosting, Internet Information Server en ook Cloud.
  • Praktijkoefeningen die nodig zijn om een codereview uit te voeren op bestaande codebase voor correct gebruik van SOA concepten af te toetsen komen eveneens aan bod.

Module 3: Object-Oriented Analysis and Design (OOAD)

Het ontwerpen van business logica componenten in een object georiënteerd model is van groot belang in het ontwikkeltraject. Een correct OOAD zorgt voor onderhoudbare code en bevordert re-usability van de geprogrammeerde libraries.

In deze module ligt de focus op zaken zoals:

  • Domain modellen,
  • UML modeling,
  • class diagrams,
  • GoF patterns,
  • Low coupling,
  • High cohesion,
  • Polymorphism,
  • Object composition,
  • class inheritance en dependency injection.

Hierin wordt gewerkt met een open source UML tool om praktische voorbeelden te realiseren in C#.

Hands-on oefeningen die in module 3: 'OOAD' aan bod komen zijn:

  • De volledige module wordt zeer praktijkgericht opgevat. Er wordt in groepsverband een OO analyse uitgewerkt,
  • Er worden UML tools gebruikt om de analyse vast te leggen en vervolgens volgens OOAD regels uit te werken tot een bruikbare set van klassen,
  • Er wordt gebruik gemaakt van code generators om de resultaten te zien en om opnieuw te analyseren,
  • Er wordt ook veel aandacht besteed aan Domain Driven Design (DDD). Deze 'DDD approach' wordt gecombineerd met de SOA approach uit de vorige module. Door dit vergelijk worden de raakvlakken tussen de 2 benaderingen duidelijk en kan vervolgens alles geimplementeerd worden in de SOA referentie Architectuur,
  • Een uitgebreide oefening op het repository patroon in combinatie met DDD classes komt eveneens aan bod.

Module 4: Unit testing and Agile development principles

Hoe een team omgaat met testen van code en met de development principes beïnvloedt de kwaliteit en onderhoudbaarheid van de code. De gekozen werkwijze naar source control, documentatie en testbaarheid van code is de verantwoordelijkheid van de architect.

Onderwerpen in deze module:

  • Unit Testing,
  • Refactoring,
  • Test Driven Design,
  • Pair programming,
  • Source control,
  • Branching van codebase,
  • Continous integration,
  • Nightly builds,
  • SCRUM.

Door gebruik van Team Foundation Server worden de principes in de praktijk gezet.

Hands-on oefeningen die in module 4: 'Unit testing and Agile development' aan bod komen zijn:

  • Na een korte theoretische uiteenzetting betreffende Unit tests wordt er, in de verschillende technologieën, een aantal Unit Tests aangemaakt, die bruikbaar zijn voor de functionele klassen (vertrekkende vanuit de vorige oefeningen). Deze Unit testen kunnen worden ingecheckt in een source control omgeving,
  • De rapportering van Builds, tests en code coverage aan de Team Foundation Server komt eveneens aan bod.
  • SCRUM activiteiten, zoals sprint planning, beheer product, backlog items, invullen sprint backlogs, uitvoeren van poker planning in het team, de daily standup meetings en de SCRUM retrospectieve komen via een groepsoefening praktijkgericht aan bod.
  • Deelnemers zullen in de praktijkoefening afwisselend de rol van architect, developer, tester en ook SCRUM master hebben.

Module 5: Cloud Architecture

Implementeren van applicaties in de cloud vraagt om nieuwe inzichten in architectuur. Het is momenteel van groot belang dat een architect deze nieuwe inzichten goed kent en kan toepassen om cloud applicaties te realiseren.

In een Cloud Architecture zijn er veel nieuwe aandachtspunten zoals:

  • Cost driven architecture met betrekking tot de invloed van operationele kosten op de code,
  • Het bouwen van een stateless architectuur die geschaald kan worden naar meerdere server instanties,
  • Partitionering van datastorage,
  • Proactief anticiperen op failures,
  • Federated identity,
  • Asynchrone verwerking patronen op basis van queueing system en massale dataopslag op basis van no-SQL database.

In deze module implementeren we praktijkvoorbeelden op Windows Azure en gebruiken we de Azure servicebus.

Hands-on oefeningen die in module 5: 'Cloud Architectuur' aan bod komen zijn:

  • Het uitwerken van een architectuur op een "Platform-as-a-Service" platform,
  • Het implementeren van meerdere cloud patronen zoals: load balancing, stateless design, caching layers, gebruik van federated identity, fault tolerance, data persisting abstraction, asynchronous processing. Gebruikte tools/omgeving hiervoor zijn Azure SDK en emulator in Visual Studio,
  • Het managen en monitoren van Cloud applicaties via specifieke tools komt eveneens aan bod,
  • Er wordt opnieuw een referentie architectuur gebouwd voor een applicatie die deels verder gaat op de SOA referentie Architectuur en DDD Architectuur uit de voorgaande modules,
  • Er een live Azure omgeving gebruikt voor het hosten van de applicatie die op deze architectuur werd gebouwd en plaatsen deze effictief in de cloud. Hier wordt er dan ook de schaalbaarheid van de applicatie uitgetest!
  • Hoe Application Integration op Azure Servicebus werkt en het bouwen van een distributed Applicatie komt hier eveneens op een praktijkgerichte wijze aan bod.
  • Er is een praktijkoefening op de Servicebus in de context van EAI (Enterprise Application Integration) en er worden applicaties gebouwd op basis van queues, topics en subscribers.
  • Om het concept van PAAS goed te begrijpen, worden, via praktijkoefeningen, een aantal andere Services (zoals traffic manager, media services, caching services, ...) in Azure toegepast.

METHODOLOGIE

Deelnemers aan deze opleiding dienen zelf een laptop te voorzien waarop de oefeningen zullen gemaakt worden. De nodige software die voor de start van elke module door de deelnemer dient geïnstalleerd te worden, wordt voor de start van de opleiding aan de deelnemers bezorgd.

VOOR WIE IS DEZE OPLEIDING BESTEMD

  • U heeft minstens 2 jaar projectervaring als software developer of technisch software analist en u heeft een sterke interesse in software architectuur.
  • U heeft de ambitie om door te groeien tot Software Architect.

VOORKENNIS

  • Personal skills/competenties: analytisch denkvermogen, empathie, assertief, communicatief, aanleg voor formalisme,...
  • Technical skills:
    • minstens 2 jaar actieve programmeerervaring in OOP-taal zoals: VB.NET, of C#.NET, JAVA, C++,... of
    • technische kennis equivalent aan de opleiding: "Responsive (Mobile) Web Application Developer - Using C#

DOCENT

Kurt Claeys is .NET Solution Architect en Microsoft Certified Trainer. Hij werkte de afgelopen 10 jaar als .NET architect voor uiteenlopende projecten waar hij zowel voor het opzetten van de SOA referentie architectuur en developers coaching errond instond, is co-auteur van het boek 'WCF 4 Professional', was technical solution professional Azure bij Microsoft en werkt nu freelance als Cloud architect ( www.nuboid.com ).

"In deze cursus combineer ik mijn praktijkervaring in .NET architectuur met ervaring in het coachen tot een waardevolle cursus waarin de focus ligt op het opzetten van de voor de cursisten herbruikbare referentiearchitecturen." Kurt Claeys

Linkedin: www.linkedin.com/in/claeyskurt

BIJKOMENDE INFO

Belangrijk om weten:

De focus tijdens de opleiding ligt uiteraard sterk op het uitwerken van Archituren en (uiteraard) minder op het coderen. Om dit te realiseren zal de docent op voorbereid stukken code aan de cursisten bezorgen waardoor er weinig tijd verloren gaat aan het coderen. Er wordt doorheen de verschillende modules gewerkt aan referentie architecturen. Dit zijn Visual Studio Solutions met de nodige technische componenten en architetuur lagen die dan als basis dienen voor verdere functionele uitwerking.

Deze referentie architecturen kunnen door de deelnemers verder in hun eigen werkomgeving herbruikt worden. Dit is een belangrijke toegevoegde waarde die door de deelnemers aan de vorige opleidingsreeksen sterk gewaardeerd werd!

Indien gewenst kunnen deze referentie architecturen bijgestuurd worden in de context van de requirements die de deelnemers naar voren brengen tijdens de opleiding.

Naast de "Hard Skills" komen in deze opleiding, horizontaal doorheen de modules, ook 'Soft Skills' zoals samenwerken, communiceren, conflict en kritiek hanteren, probleemoplossend handelen, faciliteren en leiden van workshops,... aan bod

Programma
18u30 - 21u30

Software Architect - Zwijnaarde

Organisator

V-ICT-OR vzw

Locatie
Campus Gent
Tramstraat 63
9052 Zwijnaarde
Deelnemen

Toegangsprijs

Prijsgroep Prijs
Standaard € 2400,00
Inschrijven