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.
$altText
Design Patterns
Informatica en informatiekunde | 5 EC | Voor dit product gelden ingangseisen
Code IM0102
Prijsindicatie € 324
Deze cursus heeft een vast startmoment. Kijk in het Jaarrooster wanneer de cursus van start gaat en wanneer de begeleiding is ingeroosterd.

Algemeen

Inhoud

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.

Leerdoelen
Na het bestuderen van deze cursus wordt verwacht dat u:
- een probleemanalyse kunt opstellen aan de hand van een probleembeschrijving;
- aan de hand van een probleemanalyse kunt aangeven en beargumenteren welke van de behandelde design patterns kunnen bijdragen aan een goede oplossing van het probleem;
- zelfstandig design patterns kunt bestuderen die niet worden behandeld in het tekstboek, en deze kunt toepassen;
- op basis van een probleemanalyse een ontwerp kunt maken, gebruikmakend van design patterns uit verschillende bronnen;
- een (eigen of gegeven) ontwerp waarbij design patterns zijn toegepast, kunt implementeren;
- in een gegeven ontwerp of implementatie kunt aangeven waar design patterns zijn gebruikt, en de voordelen van die patterns op die plaats kunt uitleggen;
- het verband kunt uitleggen tussen een bepaald pattern en de flexibiliteit die daardoor in het ontwerp wordt gebracht;
- zich realiseert dat er variaties op design patterns bestaan en dat ze op meerdere manieren geïmplementeerd kunnen worden;
- in staat bent een ontwerp op te stellen dat flexibel is met het oog op toekomstige veranderingen;
- de achterliggende principes van design patterns kent en ze kunt toepassen.

Aanmelden

Ingangseisen

Aanmelden is alleen mogelijk voor opleidingsstudenten die formeel zijn toegelaten tot de masteropleiding Computer Science of de masteropleiding Software Engineering.
U dient nog inschrijfrechten te hebben voor de cursus Academic Writing (IM0001) of deze cursus met een certificaat afgesloten te hebben.

Aanmelden

Aanmelden is alleen mogelijk voor studenten die formeel zijn toegelaten tot de masteropleiding.

Toelichting aanmelden

Deze cursus is reeds gestart en wordt pas in het volgend academisch jaar opnieuw aangeboden.

Bij deze cursus hoort online activerende begeleiding. Deze cursus start op vastgestelde momenten, en ook tijdens de bestudering van de cursus zijn er vaste inlevermomenten van opdrachten en feedback. U studeert online samen met een groep medestudenten. Deze begeleiding is erop gericht u sneller, effectiever en met een beter begrip van de stof door de cursus te helpen. U kunt vooraf aan de begeleidingsperiode in uw eigen tempo de stof alvast doornemen; het materiaal wordt één kwartiel tevoren al uitgeleverd. Aansluitend aan de begeleidingsperiode is uw eerste tentamenkans. Na de begeleidingsperiode heeft u nog twee ingeroosterde tentamenkansen. Informatie over begeleiding en tentamen vindt u op de respectievelijke tabbladen.

Voorkennis

Kennis van een objectgeoriënteerde taal is een vereiste. Java-kennis bijvoorbeeld moet het niveau hebben van de cursus Geavanceerd objectgeoriënteerd programmeren. Praktische ervaring met Java, UML, een UML-ondersteunende tool en een Java-ontwikkeltool is gewenst.

Begeleiding

Begeleidingsvorm

Deze cursus heeft een vast startmoment. Kijk in het Jaarrooster wanneer de cursus van start gaat en wanneer de begeleiding is ingeroosterd.

De begeleiding bij deze cursus vindt plaats door middel van uitgebreide feedback op een door u ingeleverde opdracht. De feedback laat zien waar op gelet wordt bij de eindopdracht, en geeft aan waar u uw probleembeschrijving, uw ontwerp en uw verslag kunt verbeteren. Er is een startbijeenkomst tijdens de Informatica studiedag, en er is één online begeleidingsbijeenkomst, waarin op de opdrachten wordt ingegaan. U kunt de eindopdracht alleen doen wanneer u begeleiding heeft gekregen voor de eerste twee deelopdrachten. Het is, om voor deze cursus te slagen, dus noodzakelijk om de begeleiding te volgen.
http://portal.ou.nl/web/informatica-master-se/start-en-voorlichtingsbijeenkomsten

Begeleidingsbijeenkomsten


Online bijeenkomsten
Kwartiel 1 - begeleider: mw. drs. S. Stuurman
1. wo 30-10-2019 / 19.00-20.30 uur
Kwartiel 3 - begeleider: mw. drs. S. Stuurman
1. wo 08-04-2020 / 19.00-20.30 uur

Docenten

Mw. dr. ir. S. Stuurman, dhr. dr. ir. H. Passier en dhr. dr. B. Heeren.

Bereikbaarheidsoverzicht

Bereikbaarheidsinformatie docenten/examinatoren

Tentamen

Tentamenvorm

Opdracht.

Tentamentoelichting

De cursus wordt getentamineerd met behulp van een opdracht. Het eindresultaat van deze opdracht is een ontwerp met bijbehorende Java-implementatie, inclusief een verantwoording van het ingeleverde werk in de vorm van een verslag. U doet de opdracht in een team van twee. Een teamgenoot kunt u vinden via de discussiegroep op de cursussite.

Tentamendata

Volgens afspraak.

Meer info

Cursusmateriaal

De cursus bestaat uit een Engelstalig tekstboek en een werkboek. Als naslagwerk vindt u op de digitale leeromgeving een digitale versie van het boek Design Patterns: Elements of Reusable Code. Praktische opdrachten vormen een belangrijk onderdeel van de cursus.

Mediagebruik

Als student heeft u toegang tot een groot aantal online diensten die u nodig heeft tijdens uw studie. Deze zijn bereikbaar via MijnOU, uw persoonlijke online werkplek bij de Open Universiteit, Hier heeft u o.a. toegang tot onze digitale leeromgeving, tentamenroosters, en onze uitgebreide digitale bibliotheek.

Digitale leeromgeving

Als student (na inschrijven) kunt u via de cursussite in de digitale leeromgeving naar de discussiegroepen. Hier kunt u met medestudenten en begeleider informatie uitwisselen en discussiëren over de leerstof.