Europeiskt masterprogram i Software Engineering
120 högskolepoäng (start ht-13)
Översikt
Profil - innehåll
Programvara har blivit ett allt viktigare element i många produkter som utvecklas idag. Det har skett en förändring i utvecklingskostnaderna från hårdvaruutveckling till programvarulösningar. Detta ökar behovet av att kunna utveckla programvaror med rätt funktionalitet, kvalitet, i tid och inom budget. European Master i Software Engineering är konstruerat för att möta dessa utmaningar genom att utbilda programvaruutvecklare i avancerade koncept inom programvaruteknik som täcker hela utvecklingskedjan, från företagsledningens perspektiv till de tekniska och de utvecklande perspektiven. Denna utbildning sker också på med ett europeiskt perspektiv då studenten läser ett av sina två år utomlands (antingen det första eller det sista året).Utbildningsprogrammet är tvåårigt och organiseras runt en grupp av obligatoriska kurser. De obligatoriska kurserna ger en bred bas och täcker flera avancerade ämnen som programvaruteknikindustrin för närvarande är i behov av. Dessutom säkrar de en generell grund för alla studenter. Alla kurser är designade för att erbjuda en blandning av den senaste praktiken och de senaste rönen. Detta stärks ännu mer av det faktum att högskolan har aktiv forskning inom alla av de obligatoriska kursernas ämnen. Undervisningen genomförs av personer som har betydande kontakter inom industrin och många av dem är också aktiva i forskargruppen inom programvaruteknik. Denna forskargrupp är internationellt uppmärksammad inom området.
Examen
Utbildningen leder fram till en examen på avancerad nivå, med benämningenTeknologie masterexamen.
Huvudområde: programvaruteknik.
Motsvarande benämning på engelska är
Master of Science (120 credits).
Main field of study: Software Engineering
Studenterna har rätt att tillgodoräkna sig kurser från tre andra universitet i Europa: Universidad Politécnica de Madrid (Spanien), Technische Universität Kaiserslautern (Tyskland) och Free University of Bozen/Bolzano (Italien), när de ansöker om examensbevis, och studenterna går under double diploma avtal som BTH slutit med ovan nämnda lärosäten.
Examensbevisen som studenten får från detta program har alltid ett medföljande s.k. ”diploma supplement”. Diploma supplement är ett dokument som i detalj förklarar programmets upplägg, innehåll och syfte, och klargör för en framtida arbetsgivare att studenten innehar examensbevis från ett masterprogram som genomförs på europeisk nivå.
Anmälan
Välkomstbrev
Länk till välkomstbrev från ansvarig lärare finns här senast 3 veckor innan kursstart.
Programtid
2013 vecka 36 till
2015 vecka 23
2015 vecka 23
Undervisningsform
Campus, Dagtid, heltid
Ort
Karlskrona
Språk
Undervisningen bedrivs på engelska.
Nivå
Avancerad nivå
Huvudområde
Programvaruteknik
Utbildningsplan
Programansvarig
Antagning
Förkunskapskrav
För tillträde till utbildningsprogrammet krävs en Kandidatexamen i Programvaruteknik eller i Datavetenskap, vilken innefattar avslutade studier motsvarande 90 högskolepoäng inom området programvaruteknik, samt Engelska B.Läs mer om grundläggande behörighet på avancerad nivå.
Urval
Vid fler behöriga sökande än antal tillgängliga platser, till aktuell programstart, görs ett urval. Då detta program drivs av fyra olika lärosäten i fyra olika länder sker ansökning, urval och rekrytering på Europanivå. Detta innebär att utöver de svenska lagar och förordningar tillämpas ett särskilt urval (se Bilaga A) där även Executive Agency for Education, vilket är underställt Europeiska Kommissionen och direkt ansvarigt för Erasmus Mundus programmen, lägger till specifika urvalskriterier som tar strikt europeiska hänsyn i beaktande.Ansökan till European Master in Software Engineering görs via webbsidan: http://emse.fi.upm.es/ och sista ansökningsdatum brukar ligga i december/januari.
Antagningsprocedur
Läs mer om antagningsproceduren.Tillgodoräknande av tidigare studier och utlandsstudier
Student som antagits till programmet och som tidigare läst någon kurs,
som motsvarar en kurs inom programmet, kan ansöka om att få kursen tillgodoräknad.
Om det är möjligt erbjuds studenten att genomgå en alternativ kurs.
Vid studier utomlands under tiden programmet pågår kan en större del
(vanligtvis en hel termin) tillgodoräknas. I detta fall ges ett
förhandsbesked om tillgodoräknandet via s k Learning agreement.
Läs mer om studier utomlands
Praktisk information
Praktisk information hittas under 'Vill studera'.
Lärandemål
Profil - innehåll
Programvara har blivit ett allt viktigare element i många produkter som utvecklas idag. Det har skett en förändring i utvecklingskostnaderna från hårdvaruutveckling till programvarulösningar. Detta ökar behovet av att kunna utveckla programvaror med rätt funktionalitet, kvalitet, i tid och inom budget. European Master i Software Engineering är konstruerat för att möta dessa utmaningar genom att utbilda programvaruutvecklare i avancerade koncept inom programvaruteknik som täcker hela utvecklingskedjan, från företagsledningens perspektiv till de tekniska och de utvecklande perspektiven. Denna utbildning sker också på med ett europeiskt perspektiv då studenten läser ett av sina två år utomlands (antingen det första eller det sista året).Utbildningsprogrammet är tvåårigt och organiseras runt en grupp av obligatoriska kurser. De obligatoriska kurserna ger en bred bas och täcker flera avancerade ämnen som programvaruteknikindustrin för närvarande är i behov av. Dessutom säkrar de en generell grund för alla studenter. Alla kurser är designade för att erbjuda en blandning av den senaste praktiken och de senaste rönen. Detta stärks ännu mer av det faktum att högskolan har aktiv forskning inom alla av de obligatoriska kursernas ämnen. Undervisningen genomförs av personer som har betydande kontakter inom industrin och många av dem är också aktiva i forskargruppen inom programvaruteknik. Denna forskargrupp är internationellt uppmärksammad inom området.
Lärandemål
Utöver de nationellt reglerade målen gäller följande mål för utbildningen.Efter genomförd utbildning skall studenten:
- förstå utmaningarna i storskalig utveckling av programvaruteknik.
- förstå rådande praxis i storskalig utveckling av programvaruteknik.
- visa de färdigheter som behövs för att anpassa och tillämpa rådande praxis i en given situation i programvaruutveckling.
- visa förmåga att kritiskt utvärdera utmaningar och föreslagna lösningar för storskalig utveckling, att identifiera starka och svaga punkter och möjligheter till förbättring.
- visa förmåga att självständigt leda en undersökning inom området.
- visa färdigheter att agera utifrån ett europeiskt perspektiv.
Upplägg
Upplägg av utbildningen
Studenterna förväntas studera heltid under två läsår. Kurserna ges på campus och på engelska. Ett undantag är Magisterarbetet i programvaruteknik som kan läsas som en distanskurs om det anses lämpligt (i de fall studenterna läser sitt andra år på ett annat lärosäte än BTH sker givetvis examensarbetet på distans och handledningen sköts främst av fakulteten vid det andra lärosätet).Alla kurserna på EMSE programmet är obligatoriska för att på så sätt garanterna att samtliga studenter som läser vid BTH, under första eller andra året, tillgodoräknar sig en minsta gemensam nämnare avseende genomförda kurser. Detta är ett krav från EMSE-konsortiet och i slutändan Europeiska Kommissionen för att lättare synkronisera utbildningens genomförande som sker på två universitet i Europa (där BTH är ett av dessa universitet).
Utbildningsprogrammets mål uppnås genom de kurser som ingår i examen. Bedömning och examination sker på kursnivå och detaljer rörande examination och betygssättning finns i respektive kursplan.
Under utbildningens gång utvärderas varje kurs, och kursutvärderingarna ligger till grund för fortsatt utvecklingsarbete.
OBS! Lägg märke till att det är kursens starttermin som anges i tabellen nedan. Se varje kurs för att se kursens faktiska utsträckning i tiden.
Kurser höstterminen 2013
Obligatoriska kurser
Avancerad projektstyrning inom programvarutillverkning, 7,5 hp, avancerad nivå.
Merparten av programvaran utvecklas i team så därför är det mycket viktigt att utvecklare har ingående kunskaper och färdigheter i att leda och arbeta effektivt i projektteam.
Denna kurs syftar till att ge studenterna en solid teoretisk kunskapsbas inom allmän projektledning, beteendevetenskap och organisationsstudier relaterat till frågeställningar som rör projektstyrning inom programvaruutveckling (SPM).
Läs all information om kursen 'Avancerad projektstyrning inom programvarutillverkning'
Merparten av programvaran utvecklas i team så därför är det mycket viktigt att utvecklare har ingående kunskaper och färdigheter i att leda och arbeta effektivt i projektteam.
Denna kurs syftar till att ge studenterna en solid teoretisk kunskapsbas inom allmän projektledning, beteendevetenskap och organisationsstudier relaterat till frågeställningar som rör projektstyrning inom programvaruutveckling (SPM).
Läs all information om kursen 'Avancerad projektstyrning inom programvarutillverkning'
Programvaruarkitektur och kvalitet, 7,5 hp, grundnivå.
Programvaruarkitekturer är ett viktigt tekniskt koncept i modern storskalig programvaruutveckling som tjänar flera syften; man planerar utvecklingsresurser baserat på arkitekturen, man analyserar problemdomänen ur ett flertal perspektiv med hjälp av arkitekturen, och man abstraherar stora mängder information för att kunna få en användbar överblick med hjälp av arkitekturen. Dessutom är arkitekturen, och hur man väljer att konstruera arkitekturen, en nyckelkomponent för att planera och åstadkomma en viss kvalitetsnivå i ett system, vilket därmed bestämmer hur framgångsrikt systemet kommer vara.
I den här kursen förväntas studenten införskaffa detaljerade kunskaper om programvaruarkitekturer och programvarukvalitet och, i synnerhet, hur det senare påverkas av det förra.
Vidare förväntas studenten införskaffa en förståelse av hur man konstrurerar en programvaruarkitektur baserat på moderna metoder och idéer såsom designmönster, objektorienterade ramverk och komponentbaserad programvaruteknik som tar hänsyn till den planerade produkten, den omgivande teknologin och den utvecklande organisationen på ett sätt som skapar långlivade och hållbara system med en planerad och predikterbar kvalitetsnivå.
Läs all information om kursen 'Programvaruarkitektur och kvalitet'
Programvaruarkitekturer är ett viktigt tekniskt koncept i modern storskalig programvaruutveckling som tjänar flera syften; man planerar utvecklingsresurser baserat på arkitekturen, man analyserar problemdomänen ur ett flertal perspektiv med hjälp av arkitekturen, och man abstraherar stora mängder information för att kunna få en användbar överblick med hjälp av arkitekturen. Dessutom är arkitekturen, och hur man väljer att konstruera arkitekturen, en nyckelkomponent för att planera och åstadkomma en viss kvalitetsnivå i ett system, vilket därmed bestämmer hur framgångsrikt systemet kommer vara.
I den här kursen förväntas studenten införskaffa detaljerade kunskaper om programvaruarkitekturer och programvarukvalitet och, i synnerhet, hur det senare påverkas av det förra.
Vidare förväntas studenten införskaffa en förståelse av hur man konstrurerar en programvaruarkitektur baserat på moderna metoder och idéer såsom designmönster, objektorienterade ramverk och komponentbaserad programvaruteknik som tar hänsyn till den planerade produkten, den omgivande teknologin och den utvecklande organisationen på ett sätt som skapar långlivade och hållbara system med en planerad och predikterbar kvalitetsnivå.
Läs all information om kursen 'Programvaruarkitektur och kvalitet'
Praktisk kravhantering, 7,5 hp, grundnivå.
Den första utmaningen i samband med programvaruutveckling är att säkerställa att rätt system utvecklas, dvs kravhantering. Fokus i denna kurs är att studenten förvärvar en förståelse för hur insamling av relevanta krav från relevanta källor bör genomföras, och säkerställande av att kraven hålls uppdaterade under hela utvecklingsprocessen.
Läs all information om kursen 'Praktisk kravhantering'
Den första utmaningen i samband med programvaruutveckling är att säkerställa att rätt system utvecklas, dvs kravhantering. Fokus i denna kurs är att studenten förvärvar en förståelse för hur insamling av relevanta krav från relevanta källor bör genomföras, och säkerställande av att kraven hålls uppdaterade under hela utvecklingsprocessen.
Läs all information om kursen 'Praktisk kravhantering'
Praktisk projektstyrning inom programvarutillverkning, 7,5 hp, avancerad nivå.
Idag utvecklas merparten av programvara i projektform. Därför är det viktigt att programvaruutvecklare har kunskap om och erfarenhet av detta arbetssätt.
Målet med denna kurs är att förmedla hur man planerar, utför och slutför ett projekt. Detta inkluderar, men begränsas inte till, projektstyrning och administration från början till slut, tillämpning av metoder och tekniker för att säkerställa att projektet avslutas på ett framgångsrikt sätt. Ytterligare ett syfte är att uppnå en förståelse för, och kunskap om, hur man ska tolka olika intressenters roller och behov i ett typiskt projekt.
Läs all information om kursen 'Praktisk projektstyrning inom programvarutillverkning'
Idag utvecklas merparten av programvara i projektform. Därför är det viktigt att programvaruutvecklare har kunskap om och erfarenhet av detta arbetssätt.
Målet med denna kurs är att förmedla hur man planerar, utför och slutför ett projekt. Detta inkluderar, men begränsas inte till, projektstyrning och administration från början till slut, tillämpning av metoder och tekniker för att säkerställa att projektet avslutas på ett framgångsrikt sätt. Ytterligare ett syfte är att uppnå en förståelse för, och kunskap om, hur man ska tolka olika intressenters roller och behov i ett typiskt projekt.
Läs all information om kursen 'Praktisk projektstyrning inom programvarutillverkning'
Valbara kurser
Produktledning för mjukvara och mjukvaruintensiva system, 7,5 hp, avancerad nivå.
Kursen introducerar produktledning baserat på rekommendationer från International Software Product Management Association (ISPMA). Det omfattar koncept och teknik för produktstrategi, produktplanering, och samordning av funktionella enheter av företaget.
Läs all information om kursen 'Produktledning för mjukvara och mjukvaruintensiva system'
Kursen introducerar produktledning baserat på rekommendationer från International Software Product Management Association (ISPMA). Det omfattar koncept och teknik för produktstrategi, produktplanering, och samordning av funktionella enheter av företaget.
Läs all information om kursen 'Produktledning för mjukvara och mjukvaruintensiva system'
Programmering i UNIX-miljö, 7,5 hp, grundnivå.
Syftet med kursen är att studenten ska tillägna sig en fördjupad förståelse för UNIX-baserade system och för operativsystemnära programmering. Detta innebär bland annat att utveckla förtrogenhet med att programmera operativsystemet på dess mest abstrakta nivå, närmast användaren, och vidare nedåt genom abstraktionsnivåerna till den lägsta nivån, systemanropen.
Många andra kurser lär ut operativsystemens “hur” och “varför”, och de lägger därmed grunden för denna kurs som lär ut detaljerna i hur man designar mjukvara som interagerar med datorn via operativsystemet UNIX (och UNIXbaserade/liknande operativsystem såsom Linux och MacOS). Många kommersiellt viktiga system byggs på UNIX, men det fungerar lika bra i fri- eller öppen-källkodsprojekt. UNIX används både i de största datorerna och i små inbyggda system. Källkoden till flera operativsystem, t ex Linux och FreeBSD, är öppen och går att studera, samt programmeringsgränssnittet är väl dokumenterat.
Kursen lägger grunden för vidare studier inom andra områden (till exempel datasäkerhet) som kräver konkret förståelse för den underliggande teknologin. Syftet uppnås genom att studenten via en serie laborationer får praktisk erfarenhet av att utveckla program i en UNIX-miljö.
Läs all information om kursen 'Programmering i UNIX-miljö'
Syftet med kursen är att studenten ska tillägna sig en fördjupad förståelse för UNIX-baserade system och för operativsystemnära programmering. Detta innebär bland annat att utveckla förtrogenhet med att programmera operativsystemet på dess mest abstrakta nivå, närmast användaren, och vidare nedåt genom abstraktionsnivåerna till den lägsta nivån, systemanropen.
Många andra kurser lär ut operativsystemens “hur” och “varför”, och de lägger därmed grunden för denna kurs som lär ut detaljerna i hur man designar mjukvara som interagerar med datorn via operativsystemet UNIX (och UNIXbaserade/liknande operativsystem såsom Linux och MacOS). Många kommersiellt viktiga system byggs på UNIX, men det fungerar lika bra i fri- eller öppen-källkodsprojekt. UNIX används både i de största datorerna och i små inbyggda system. Källkoden till flera operativsystem, t ex Linux och FreeBSD, är öppen och går att studera, samt programmeringsgränssnittet är väl dokumenterat.
Kursen lägger grunden för vidare studier inom andra områden (till exempel datasäkerhet) som kräver konkret förståelse för den underliggande teknologin. Syftet uppnås genom att studenten via en serie laborationer får praktisk erfarenhet av att utveckla program i en UNIX-miljö.
Läs all information om kursen 'Programmering i UNIX-miljö'
Programvarusäkerhet, 7,5 hp, avancerad nivå.
Kursens huvudsakliga syfte är att lära studenter förstå samt hantera olika programvarusäkerhetsproblem i en säker och kontrollerad miljö. Under kursen kommer studenten att tillägna sig bade teoretiska och praktiska kunskaper om olika typer av säkerhetsproblem hos programvara, och tekniker som kan användas för att skydda programvaran mot sådana hot. Studenten kommer också att lära sig förstå motståndarnas arbetssätt, vilket kan användas för att öka programvarans pålitlighet.
Läs all information om kursen 'Programvarusäkerhet'
Kursens huvudsakliga syfte är att lära studenter förstå samt hantera olika programvarusäkerhetsproblem i en säker och kontrollerad miljö. Under kursen kommer studenten att tillägna sig bade teoretiska och praktiska kunskaper om olika typer av säkerhetsproblem hos programvara, och tekniker som kan användas för att skydda programvaran mot sådana hot. Studenten kommer också att lära sig förstå motståndarnas arbetssätt, vilket kan användas för att öka programvarans pålitlighet.
Läs all information om kursen 'Programvarusäkerhet'
Kurser vårterminen 2014
Obligatoriska kurser
Forskningsmetodik i programvaruteknik och datavetenskap, 7,5 hp, avancerad nivå.
En nyckelfråga i forskningen inom programvaruteknik och datavetenskap är framtagning, utvärdering och jämförelse av metoder, tekniker och verktyg och hur dessa påverkar olika system eller organisationer.
I denna kurs får studenten en förståelse för forskningsmetodik som gör en sådan utvärdering och jämförelse möjligt. Studenten får en introduktion till samhälleliga och etiska aspekter av sådant forskning och får första erfarenheter av att planera, genomföra och rapportera ett forskningsprojekt.
Kursen och programmet är under utveckling och ingen mer information är tillgänglig för närvarande.
En nyckelfråga i forskningen inom programvaruteknik och datavetenskap är framtagning, utvärdering och jämförelse av metoder, tekniker och verktyg och hur dessa påverkar olika system eller organisationer.
I denna kurs får studenten en förståelse för forskningsmetodik som gör en sådan utvärdering och jämförelse möjligt. Studenten får en introduktion till samhälleliga och etiska aspekter av sådant forskning och får första erfarenheter av att planera, genomföra och rapportera ett forskningsprojekt.
Kursen och programmet är under utveckling och ingen mer information är tillgänglig för närvarande.
Verifiering och validering, 7,5 hp, avancerad nivå.
All programvara av betydande storlek behöver verifieras och valideras för att säkerställa en viss kvalitetsnivå. Målet med den här kursen är att förse studenterna med en översiktlig bild av verifiering och validering (V&V) för programvarusystem. Dessutom praktiseras och undersöks flera tekniker (som används i industrin och akademin).
Kursen och programmet är under utveckling och ingen mer information är tillgänglig för närvarande.
All programvara av betydande storlek behöver verifieras och valideras för att säkerställa en viss kvalitetsnivå. Målet med den här kursen är att förse studenterna med en översiktlig bild av verifiering och validering (V&V) för programvarusystem. Dessutom praktiseras och undersöks flera tekniker (som används i industrin och akademin).
Kursen och programmet är under utveckling och ingen mer information är tillgänglig för närvarande.
Multiprocessorsystem, 7,5 hp, avancerad nivå.
Parallellism har under många år varit ett sätt att uppnå hög prestanda i datorsystem. Att skriva parallella program är svårt och tidskrävande, och har därför oftast bara använts i storskaliga serversystem. Bilden har dock ändrats med introduktionen av så kallade multi-coreprocessorer. Idag är i princip varje dator försedd med en liten multiprocessor. För att kunna utnyttja denna till fullo, behöver man skriva parallella program. Med andra ord, multiprocessorsystem och parallell programmering kommer att vara fundamentala grundstenar för dagens och framtidens datorer.
För att kunna utveckla bra program för framtidens datorer är det väsentligt att studenten utvecklar en god förståelse för olika konstruktionsprinciper för multiprocessorsystem, samt en god förståelse för olika metoder och tekniker för att utveckla parallella datorprogram.
Läs all information om kursen 'Multiprocessorsystem'
Parallellism har under många år varit ett sätt att uppnå hög prestanda i datorsystem. Att skriva parallella program är svårt och tidskrävande, och har därför oftast bara använts i storskaliga serversystem. Bilden har dock ändrats med introduktionen av så kallade multi-coreprocessorer. Idag är i princip varje dator försedd med en liten multiprocessor. För att kunna utnyttja denna till fullo, behöver man skriva parallella program. Med andra ord, multiprocessorsystem och parallell programmering kommer att vara fundamentala grundstenar för dagens och framtidens datorer.
För att kunna utveckla bra program för framtidens datorer är det väsentligt att studenten utvecklar en god förståelse för olika konstruktionsprinciper för multiprocessorsystem, samt en god förståelse för olika metoder och tekniker för att utveckla parallella datorprogram.
Läs all information om kursen 'Multiprocessorsystem'
Mätningar av programvara, 7,5 hp, grundnivå.
Inom ingenjörsdisciplinerna så tillämpas begreppet ''best engineering practice'', med vilket menas goda exempel/modeller eller (be)prövad erfarenhet, ständigt vid alla aspekter på utvecklingen av ett system. Det kan röra sig om en bro, en bil, eller en stor byggnad. Begreppet inbegriper en lång tradition av experimenterande, analys, och mätning. Det är att tillämpa vetenskapliga principer på en lösning av ett komplext utvecklingsprojekt. Kärnan i denna tillämpning är själva mätningen. Mätningar i radarsystem ger oss, till exempel, förmågan att upptäcka flygplan när siktförhållandena dåliga. Mätvärden i medicinska system möjliggör för läkare att diagnostisera specifika sjukdomar.
Inom programvaruutveckling, så måste vi förstå och kontrollera programvaruprojekt. Vi behöver veta vad varje process kostar, och hur produktiv personalen är. Vi behöver veta vad vi kan förbättra, etc. För att besvara dessa frågor, så behöver vi mäta.
Målet med den här kursen är att förse studenten med grunderna inom mätning av programvara. De kommer att tillägna sig kunskap om hur mätning av programvara kan användas för att kontrollera, hantera och förutse utveckling av programvaruprocesser. De kommer att tillägna sig grundläggande förståelse för processen för mätning av programvara och en medvetenhet om de problem som kan relateras till tillämpning av mätning av programvara, samt erfarenhet i att arrangera mätningar och modeller för detta.
Kursen och programmet är under utveckling och ingen mer information är tillgänglig för närvarande.
Inom ingenjörsdisciplinerna så tillämpas begreppet ''best engineering practice'', med vilket menas goda exempel/modeller eller (be)prövad erfarenhet, ständigt vid alla aspekter på utvecklingen av ett system. Det kan röra sig om en bro, en bil, eller en stor byggnad. Begreppet inbegriper en lång tradition av experimenterande, analys, och mätning. Det är att tillämpa vetenskapliga principer på en lösning av ett komplext utvecklingsprojekt. Kärnan i denna tillämpning är själva mätningen. Mätningar i radarsystem ger oss, till exempel, förmågan att upptäcka flygplan när siktförhållandena dåliga. Mätvärden i medicinska system möjliggör för läkare att diagnostisera specifika sjukdomar.
Inom programvaruutveckling, så måste vi förstå och kontrollera programvaruprojekt. Vi behöver veta vad varje process kostar, och hur produktiv personalen är. Vi behöver veta vad vi kan förbättra, etc. För att besvara dessa frågor, så behöver vi mäta.
Målet med den här kursen är att förse studenten med grunderna inom mätning av programvara. De kommer att tillägna sig kunskap om hur mätning av programvara kan användas för att kontrollera, hantera och förutse utveckling av programvaruprocesser. De kommer att tillägna sig grundläggande förståelse för processen för mätning av programvara och en medvetenhet om de problem som kan relateras till tillämpning av mätning av programvara, samt erfarenhet i att arrangera mätningar och modeller för detta.
Kursen och programmet är under utveckling och ingen mer information är tillgänglig för närvarande.
Valbara kurser
Serverarkitekturer, 7,5 hp, avancerad nivå.
Vid utveckling av ett större distribuerat datorsystem, så måste ett antal ibland motstridiga krav hanteras. När stora datorsystem designas väljs och integreras därför ett antal hård- och mjukvarukomponenter så att en acceptabel balans mellan motstridiga krav kan uppnås. Detta kräver djup teknisk kunskap om komponenterna och avsedda icke-funktionella egenskaper. Ett typiskt användningsfall för både tillförlitlig och skalbar infrastruktur är realiseringen av ett serversystem.
Moderna serversystem implementeras inte längre med enbart en maskin, utan använder klustertekniker. Klustersystem realiserar jämförelsevis billiga och skalbara plattformar, som uppfyller krav på både tillgänglighet och prestanda för distribuerade applikationer.
Huvudämnet för kursen är klustersystem, och kursen tar bland annat upp kompromisser och konflikter rörande kvalitetsaspekter mellan utvecklingsattribut (till exempel underhåll, återanvändning) och driftattribut(till exempel prestanda, pålitlighet).
Kursen och programmet är under utveckling och ingen mer information är tillgänglig för närvarande.
Vid utveckling av ett större distribuerat datorsystem, så måste ett antal ibland motstridiga krav hanteras. När stora datorsystem designas väljs och integreras därför ett antal hård- och mjukvarukomponenter så att en acceptabel balans mellan motstridiga krav kan uppnås. Detta kräver djup teknisk kunskap om komponenterna och avsedda icke-funktionella egenskaper. Ett typiskt användningsfall för både tillförlitlig och skalbar infrastruktur är realiseringen av ett serversystem.
Moderna serversystem implementeras inte längre med enbart en maskin, utan använder klustertekniker. Klustersystem realiserar jämförelsevis billiga och skalbara plattformar, som uppfyller krav på både tillgänglighet och prestanda för distribuerade applikationer.
Huvudämnet för kursen är klustersystem, och kursen tar bland annat upp kompromisser och konflikter rörande kvalitetsaspekter mellan utvecklingsattribut (till exempel underhåll, återanvändning) och driftattribut(till exempel prestanda, pålitlighet).
Kursen och programmet är under utveckling och ingen mer information är tillgänglig för närvarande.
Kurser höstterminen 2014
Obligatoriska kurser
Global programvaruteknik, 7,5 hp, avancerad nivå.
Kursen syftar till kunskap, kompetens och praktisk erfarenhet gällande kommunikation, samarbete och koordinering av programvaruutvecklingsprojekt utifrån det globala perspektivet. Kursen syftar även till att lära studenterna olika sätt att kommunicera i ett globalt nätverk, i ett globalt team och hur de ska tolka och lyhört utnyttja mångfald i sina yrkesmässiga liv.
Läs all information om kursen 'Global programvaruteknik'
Kursen syftar till kunskap, kompetens och praktisk erfarenhet gällande kommunikation, samarbete och koordinering av programvaruutvecklingsprojekt utifrån det globala perspektivet. Kursen syftar även till att lära studenterna olika sätt att kommunicera i ett globalt nätverk, i ett globalt team och hur de ska tolka och lyhört utnyttja mångfald i sina yrkesmässiga liv.
Läs all information om kursen 'Global programvaruteknik'
Programvaruarkitektur och kvalitet, 7,5 hp, grundnivå.
Programvaruarkitekturer är ett viktigt tekniskt koncept i modern storskalig programvaruutveckling som tjänar flera syften; man planerar utvecklingsresurser baserat på arkitekturen, man analyserar problemdomänen ur ett flertal perspektiv med hjälp av arkitekturen, och man abstraherar stora mängder information för att kunna få en användbar överblick med hjälp av arkitekturen. Dessutom är arkitekturen, och hur man väljer att konstruera arkitekturen, en nyckelkomponent för att planera och åstadkomma en viss kvalitetsnivå i ett system, vilket därmed bestämmer hur framgångsrikt systemet kommer vara.
I den här kursen förväntas studenten införskaffa detaljerade kunskaper om programvaruarkitekturer och programvarukvalitet och, i synnerhet, hur det senare påverkas av det förra.
Vidare förväntas studenten införskaffa en förståelse av hur man konstrurerar en programvaruarkitektur baserat på moderna metoder och idéer såsom designmönster, objektorienterade ramverk och komponentbaserad programvaruteknik som tar hänsyn till den planerade produkten, den omgivande teknologin och den utvecklande organisationen på ett sätt som skapar långlivade och hållbara system med en planerad och predikterbar kvalitetsnivå.
Läs all information om kursen 'Programvaruarkitektur och kvalitet'
Programvaruarkitekturer är ett viktigt tekniskt koncept i modern storskalig programvaruutveckling som tjänar flera syften; man planerar utvecklingsresurser baserat på arkitekturen, man analyserar problemdomänen ur ett flertal perspektiv med hjälp av arkitekturen, och man abstraherar stora mängder information för att kunna få en användbar överblick med hjälp av arkitekturen. Dessutom är arkitekturen, och hur man väljer att konstruera arkitekturen, en nyckelkomponent för att planera och åstadkomma en viss kvalitetsnivå i ett system, vilket därmed bestämmer hur framgångsrikt systemet kommer vara.
I den här kursen förväntas studenten införskaffa detaljerade kunskaper om programvaruarkitekturer och programvarukvalitet och, i synnerhet, hur det senare påverkas av det förra.
Vidare förväntas studenten införskaffa en förståelse av hur man konstrurerar en programvaruarkitektur baserat på moderna metoder och idéer såsom designmönster, objektorienterade ramverk och komponentbaserad programvaruteknik som tar hänsyn till den planerade produkten, den omgivande teknologin och den utvecklande organisationen på ett sätt som skapar långlivade och hållbara system med en planerad och predikterbar kvalitetsnivå.
Läs all information om kursen 'Programvaruarkitektur och kvalitet'
Fördjupningskurs i Datavetenskap och kommunikation, 7,5 hp, avancerad nivå.
Kursens syfte är att ge studenterna möjligheter till att fördjupa sina kunskaper och sin förståelse inom ett specifikt område inom datavetenskap eller programvaruteknik. Kursen utgör en direkt förberedelse för ett kommande magisterarbete.
Läs all information om kursen 'Fördjupningskurs i Datavetenskap och kommunikation'
Kursens syfte är att ge studenterna möjligheter till att fördjupa sina kunskaper och sin förståelse inom ett specifikt område inom datavetenskap eller programvaruteknik. Kursen utgör en direkt förberedelse för ett kommande magisterarbete.
Läs all information om kursen 'Fördjupningskurs i Datavetenskap och kommunikation'
Programvarans produktlinje och områdets ingenjörskunskap, 7,5 hp, avancerad nivå.
Domänspecifik Modellering (DSM) innebär återanvändning av domänkunskap för att förbättra produktiviteten i programvaruutvecklingen och kvaliteten i produkterna som utvecklas i en specifik domän. Detta kan uppnås genom återanvändning av programvaruartefakter som sparas och hanteras i ett bibliotek eller genom specifika metoder, verktyg och tekniker som underlättar utvecklingen av liknande mjukvarusystem. Detta kan också stödjas av ett dedikerat (domänspecifik) språk, som är anpassat till ett särskilt problemområde, en speciell representationsteknik för området och/eller en speciell problemlösnings teknik. Den grundläggande tanken med en programvaruproduktlinje är en domänspecifik produktarkitektur baserad på en differentierad uppsättning plattformar där komponenter delas mellan olika plattformar och produkter. Huvudfrågorna inom produktlinjer omfattar processer, organisations- och affärsaspekter. DSM handlar om att skapa språk och ramverk som lätt kan användas av utvecklarna inom området. Produktlinjer och DSM löser liknande problem och kompletterar varandra. Under kursen skall studenten uppnå en insikt i båda områdena.
Läs all information om kursen 'Programvarans produktlinje och områdets ingenjörskunskap'
Domänspecifik Modellering (DSM) innebär återanvändning av domänkunskap för att förbättra produktiviteten i programvaruutvecklingen och kvaliteten i produkterna som utvecklas i en specifik domän. Detta kan uppnås genom återanvändning av programvaruartefakter som sparas och hanteras i ett bibliotek eller genom specifika metoder, verktyg och tekniker som underlättar utvecklingen av liknande mjukvarusystem. Detta kan också stödjas av ett dedikerat (domänspecifik) språk, som är anpassat till ett särskilt problemområde, en speciell representationsteknik för området och/eller en speciell problemlösnings teknik. Den grundläggande tanken med en programvaruproduktlinje är en domänspecifik produktarkitektur baserad på en differentierad uppsättning plattformar där komponenter delas mellan olika plattformar och produkter. Huvudfrågorna inom produktlinjer omfattar processer, organisations- och affärsaspekter. DSM handlar om att skapa språk och ramverk som lätt kan användas av utvecklarna inom området. Produktlinjer och DSM löser liknande problem och kompletterar varandra. Under kursen skall studenten uppnå en insikt i båda områdena.
Läs all information om kursen 'Programvarans produktlinje och områdets ingenjörskunskap'
Valbara kurser
Produktledning för mjukvara och mjukvaruintensiva system, 7,5 hp, avancerad nivå.
Kursen introducerar produktledning baserat på rekommendationer från International Software Product Management Association (ISPMA). Det omfattar koncept och teknik för produktstrategi, produktplanering, och samordning av funktionella enheter av företaget.
Läs all information om kursen 'Produktledning för mjukvara och mjukvaruintensiva system'
Kursen introducerar produktledning baserat på rekommendationer från International Software Product Management Association (ISPMA). Det omfattar koncept och teknik för produktstrategi, produktplanering, och samordning av funktionella enheter av företaget.
Läs all information om kursen 'Produktledning för mjukvara och mjukvaruintensiva system'
Programmering i UNIX-miljö, 7,5 hp, grundnivå.
Syftet med kursen är att studenten ska tillägna sig en fördjupad förståelse för UNIX-baserade system och för operativsystemnära programmering. Detta innebär bland annat att utveckla förtrogenhet med att programmera operativsystemet på dess mest abstrakta nivå, närmast användaren, och vidare nedåt genom abstraktionsnivåerna till den lägsta nivån, systemanropen.
Många andra kurser lär ut operativsystemens “hur” och “varför”, och de lägger därmed grunden för denna kurs som lär ut detaljerna i hur man designar mjukvara som interagerar med datorn via operativsystemet UNIX (och UNIXbaserade/liknande operativsystem såsom Linux och MacOS). Många kommersiellt viktiga system byggs på UNIX, men det fungerar lika bra i fri- eller öppen-källkodsprojekt. UNIX används både i de största datorerna och i små inbyggda system. Källkoden till flera operativsystem, t ex Linux och FreeBSD, är öppen och går att studera, samt programmeringsgränssnittet är väl dokumenterat.
Kursen lägger grunden för vidare studier inom andra områden (till exempel datasäkerhet) som kräver konkret förståelse för den underliggande teknologin. Syftet uppnås genom att studenten via en serie laborationer får praktisk erfarenhet av att utveckla program i en UNIX-miljö.
Läs all information om kursen 'Programmering i UNIX-miljö'
Syftet med kursen är att studenten ska tillägna sig en fördjupad förståelse för UNIX-baserade system och för operativsystemnära programmering. Detta innebär bland annat att utveckla förtrogenhet med att programmera operativsystemet på dess mest abstrakta nivå, närmast användaren, och vidare nedåt genom abstraktionsnivåerna till den lägsta nivån, systemanropen.
Många andra kurser lär ut operativsystemens “hur” och “varför”, och de lägger därmed grunden för denna kurs som lär ut detaljerna i hur man designar mjukvara som interagerar med datorn via operativsystemet UNIX (och UNIXbaserade/liknande operativsystem såsom Linux och MacOS). Många kommersiellt viktiga system byggs på UNIX, men det fungerar lika bra i fri- eller öppen-källkodsprojekt. UNIX används både i de största datorerna och i små inbyggda system. Källkoden till flera operativsystem, t ex Linux och FreeBSD, är öppen och går att studera, samt programmeringsgränssnittet är väl dokumenterat.
Kursen lägger grunden för vidare studier inom andra områden (till exempel datasäkerhet) som kräver konkret förståelse för den underliggande teknologin. Syftet uppnås genom att studenten via en serie laborationer får praktisk erfarenhet av att utveckla program i en UNIX-miljö.
Läs all information om kursen 'Programmering i UNIX-miljö'
Kvalitetsstyrning, 7,5 hp, avancerad nivå.
Kvalitet är ett svårdefinierat begrepp, som påverkar och blir påverkat under hela utvecklingsprocessen. Kursen syftar till detaljerad förståelse av vad programvarukvalitet representerar, och motsvarande utmaningar för att uppnå hög kvalitet. Dessutom diskuteras ämnen såsom kvalitetstyrning av programvara och dess roll inom ramen för programvaruutveckling och de aktiviteter, tekniker och modeller som är centrala för att säkra programvarukvalitet.
Deltagarna ska under kursen utveckla en medvetenhet om rådande state-of-the-art inom programvarukvalitet, så att de kan förbättra state-of-the-praxis inom mjukvaruindustrin.
Läs all information om kursen 'Kvalitetsstyrning'
Kvalitet är ett svårdefinierat begrepp, som påverkar och blir påverkat under hela utvecklingsprocessen. Kursen syftar till detaljerad förståelse av vad programvarukvalitet representerar, och motsvarande utmaningar för att uppnå hög kvalitet. Dessutom diskuteras ämnen såsom kvalitetstyrning av programvara och dess roll inom ramen för programvaruutveckling och de aktiviteter, tekniker och modeller som är centrala för att säkra programvarukvalitet.
Deltagarna ska under kursen utveckla en medvetenhet om rådande state-of-the-art inom programvarukvalitet, så att de kan förbättra state-of-the-praxis inom mjukvaruindustrin.
Läs all information om kursen 'Kvalitetsstyrning'
Storskalig kravhantering, 7,5 hp, avancerad nivå.
En utmaning i programvaruutveckling är att säkerställa att man utvecklar rätt system, dvs kravhantering. I den här kursen förväntas studenten förvärva en förståelse av hur man samlar relevanta krav från relevanta källor innan man börjar utvecklingen.
I den här kursen fokuserar vi på de problem som uppstår när man hanterar krav i en föränderlig och kostnadskänslig verklighet. I kursen diskuterar vi problem som är relaterade med storskalig kravhantering och marknadsdriven kravhantering. Områden såsom kontinuerlig kravhantering, processförbättring på kravhantering, och teknisk produkthantering diskuteras och relateras till industripraxis.
Kursen och programmet är under utveckling och ingen mer information är tillgänglig för närvarande.
En utmaning i programvaruutveckling är att säkerställa att man utvecklar rätt system, dvs kravhantering. I den här kursen förväntas studenten förvärva en förståelse av hur man samlar relevanta krav från relevanta källor innan man börjar utvecklingen.
I den här kursen fokuserar vi på de problem som uppstår när man hanterar krav i en föränderlig och kostnadskänslig verklighet. I kursen diskuterar vi problem som är relaterade med storskalig kravhantering och marknadsdriven kravhantering. Områden såsom kontinuerlig kravhantering, processförbättring på kravhantering, och teknisk produkthantering diskuteras och relateras till industripraxis.
Kursen och programmet är under utveckling och ingen mer information är tillgänglig för närvarande.
Strategi och IT, 7,5 hp, grundnivå.
I kursen kommer deltagarna att kunna uppnå fördjupad förståelse av företagets strategi utifrån olika perspektiv samt ämnets koppling till IT.
Studenterna kommer att kunna förvärva:
Läs all information om kursen 'Strategi och IT'
I kursen kommer deltagarna att kunna uppnå fördjupad förståelse av företagets strategi utifrån olika perspektiv samt ämnets koppling till IT.
Studenterna kommer att kunna förvärva:
- kunskap om ett företags strategiska nivåer och processer,
- kunskap om strategisk analys av ett företag och dess omvärld inklusive ett företags olika strategiska nivåer och processer.
Läs all information om kursen 'Strategi och IT'
Kurser vårterminen 2015
Obligatoriska kurser
Masterarbete i programvaruteknik, 30 hp, avancerad nivå.
Masteruppsatsen är kulmen av flera års studier inom ett huvudämne och skall visa att studenten har mognat till en sådan nivå att denne kan bidra med ett vetenskapligt gångbart bidrag till området. Kursens syfte är att deltagarna skall vidareutveckla och visa prov på den kunskap och förståelse samt de färdigheter som behövs för att kunna arbeta självständigt och professionellt inom programvaruteknik. Detta inkluderar förmågan att självständigt identifiera problem/utmaningar/brister i ”state-of-the-art” och/eller i ”state-of-practice”. Därefter planera, designa, utföra, sammanställa resultat, och utföra analys av resultat, samtidigt som alla steg noggrant redovisas i uppsatsen. Det inkluderar också att visa på omfattande kunskap om forskningsmetodiker och deras tillämpning. Studierna som utförs skall vara förenlig med, och genom rapporterad redovisning uppvisa, vedertagna karaktäristika för god vetenskaplig metod.
Studierna kan definieras som sökandet efter kunskap eller systematisk utredning för att etablera fakta. Det primära målet med tillämpad forskning (till skillnad från grundforskning) är upptäckande av, förståelse för, och utveckling av metoder/modeller/processer/tekniker och system för befrämjandet av programvaruteknik.
Läs all information om kursen 'Masterarbete i programvaruteknik'
Masteruppsatsen är kulmen av flera års studier inom ett huvudämne och skall visa att studenten har mognat till en sådan nivå att denne kan bidra med ett vetenskapligt gångbart bidrag till området. Kursens syfte är att deltagarna skall vidareutveckla och visa prov på den kunskap och förståelse samt de färdigheter som behövs för att kunna arbeta självständigt och professionellt inom programvaruteknik. Detta inkluderar förmågan att självständigt identifiera problem/utmaningar/brister i ”state-of-the-art” och/eller i ”state-of-practice”. Därefter planera, designa, utföra, sammanställa resultat, och utföra analys av resultat, samtidigt som alla steg noggrant redovisas i uppsatsen. Det inkluderar också att visa på omfattande kunskap om forskningsmetodiker och deras tillämpning. Studierna som utförs skall vara förenlig med, och genom rapporterad redovisning uppvisa, vedertagna karaktäristika för god vetenskaplig metod.
Studierna kan definieras som sökandet efter kunskap eller systematisk utredning för att etablera fakta. Det primära målet med tillämpad forskning (till skillnad från grundforskning) är upptäckande av, förståelse för, och utveckling av metoder/modeller/processer/tekniker och system för befrämjandet av programvaruteknik.
Läs all information om kursen 'Masterarbete i programvaruteknik'
Skriftliga arbeten
Programmet avslutas med ett skriftligt examensarbete motsvarande 30 hp.Internationellt innehåll
Som ett obligatoriskt moment i programmet ingår att studenten studerar 2 termin(er) utomlands.Utomlandsstudierna bedrivs vid något av våra partneruniversitet: Universidad Politécnica de Madrid, Free University Bozen-Bolzano eller Technische Universität Kaiserslautern.
Läs om utlandsstudier
Jobbprofiler
Student med examen från programmet kan bl.a. arbeta inom samtliga branscher där programvaruutveckling sker med följande typer av arbetsuppgifter: kravframställning, projektledning, design, implementering och verifiering och validering.Utbildningen är särskilt intressant för studenter som vill arbeta i utlandet.
Fortsatta studier
Student med examen från programmet kan generellt söka vidare utbildning på forskarnivå inom huvudområdet programvaruteknik samt datavetenskap.På BTH finns följande program på forskarnivå som är öppna för studenter med examen från detta program: programvaruteknik.
Programråd
Programmet har ett programråd som har till uppgift att säkerställa utbildningens användbarhet på och för arbetsmarknaden.Programrådet består av studenter, alumn, extern representant samt lärare och huvudområdesföreträdare.
Programrådet sammanträder två gånger per år.
Kontaktperson för programrådet är: Prof. Natalia Juristo, natalia@fi.ump.es
Examination
Examen
Utbildningen leder fram till en examen på avancerad nivå, med benämningenTeknologie masterexamen.
Huvudområde: programvaruteknik.
Motsvarande benämning på engelska är
Master of Science (120 credits).
Main field of study: Software Engineering
Studenterna har rätt att tillgodoräkna sig kurser från tre andra universitet i Europa: Universidad Politécnica de Madrid (Spanien), Technische Universität Kaiserslautern (Tyskland) och Free University of Bozen/Bolzano (Italien), när de ansöker om examensbevis, och studenterna går under double diploma avtal som BTH slutit med ovan nämnda lärosäten.
Examensbevisen som studenten får från detta program har alltid ett medföljande s.k. ”diploma supplement”. Diploma supplement är ett dokument som i detalj förklarar programmets upplägg, innehåll och syfte, och klargör för en framtida arbetsgivare att studenten innehar examensbevis från ett masterprogram som genomförs på europeisk nivå.
Bedömning och examination
Bedömning och examination varierar mellan olika kurser i programmet. Se information för respektive kurs i programmet.Programutvärderingar
Programutvärdering sker årligen vid den workshop som anordnas av de fyra partneruniversiteten. Alla synpunkter tas till vara och analyseras av samtliga fyra universitet. Studenternas synpunkter på utbildningen används för att förbättra moment i programmet.Alumni
Tidigare studenter arbetar nu bl.a. som: forskarstuderande, deltagare i större programvaruprojekt samt projektledare.Programmet har ett eget alumninätverk.
Kontakta studievägledare
För övergripande frågor om studier på BTH, kontakta våra centrala Studie- och Karriärvägledare.






