Verkorting van schakelprogramma’s op grond van praktijkervaring voor de masteropleidingen Computer Science en Software Engineering1 Dit document geeft een overzicht van de cursussen in de schakelprogramma’s van de masteropleiding Computer Science en de masteropleiding Software Engineering volgens de Onderwijs‐ en Examenregeling 2013‐2014. Per cursus worden de volgende onderdelen beschreven: een korte beschrijving van de cursusinhoud een overzicht van de leerdoelen die bereikt worden na het bestuderen van de cursus een toelichting over de bewijzen die nodig zijn om aannemelijk te maken dat de cursus niet opgenomen hoeft te worden in uw schakelprogramma. Een aantal cursussen heeft een sterk theoretisch karakter, waardoor het onwaarschijnlijk is dat kennis daaruit via praktijkervaring opgedaan kan worden. Deze cursussen zijn daarom niet in dit document opgenomen. Het betreft de volgende cursussen: T07131 Discrete wiskunde A T41221 Logica en informatica T12341 Concepten van programmeertalen (Uit deze cursus is alleen kennis van de volgende taalconcepten vereist: types, typesystemen, variabelen en geheugenopslag, binding, scope, procedures.) T22321 Formele talen en automaten (Uit deze cursus is alleen kennis van de volgende concepten vereist: reguliere expressies, contextvrije grammatica’s en taalstructuur.) In dit document ontbreekt eveneens T61327 Afstudeerproject bachelor informatica. Deze cursus kan uit uw schakelprogramma (voor de master Software Engineering) verwijderd worden indien u kunt aantonen dat u in uw praktijkervaring hebt samengewerkt in een multidisciplinair teamverband aan de ontwikkeling van een groot softwaresysteem en daarbij tevens leiding gegeven hebt aan (deel)projecten.
OER 2012‐2013
1
1
T14161 Databases Beschrijving van de cursusinhoud Databases zijn gestructureerde, geautomatiseerde gegevensverzamelingen. De cursus omvat een theoretische en praktische inleiding op dit vakgebied. Met name de voor de praktijk zo belangrijke ʹrelationele databasesʹ worden uitgebreid behandeld, met veel aandacht voor de achterliggende ʹrelationele theorieʹ en veel praktische oefening in de relationele gegevenstaal SQL. Het gaat daarbij zowel om het bevragen, als om het bouwen en beheren van dit soort databases. Bijzondere aandacht krijgen de volgende onderwerpen: normalisatie van gegevensstructuren, mechanismen om regels te bewaken (onder meer via ʹtriggersʹ), transacties, optimalisatie van bevragingen, het verlenen van databaserechten aan gebruikers (autorisatie) en de wijze waarop een relationeel systeem achter de schermen opereert via ʹmetagegevensʹ. Ook besteedt de cursus aandacht aan concurrency en aan enkele grote commerciële databases (waaronder Oracle). Tot de meegeleverde software horen (voor het praktisch oefenen met SQL) het relationele databasemanagementsysteem Firebird en twee bijzondere programmaʹs: een krachtige en programmeursvriendelijke SQL‐tool (de Interactive query utility) en een ʹBoekverkennerʹ die voor integratie zorgt tussen een elektronische tekstversie en de SQL‐programmeeromgeving. Zie verder: http://portal.ou.nl/web/databases/cursusinformatie. Leerdoelen Na bestudering van de cursus wordt verwacht dat u – de functie kent van databasetalen en hun subtalen – inzicht hebt in het relationele model – een gegeven relationele structuur kunt normaliseren – vaardig bent met SQL (DDL, DML en DCL) – SQL‐vraagstellingen methodisch weet aan te pakken – inzicht hebt in (concurrente) transacties – eenvoudige triggers en stored procedures kunt schrijven – in staat bent tot een praktische benadering van (relationele) optimalisatiekwesties – inzicht hebt in relationele metadata (de data dictionary) Verkorting van schakelprogramma Deze cursus wordt niet opgenomen in uw schakelprogramma indien u kunt aantonen dat u: een database‐ontwerp kunt uitleggen in termen van inconsistentie, redundantie en standaardisatie query’s, triggers en stored procedures kunt formuleren voor een meegeleverd databaseschema met minimaal de volgende complexiteit: functies, join, statistische informatie (group by), subselects (o.a. gecorreleerde), wijzigingen van de databaseinhoud weet wat de data dictionary (systeemcatalogus) is en hoe u die kunt raadplegen, en weet hoe de definitie van een database (waaronder tabellen, kolommen, domeinen, views, gebruikers, autorisatie aspecten) wordt vastgelegd in relationele tabellen de problemen die kunnen optreden bij concurrente transacties onderkent, en manieren kent om die problemen te voorkomen in staat bent tot een praktische benadering van (relationele) optimalisatiekwesties. Een geschikt bewijs is bijvoorbeeld aantoonbare jarenlange ervaring als database administrator. Praktijkervaring die bijvoorbeeld beperkt is tot het beheren van een database met de ledenadministratie van een vereniging waarvan u lid bent, volstaat niet als afdoende bewijs.
2
T34141 Objectgeoriënteerd analyseren en ontwerpen Beschrijving van de cursusinhoud In deze cursus maakt u kennis met het Unified process, een objectgeoriënteerd proces voor systeemontwikkeling. Volgens de stappen van dit proces leert u een objectgeoriënteerd informatiesysteem ontwerpen, gebruikmakend van de Unified modelling language (UML). U leert requirements vast te leggen in de vorm van use‐casebeschrijvingen, de ʹomgeving van het systeemʹ in kaart te brengen in de vorm van een domeinmodel (een UML‐klassendiagram). U leert ontwerpen op grond van een aantal ontwerprichtlijnen, de zogenaamde GRASP‐richtlijnen. U maakt interactiediagrammen en op basis daarvan ten slotte een ontwerpdiagram in de vorm van een volledig UML‐klassendiagram. Ook leert u een database te gebruiken als persistentiemechanisme. Zie verder: http://portal.ou.nl/web/objectgeorienteerd‐analyseren‐en‐ontwerpen/cursusinformatie. Leerdoelen Na het volgen van deze cursus wordt verwacht dat u: – weet hoe het Unified Process verloopt, welke artefacten in dit proces geproduceerd kunnen worden en hoe iteraties in dat proces gepland kunnen worden – voor een klein informatiesysteem op grond van een casusbeschrijving en ongestructureerd materiaal uit specificatie‐workshops het gewenste gedrag van dit systeem kunt modelleren met behulp van use‐casediagrammen, use cases, systeemsequencediagrammen, contracten, toestandsdiagrammen, en een domeinmodel. – kunt aangeven wat de kenmerken zijn van een goed objectgeoriënteerd ontwerp en welke rol patronen daarin spelen – voor een gegeven use case uit een beperkt informatiesysteem een objectgeoriënteerd ontwerp kunt opstellen in de vorm van interactiediagrammen en een daaruit afgeleid ontwerpklassendiagram, gebruik makend van de basis GRASP‐richtlijnen – weet hoe het gebruik van een relationele database geïntegreerd kan worden in een objectgeörienteerd ontworpen systeem. Verkorting van schakelprogramma Deze cursus wordt niet opgenomen in uw schakelprogramma indien u geldig bewijs zoals een ontwerpdocument kunt overleggen met daarin use case‐beschrijvingen, domeinmodel, communicatiediagram (sequence‐diagram of collaboratiediagram) en een ontwerpklassendiagram en een toelichting over mogelijke alternatieve notatiewijzen, waarom voor een bepaalde oplossing is gekozen en een beoordeling van het ontwerp. Als het ontwerp relatief slecht is maar u in uw beoordeling ervan duidelijk maakt waarom het ontwerp niet goed is en hoe het verbeterd kan worden, is dat ook een geldig bewijs. Voorbeelden van geschikt bewijs zijn: ‐ aantoonbare werkervaring in een ict‐gerelateerde functie waarin bovengenoemde onderwerpen een prominente rol spelen ‐ een professionele certificering waarin bovenstaande onderwerpen aan bod zijn gekomen. Praktijkervaring die bijvoorbeeld beperkt is tot het schrijven van use cases of het genereren van diagrammen op basis van bestaande code, volstaat niet als afdoende bewijs.
3
T25151 Objectgeoriënteerd programmeren in Java 1 Beschrijving van de cursusinhoud Java is een van de populairste programmeertalen. Java heet objectgeoriënteerd omdat een programmeertaak in Java wordt uitgevoerd door objecten die met elkaar samenwerken. Het is de taak van de programmeur om de structuur en het gedrag van die objecten te beschrijven. De cursus Objectgeoriënteerd programmeren in Java 1 behandelt de basisprincipes van Java en objectoriëntatie en biedt een prima manier om daarmee vertrouwd te raken. Er wordt vanaf het begin met objecten gewerkt. Programmaʹs worden ontwikkeld binnen de ontwikkelomgeving Eclipse. Al in het eerste blok leert u om eenvoudige programmaʹs te schrijven en deze te voorzien van een grafische gebruikersinterface. Bij dit laatste neemt Eclipse u veel werk uit handen. In dit eerste blok worden nog niet alle details van de gebruikte programmeerconstructies uitgediept. In het tweede en derde blok volgt een volledige en systematische behandeling van de concepten die wij u in deze cursus willen leren. Zie verder: http://portal.ou.nl/web/objectgeorienteerd‐programmeren‐in‐java‐1/cursusinformatie. Leerdoelen Na het volgen van deze cursus bent u in staat om, vanuit een gegeven specificatie, zelfstandig een objectgeoriënteerd programma te ontwerpen en te implementeren, en dit programma te voorzien van een eenvoudige grafische gebruikersinterface. Hierbij maakt u gebruik van het deel van de taal Java dat is aangeleerd in de cursus. Het programma is goed ontworpen, wat inhoudt dat het bestaat uit klassen (in een objectgeoriënteerde taal zijn klassen de programma‐eenheden waar de objecten van worden afgeleid) met een duidelijke, beperkte verantwoordelijkheid. De programmacode is helder en begrijpelijk en het programma is gedocumenteerd met behulp van de tool Javadoc. U kunt bovendien de belangrijkste functies gebruiken van de ontwikkelomgeving Eclipse. Verkorting van schakelprogramma Deze cursus wordt niet opgenomen in uw schakelprogramma indien u: ‐ werkervaring hebt in de functie van programmeur ‐ gewerkt hebt in een objectgeoriënteerde omgeving ‐ programmacode kan aanleveren waaruit blijkt u bekend bent met de basisconcepten van objectgeoriënteerde programmeertalen. Een geschikt bewijs is bijvoorbeeld een werkgeversverklaring waaruit blijkt dat u als programmeur heeft gewerkt in een team Java‐programmeurs. Praktijkervaring die bijvoorbeeld beperkt is tot het maken van applicaties die u zelf onderhoudt, volstaat niet als afdoende bewijs.
4
T42241 Objectgeoriënteerd programmeren in Java 2 Beschrijving van de cursusinhoud Wat is een goed programma en wat is een goed ontwerp? Met deze vraag begint het eerste blok van de cursus Objectgeoriënteerd programmeren in Java 2. In de eerste leereenheid worden criteria geformuleerd waaraan de voorbeelden in de rest van de cursus zo goed mogelijk voldoen. Na die inleiding volgt een deel over het typesysteem. Typenhiërarchieën spelen daarbij een belangrijk rol, maar ook het gebruik van generieke typen komt aan de orde. En passant maakt u kennis met het begrip ontwerppatroon. In het tweede blok leert u hoe u fouten kunt afhandelen en hoe u parallellisme in uw programma kunt opnemen. Het derde blok gaat over verschillende manieren van gegevensopslag, waaronder de opslag in een database. Het vierde en laatste blok gaat over het programmeren van gebruikersinterfaces met behulp van Swing. Zie verder: http://portal.ou.nl/web/objectgeorienteerd‐programmeren‐in‐java‐2/cursusinformatie. Leerdoelen Na het volgen van deze cursus wordt verwacht dat u – de syntaxis en semantiek van Java kent – begrip heeft van overerving (inclusief het gebruik van abstracte klassen en interfaces), van exception handling en van threads – eenvoudige generieke klassen kunt definiëren – begrip heeft van de wijze waarop in objectgeoriënteerde programma’s gebruik gemaakt kan worden van programmeren per contract – de verschillende manieren kent waarop persistentie van gegevens gerealiseerd kan worden en twee daarvan ook kunt toepassen, namelijk streams (package java.io) en de koppeling met databases (package java.sql) – in staat is om met behulp van de package javax.swing zelf een grafische gebruikersinterface te programmeren. Verkorting van schakelprogramma Deze cursus wordt niet opgenomen in uw schakelprogramma indien u geldig bewijs zoals programmacode of een publicatie kunt aanleveren waaruit blijkt dat u ruime werkervaring hebt in de functie van programmeur gewerkt hebt in een objectgeoriënteerde omgeving bekend bent met de concepten van objectgeoriënteerde programmeertalen zoals weergegeven in de leerdoelen van deze cursus. Een geschikt bewijs is bijvoorbeeld een zelfontworpen en geïmplementeerde applicatie van gemiddelde complexiteit waarin gebruik wordt gemaakt van bovenstaande concepten, of een professionele certificering op gebied objectgeoriënteerd programmeren in Java bestaande uit de certificaten SCJA en SCJP van SUN/Oracle. Praktijkervaring die bijvoorbeeld beperkt is tot eenvoudige Java programma’s waarin bijvoorbeeld niet of nauwelijks gebruik is gemaakt van de concepten die behandeld worden in deze cursus, volstaat niet als afdoende bewijs.
5
T27231 Besturingssystemen Beschrijving van de cursusinhoud Elke moderne computer wordt bestuurd door een besturingssysteem, een onontbeerlijk programma. Het besturingssysteem omvat de software die de gebruikersinterface naar de gebruikers bepaalt en die de toegang tot de beschikbare hardware regelt voor de in uitvoering zijnde programmaʹs. In de cursus ligt de nadruk op het besturen van processen die door de computer verwerkt worden, op de besturing van het geheugen, het bestandssysteem en de verschillende apparatuurcomponenten in een computer. Bekende besturingssystemen zijn de leden van de Windows‐familie van Microsoft, Mac OS X, Linux en UNIX. Zie verder: http://portal.ou.nl/web/besturingssystemen/cursusinformatie. Leerdoelen Na het bestuderen van de cursus wordt verwacht dat u ‐ de betekenis en functie van een besturingssysteem kunt plaatsen bij een computersysteem in relatie tot de gebruiker en in relatie tot de toepassingen die verwerkt worden door dat computersysteem ‐ inzicht hebt in hoe processen en threads schijnbaar of daadwerkelijk gelijktijdig (concurrent) door een processor kunnen worden uitgevoerd, waarbij zaken als scheduling en de context switch een rol spelen ‐ weet welke aspecten naar voren komen, welke problemen kunnen optreden en de oplossingen daarvoor kent, wanneer processen met elkaar communiceren en/of van dezelfde bronnen gebruik wensen te maken ‐ inzicht hebt in diverse technieken voor geheugenbeheer en hoe deze kunnen worden aangewend om een virtueel geheugen te realiseren ‐ weet welke plaatsings‐ en vervangingsalgoritmen er bestaan en wat hun voordelen en nadelen zijn ‐ inzicht hebt hoe op achtergrondgeheugens een bestandsbeheersysteem kan worden opgezet ‐ weet op welke wijze, via een input/outputsysteem, communicatie met randapparatuur plaatsvindt op besturingssysteemniveau en op hardwareniveau ‐ kennis hebt van deelaspecten van Linux en Windows en deze weet te koppelen aan de algemene theoretische beginselen ‐ om kunt gaan met de geïntegreerde omgeving Open Watcom en programma’s in C kunt schrijven op beginnersniveau. Verkorting van schakelprogramma Deze cursus wordt niet opgenomen in uw schakelprogramma indien u een geldig bewijs zoals programmacode kunt overleggen waaruit blijkt dat u: ‐ een besturingssysteem hebt gebouwd of aangepast, ‐ gewerkt heeft aan een module voor een open‐source besturingssysteem (bijvoorbeeld Linux), ‐ een besturingssysteem heeft ontwikkeld in het kader van een embedded systems project. Geldig bewijs kan tevens bestaan uit certificaten van professionele cursussen die gericht zijn op het ontwikkelen of aanpassen van besturingssystemen. U dient te kunnen aantonen dat u praktijkervaring opgedaan hebt met het beheren van besturingssystemen waarbij u ook aanpassingen doorvoert op componenten die onderdeel uitmaken van een besturingssysteem, zoals de kernel of device drivers.
6
T26241 Datastructuren en algoritmen Beschrijving van de cursusinhoud In deze cursus komen aspecten aan bod die in de eerdere programmeercursussen nog niet aan de orde kwamen: u leert hoe u algoritmen ontwerpt en de datastructuren waarop deze algoritmen werken. Hierbij kunt u denken aan methoden en technieken om gegevens op te slaan, snel op te zoeken en te sorteren, om op een efficiënte manier een optimale weg te vinden in een netwerk, of om patronen in een stuk tekst te herkennen. De datastructuren die aan bod komen, zijn stapels, wachtrijen, rijen, prioriteitsrijen, (zoek)bomen en (gewogen) grafen. Deze datastructuren en algoritmen worden eerst in een taalonafhankelijke pseudocode beschreven, waarna (een deel van) de implementatie in Java wordt gegeven. Daarnaast wordt veel aandacht besteed aan analysetechnieken, zodat u kunt voorspellen hoeveel tijd het uitvoeren van een algoritme kost voor een probleem van een bepaalde omvang. Omdat veel algoritmen recursief zijn, komt ook dit onderwerp aan bod. Zie verder: http://portal.ou.nl/web/datastructuren‐en‐algoritmen/cursusinformatie. Leerdoelen Na het bestuderen van deze cursus wordt verwacht dat u een overzicht heeft van en inzicht heeft in de standaarddatastructuren en –algoritmen uit de informatica. U bent vertrouwd geraakt met recursieve algoritmen, met de verschillende fundamentele technieken waarop veel niet‐triviale algoritmen zijn gebaseerd en u hebt een duidelijk inzicht gekregen in wat de essentie is van de bestudeerde algoritmen en waarom deze algoritmen doen wat ze moeten doen. U heeft ook de vaardigheid verworven om algoritmen met een vergelijkbare complexiteit als die uit de cursus te kunnen begrijpen. De benadering daarbij moet er één zijn die losstaat van de toevallige taal waarin de algoritmen zijn geïmplementeerd. Ten slotte heeft u een goed inzicht verworven in de analyse van algoritmen wat betreft tijdscomplexiteit. Hiervoor is een enigszins wiskundige benadering van de werking van algoritmen noodzakelijk. Verkorting van schakelprogramma Uit deze cursus is alleen kennis van lijsten, sets en maps vereist. Deze cursus wordt niet opgenomen in uw schakelprogramma indien u kunt bewijzen dat u praktijkervaring opgedaan hebt met toepassingen van complexe datastructuren waaronder lijsten, sets en maps. Praktijkervaring die bijvoorbeeld beperkt is tot het kunnen gebruiken van het Java Collections Framework, volstaat niet als afdoende bewijs.
7
T04211 Procesmodelleren Beschrijving van de cursusinhoud Bedrijfsprocessen kunnen op vele niveaus gemodelleerd worden, van het abstracte en grofkorrelige niveau van de strategische visie tot de harde bits en bytes binnen de machines en netwerken. In deze cursus besteden we vooral aandacht aan processen op het niveau van taken, maar de benadering is generiek genoeg voor andere niveaus. Omdat modelleren veel aspecten heeft van zowel specificeren als structureel oplossen zullen validatie en verificatie van de modellen een grote rol spelen. Petri‐ netten zijn daarin een nuttig hulpmiddel. De grafische mogelijkheden, waaronder simulatie en animatie, zijn zeer geschikt voor validatie van en communicatie over modellen. De onderliggende mathematische semantiek maakt daarbij redeneren over correctheid en gedragseigenschappen mogelijk. Naast de methodologische en technische aanpak via Petri‐netten wordt ook aandacht gegeven aan de inbedding in de wereld van de bedrijfsinformatiesystemen. Communicatie over modellen op het bedrijfsniveau en het bespreken van requirements en correctheid worden benadrukt via een modelleerproject. Zie verder: http://portal.ou.nl/web/procesmodelleren/cursusinformatie. Leerdoelen De student moet na bestudering van de cursus – de plaats van procesmodellen binnen (bedrijfs)informatiesystemen kunnen begrijpen, – processen kunnen modelleren aan de hand van informele beschrijvingen, – bedrijfsprocessen kunnen modelleren in termen van gekleurde hiërarchische Petri‐netten, – correctheid van Petri‐netten kunnen verifiëren via invarianten en bereikbaarheidsanalyse, – gekleurde Petri‐netten kunnen valideren door simulatie in CPNtools, – kunnen communiceren over al het vorige. Drie competenties krijgen extra aandacht: – modelleren, van (incomplete) beschrijving naar Petri‐net, – analyseren, formele verificatie van eigenschappen, – communiceren over validatie en verificatie van procesmodellen. Verkorting van schakelprogramma Deze cursus wordt niet opgenomen in uw schakelprogramma indien u aantoonbare praktijkervaring hebt in modelleren, analyseren en simuleren met een op Petri‐nets gebaseerd procesmodelling of workflow tool met formele semantiek (e.g. ExSpecT, BPM|one, YAWL). Praktijkervaring die bijvoorbeeld beperkt is tot het genereren van procesmodellen met louter illustratief doel (i.e. zonder toestandsbegrip, zonder correctheidscondities of zonder de mogelijkheid van simulaties en het berekenen van doorlooptijden), volstaat niet als afdoende bewijs.
8
T20211 Security en IT Beschrijving van de cursusinhoud Deze cursus geeft een brede kijk op het vakgebied security. Er komen uiteenlopende onderwerpen aan bod, zoals cryptografie, de beveiliging van software, besturingssystemen, databases en computernetwerken en aspecten van beheer en privacy. De nadruk van de cursus ligt bij beveiliging in technische zin. Centraal daarbij staan vragen als: welke kwetsbaarheden zijn er (op alle niveaus: hardware, internetprotocollen, besturingssystemen, applicaties en databases), welke aanvallen zijn daardoor mogelijk, hoe kunnen deze aanvallen worden voorkomen en hoe kunnen geslaagde aanvallen worden ontdekt. De meeste aandacht besteden we daarbij aan de bedreigingen en de beveiliging van computernetwerken, in het bijzonder internet. Zie verder: http://portal.ou.nl/web/security‐en‐it/cursusinformatie. Leerdoelen We verwachten dat u na het bestuderen van de cursus: ‐ de beginselen van cryptografie kent en globaal de werking van moderne encryptietechnieken en toepassingen daarvan kunt uitleggen ‐ kunt uitleggen welke aanvallen op computerprogramma’s veel voorkomen en welke bescherming daartegen mogelijk is ‐ verschillende access‐controltechnieken kent en de werking ervan globaal kunt uitleggen ‐ de problemen van het gebruik van wachtwoorden kent en kunt uitleggen hoe veilige wachtwoorden gekozen kunnen worden ‐ de begrippen security policy, securitymodel en assurance kunt uitleggen ‐ security‐aspecten van databases kent ‐ diverse bedreigingen voor netwerkapplicaties kent en globaal kunt uitleggen hoe ze werken ‐ beschermingsmaatregelen tegen aanvallen op netwerkapplicaties kunt noemen en globaal de werking ervan kunt uitleggen ‐ de principes, mogelijkheden en beperkingen van firewalls en intrusion detection systems kunt uitleggen ‐ op de hoogte bent van organisatorische en economische aspecten van computersecurity ‐ een indruk hebt van aspecten van privacy van computersecurity. Verkorting van schakelprogramma Deze cursus wordt niet opgenomen in uw schakelprogramma indien u kunt bewijzen over brede basiskennis van security te beschikken. Voorbeelden van geschikt bewijzen zijn aantoonbare werkervaring in een ict‐gerelateerde functie waarin technische aspecten van security een prominente rol spelen, of professionele certificering op gebied security zoals CISSP. U dient te kunnen aantonen dat u praktijkervaring opgedaan hebt met toepassingen van cryptografie, beveiliging van softwareapplicaties en beveiliging van netwerken met behulp van een firewall of een IDS. Praktijkervaring die bijvoorbeeld beperkt is tot het installeren van een firewall en een virusscanner op uw pc thuis, volstaat niet als afdoende bewijs.
9
T07351 Software engineering Beschrijving van de cursusinhoud Software engineering is het vakgebied dat zich bezighoudt met alle aspecten van het doelmatig produceren van hoogwaardige software die vanwege de omvang en/of complexiteit redelijkerwijs niet door een of enkele personen ontwikkeld kan worden. De doelmatigheid gebiedt dat zulke software (of onderdelen daarvan) gedurende langere tijd meegaat en dus aanpasbaar moet zijn aan veranderende eisen. Naast softwaretechnische zaken als analyse, requirements, ontwerp, architectuur en testen, wordt in deze cursus ook aandacht besteed aan organisatorische aspecten van softwareontwikkeling. De cursus geeft een breed overzicht van het gehele vakgebied software engineering. Vanwege de uitgebreidheid van het vakgebied mist zoʹn overzicht vaak diepte. Om dat tegen te gaan, is naast een tekstboek dat voor het brede overzicht zorgt, gekozen voor het toevoegen van opdrachten waarin enkele onderwerpen nader uitgediept worden. De verhouding in hoeveelheid studielast tussen tekstboek en opdrachten is ongeveer 2:1. De opdrachten maken het ook mogelijk in te gaan op de snel veranderende actualiteit. Zie verder: http://portal.ou.nl/web/software‐engineering/cursusinformatie. Leerdoelen Meer specifiek wordt na het bestuderen van de cursus verwacht dat u – weet wat het vakgebied software engineering inhoudt en hoe het zich onderscheidt van system engineering – weet wat de belangrijkste activiteiten zijn tijdens de ontwikkeling van software – de belangrijkste procesmodellen kent en weet wat hun voor‐ en nadelen zijn – het verschil weet tussen systeem‐ en gebruikerseisen en tussen functionele en niet‐functionele eisen en deze ook als zodanig kunt herkennen – weet hoe het specificatieproces verloopt, welke documentatie daarbij nodig is en hoe de kwaliteit van het proces de kwaliteit van het uiteindelijke product beïnvloedt – weet welke systeemmodellen gebruikt kunnen worden voor het opstellen van een specificatie en wat de rol van formele technieken daarbij is – weet wat verstaan wordt onder systeemarchitectuur en enkele veelgebruikte architectuurmodellen kunt schetsen – weet wat een real‐timesysteem is en wat een kritiek systeem, en wat hun karakter voor gevolgen heeft voor de verschillende activiteiten van het ontwikkelingsproces – weet welke soorten hergebruik er zijn van bestaande componenten en de voor‐ en nadelen daarvan kent – weet wat verstaan wordt onder ‘dependability’, betrouwbaarheid, beschikbaarheid, veiligheid en beveiliging en de daarmee verbonden terminologie kent – weet wat verstaan wordt onder verificatie en validatie en welke technieken daarvoor kunnen worden gebruikt – de problematiek kent rond het onderhouden dan wel vervangen van systemen – weet welke technieken bij het onderhouden en beheren van systemen gebruikt kunnen worden – weet wat het doel is van configuratiemanagement, en hoe dit in de praktijk wordt gebruikt – kennis hebt van de ontwikkelmethoden RUP en XP en die kunt plaatsen in het door het tekstboek geschetste kader van software engineering – kennis hebt van open‐sourcesoftwareontwikkeling en de bijbehorende activiteiten kunt plaatsen in het door het tekstboek geschetste kader van software engineering – begrip hebt van de manier waarop ontwikkelomgevingen zoals Eclipse de verschillende activiteiten binnen een softwareontwikkelingstraject ondersteunen.
10
Verkorting van schakelprogramma Deze cursus wordt niet opgenomen in uw schakelprogramma indien u aantoonbaar minimaal één jaar leiding hebt gegeven aan een team van minimaal vier programmeurs, ontwerpers en testers bij één of meerdere recente softwareprojecten, waarbij u het gehele traject van acquisitie tot en met de oplevering van het product technisch inhoudelijk heeft begeleid en/of gestuurd. Het product dient daarbij op een voor de cursus relevant niveau beschreven te zijn (bijvoorbeeld met een projectplan, domeinanalyse, requirements specificatie, architectuur document, software proces beschrijving, beschrijving van testprocedures, testverslagen en een project review). Praktijkervaring die bijvoorbeeld beperkt is tot ‐ het ontwerpen of programmeren van de software ‐ het bouwen van een website met html ‐ het programmeren van een ‘App’ voor mobiele toepassingen volstaat niet als afdoende bewijs.
11