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
© Copyright 2024 ExpyDoc