Prof. dr. Marko van Eekelen over de inhoud

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