Universiteit van Amsterdam
Hogeschool van Amsterdam
Informatica Instituut Onderwijsinstituut Informatiewetenschappen
Instituut Informatica en Elektrotechniek
Programma van de Opleiding
Master Software Engineering Studiejaar 2003-2004 15 april 2003
Missie De opleiding tot Master of Software Engineering leidt studenten1 op tot professionele software engineers die er voor zorgen dat een software systeem op tijd en binnen de begroting wordt opgeleverd en dat het precies voldoet aan de wensen van de klant. De professionele software engineer zorgt ervoor dat het software systeem steeds wordt aangepast aan de veranderende wensen en eisen van de klant en dat de software parallel loopt, en blijft lopen, met de bedrijfsprocessen van de klant. Tijdens de opleiding zal de student worden onderwezen door gemotiveerde en deskundige docenten. De student zal tijdens de opleiding een groot aantal, zorgvuldig geselecteerde, praktische cases moeten bestuderen, doorgronden en bekritiseren. Deze cases dienen om het wetenschappelijke fundament van de opleiding te toetsen en te illustreren. De student zal tijdens de opleiding in e´ e´ n jaar tijd worden opgeleid tot professioneel software engineer. Om dat in zo’n korte tijd voor elkaar te krijgen zijn alle vakken van de opleiding precies op elkaar afgestemd. Daarnaast eist de opleiding maximale inzet van de studenten, en zal elke student elke dag goed voorbereid naar de opleiding moeten komen, teneinde geen tijd te verliezen. 1
Terwille van de leesbaarheid is er van afgezien om telkens de mannelijke en vrouwelijke vormen te gebruiken.
1
Master Software Engineering
Programma
Achtergrond Software Engineering richt zich op het systematisch ontwerpen, bouwen en onderhouden van grote software systemen die op tijd en binnen de begroting opgeleverd worden, betrouwbaar en effici¨ent zijn, en ook op langere termijn goed onderhoudbaar zijn. Software Engineering is essentieel voor het functioneren van de huidige maatschappij, vrijwel geen product of dienst zowel van het bedrijfsleven als van de overheid kan tot stand komen zonder software engineering. Dat blijkt uit de cijfers: in 2002 is in Nederland ongeveer 28 miljard euro besteed aan automatisering (inclusief hardware); dit is 8% van het Bruto Binnenlands Product. In 1999 werd de totale markt voor software producten wereldwijd geschat op 155 miljard dollar per jaar met een jaarlijkse groei van 11% per jaar.
Uitdagingen De huidige opleiding van software engineers is onvoldoende, gezien het feit dat vrijwel alle software projecten in meer of mindere mate in de problemen komen. Een overzicht: Ontwikkelkosten: 50% van de software engineering projecten kost tweemaal zoveel als oorspronkelijk begroot. Ontwikkeltijd: een derde van de software projecten overschrijdt de tijdsplanning met 200 tot 300%. Mislukte projecten: 80% van de softwareprojecten wordt door de opdrachtgevers als mislukt beschouwd. Als een gevolg hiervan wordt een derde van de projecten vroegtijdig afgebroken. Kosten van softwarefouten: het United States National Institute of Standards and Technology (NIST) schat dat softwarefouten de Amerikaanse economie jaarlijks 60 miljard dollar kosten ofwel 0.6% van het Bruto Binnenlands Product. Kosten van software-onderhoud en aanpassing: Software die niet wordt onderhouden is binnen de kortste keren onbruikbaar. Aangezien de meeste software niet is ontwikkeld om te evolueren met de veranderende wensen van de gebruiker, is het onderhouden en aanpassen van software een uiterst kostbare zaak. Wereldwijd zijn er momenteel ruim 10 miljoen software engineers werkzaam en meer dan 60% daarvan houdt zich full-time met onderhoud bezig.
Kansen voor een Master of Software Engineering opleiding De hierboven genoemde uitdagingen vragen om geavanceerd onderzoek en om onderwijs dat de resultaten van dit onderzoek overdraagt. De Master of Software Engineering opleiding zal hierin een toonaangevende rol spelen. In de Amsterdamse regio is unieke expertise beschikbaar over onderzoek en gebruik van geavanceerde software engineering technieken. Dankzij deze expertise is het mogelijk om een docententeam samen te stellen dat alle aspecten van Software Engineering kan overzien. De docenten zijn verbonden aan: UvA – II/OWI-i
2
HvA – I&E
Master Software Engineering
Programma
• Informatica Instituut (www.science.uva.nl/ii) van de Universiteit van Amsterdam (UvA - II), • Instituut voor Informatica en Elektrotechniek (www.hva.nl/organi/ie.htm) van de Hogeschool van Amsterdam (HvA - I&E), • Cluster Software Engineering (www.cwi.nl/sen) van het Centrum voor Wiskunde en Informatica (CWI - SEN), • Afdeling Informatiemanagement en Software Engineering (www.cs.vu.nl/imse) van de Vrije Universiteit (VU - IMSE), en • Software Improvement Group (www.software-improvers.com) (SIG).
Programma De opleiding start op 1 september 2003 en is een nieuwe en voltijdse masteropleiding. Een deeltijdopleiding of een duale variant wordt voor het studiejaar 2003-2004 niet aangeboden. Het resterende deel van dit document bestaat uit een toelichting op het programma van de masteropleiding Software Engineering.
Inhoudsopgave 1 Doelgroep, Toelatingseisen en Eindtermen
4
1.1 Doelgroep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.2 Toelatingseisen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.3 Eindtermen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2 Het Onderwijs
6
2.1 Didactisch kader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.2 Curriculum en semesterindeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.3 Docententeam
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.4 Open source software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
3 Vakomschrijvingen, Projectonderwijs en Examen 4 Inbedding van de Opleiding
9 17
4.1 Klankbordgroep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.2 Internationaliseringsbeleid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 5 Verantwoording
UvA – II/OWI-i
17
3
HvA – I&E
Master Software Engineering
1
Programma
Doelgroep, Toelatingseisen en Eindtermen
1.1
Doelgroep
De masteropleiding Software Engineering richt zich landelijk op WO en HBO bachelors in de informatiewetenschappen. Het onderwijs wordt in het Nederlands gegeven; het onderwijsmateriaal is zoveel mogelijk in het Engels gesteld.
1.2
Toelatingseisen
Voor toelating tot de masteropleiding Software Engineering per september 2003 komt in aanmerking: 1. Iedere Bachelor Informatica of Technische Informatica van een Nederlandse universiteit. 2. Een ieder die een buitenlandse kwalificatie vergelijkbaar met 1 heeft, op voorwaarde dat het Nederlands en Engels actief en passief voldoende worden beheerst. Wat betreft de beoordeling van een buitenlands diploma zullen met het Nuffic criteria en procedures worden vastgesteld. 3. Iedere HBO Bachelor Informatica (HIO), Technische Informatica, Information Engineering, of Elektrotechniek met afstudeerrichting Computerkunde, met eindcijfer gemiddeld 7 of hoger die een pakket heeft gevolgd dat de volgende of hiermee vergelijkbare vakken omvat: (a) Algoritmen en datastructuren, (b) Systeemarchitectuur, (c) Besturingssystemen, (d) Programmeertalen, (e) Software engineering. 4. Een ieder die (een substantieel deel van) een gerelateerde opleiding succesvol heeft afgerond en die tijdens een assessment procedure aantoont over voldoende kwaliteit, motivatie en voorkennis te beschikken om de opleiding succesvol af te ronden. De genoemde procedure is nader vast te stellen door de Examen Commissie.
1.3
Eindtermen
Algemene eindtermen. 1. De master heeft op het gebied van software engineering inzicht in de belangrijkste technologische ontwikkelingen en hieraan gerelateerde wetenschappelijke resultaten. 2. De master is in staat dit inzicht in te zetten ten behoeve van innovatie en modernisering van software engineering. 3. De master kan software engineering-problemen aanpakken met behulp van abstractie en modelvorming, en is in staat de oplossingen zowel in algemene termen als in wiskundige en technische termen te formuleren. UvA – II/OWI-i
4
HvA – I&E
Master Software Engineering
Programma
4. De master is in staat zich zowel mondeling als schriftelijk helder uit te drukken, is vaardig in het presenteren voor een groep mensen, en weet problemen en oplossingen op het juiste abstractienivo uit te leggen. 5. De master kan goed in teamverband functioneren. De master is vaardig in het overleggen in kleine en grote groepen over technische thema’s en is goed in staat technische werkzaamheden te verdelen over een groep mensen en deze werkzaamheden op elkaar af te stemmen. 6. De master heeft zich rekenschap gegeven van de maatschappelijke, ethische en sociale aspecten van software engineering.
Specifieke eindtermen. 1. De master is vaardig in het exploreren (zoeken, lezen en beoordelen) van de vele vormen, zowel qua inhoud als medium, van documentatie en literatuur op het gebied van de software engineering. 2. De master beheerst methoden en technieken om een software systeem mee te laten evolueren met de veranderende eisen die aan dat systeem gesteld worden. 3. De master is in staat kwalitatief hoogwaardige systemen te ontwikkelen door het systematisch gebruik van testmethoden en technieken. De master beheerst een scala aan testmethoden en technieken, weet wanneer welke techniek ingezet dient te worden, en heeft hiermee ook praktische ervaring opgedaan. 4. De master is in staat richtlijnen op het gebied van softwareconstructie op te stellen, bijvoorbeeld ten aanzien van coding standards, herstructurering, configuratie management, en build processen. 5. De master is in staat systeemeisen te vertalen in een systeemarchitectuur en afwegingen tussen conflicterende eisen zorgvuldig te maken en te motiveren. 6. De master is in staat wensen van systeemgebruikers om te zetten in specifieke requirements, objectmodellen en acceptatietests. 7. De master is op de hoogte van diverse software procesmodellen en kent de voor- en nadelen van deze. Hij is in staat een ontwikkelingsproces te kiezen voor een specifiek project, en het geselecteerde proces optimaal af te stemmen op de eisen die door dat project gesteld worden. 8. De master heeft voldoende technische kennis en intellectuele capaciteiten om na enige jaren en ervaring een leidinggevende rol in het werkveld van de software engineering te kunnen spelen. De master is in staat een visie te ontwikkelen op het gebied van software engineering en zodoende bij te dragen aan de evolutie en innovatie van concrete software engineering projecten.
UvA – II/OWI-i
5
HvA – I&E
Master Software Engineering
2 2.1
Programma
Het Onderwijs Didactisch kader
Het e´ e´ njarig curriculum (60 ECTS) bestaat voor 60% uit vakinhoudelijk cursorisch onderwijs (theorie en practicum 36 ECTS) en voor 40% uit projectonderwijs (24 ECTS), onder meer uit te voeren bij externe partners. Voor zowel cursorisch onderwijs als projectonderwijs staan de te bereiken eindtermen (zie Paragraaf 1.3) centraal. In het bijzonder bevat het curriculum geen vakken die uitsluitend ten dienste staan van andere vakken. Het cursorisch onderwijs omspant de volledige range van vakinhoudelijke onderwerpen die wij op dit moment beschouwen als de body of knowledge in software engineering. Dit onderwijs bestaat uit 6 vakken en wordt verzorgd op vaste dagen in de week gedurende periodes van 8 weken. Elk vak bestaat uit hoorcolleges en werkcolleges en/of practica. Het werkcollege geeft de student gelegenheid met de aangeboden stof te oefenen en dient ter consolidering. In het practicum past de student onder begeleiding van een docent de behandelde stof toe op typische software engineering problemen. Elk vak wordt getoetst middels een schriftelijk tentamen en/of de beoordeling van de bij het practicum of werkcollege opgeleverde producten. De invulling van de vakken sluit aan bij belangrijke moderne ontwikkelingen, zoals het Unified Process, agile methods, software architectuur, product families, en componenttechnologie. Hiermee geeft de opleiding een ruime overdekking van de internationaal opgestelde Software Engineering Body of Knowledge (SWEBOK). Het projectonderwijs krijgt gestalte in de vorm van twee korte projecten en het Mastersproject. Het eerste project is een literatuurstudie, bijvoorbeeld het maken van een ge-annoteerde bibliografie volgens gegeven richtlijnen of voorbeelden. In het tweede project gaat het om de voorbereiding op het Mastersproject; dit project loopt gelijktijdig met de literatuurstudie over een periode van 4 weken. Het Mastersproject vindt plaats in de laatste twaalf weken van het studiejaar. Dit project wordt in twee vormen aangeboden: - een onderzoeksgerichte variant waarin studenten literatuurstudie doen, deelnemen aan een onderzoeksproject en hierover rapporteren; - een softwaregerichte variant waarin studenten een mini software house beheren en software voor een (interne of externe) klant moeten bouwen. In de loop van het eerste semester worden studenten hierover ge¨ınformeerd en maken ze een keuze.
2.2
Curriculum en semesterindeling
Het cursorisch deel van de opleiding is ondergebracht in zes vakken van elk 6 ECTS: Software Evolution, Software Architecture, Software Construction, Requirements Engineering, Software Testing, en Software Process. Deze vakken hebben een zeer nauwe relatie met de software life cycle, en daarmee met elkaar. Het vak Software Process gaat in op het gehele proces van software ontwikkeling en onderhoud en gaat ook in op de (project) management aspecten die daarbij een rol spelen; de overige vijf vakken komen overeen met de voornaamste fasen van de software life cycle, waarbij Software Evolution het onderhoud van software omvat, en ook ingaat op software kwaliteit. Onder andere om deze reden is dat vak als eerste in de semesterindeling geplaatst. Deze vakken worden in Paragraaf 3 afzonUvA – II/OWI-i
6
HvA – I&E
Master Software Engineering
Programma
derlijk toegelicht. In Paragraaf 3 wordt ook het projectonderwijs en het examen Master of Software Engineering toegelicht. Voor de roostering van het onderwijs gebruiken we een indeling van het eerste semester in perioden van 8, 8 en 4 weken. Het cursorische onderwijs vindt plaats in perioden van 8 weken, waarbij de 8e week een ’tentamenweek’ (tentamen, practicumafsluiting, eindpresentatie of inleveren verslag) is. De eerste periode van 4 weken wordt gebruikt voor de korte projecten Literatuurstudie en Voorbereiding Mastersproject. Het tweede semester bestaat uit een periode van 8 weken waarin het laatste cursorische onderwijs plaats vindt; de resterende 12 weken worden gevuld met het Mastersproject. Het onderwijsprogramma voor de masteroleiding Software Engineering is als volgt ingedeeld:
Semester 1
(8+8+4 weken)
Periode 1 (week 36 t/m 43) Vak 1:
Periode 2 (week 44 t/m 51) (6 ECTS)
Vak 3:
Software Evolution Vak 2:
Software Architecture
Vak 4:
(6 ECTS)
Requirements Engineering
Periode 5 (week 14 t/m 22)
Literatuurstudie (2 ECTS)
Voorbereiding Mastersproject
Periode 6 (week 23 t/m 26)
(6 ECTS)
(18 ECTS)
Software Testing Vak 6:
(4 ECTS)
(8+(8+4) weken)
Periode 4 (week 6 t/m 13) Vak 5:
(6 ECTS)
Software Construction
(6 ECTS)
Semester 2
Periode 3 (week 2 t/m 5)
Mastersproject
(6 ECTS)
Software Process Structuur en belasting van het onderwijs: 1. De zes ‘6 ECTS-cursussen’ beslaan wekelijks 4 uur hoorcollege en 6 uur werkcollege en/of practicum. Dus 10 uur begeleid onderwijs per week. Zelfwerkzaamheid per week is 10 uur per vak. Het onderwijs in een dergelijk vak geeft de student een belasting van 20 uur per week. 2. Tijdens de twee korte projecten (periode 3) en het Mastersproject wordt de student begeleid door een interne supervisor. Een belangrijke taak van de interne supervisor is het archiveren van de projectresultaten. Gedurende het projectonderwijs wordt voor de student een belasting voorzien van (gemiddeld) 40 uur per week. UvA – II/OWI-i
7
HvA – I&E
Master Software Engineering
2.3
Programma
Docententeam
De vaste kern van het docententeam van de masteropleiding Software Engineering bestaat uit de volgende vijf personen: • Dr. M.G.J. van den Brand (CWI - VU) — Software Evolution en Software Construction, • Ing. R. Esmaili (HvA) — Requirements Engineering en Software Testing, • Prof.dr. P. Klint (CWI - UvA) — Software Evolution en Software Construction, • Dr. T. Kuipers (SIG) — Software Process, • Prof.dr. J.C. van Vliet (VU) — Software Architecture. Naast de vaste docenten zullen ook regelmatig gastdocenten optreden.
2.4
Open source software
Open source software krijgt bij de inrichting van het onderwijs bijzondere aandacht. Overwegingen hierbij zijn deels praktisch (toegang tot broncode van realistische systemen, mogelijkheid te werken aan projecten die breder dan de onderwijssetting zijn, etcetera), en deels ideologisch (ook overheid en bedrijfsleven hechten in toenemende mate belang aan open source software, deels om vendor lock-in tegen te werken).
UvA – II/OWI-i
8
HvA – I&E
Master Software Engineering
3
Programma
Vakomschrijvingen, Projectonderwijs en Examen
Noot. De literatuuropgave bij de vakken kan door een docent nader ingevuld of aangevuld worden.
Software Evolutie Titel ECTS Toetsing Software Evolutie 6 Tentamen en practicum Kernwoorden software maintenance, configuratie management, reverse engineering, re-engineering, software renovatie, maintenance processes. Voorkennis Kennis van een programmeertaal, enige ervaring met een software ontwikkelomgeving (Linux, Java, ...) Omschrijving Wil een software systeem zijn waarde voor de gebruikers behouden, dan is het van groot belang dat het systeem mee kan evolueren met de veranderende eisen die de business en de technologie stellen. Vaak zal het gaan om veranderingen die plaats vinden terwijl het systeem al in productie is. In het vak software evolutie worden factoren behandeld die flexibiliteit en evolutie bemoeilijken, en technieken om starre systemen geschikt te maken voor verandering. Na afloop van dit onderdeel is de student in staat om een keuze te maken uit verschillende technieken om systemen te analyseren en meer flexibel te maken. Practicum In het practicum doet de student ervaring op met technieken voor analyse en transformatie van software systemen. Bovendien wordt de student geconfronteerd met een bestaand, groot systeem, om zo ervaring op te doen met de geleerde reverse engineering technieken. Open source projecten (Linux, Source Forge) dienen als voorbeeld. Eisen aan zalen voor college en practicum, en aan apparatuur en software Reverse engineering systeem, Linux. Literatuur • T. Pigoski. Practical Software Maintenance. Best practices for managing your software investment, 384 pages. Wiley, 1997. • S. Demeyer, S. Ducasse and Oscar Nierstrasz. Object-Oriented Reengineering Patterns. 304 pages. Morgan Kaufmann and DPunkt, 2002.
UvA – II/OWI-i
9
HvA – I&E
Master Software Engineering
Programma
Software Architectuur Titel ECTS Toetsing Software Architectuur 6 Tentamen en practicum Kernwoorden product families, software product lines, architectural patterns, design patterns, architecture trade-off analysis, viewpoints, architectural evolution. Voorkennis Kennis van en ervaring met een moderne modulaire programmeertaal (Java, C#) Omschrijving In dit vak wordt ingegaan op fundamentele ontwerpbeslissingen die er voor moeten zorgen dat een software systeem gedurende een lange periode in staat is te voldoen aan de gestelde eisen. Dit betreft de opdeling van een systeem in componenten, de relaties tussen deze componenten, de kwaliteitseisen die aan de individuele componenten en aan het systeem als geheel gesteld dienen te worden, en afwegingen die gemaakt dienen te worden tussen conflicterende eisen. Na dit onderdeel is de student in staat om: • systeemeisen te vertalen in een systeemarchitectuur; • afwegingen tussen conflicterende eisen zorgvuldig te maken en te motiveren; • de kwaliteit van een voor een bepaald systeem gekozen architectuur te beoordelen; • een architectuur te documenteren voor verschillende belanghebbenden, met verschillende prioriteiten. Practicum In het practicum ontwerpt de student een gedistribueerde, gelaagde architectuur. Tevens wordt een analyse uitgevoerd van de architectuur van enkele bestaande (open source) systemen. Eisen aan zalen voor college en practicum, en aan apparatuur en software Ontwerp systeem (zoals Rational Rose of Argo/UML). Literatuur • L. Bass, P. Clements and R. Kazman. Software Architecture in Practice. Addison-Wesley, 2003. (Second edition, afhankelijk van beschikbaarheid.) • F. Buschmann, C. Jaekel, R. Meunier, R. Rohnert and M. Stahl. Pattern-Oriented Software Architecture - A System of Patterns. John Wiley & Sons, 1996.
UvA – II/OWI-i
10
HvA – I&E
Master Software Engineering
Programma
Software Construction Titel ECTS Toetsing Software Construction 6 Tentamen en practicum Kernwoorden inspecties, coding standards, pair programming, build processes, configuratie management, software quality, reliability, design by contract, refactoring, code smells. Voorkennis
Omschrijving Het vak software constructie houdt zich bezig met methoden en technieken die specifiek gericht zijn op de programmeer- en implementatie-activiteiten van een software engineering project. Voorbeelden van zulke activiteiten zijn coding en debugging, detailed design, unit testing, reviews op andermans code, optimalisaties, component integratie, enz. Na dit onderdeel is de student in staat om: • een audit uit te voeren van een software-systeem; • coding standards te (be-)schrijven en in te voeren in een organisatie; • adequate software constructie gereedschappen te selecteren en toe te passen (make, IDE’s, configure-scripts, etc); • refactoring te gebruiken om sneller nieuwe features in software te kunnen implementeren en fouten sneller te kunnen repareren. Practicum In het practicum voert de student inspecties uit op een bestaande (Java-)applicatie, identificeert hij ‘bad coding smells’ in de programmatuur, en past hij refactorings toe om code te verbeteren. Eisen aan zalen voor college en practicum, en aan apparatuur en software Software ontwikkelomgeving (Linux, JDE of .NET). Literatuur • M. Fowler. Refactoring: Improving the Design of Existing Code. 413 pages. Addison-Wesley, 1999. • S. McConnell. Code Complete. A practical handbook of software construction. Microsoft Press, 1993.
UvA – II/OWI-i
11
HvA – I&E
Master Software Engineering
Programma
Requirements Engineering Titel ECTS Toetsing Requirements Engineering 6 Tentamen en practicum Kernwoorden requirements elictation, stakeholder analysis, scoping, use case levels, acceptance testing, business modeling, object models, analysis patterns, customer involvement, release planning. Voorkennis
Omschrijving Het succes van een software-systeem staat of valt met de correcte interpretatie van de wensen van de toekomstige systeemgebruikers. In dit vak wordt ingegaan op een aantal specifieke technieken om deze wensen te destilleren, te formuleren in use cases, en controleerbaar te maken middels functionele acceptatietests. Na dit onderdeel is de student in staat: • in overleg met beoogde eindgebruikers systeemrequirements op te stellen; • requirements te vertalen in een serie functionele acceptatie-tests; • een applicatiedomein te beschrijven middels object-georienteerde business modellen. Practicum In het practicum wordt in een rollenspel een stakeholder analyse uitgevoerd, en worden systeemeisen vertaald in use cases en acceptatietests. Eisen aan zalen voor college en practicum, en aan apparatuur en software Geen specifieke. Literatuur • A. Cockburn. Writing Effective Use Cases. 270 pages. Addison-Wesley, 2001. • M. Fowler. Analysis Patterns: Reusable Object Models. 357 pages. Addison-Wesley, 1997.
UvA – II/OWI-i
12
HvA – I&E
Master Software Engineering
Programma
Software Testing Titel ECTS Toetsing Software Testing 6 Tentamen en practicum Kernwoorden kwaliteitseisen, verbeterplan, test planning, test case reductie, coverage, black box testing, white box testing, unit and integratie testing, acceptatie testing, quality assurance, test-first design, test-first development, dynamische en statische procesverbetermodellen. Voorkennis
Omschrijving Het testen van software systemen is van groot belang om te verifi¨eren dat een systeem het gewenste gedrag vertoont en te valideren dat het systeem beantwoordt aan de requirements. Door het testen nauw te integreren met de overige stappen in het softwareontwikkelingsproces (van requirements analyse tot implementatie) is het mogelijk kwalitatief hoogwaardige software te ontwikkelen. Na dit onderdeel is de student in staat om: • kwaliteitseisen op te stellen; • een overzicht te geven van diverse testtechnieken (proces en produkt); • een keuze te maken uit testtechnieken; • testtechnieken in te voeren in een bestaande softwareontwikkellijn. Practicum In het practicum doet de student ervaring op met een testing framework, en past dit toe op eigen en bestaande software systemen. Eisen aan zalen voor college en practicum, en aan apparatuur en software Geen specifieke. Literatuur • Softwarekwaliteit: op weg naar betere software, Fred Heemstra, Rob Kusters, Jos Trienekens, ten Hagen & Stam Uitgevers, Den Haag 1e druk 2001. • Testen volgens TMap, Martin Pol, Ruud Teunissen, Erik van Veenendaal, uitgever: Tutein Nolthenius, 2e druk 1999.
UvA – II/OWI-i
13
HvA – I&E
Master Software Engineering
Programma
Software Process Titel ECTS Toetsing Software Process 6 Tentamen en practicum Kernwoorden CMM, RUP, UP, agile methods, extreme programming, DSDM, software process improvement, project management, planning and estimation, software metrics. Voorkennis
Omschrijving In dit vak wordt de nadruk gelegd op de samenhang tussen de eerder opgebouwde kennis. In het bijzonder wordt gekeken naar de manier waarop de eerder geleerde methoden en technieken ge¨ıntegreerd kunnen worden tot een samenhangend software process. Tevens worden de in de cursus behandelde onderwerpen in een bredere context geplaatst. Na het volgen van dit vak is de student in staat: • een overzicht te geven van invloedrijke software proces modellen; • een keuze te maken uit deze modellen voor een specifiek project; • een proces aan te passen aan de specifieke eisen die in reele projecten gesteld worden; • de effectiviteit van het in een lopend project gebruikte ontwikkelingsproces te beoordelen. Practicum In het practicum voert de student projectvoorbereidingen uit, met verschillende methodes en parameters. Ook wordt de student geconfronteerd met realistische probleemsituaties (situatieschetsen en rollenspellen). Eisen aan zalen voor college en practicum, en aan apparatuur en software Project planning tools en (mogelijk) tools voor kostenschatting. Literatuur • P. Kruchten: The Rational Unified Process, An Introduction. Addison-Wesley, 1999. • K. Beck. Extreme Programming Explained: Embrace Change. Addison-Wesley, 1999.
UvA – II/OWI-i
14
HvA – I&E
Master Software Engineering
Programma
Projectonderwijs en Examen In de loop van het projectonderwijs krijgt iedere student een interne supervisor toegewezen. De begeleiding van de student in het projectonderwijs valt onder de verantwoording van zijn interne supervisor. Het projectonderwijs krijgt gestalte in drie projecten: de Literatuurstudie, de Voorbereiding op het Mastersproject, en — als sluitstuk van de opleiding — het Mastersproject.
Literatuurstudie Titel Literatuurstudie
ECTS 4
Toetsing Verslag en bespreking
Omschrijving Een voorbeeld van een literatuurstudie is het maken van een ge-annoteerde bibliografie volgens gegeven richtlijnen of voorbeelden. Behaalde studieresultaten kunnen worden gebruikt als indicatie voor een gerichte opdracht. In voorkomende gevallen kan de literatuurstudie aansluiten bij de afstudeerplannen van de student en een directe rol spelen in de voorbereiding van het Mastersproject.
Voorbereiding Mastersproject Titel Voorbereiding Mastersproject
ECTS 2
Toetsing Verslag, presentatie, accordering
Omschrijving Dit project valt gelijktijdig met de literatuurstudie, en is gericht op het afstuderen. In de loop van dit project moet de student beslissen of hij een onderzoeksgericht Mastersproject dan wel een softwaregericht Mastersproject gaat doen. In voorkomende gevallen kan de literatuurstudie hierbij een ondersteunende rol spelen. De eindtermen voor dit project zijn: - schriftelijke vastlegging van de precieze projectdoelen, - feitelijke kennismaking/contactlegging met de externe partij(en) die betrokken zullen worden bij het Mastersproject, - een eerste opstelling van het projectplan. Op deze wijze ontstaat van ieder student een archief, dat in het verdere verloop van de studie zal worden bijgehouden en onder verantwoording van de interne supervisor valt.
UvA – II/OWI-i
15
HvA – I&E
Master Software Engineering
Programma
Mastersproject Titel Mastersproject
ECTS 18
Toetsing Verslag, presentatie, accordering
Omschrijving Het Mastersproject wordt uitgevoerd door een individuele student of door een groepje van twee studenten. Naast de interne supervisor krijgt elke student (of groep van twee studenten) een externe supervisor toegewezen die de omgeving van het afstuderen representeert. Het Mastersproject duurt in totaal twaalf weken. Gedurende deze periode zijn de studenten verplicht een maandelijkse voortgangsrapportage in te dienen bij hun interne supervisor. Deze rapportage moet voldoen aan een vast omschreven omvang en structuur. Het Mastersproject leidt tot het feitelijke examen Master of Software Engineering. Het individuele Master of Software Engineering examen is als volgt samengesteld: • Een presentatie van e´ e´ n uur over het voltooide Mastersproject; • Een afstudeerscriptie, geschreven in het Nederlands, overeenkomstig een vast omschreven omvang en structuur (indicatie: 10 pagina’s). Het dubbele Master of Software Engineering examen voor een groep van twee studenten is als volgt samengesteld: • Een presentatie van 45 minuten per kandidaat over het voltooide Mastersproject; • Een afstudeerscriptie, geschreven in het Nederlands, overeenkomstig een vast omschreven omvang en structuur (indicatie: 15 pagina’s). Voor de beoordeling van het examen wordt ook advies gevraagd aan de externe supervisor.
Na afloop van het Mastersproject moet het archief van elke examenkandidaat het volgende bevatten: - Een beschrijving/definitie van het Mastersproject (vaste omvang en structuur), - Het contract tussen student en externe partij, - De drie maandelijkse voortgangsrapportages, - De afstudeerscriptie, - Het presentatiemateriaal (bv. beamerpresentatie), - Een evaluatieformulier ingevuld door de interne supervisor, - Een evaluatieformulier ingevuld door de externe supervisor.
UvA – II/OWI-i
16
HvA – I&E
Master Software Engineering
4 4.1
Programma
Inbedding van de Opleiding Klankbordgroep
Voor afstemming van de opleiding op het afnemend veld wordt een klankbordgroep opgezet. Deze groep bestaat uit rond de 20 specialisten en leidinggevenden die actief zijn in state-of-the-art software engineering bij toonaangevende instellingen en bedrijven in Nederland. De klankbordgroep adviseert over de inhoud en opzet van de opleiding.
4.2
Internationaliseringsbeleid
De afgestudeerden van de opleiding zullen het tekort aan gezochte professionals doen afnemen, zowel nationaal als internationaal. De masters Software Engineering zijn niet opgeleid om in onderzoek door te stromen, en studenten worden ook niet geworven met dat doel voor ogen. Meerwaarde wordt, op de lange termijn, bereikt door te streven naar een internationaal erkend expertisecentrum rond de opleiding. Dit streven valt goed te combineren met de ambities die vorm gaan krijgen in het Wetenschapen TechnologieCentrum Watergraafsmeer. Er zijn meerdere vormen van synergie te voorzien: de opleiding kan tot transferkanaal dienen van state-of-the-art inzichten, de opleiding wordt aantrekkelijker voor toonaangevende bedrijven, versterkt de technologiepoot van het centrum, en voorziet bedrijven en instellingen van het park van hooggekwalificeerde engineers. Buiten de UvA heeft het park in de vorm van het CWI al een lange traditie in de Software Engineering die met de komst van de opleiding versterkt wordt. Gedacht kan worden aan een rol binnen Europa in de accredidatie van opleidingen Software Engineering. Een eerste stap in die richting heeft reeds plaatsgevonden: recent is e´ e´ n van de opstellers van dit rapport uitgenodigd deel te nemen in SWEBOK (www.swebok.org). De klankbordgroep kan ook uitgroeien tot een internationaal lichaam. Het internationaal aanbieden van de master wordt op termijn duidelijk geambieerd. Het is van belang stap voor stap ervaring op te bouwen met internationale werving, intake en opleiding. Dit is een complex proces, onderhevig aan steeds veranderende wet- en regelgeving (zowel in Nederland als elders); bovendien staat de huisvestingsproblematiek rond Amsterdam grote aantallen studenten van buiten Nederland voorlopig niet toe.
5
Verantwoording
Dit programma is opgesteld aan de hand van bijdragen van M.G.J. van den Brand, J. Derriks, A. van Deursen, P. Klint, T. Kuipers, A. Ponse, S.F.M. van Vlijmen, en H.R. Walters. De uitvoering en organisatie van de masteropleiding Software Engineering ligt bij het Instituut voor Informatica (II) en het Onderwijsinstituut Informatiewetenschappen (OWI-i) van de faculteit der Natuurwetenschappen, Wiskunde en Informatica van de Universiteit van Amsterdam, en het Instituut Informatica en Elektrotechniek (I&E) van de Hogeschool van Amsterdam. De UvA is voorlopig penvoeder. Beide partijen leveren in principe een even grote bijdrage aan de realisatie en continuering van de opleiding. Conform de MUB (de wet Modernisering Universitaire Bestuursorganisatie) zullen een Opleidingscommissie en een Examencommissie worden ingesteld. Vooralsnog is het uitgangspunt dat de masteropleiding Software Engineering door de betreffende Informaticacommissies wordt ondersteund. De Opleidingsdirecteur en Opleidingsco¨ordinator zijn de betreffende bestuurders van II/OWI-i. De Assistent Opleidingsco¨odinator is dr. A. Ponse (
[email protected]) en de studieadviseur is dr. A. Haker (
[email protected]). UvA – II/OWI-i
17
HvA – I&E