Deze website gebruikt cookies (en daarmee vergelijkbare technieken) om het bezoek voor u nog makkelijker en persoonlijker te maken. Met deze cookies kunnen wij en derde partijen uw internetgedrag binnen en buiten onze website volgen en verzamelen.
Hiermee kunnen wij en derde partijen advertenties aanpassen aan uw interesses en kunt u informatie delen via social media.
Klik op 'Ik ga akkoord' om cookies te accepteren en direct door te gaan naar de website of klik op om uw voorkeuren voor cookies te wijzigen. Bekijk onze privacyverklaring voor meer informatie.
CPP Gecertificeerd Softwarearchitect
Informatica en informatiekunde | 17,5 EC | Voor dit product gelden ingangseisen
Code CPPSA
Prijs € 7495
Het programma Gecertificeerd Softwarearchitect leidt u in circa 10 maanden op tot softwarearchitect. Na afloop van deze opleiding op masterniveau beschikt u over de nodige kennis en vaardigheden voor het ontwerpen en ontwikkelen van objectgeoriënteerde en componentgebaseerde systemen.

Algemeen

Beschrijving

Het programma Gecertificeerd Softwarearchitect leidt u in circa 10 maanden op tot softwarearchitect. Na afloop van deze opleiding op masterniveau beschikt u over de nodige kennis en vaardigheden voor het ontwerpen en ontwikkelen van objectgeoriënteerde en componentgebaseerde systemen.

De opleiding combineert een gedegen theoretische onderbouwing met op de praktijk gerichte opdrachten zodat de deelnemers leren om kennis en inzicht toe te passen in hun beroepspraktijk. De Open Universiteit kiest voor een didactisch verantwoorde opzet met voldoende bezinkingstijd in plaats van een meerdaagse training waarin alle stof achter elkaar aan de orde komt.

De opleiding is opgebouwd uit drie cursussen:

  • Objectgeoriënteerd analysen en ontwerpen. Deze cursus biedt u een volledig overzicht van iteratieve systeemontwikkeling volgens het Unified Process waarbij u gebruikmaakt van de Unified Modelling Language (UML).
  • Design patterns. In deze cursus leert u Design Patterns te herkennen en te gebruiken, en beter gebruik te maken van de flexibiliteit die objectoriëntatie biedt. De cursus omvat veel ontwerp- en programmeeropdrachten (in Java).
  • Software architecture. U leert een softwarearchitectuur ontwerpen, rekening houdend met eisen van verschillende stakeholders. U krijgt kennis en patterns aangereikt om ontwerpbeslissingen te nemen, een systeem vanuit verschillende invalshoeken te beschrijven, en een architectuur te evalueren.

De certificering is gebaseerd op opdrachten die bij iedere bijeenkomst dienen te worden ingeleverd ter beoordeling, in combinatie met twee schriftelijke tentamens. De twee laatstgenoemde cursussen kunnen worden ingebracht in de master Software Engineering of Computer Science.

Actie

Indien u tot 4 weken vóór de startdatum inschrijft, dan kunnen we u een vroegboekkorting aanbieden van € 500,- op het totaalbedrag.

Studieduur

De opleiding is goed te combineren met een baan. Iedere twee weken is er een begeleidingsavond waar u zich actief op moet voorbereiden door een deel van het studiemateriaal te bestuderen en door het inleveren van opdrachten. De begeleidingsavonden duren van 18.30 - 21.30 uur, voorafgegaan door een broodmaaltijd. Om voor certificering in aanmerking te komen moet u geslaagd zijn voor alle toetsen en opdrachten die deel uitmaken van de opleiding. De groepsgrootte is tien tot zestien personen.
 
U moet rekening houden met een tijdsinvestering van tien uur per week. De opleiding duurt ongeveer tien maanden. 

Studiebelasting indicatie in uren

490

Cursusmateriaal

In het Certified Professional Program Softwarearchitect wordt onder andere gebruikgemaakt van onderstaande cursussen, in combinatie met extra studiemateriaal, aparte begeleidingsbijeenkomsten, praktijkgerichte opdrachten en alternatieve vormen van toetsing.
  • Objectgeoriënteerd analyseren en ontwerpen
Informatiesystemen voorzien in de informatiebehoeften van organisaties, mensen of installaties/systemen. Voorbeelden zijn het hypotheeksysteem bij een bank, een internetbestelsysteem van een boeken- en platenzaak, de automatische piloot in een vliegtuig, de reisplanner van de NS en een online catalogus van de bibliotheek. Informatiesystemen ontwikkelen gebeurt in een dynamisch speelveld van in de praktijk ontstane methoden, eigenzinnige ontwikkelaars, wetenschappelijk onderzoeksresultaten, standaardisatie-initiatieven, commerciële tools en een weerbarstige werkelijkheid.
Het ontwikkelen en bouwen van een informatiesysteem vraagt een doordachte, projectmatige aanpak, waarbij een ontwikkelteam te maken krijgt met voortschrijdende inzichten bij diverse betrokkenen als opdrachtgever, klanten van de opdrachtgever en uiteenlopende gebruikers.
 
Het ontwikkeltraject kent een aantal karakteristieke activiteiten (eisen opstellen, analyse, ontwerp, bouw, implementatie).
In de cursus is aandacht voor het totale ontwikkeltraject, van eisen tot en met implementatie, maar de nadruk ligt op de analyse en het ontwerpen van het informatiesysteem. Andere aspecten (implementatie, testen, projectmanagement) worden minder diepgaand behandeld.
Aan de orde komen onder andere:
- het formuleren van eisen (requirements) en daaruit voortvloeiend de specificatie van het informatiesysteem.
- iteratieve systeemontwikkeling zoals dat gebeurt in de context van bijvoorbeeld de methode Unified process.
- de unified modeling language (UML) als taal om ontwerp en analyse modellen in weer te geven.
- het opstellen van een domeinmodel.
- het leren ontwerpen van het berichtenverkeer tussen objecten (in de vorm van interactiediagrammen) op basis van een aantal richtlijnen, de zogenaamde GRASP-richtlijnen.
- het opstellen van een ontwerpklassendiagram op basis van de interactiediagrammen.
 
De cursus is bedoeld voor iedereen die zich wil bekwamen in het ontwerpen van objectgeoriënteerde informatiesysteemontwikkeling en gebruik wil maken van nieuwe technologieën en inzichten in systeemontwikkelprocessen. De cursus is geen UML-cursus maar een cursus waarin u leert ontwerpen waarbij u gebruik maakt van een aantal diagrammen van UML.
 
  • Design patterns
Objectgeoriënteerd ontwerpen heeft al vele jaren geleden vaste grond onder de voeten gekregen bij softwareontwikkelaars. Het aantal projecten waarbij objectgeoriënteerde talen wordt gebruikt is dan ook enorm. Het succes van talen als Java en C# onderstreept deze ontwikkeling. Eén van de belangrijkste redenen is het feit dat objectgeoriënteerde systemen flexibel zijn met betrekking tot veranderingen. De praktijk bewijst keer op keer dat de eisen aan een systeem niet vastliggen, maar voortdurend blijven veranderen. Systemen moeten dus zo gebouwd worden dat veranderingen met zo weinig mogelijk inspanning aangebracht kunnen worden.

Eén van de belangrijkste principes van objectoriëntatie is het begrip inkapseling (encapsulation), dat inhoudt dat de implementatie van objecten verborgen blijft voor de 'buitenwereld': alles wat communiceert met het object. Daardoor kan de implementatie van een object veranderd worden zonder dat dat consequenties heeft voor de rest van het systeem. In de praktijk blijkt echter dat systemen die keurig objectgeoriënteerd ontworpen en geïmplementeerd zijn, toch niet de flexibiliteit vertonen die mogelijk zou moeten zijn. Design patterns staan in de belangstelling vanwege het feit dat ze helpen die zo belangrijke flexibiliteit van systemen in te bouwen.
De cursus laat zien dat het leren begrijpen van design patterns helpt om beter gebruik te maken van de mogelijkheden die objectoriëntatie biedt. Met andere woorden: u leert niet alleen design patterns te gebruiken voor flexibele oplossingen, maar u wordt daardoor ook een betere ontwerper.

Het eerste blok van de cursus bevat een overzicht van de principes van objectoriëntatie en laat de diagrammen zien van de Unified Modeling Language, UML, die gebruikt zullen worden bij het beschrijven van design patterns. Verder bevat dit blok een introductie tot design patterns, en wordt een vijftal patterns (Facade, Adapter, Strategy, Bridge en Abstract Factory) uitgebreid besproken en toegepast in een voorbeeldprobleem.
In het tweede blok worden design patterns verder uitgediept. Behalve een uitgebreide bespreking van een volgende serie patterns (Decorator, Singleton, Observer, Template method, Factory method), wordt uitgelegd hoe design patterns samenhangen met objectgeoriënteerde principes. Het blok wordt afgesloten met de algemene ontwerpprincipes achter design patterns.
Het derde blok laat patterns in een breder perspectief zien. Patterns worden niet alleen gebruikt bij objectgeoriënteerde ontwerpen, maar ook op bijvoorbeeld het niveau van software architectuur.
 
  • Software architecture
De structuur van softwaresystemen is vaak uiterst complex: zo'n systeem kan bestaan uit miljoenen regels programmacode, opgebouwd uit meerdere componenten die op verschillende manieren moeten samenwerken en moeten opereren in een gedistribueerde setting. Stringente eisen die aan dit soort systemen worden opgelegd, zoals een korte time-to-market, een extreme betrouwbaarheid en robuustheid, of harde real-time constraints, vormen uitdagingen waar al van het begin af aan rekening mee moet worden gehouden. Softwarearchitectuur is het vakgebied dat zich bezighoudt met het beschrijven en analyseren van een systeem met behulp van modellen om tegemoet te komen aan het (dikwijls tegenstrijdige) eisenpakket dat is opgesteld op basis van de zorgen en belangen van de belanghebbende partijen. Een inschattingsfout in het initiële ontwerp kan verstrekkende en desastreuze gevolgen hebben voor het succes van een softwareproject.

De onderwerpen worden besproken aan de hand van het werkboek, een reader met artikelen, en een tekstboek. Er wordt een breed overzicht gegeven over wat softwarearchitectuur is, waarbij de nadruk ligt op modellen en technieken die bij het ontwerpen kunnen worden gebruikt. In het praktische gedeelte wordt u gevraagd de theorie toe te passen en zelf een architectuur te ontwerpen voor een bestaand softwaresysteem.

Een softwarearchitectuur is een beschrijving op hoog niveau van de componenten waaruit een systeem is opgebouwd en hoe deze componenten onderling samenwerken. Het centrale thema van deze cursus bestaat uit het inventariseren van de belangen van de verschillende betrokken partijen (de stakeholders), op de eisen aan het systeem (de requirements) die daar uit kunnen worden afgeleid, en op het beschrijven en evalueren van een software architectuur. Verschillende partijen hebben dikwijls tegenstrijdige belangen, en deze zullen door de softwarearchitect zo goed mogelijk tegen elkaar moeten worden afgewogen. Het eenduidig formuleren en categoriseren van eisen gebeurt aan de hand van een kwaliteitsmodel. Verder worden er verschillende technieken behandeld om een architectuur te beschrijven, zoals het 4+1-model van Kruchten, de viewpoints van Rozanski en Woods, en de formele Architectural Description Languages (ADL). Aan de hand van scenario's en use cases kan een architectuur vervolgens worden geëvalueerd ten opzichte van de opgestelde requirements.

Deze cursus gaat ook in op de kenmerken van bedrijfsapplicaties, zoals software voor de boekhouding of voor het roosteren van taken. Deze applicaties hebben dikwijls een soortgelijke architectuur en deze kan worden hergebruikt. Ook wordt er besproken hoe deze bedrijfsapplicaties verder geïntegreerd kunnen worden binnen een bedrijf. Overige onderwerpen die aan bod komen zijn bijvoorbeeld de REST architectural style, variability en software product lines.

In het praktische gedeelte wordt u gevraagd de behandelde theorie toe te passen en een softwarearchitectuur te ontwerpen voor een virtuele onderwijsomgeving. De ontworpen architectuur voor dit systeem moet voldoen aan de IEEE 1471 standaard. Het is uw taak om alle genomen ontwerpbeslissingen zo goed mogelijk te beargumenteren. De eindopdracht bepaalt het eindcijfer voor tweederde deel.

Aanmelden

Bedoeld voor

Goede, ervaren programmeurs in een objectgeoriënteerde programmeertaal, die zich willen ontwikkelen tot softwareontwerper of softwarearchitect.

Ingangseisen

U moet beschikken over:

  • uitgebreide it-werkervaring en opleiding op hbo-niveau (als u de opleiding wilt inbrengen in de master Software Engineering of Computer Science, is een bachelor-diploma noodzakelijk)
  • uitstekende kennis van een objectgeoriënteerde programmeertaal (bij voorkeur Java, maar andere talen zoals C# zijn ook mogelijk) en goed op de hoogte zijn van de principes van objectoriëntatie, met enige ervaring in het werken met UML. Die kennis kunt u bijvoorbeeld verkregen hebben via het Certified Professional Program Gecertificeerd Java- en app-programmeur.

Indien u twijfelt of behoefte heeft aan advies kunt u ons altijd een mail sturen: mst@ou.nl

Startmoment

Een volgende groep staat gepland voor september 2019. Het rooster kunt u per mail opvragen via mst@ou.nl.
 

Aanmelden

Betaalt u zelf de opleiding? Dan geldt voor u dat opleidingskosten aftrekbaar zijn van de inkomstenbelasting. Deze fiscale voordelen zorgen ervoor dat een opleiding minder hoeft te kosten. Voor particulieren geldt een maximale aftrek van € 15.000,- met een drempel van € 250,-. Kijk voor meer informatie op de site van de belastingdienst en zoek naar: studiekosten.
 
Let op: De kortingsregeling Cursusgeld Open Universiteit (KCOU) en Levenlanglerenkrediet (LLLK) zijn niet van toepassing op deze opleiding.

Inschrijfvoorwaarden

Lees eerst onze inschrijfvoorwaarden

Prijsinformatie

Totaalbedrag bij eenmalige betaling € 7.495,-. Het is tevens mogelijk om te betalen in 10 termijnen van € 770,-. Dit bedrag is all-in. Er is geen btw verschuldigd. Indien u tot 4 weken vóór de startdatum inschrijft, dan kunnen we u een vroegboekkorting aanbieden van € 500,- op het totaalbedrag.

Begeleiding

Locatie

Studiecentrum Utrecht

Tentamen

Samenstelling

Meer info

Extra informatie

Wilt u graag meer informatie over een specifiek Professional Program, een brochure of een vrijblijvend adviesgesprek (met een docent) of onze studieadviseur Loes Moritz, neem dan contact op met ons Team Professional Programs viamst@ou.nl of 045-5762777.

Emailadres van contactpersoon

mst@ou.nl