5/15/2014
Even voorstellen…….
Open Universiteit Master Software Engineering Prof.dr. Marko van Eekelen Programmaleider Master Software Engineering
1
Open Universiteit en Informatica geroemd om het goede academische onderwijs
2
Open Universiteit: Informatica heel hoog in de studentbeoordelingen
4
3
Waarom Software Engineering? Automatiseringgids: 2 Maart 2012. Prof. Kees van Hee: Informatici los van de praktijk - Inbreng van academische informatici bij grote ICT-projecten is nihil
‘Best Job of 2012’
Wall Street Journal, The Economic Times
1. Software Engineer
“The world is going digital, and Software Engineers who can help with that transformation are reaping the benefits”. “Their pay is great, hiring demand for their skills is through the roof, and working conditions have never been better. “ “And that’s why the job of Software Engineer ranks tops in our annual Jobs Rated report on the nation’s best and worst jobs for 2012, followed by Actuary, Human Resources Manager, Dental Hygienist and Financial Planner.”
Source: Careercast.com, http://www.careercast.com/jobs-rated/10-best-jobs-2012 Maar ook talloze berichten over falende IT projecten Dus: er gaat veel mis, er zijn veel mensen nodig en ze moeten beter voor de praktijk worden opgeleid!
5
6
1
5/15/2014
Een hele Master doen of gewoon een paar losse vakken?
Job growth ahead…. Software Engineer / Systems Software Developer / Application Software Developer
Source: ACM Tech News, InfoWorld Tech Watch, Feb 12, 2013
7
Master Software Engineering
Universiteit van Amsterdam
Open Universiteit Nederland
karakter
Deeltijd (of voltijd); Bij voltijd 5 dagen op UvA, bij deeltijd 1 of 2 dagen op de UVA; afstuderen deels voltijds
Afstand; bij voorkeur 10 uur per week; soms een bijeenkomst in de avond of op zaterdag; soms online bijeenkomsten
unieke kenmerken
Intensief persoonlijk contact docenten en studenten, directe aansluiting onderwijs op onderzoek, onderwijs steeds geactualiseerd, excellente scripties worden gepubliceerd, gebalanceerde mix theorie en praktijk
flexibel studeren qua tijd en plaats, werk‐ boek bij elk vak om zelfstandig te kunnen werken, 5 vakken opgezet met 4 Univer‐ siteiten samen, elke vakrevisie gaat in overleg met externe referent, onderzoek en gebruikssoftware bij afstuderen
inpasbaarheid
Goed inpasbaar naast deeltijdwerk en gezin
Goed inpasbaar naast werk en gezin
inhoud vakken
6ec Software Evolution
4.3ec Software Evolution (Sevo)
6ec Requirements Engineering
4.3ec Requirements Engineering
6ec Software Process
4.3ec Software Management
‐
4.3ec Design Patterns (DP)
6ec Software Architecture
4.3ec Software Architecture
6ec Software Construction
4.3ec Software Composition
6ec Software Testing
4.3ec Software Verification and Validation (SVV)
‐
4.3ec Software Security
24ec=18(afst)+6(voorbereiding)
21.5ec= 17.2(afst) +4.3(voorbereiding)
afstuderen
academische competenties Geïntegreerd in de 6 genoemde vakken titel omvang, duur
8
Waarom aan de Ou studeren?
Master of Science, ir.
60ec; 1 jaar (voltijd); 2 jaar (deeltijd, bij circa 14 uur per week)
60ec; 3‐4 jaar (bij circa 10 uur per week); sneller is mogelijk
lesvorm
College, werkcollege, werkgroep, practicum
Begeleide studie op afstand: korte online of face‐to‐face bespreking van de hoofd‐ lijnen; feedback op ingeleverde opgaven
doorlopen van programma
Vast programma; tempo ligt vast; Start jaarlijks op 1 september of 1 februari
Flexibel programma; aanbevolen studiepaden; tempo aanpasbaar; Je kunt op elk moment beginnen
ondersteuning
Studiebegeleider; Intensieve feedback van docenten
Persoonlijke coach; feedback van docenten op opgaven en werkstukken
Flexibel studeren
•
Uitstekend onderwijs met uitstekend zelfstudiemateriaal
•
Breed gedragen inhoud
–
•
Universiteit van Amsterdam
karakter Deeltijd (of voltijd); Bij voltijd 5 dagen op UvA, bij deeltijd 1 of 2 dagen op de UVA; afstuderen deels voltijds unieke kenmerken Intensief persoonlijk contact docenten en studenten, directe aansluiting onderwijs op onderzoek, onderwijs steeds geactualiseerd, excellente scripties worden gepubliceerd, gebalanceerde mix theorie en praktijk inpasbaarheid Goed inpasbaar naast deeltijdwerk en gezin
6ec Requirements Engineering
prijs
Engels Voltijd (1 jaar) €1771, Deeltijd (2 jaar) 2 x €1595 = €3190, (exclusief boeken)
6ec Software Process
Gebaseerd op recente ACM/IEEE richtlijnen –
•
Focus op verbeteren van kwaliteit van software ontwikkeling
–
4.3ec Software Management 4.3ec Design Patterns (DP)
4.3ec Software Composition 4.3ec Software Verification and Validation (SVV) 4.3ec Software Security 21.5ec= 17.2(afst) +4.3(voorbereiding) 4.3ec (onderzoekaspecten); verdiepingsopdrachten DP, Sevo, SVV Master of Science, ir. 60ec; 3‐4 jaar (bij circa 10 uur per week); sneller is mogelijk Begeleide studie op afstand: korte online of face‐to‐face bespreking van de hoofd‐ lijnen; feedback op ingeleverde opgaven
doorlopen van programma Vast programma; tempo ligt vast; Start jaarlijks op 1 september of 1 februari
Flexibel programma; aanbevolen studiepaden; tempo aanpasbaar; Je kunt op elk moment beginnen
locatie Universiteit van Amsterdam
Persoonlijke coach; feedback van docenten op opgaven en werkstukken Thuis, overal ter wereld; OU studiecentra
taal Engels
(Werk)boeken Engels, werkstuk mag in Nederlands
prijs Voltijd (1 jaar) €1771, Deeltijd (2 jaar) 2 x €1595 = €3190, (exclusief boeken)
Module (4.3 ec) €230, (inclusief boeken); Master €3370= 14*230+ €150( toelating)
10
1. Bestaande software beter verbeteren/uitbreiden door • Betere software maintenance en renovatie op academisch niveau (software evolution) • Betere verificatie van security (software security) en beter testen (software verification and testing) 2. Nieuwe software beter ontwikkelen door • Betere software definitie, ontwikkeling en verificatie op academisch niveau voorkomt problemen (software architecture, design patterns) 3. Management beter uitvoeren door • Beter gebruik van managementtechnieken (software life cycle)
Inhoud Goede aansluiting bij praktijk
4.3ec Software Evolution (Sevo) 4.3ec Requirements Engineering
Een academisch opgeleide Master of Science in Software Engineering kan..
SWEBOK2004, SoftWare Engineering Body Of Knowledge maar vooral GSwE2009, ACM/IEEE gezamenlijke Curriculum Guidelines for Graduate Degree Programs in SoftWare Engineering
•
Goed inpasbaar naast werk en gezin
lesvorm College, werkcollege, werkgroep, practicum
ondersteuning Studiebegeleider; Intensieve feedback van docenten
Opzet
•
flexibel studeren qua tijd en plaats, werk‐ boek bij elk vak om zelfstandig te kunnen werken, 5 vakken opgezet met 4 Univer‐ siteiten samen, elke vakrevisie gaat in overleg met externe referent, onderzoek en gebruikssoftware bij afstuderen
4.3ec Software Architecture
omvang, duur 60ec; 1 jaar (voltijd); 2 jaar (deeltijd, bij circa 14 uur per week)
9
Zowel onderzoek als gebruikssoftware bij afstuderen
Open Universiteit Nederland Afstand; bij voorkeur 10 uur per week; soms een bijeenkomst in de avond of op zaterdag; soms online bijeenkomsten
6ec Software Testing
afstuderen 24ec=18(afst)+6(voorbereiding)
Master Software Engineering Curriculum Uitgangspunten Wetenschappelijk Master Niveau (NVAO Geaccrediteerd)
Koppeling met praktijk
‐
academische competenties Geïntegreerd in de 6 genoemde vakken
(Werk)boeken Engels, werkstuk mag in Nederlands
•
Master Software Engineering:
‐
6ec Software Construction
Thuis, overal ter wereld; OU studiecentra
Module (4.3 ec) €230, (inclusief boeken); Master €3370= 14*230+ €150( toelating)
elke vakrevisie gaat in overleg met externe referent
–
6ec Software Architecture
titel Master of Science, drs.
taal
–
– Master Software Engineering
inhoud vakken 6ec Software Evolution
locatie Universiteit van Amsterdam
qua tijd, tempo én plaats; ook betaal je per cursus en niet per jaar
5 vakken opgezet met 4 andere Universiteiten samen
4.3ec (onderzoekaspecten); verdiepingsopdrachten DP, Sevo, SVV
Master of Science, drs.
•
praktijkervaring is voorwaarde voor toelating
11
12
2
5/15/2014
Software Security
Validatie van invoer en uitvoer
1 Introductie
1 Introductie tot software security
1 Introductie
1 Introductie tot software security
2 Vulnerabilities
2 Software vulnerabilities
2 Vulnerabilities
2 Software vulnerabilities
3 Validatie van invoer en uitvoer
3 Validatie van invoer en uitvoer
4 Buffer overflow
4 Buffer overflow
5 Excepties en privileges 6 Opdracht A: vulnerabilities in een webapplicatie 3 Ontwikkelen van beveiligde software
• Hoe wel? 3 Ontwikkelen van beveiligde software 7 Software security knowledge Indirect selection, whitelisting, reguliere8expressies, geparameteriseerde Risicomanagement en risicoanalyse invoer, controle van invoerlengte, minimumen maximumwaarde van getallen) 9 Opdracht B: architectural risk analysis
7 Software security knowledge 8 Risicomanagement en risicoanalyse 9 Opdracht B: architectural risk analysis
10 Statische codeanalyse • Hoe niet? Blacklisting, security ondermijnen door 11 gebruiksvriendelijkheid, repareren van Security testing ingevoerde gegevens, gedetailleerde foutmeldingen 12 Opdracht C: statische codeanalyse
10 Statische codeanalyse 11 Security testing 12 Opdracht C: statische codeanalyse 4 Language-based security
• Kernidee: voor gebruik dient alle invoer,5van alle mogelijke bronnen, Excepties en privileges eerst gevalideerd te worden 6 Opdracht A: vulnerabilities in een webapplicatie
13 Safety
4 Language-based 13 Safety command injection, log • Vulnerabilities: SQLsecurity injection, path manipulation, 14 Language-based control forging, cross-site scripting, HTTP response splitting, openaccess redirects, cross-site request forgery 15 Informatieflowanalyse
14 Language-based access control 15 Informatieflowanalyse 16 Opdracht D: access control 13
5 Ethiek van software security
16 Opdracht D: access control 14
17 Ethiek van software security 18 Opdracht E: ethiek
5 Ethiek van software security
1 Introductie tot software security
2 Vulnerabilities
2 Software vulnerabilities
Opdracht B: architectural risk analysis Client tier
4 Buffer overflow
gast
5 Excepties en privileges
Web tier
Client computer browser
3 Validatie van invoer en uitvoer
Zoeken in aanbod
7 Software security knowledge Client computer browser
8 Risicomanagement en risicoanalyse 9 Opdracht B: architectural risk analysis 10 Statische codeanalyse
13 Safety 14 Language-based access control 15 Informatieflowanalyse
Client computer browser
16 Opdracht D: access control 15
5 Ethiek van software security
17 Ethiek van software security 18 Opdracht E: ethiek
15
beheer
Artikel beheer
Bieden op artikel
Bod beheer
Ondersteuning
…
1616
Opdracht D: access control
1 Introductie
1 Introductie tot software security
1 Introductie
2 Vulnerabilities
2 Software vulnerabilities
2 Vulnerabilities
4 Buffer overflow
4 Buffer overflow
5 Excepties en privileges
5 Excepties en privileges 6 Opdracht A: vulnerabilities in een webapplicatie 3 Ontwikkelen van beveiligde software
9 Opdracht B: architectural risk analysis 10 Statische codeanalyse
− Code signing
11 Security testing
− Policies
12 Opdracht C: statische codeanalyse
9 Opdracht B: architectural risk analysis 10 Statische codeanalyse 11 Security testing 12 Opdracht C: statische codeanalyse
13 Safety
4 Language-based security
13 Safety
14 Language-based access control
14 Language-based access control
15 Informatieflowanalyse
15 Informatieflowanalyse
16 Opdracht D: access control 5 Ethiek van software security
7 Software security knowledge
• Javacode voor webapplicatie beveiligen met JAAS 8 Risicomanagement en risicoanalyse (Java Authentication and Authorization Service)
8 Risicomanagement en risicoanalyse
17
2 Software vulnerabilities 3 Validatie van invoer en uitvoer
6 Opdracht A: vulnerabilities in een webapplicatie
4 Language-based security
1 Introductie tot software security
3 Validatie van invoer en uitvoer
7 Software security knowledge
16 Opdracht D: access control 18
17 Ethiek van software security 18 Opdracht E: ethiek
Veiling database
Autorisatie
Aanbieden artikel
Opdracht C: statische codeanalyse
3 Ontwikkelen van beveiligde software
Registratie
Veiling beheer
Controller
12 Opdracht C: statische codeanalyse
Data tier
Leden beheer
Login/logout
lid
11 Security testing 4 Language-based security
Application tier Registreren als lid
6 Opdracht A: vulnerabilities in een webapplicatie 3 Ontwikkelen van beveiligde software
14
18 Opdracht E: ethiek
Opdracht A: vulnerabilities in webapplicatie 1 Introductie
17 Ethiek van software security
13
5 Ethiek van software security
1717
17 Ethiek van software security 18 Opdracht E: ethiek
18
3
5/15/2014
Opdracht E: ethiek
Programma Master Software Engineering: Sept 2014
1 Introductie
1 Introductie tot software security
2 Vulnerabilities
2 Software vulnerabilities
Thema Vakken Software architecture • Design patterns (DP)
3 Validatie van invoer en uitvoer
• Software architecture (SA)
4 Buffer overflow 5 Excepties en privileges 6 Opdracht A: vulnerabilities in een webapplicatie Ontwikkelen OV-chipkaart van beveiligde software • 3Casestudie:
Software quality management • Software evolution (Sevo)
7 Software security knowledge
• Software life cycle (SLC)
8 Risicomanagement en risicoanalyse
• Ethische overwegingen voor betrokken partijen
9 Opdracht B: architectural risk analysis
− overheid
Software quality assurance • Software verification and validation (SVT)
10 Statische codeanalyse 11 Security testing
− leveranciers
• Software security (SoSe)
12 Opdracht C: statische codeanalyse
− onderzoekers
4 Language-based security
13 Safety
Thesis • Academic writing
− journalisten
14 Language-based access control
−…
15 Informatieflowanalyse
• Research preparation • Voorbereiding afstuderen
16 Opdracht D: access control 19
5 Ethiek van software security
19
18 Opdracht E: ethiek
Huidige master SE studiepunt afkorting (EC) Design patterns 4,3 DP ACM-SE Academische daarin competenties in 4,3 VO-DP de master SE en VOSevo naam
Software evolution Software composition Software architecture Software management Requirements engineering Software security Software verification and validation Voorbereiding afstudeeropdracht SE Afstudeeropdracht Software Engineering totaal
4,3
Sevo
4,3
Soco
4,3
SA
4,3
Soma
20
‘SE begeleid’ vanaf september 2014 studiepunt naam afkorting (EC) Design patterns 5 DP Academic writing
2,5
Research preparation Software evolution
2,5
RP
5
Sevo
OU Master SE in Kader ACM
AW
Sevo SVV
Software architecture
7,5
SA-nieuw
4.3
RE
Software life cycle
7,5
SLC
4,3
SoSe
Software security
5
SoSe
4,3
SVV
5
SVT
4,3
VAF
5
VAF
17,2
AF
15
AF
60
• Afstuderen
17 Ethiek van software security
System verification and testing Voorbereiden afstudeeropdracht SE Afstudeeropdracht Software Engineering totaal
60
*
Ontwerpen met minder fouten; Object-oriented Design Patterns analyseren, gebruiken, motiveren, evalueren
SA
22
Thema Software Quality Management
Design patterns (DP) ir. Sylvia Stuurman en dr. Bastiaan Heeren
SLC
21
Thema Software Architectuur •
Sose DP
Software life cycle (SLC) NIEUW vanaf 2015 •
ir. Paul Oord en dr. Karel Lemmen
•
PPP (Product, Proces en Persoon): Softwareontwikkeling procesmodellen, procesverbetering, kostenschattingen, risicomanagement, metrieken, kwaliteit van software.
•
Een goed begin van een project is het halve werk: KAOS methode, “goals, objects, agents en operations”, risico beheersing, construeren van requirements, redeneren over consistentie van requirements
+ Ideaal om mee te beginnen Software architecture (SA) NIEUW vanaf 2015 •
dr. Bastiaan Heeren, ir. Sylvia Stuurman, prof.dr. Lex Bijlsma
•
Nadenken over structuur; standaard architecturen, kwaliteitsmodellen, patterns voor enterprise applications, architecture description, languages en modellen, service‐oriented architecturen
Software evolution (Sevo) NIEUW voor Master SE •
dr. Bastiaan Heeren, ir. Sylvia Stuurman
•
Bouwen met software; Samenstellen van software, modelleren van variabele software structuur, Software Product Lines, Web Services
*
Na eerste release van een systeem: Onderhoud, Refactoring, Metaprogramming, Metrieken voor onderhoudbaarheid, Visualisatie van software metrieken, repository mining
23
24
4
5/15/2014
Competenties voor afstuderen
Thema Software Quality Assurance Software verification and testing (SVT) NIEUW voor Master SE
Academic writing (AW) Nieuw vanaf 2014
•
dr. Freek Verbeek, dr. Nike van Vugt-Hage
•
Dr. Harrie Passier, Ir. Sylvia Stuurman
*
Beter modelleren en beter testen; formeel modelleren van software systemen, formeel analyseren, temporele logica, model checking, modelbased testing
•
Verdiepingsopdracht bij Design patterns
Software security (SoSe) NIEUW voor Master SE •
dr.ir. Harald Vranken, dr.ir. Arjan Kok
*
Veilige software maken; security van ontwerpen en implementeren tot testen, risicoanalyse op architectuurniveau, statische codeanalyse van programmacode, ontwikkelen van software die vrij is van beveiligingslekken
•
zoeken van / verwijzen naar literatuur
•
op wetenschappelijke wijze schrijven
•
onderbouwd, logisch argumenteren
Research Preparation (RP) Nieuw vanaf 2015 •
Ir. Sylvia Stuurman, Dr. Bastiaan Heeren
•
Verdiepingsopdracht bij Software evolution
25
•
destilleren onderzoeksvraag uit artikel
•
destilleren onderzoeksmethode uit artikel
•
reflectie op verzamelen van gegevens
•
zelf formuleren nieuwe onderzoeksvraag (vervolgvraag bij artikel)
26
Samenvattend
Afstudeerproject master SE (VAF,AF) NIEUW •
Dr. Anda Counotte (coördinatie) en Prof.dr. Marko van Eekelen (examinator)
Master of Science in Software Engineering aan de Open Universiteit:
•
Voorbereiding (VAF); Afstuderen (AF)
•
Flexibel studeren op academisch niveau (tijd, plaats en geld)
•
Scriptie over afstudeerproject
•
‘1-jarige’ universitaire Master, koppeling met praktijk
–
onderzoek, begeleid door een onderzoeker
•
Op de recente GSwE2009 ACM/IEEE richtlijnen gebaseerd programma
–
binnen een van de thema’s van de opleiding
•
–
met een onderdeel waarin gebruikssoftware wordt ontwikkeld
Studiemateriaal voor een groot deel in overleg met andere universiteiten (Amsterdam (Sevo), Utrecht (SA), Nijmegen (SoSe, SVT), Leuven (SA)) ontwikkeld
–
aansluitend bij onderzoek, bij voorkeur binnen de faculteit: www.openU.nl
•
Een must voor een software engineer die op universitair niveau wil functioneren!
•
Model-based testing / verification (o.a. networks on chip; INTEL, NWO)
•
Declarative software development (o.a. intelligent feedback; EU, Noordhoff)
•
Voltijd-/deeltijd- of afstandsonderwijs? Kijk en vergelijk met UvA
•
Security (o.a. veilig internetbankieren; Nederlandse banken en Politie)
•
Schrijf je in! Zo’n 150 studenten gingen je al voor!
•
Various topics: Software analysis, Energy Analysis, Requirements modelling, Business rules based software development, Software engineering methodology, Software engineering education, …
?
Vragen/opmerkingen
27
28
SQL Injection attack. Consider the following code fragment, pwd shorthand for password query= ' SELECT * FROM accounts WHERE name= ' + request.getParameter("name") + ' AND pwd= ' + request.getParameter(”pwd”); User: whocares is entered for the name field and ''OR'a'='a' is entered for pwd query= SELECT * FROM accounts WHERE name= x AND pwd= ''OR'a'='a'; query= SELECT * FROM accounts WHERE name=x AND pwd =''OR'a'='a'; OR is now an operator! Apply binding rules query= SELECT * FROM accounts WHERE (name=x AND pwd='')OR'a'='a'; query= SELECT * FROM accounts WHERE (name=x AND pwd='')OR TRUE; query= SELECT * FROM accounts WHERE TRUE; query= SELECT * FROM accounts; 29
5