Avancerad programvarudesign, 6 hp (TDDE45)

Software Design and Construction, 6 credits

Huvudområde

Informationsteknologi Datateknik Datavetenskap

Nivå

Avancerad nivå

Kurstyp

Programkurs

Examinator

Martin Sjölund

Studierektor eller motsvarande

Ola Leifler

Tillgänglig för utbytesstudenter

Ja
Kursen ges för Termin Period Block Språk Ort VOF
6MICS Computer Science, masterprogram 3 (HT 2020) 1 4 Engelska Linköping v
6MICS Computer Science, masterprogram (Programmering och mjukvarumetoder) 3 (HT 2020) 1 4 Engelska Linköping v
6IDAT Högskoleingenjör i datateknik (Programvara) 5 (HT 2020) 1 4 Engelska Linköping v
6CDDD Civilingenjör i datateknik (Programmering och algoritmer) 7 (HT 2020) 1 4 Engelska Linköping v
6CDDD Civilingenjör i datateknik 7 (HT 2020) 1 4 Engelska Linköping v
6CDDD Civilingenjör i datateknik (Storskalig mjukvaruutveckling) 7 (HT 2020) 1 4 Engelska Linköping v
6CDDD Civilingenjör i datateknik (Säkra system) 7 (HT 2020) 1 4 Engelska Linköping o
6CDDD Civilingenjör i datateknik (International Software Engineering) 7 (HT 2020) 1 4 Engelska Linköping v
6CITE Civilingenjör i informationsteknologi 7 (HT 2020) 1 4 Engelska Linköping v
6CITE Civilingenjör i informationsteknologi (Storskalig mjukvaruutveckling) 7 (HT 2020) 1 4 Engelska Linköping v
6CITE Civilingenjör i informationsteknologi (Programmering och algoritmer) 7 (HT 2020) 1 4 Engelska Linköping v
6CITE Civilingenjör i informationsteknologi (Säkra system) 7 (HT 2020) 1 4 Engelska Linköping o
6CITE Civilingenjör i informationsteknologi (International Software Engineering) 7 (HT 2020) 1 4 Engelska Linköping v
6CMJU Civilingenjör i mjukvaruteknik 7 (HT 2020) 1 4 Engelska Linköping v
6CMJU Civilingenjör i mjukvaruteknik (Programmering och algoritmer) 7 (HT 2020) 1 4 Engelska Linköping v
6CMJU Civilingenjör i mjukvaruteknik (Storskalig mjukvaruutveckling) 7 (HT 2020) 1 4 Engelska Linköping v
6CMJU Civilingenjör i mjukvaruteknik (Säkra system) 7 (HT 2020) 1 4 Engelska Linköping o
6CMJU Civilingenjör i mjukvaruteknik (International Software Engineering) 7 (HT 2020) 1 4 Engelska Linköping v
6CDDD Civilingenjör i datateknik 9 (HT 2020) 1 4 Engelska Linköping v
6CDDD Civilingenjör i datateknik (International Software Engineering) 9 (HT 2020) 1 4 Engelska Linköping v
6CDDD Civilingenjör i datateknik (Säkra system) 9 (HT 2020) 1 4 Engelska Linköping o
6CDDD Civilingenjör i datateknik (Programmering och algoritmer) 9 (HT 2020) 1 4 Engelska Linköping v
6CIEI Civilingenjör i industriell ekonomi - internationell, spanska 9 (HT 2020) 1 4 Engelska Linköping v
6CIEI Civilingenjör i industriell ekonomi - internationell, spanska (Teknisk inriktning Datateknik) 9 (HT 2020) 1 4 Engelska Linköping v
6CIEI Civilingenjör i industriell ekonomi - internationell, spanska (Masterprofil Datateknik) 9 (HT 2020) 1 4 Engelska Linköping o
6CIEI Civilingenjör i industriell ekonomi - internationell, franska 9 (HT 2020) 1 4 Engelska Linköping v
6CIEI Civilingenjör i industriell ekonomi - internationell, franska (Teknisk inriktning Datateknik) 9 (HT 2020) 1 4 Engelska Linköping v
6CIEI Civilingenjör i industriell ekonomi - internationell, franska (Masterprofil Datateknik) 9 (HT 2020) 1 4 Engelska Linköping o
6CIEI Civilingenjör i industriell ekonomi - internationell, japanska 9 (HT 2020) 1 4 Engelska Linköping v
6CIEI Civilingenjör i industriell ekonomi - internationell, japanska (Teknisk inriktning Datateknik) 9 (HT 2020) 1 4 Engelska Linköping v
6CIEI Civilingenjör i industriell ekonomi - internationell, japanska (Masterprofil Datateknik) 9 (HT 2020) 1 4 Engelska Linköping o
6CIEI Civilingenjör i industriell ekonomi - internationell, tyska 9 (HT 2020) 1 4 Engelska Linköping v
6CIEI Civilingenjör i industriell ekonomi - internationell, tyska (Teknisk inriktning Datateknik) 9 (HT 2020) 1 4 Engelska Linköping v
6CIEI Civilingenjör i industriell ekonomi - internationell, tyska (Masterprofil Datateknik) 9 (HT 2020) 1 4 Engelska Linköping o
6CIEI Civilingenjör i industriell ekonomi - internationell, kinesiska 9 (HT 2020) 1 4 Engelska Linköping v
6CIEI Civilingenjör i industriell ekonomi - internationell, kinesiska (Teknisk inriktning Datateknik) 9 (HT 2020) 1 4 Engelska Linköping v
6CIEI Civilingenjör i industriell ekonomi - internationell, kinesiska (Masterprofil Datateknik) 9 (HT 2020) 1 4 Engelska Linköping o
6CIII Civilingenjör i industriell ekonomi (Masterprofil Datateknik) 9 (HT 2020) 1 4 Engelska Linköping o
6CIII Civilingenjör i industriell ekonomi (Teknisk inriktning Datateknik) 9 (HT 2020) 1 4 Engelska Linköping v
6CIII Civilingenjör i industriell ekonomi 9 (HT 2020) 1 4 Engelska Linköping v
6CITE Civilingenjör i informationsteknologi (Programmering och algoritmer) 9 (HT 2020) 1 4 Engelska Linköping v
6CITE Civilingenjör i informationsteknologi 9 (HT 2020) 1 4 Engelska Linköping v
6CITE Civilingenjör i informationsteknologi (International Software Engineering) 9 (HT 2020) 1 4 Engelska Linköping v
6CMJU Civilingenjör i mjukvaruteknik (Programmering och algoritmer) 9 (HT 2020) 1 4 Engelska Linköping v
6CMJU Civilingenjör i mjukvaruteknik (International Software Engineering) 9 (HT 2020) 1 4 Engelska Linköping v
6CMEN Civilingenjör i medieteknik 9 (HT 2020) 1 4 Engelska Linköping v
VOF = Valbar / Obligatorisk / Frivillig

Huvudområde

Informationsteknologi, Datateknik, Datavetenskap

Utbildningsnivå

Avancerad nivå

Fördjupningsnivå

A1X

Kursen ges för

  • Masterprogram i Computer Science
  • Högskoleingenjörsprogram i datateknik
  • Civilingenjör i datateknik
  • Civilingenjör i informationsteknologi
  • Civilingenjör i mjukvaruteknik
  • Civilingenjör i industriell ekonomi - internationell
  • Civilingenjör i industriell ekonomi
  • Civilingenjör i medieteknik

Särskild information

Kursen får ej ingå i examen tillsammans med TDDB84.

Förkunskapskrav

OBS! Tillträdeskrav för icke programstudenter omfattar vanligen också tillträdeskrav för programmet och ev. tröskelkrav för progression inom programmet, eller motsvarande.

Rekommenderade förkunskaper

  • Programutvecklingsmetodik (inkl. UML)
  • Kunskaper i programmering i flera språk (inkl. objektorienterad programmering och hantering av pekare)
  • Datastrukturer
  • Kunna läsa forskningsartiklar inom programvarukonstruktion (software engineering) och söka information i nya ämnesområden självständigt och kritiskt

Lärandemål

Efter kursen ska studenten kunna:

  • analysera struktur och organisation i ett större program
  • kritiskt utvärdera designprinciper och -mönster i relation till önskvärda egenskaper hos program och gränssnitt
  • konstruera program som hanterar internationalisering och lokalisering
  • använda verktyg som hjälper användaren omstrukturera eller generera källkod
  • tillämpa olika former av metaprogrammering
  • tillämpa metoder och verktyg som hittar olika sorters problem i källkod både före och under körning av program, med till exempel parallel exekvering eller minnesläckor

Kursinnehåll

Designmönsters historia. Designmönster. Refactoring. Utvecklingsmiljöer. Generering av kod. Testbarhet. Domänspecifika språk. Metaprogrammering. Dependency injection. Ramverk och programmeringsgränssnitt. Felsöknings av minnesallokering och parallella program. Profilering.

Undervisnings- och arbetsformer

Studenterna behandlar föreläsningsmaterial på nätet och studerar kurslitteraturen som förberedelse för laborationer i par och seminarier i grupp, där frågor kring kurslitteraturen behandlas.

Laborationerna har olika djup för de olika övningarna där vissa laborationer lär ut grundläggande kunskap eller teknik i en färdighet med viss handledning och andra laborationer används för att utveckla ett större program med mindre handledning.

 

Examination

UPG1UppgiftU, G1 hp
LAB1LaborationerU, G3 hp
DAT1DatortentamenU, 3, 4, 52 hp

Betygsskala

Fyrgradig skala, LiU, U, 3, 4, 5

Övrig information

Påbyggnadskurser 

Kurser i Programvaruarkitektur och Programvarukvalitet kompletterar kursen.

Om undervisnings- och examinationsspråk

Undervisningsspråk visas på respektive kurstillfälle på fliken "Översikt". Examinationsspråk relaterar till undervisningsspråk enligt nedan:

  • Om undervisningsspråk är Svenska ges kursen i sin helhet eller till stora delar på svenska. Observera att även om undervisningsspråk är svenska kan delar av kursen ges på engelska. Examinationsspråk är svenska. 
  • Om undervisningsspråk är Svenska/Engelska kan kursen i sin helhet ges på engelska vid behov. Examinationsspråk är svenska eller engelska. 
  • Om undervisningsspråk är Engelska ges kursen i sin helhet på engelska. Examinationsspråk är engelska. 

Övrigt

Kursen bedrivs på ett sådant sätt att både mäns och kvinnors erfarenhet och kunskaper synliggörs och utvecklas.

Planering och genomförande av kurs skall utgå från kursplanens formuleringar. Den kursvärdering som ingår i kursen skall därför genomföras med kursplanen som utgångspunkt. 

Institution

Institutionen för datavetenskap

Studierektor eller motsvarande

Ola Leifler

Examinator

Martin Sjölund

Kurshemsida och andra länkar

http://www.ida.liu.se/~KURSKOD

Undervisningstid

Preliminär schemalagd tid: 40 h
Rekommenderad självstudietid: 120 h

Kurslitteratur

Böcker
Freeman & Freeman, Head First Design PatternsGamma, Helm, et.al., (1995) Design Patterns: Elements of Object-Oriented Software Addison Wesley
Övrigt

Utvalda artiklar om programvarudesign och designmönster.

Böcker

Freeman & Freeman, Head First Design Patterns
Gamma, Helm, et.al., (1995) Design Patterns: Elements of Object-Oriented Software Addison Wesley

Övrigt

Utvalda artiklar om programvarudesign och designmönster.

UPG1 Uppgift U, G 1 hp
LAB1 Laborationer U, G 3 hp
DAT1 Datortentamen U, 3, 4, 5 2 hp

Kursplan

För varje kurs ska en kursplan finnas. I kursplanen anges kursens mål och innehåll samt de särskilda förkunskaper som erfordras för att den studerande skall kunna tillgodogöra sig undervisningen.

Schemaläggning

Schemaläggning av kurser görs enligt, för kursen, beslutad blockindelning. 

Avbrott på kurs

Enligt rektors beslut om regler för registrering, avregistrering samt resultatrapportering (Dnr LiU-2015-01241) skall avbrott i studier registreras i Ladok. Alla studenter som inte deltar i kurs man registrerat sig på är alltså skyldiga att anmäla avbrottet så att kursregistreringen kan 
tas bort. Avanmälan från kurs görs via webbformulär, www.lith.liu.se/for-studenter/kurskomplettering?l=sv. 

Inställd kurs

Kurser med få deltagare ( < 10) kan ställas in eller organiseras på annat sätt än vad som är angivet i kursplanen. Om kurs skall ställas in eller avvikelse från kursplanen skall ske prövas och beslutas detta av dekanus. 

Riktlinjer rörande examination och examinator 

Se Beslut om Riktlinjer för utbildning och examination på grundnivå och avancerad nivå vid Linköpings universitet, http://styrdokument.liu.se/Regelsamling/VisaBeslut/917592. 

Examinator för en kurs ska inneha en läraranställning vid LiU i enlighet med LiUs anställningsordning (https://styrdokument.liu.se/Regelsamling/VisaBeslut/622784). För kurser på avancerad nivå kan följande lärare vara examinator: professor (även adjungerad och gästprofessor), biträdande professor (även adjungerad), universitetslektor (även adjungerad och gästlektor), biträdande universitetslektor eller postdoktor. För kurser på grundnivå kan följande lärare vara examinator: professor (även adjungerad och gästprofessor), biträdande professor (även adjungerad), universitetslektor (även adjungerad och gästlektor), biträdande universitetslektor, universitetsadjunkt (även adjungerad och gästadjunkt) eller postdoktor. I undantagsfall kan även en Timlärare utses som examinator på både grund- och avancerad nivå, se Tekniska fakultetsstyrelsen vidaredelegationer. 

Examination

Tentamen

Skriftlig och muntlig tentamen ges minst tre gånger årligen; en gång omedelbart efter kursens slut, en gång i augustiperioden samt vanligtvis i en av omtentamensperioderna. Annan placering beslutas av programnämnden.

Principer för tentamensschemat för kurser som följer läsperioderna:

  • kurser som ges Vt1 förstagångstenteras i mars och omtenteras i juni och i augusti
  • kurser som ges Vt2 förstagångstenteras i maj och omtenteras i augusti och i oktober
  • kurser som ges Ht1 förstagångstenteras i oktober och omtenteras i januari och augusti
  • kurser som ges Ht2 förstagångstenteras i januari och omtenteras i mars och i augusti 

Tentamensschemat utgår från blockindelningen men avvikelser kan förekomma främst för kurser som samläses/samtenteras av flera program samt i lägre årskurs.

För kurser som av programnämnden beslutats vara vartannatårskurser ges tentamina 3 gånger endast under det år kursen ges.

För kurser som flyttas eller ställs in så att de ej ges under något eller några år ges tentamina 3 gånger under det närmast följande året med tentamenstillfällen motsvarande dem som gällde före flyttningen av kursen.

När en kurs ges för sista gången ska ordinarie tentamen och två omtentamina erbjudas. Därefter fasas examinationen ut med tre tentamina samtidigt som tentamen ges i eventuell ersättningskurs under det följande läsåret. Om ingen ersättningskurs finns ges tre tentamina i omtentamensperioder under det följande läsåret. Annan placering beslutas av programnämnden. I samtliga fall ges dessutom tentamen ytterligare en gång under det därpå följande året om inte programnämnden föreskriver annat.

Om en kurs ges i flera perioder under året (för program eller vid skilda tillfällen för olika program) beslutar programnämnden/programnämnderna gemensamt om placeringen av och antalet omtentamina. 

Anmälan till tentamen

För deltagande i tentamina krävs att den studerande gjort förhandsanmälan i Studentportalen under anmälningsperioden, dvs tidigast 30 dagar och senast 10 dagar före tentamensdagen. Anvisad sal meddelas fyra dagar före tentamensdagen via e-post. Studerande, som inte förhandsanmält sitt deltagande riskerar att avvisas om plats inte finns inom ramen för tillgängliga skrivningsplatser.

Teckenförklaring till tentaanmälningssystemet:
  ** markerar att tentan ges för näst sista gången
  * markerar att tentan ges för sista gången 

Ordningsföreskrifter för studerande vid tentamensskrivningar

Se särskilt beslut i regelsamlingen: http://styrdokument.liu.se/Regelsamling/VisaBeslut/622682

Plussning

Vid Tekniska högskolan vid LiU har studerande rätt att genomgå förnyat prov för högre betyg på skriftliga tentamina samt datortentamina, dvs samtliga provmoment med kod TEN och DAT. På övriga examinationsmoment ges inte möjlighet till plussning, om inget annat anges i kursplan.

Plussning är ej möjlig på kurser som ingår i utfärdad examen.

Regler för omprov

För regler för omprov vid andra examinationsformer än skriftliga tentamina och datortentamina hänvisas till LiU-riktlinjerna för examination och examinator, http://styrdokument.liu.se/Regelsamling/VisaBeslut/917592. 

Plagiering

Vid examination som innebär rapportskrivande och där studenten kan antas ha tillgång till andras källor (exempelvis vid självständiga arbeten, uppsatser etc) måste inlämnat material utformas i enlighet med god sed för källhänvisning (referenser eller citat med angivande av källa) vad gäller användning av andras text, bilder, idéer, data etc. Det ska även framgå ifall författaren återbrukat egen text, bilder, idéer, data etc från tidigare genomförd examination, exempelvis från kandidatarbete, projektrapporter etc. (ibland kallat självplagiering).

Underlåtelse att ange sådana källor kan betraktas som försök till vilseledande vid examination.

Försök till vilseledande

Vid grundad misstanke om att en student försökt vilseleda vid examination eller när en studieprestation ska bedömas ska enligt Högskoleförordningens 10 kapitel examinator anmäla det vidare till universitetets disciplinnämnd. Möjliga konsekvenser för den studerande är en avstängning från studierna eller en varning. För mer information se https://www.student.liu.se/studenttjanster/lagar-regler-rattigheter?l=sv.

Betyg

Företrädesvis skall betygen underkänd (U), godkänd (3), icke utan beröm godkänd (4) och med beröm godkänd (5) användas. 

  1. Kurser med skriftlig tentamen skall ge betygen (U, 3, 4, 5).
  2. Kurser med stor del tillämpningsinriktade moment såsom laborationer, projekt eller grupparbeten får ges betygen underkänd (U) eller godkänd (G).
  3. Examensarbete samt självständigt arbete ger betyg underkänd (U) eller godkänd (G).

Examinationsmoment

  1. Skriftlig tentamen (TEN) skall ge betyg (U, 3, 4, 5).
  2. Examinationsmoment som kan ge betygen underkänd (U) eller godkänd (G) är laboration (LAB), projekt (PRA), kontrollskrivning (KTR), muntlig tentamen (MUN), datortentamen (DAT), uppgift (UPG), hemtentamina (HEM).
  3. Övriga examinationsmoment där examinationen uppfylls framför allt genom aktiv närvaro som annat (ANN), basgrupp (BAS) eller moment (MOM) ger betygen underkänd (U) eller godkänd (G).
  4. Examinationsmomenten Opposition (OPPO) och Auskultation (AUSK) inom examensarbetet ger betyg underkänd (U) eller godkänd (G).

För obligatoriska moment gäller att: Om det finns särskilda skäl, och om det med hänsyn till det obligatoriska momentets karaktär är möjligt, får examinator besluta att ersätta det obligatoriska momentet med en annan likvärdig uppgift. (I enlighet med LiU-riktlinjerna http://styrdokument.liu.se/Regelsamling/VisaBeslut/917592). 

För salstentamen gäller att: Om LiU: s koordinator för studenter med funktionsnedsättning har beviljat en student rätt till anpassad examination vid salstentamen har studenten rätt till det. Om koordinatorn istället har gett studenten en rekommendation om anpassad examination eller alternativ examinations/orm, får examinator besluta om detta om examinator bedömer det möjligt utifrån kursens mål. (I enlighet med LiU-riktlinjerna http://styrdokument.liu.se/Regelsamling/VisaBeslut/917592).

 Rapportering av den studerandes examinationsresultat sker på respektive institution.

Regler

Universitetet är en statlig myndighet vars verksamhet regleras av lagar och förordningar, exempelvis Högskolelagen och Högskoleförordningen. Förutom lagar och förordningar styrs verksamheten av ett antal styrdokument. I Linköpings universitets egna regelverk samlas gällande beslut av regelkaraktär som fattats av universitetsstyrelse, rektor samt fakultets- och områdesstyrelser. 

LiU:s regelsamling angående utbildning på grund- och avancerad nivå nås på http://styrdokument.liu.se/Regelsamling/Innehall/Utbildning_pa_grund-_och_avancerad_niva. 

Denna flik innehåller det material som är publikt i Lisam. Den information som publiceras här är inte juridiskt bindande, sådant material hittar du under övriga flikar på denna sida. Det finns inga filer att visa.