Detta är kurshemsidan för Medietekniskt kandidatprojekt, TNM094. Detta är en kurs i systemutveckling för medietekniker med ett projektarbete som resulterar i ett kandidatarbete. Allt material som distribueras under kursens gång kommer att länkas från denna sida.
Undervisningen i kursen baseras till största del på föreläsningar tillsammans med kompletterande litteratur, laborationsövningar samt ett stort utvecklingsprojekt. Stort fokus ligger på att genomföra det sistnämnda med hjälp av de verktyg som diskuteras på föreläsningarna.
En grundläggande, ungefärlig disposition över kursen syns i figuren nedan. Observera att datum kan ändras under kursens gång.
Första föreläsning | 2018-01-15 |
Deadline formulär | 2018-01-16 (09:00) |
Deadline kundkontakt | 2018-02-01 |
Avstämningsmöten | 2018-02-05 |
Deadline individuell rapport | 2018-02-15 kl 12:00 |
Deadline projektplan | 2018-02-23 kl 12:00 |
Avstämningsmöten | 2018-03-05 |
Deadline komplettering av projektplan | 2018-04-12 kl 12:00 |
Deadline komplettering av individuell rapport | 2018-05-02 kl 12:00 |
Avstämningsmöten | 2018-04-16/17? |
Deadline projektrapport (komplett) | 2018-05-10 kl 12:00 |
Deadline opponeringsrapport | 2018-05-22 kl 12:00 |
Deadline projektrapport (kompletterad) | 2018-05-31 kl 23:59 |
Slutseminarium | 2018-06-01 |
Den primära kurslitteraturen består av Pfleeger & Atlee, Software Engineering Theory and Practice, fourth edition.
Annan användbar och rekommenderad läsning innefattar Design Patterns, Elements of Reusable Object-Oriented Software, by Gamma et al., Pattern-oriented Software Architecture, volume 2: Patterns for Concurrent and Networked Objects, by Schmidt et al., och Refactoring — Improving the Design of Existing Code, by Martin Fowler. Den sistnämnda boken finns som PDF.
Karljohan Lundin Palmerius | Examinator och kursledare. Ger även föreläsningar, bedömer rapporter och handleder projektarbeten. | |
Daniel Jönsson | ||
Victoria Pihlgren | Examinerar individuella rapporter språkligt | |
Robin Skånberg | Handleder laborationer | |
Ali Samini | Handleder laborationer | |
Karljohan Lundin Palmerius, Jimmy Johansson, Daniel Jönsson, Peter Steneteg, Camilla Forsell, Niklas Rönnberg, Robin Skånberg, Emil Axelsson | Bedömer rapporter. |
Föreläsningarna är indelade i ämnen och varje flygblad kommer att behandla ett ämne. Ett ämne kan dock ges över flera föreläsningstillfällen och ett tillfälle kan behandla flera ämnen. Observera att här även listas extramaterial som kompletterar föreläsningarna.
00 | Kursinformation | ||
01 | Introduktion | ||
Top Ten Lists of Software Project Risks: Evidence from the Literature Survey | |||
Avoiding the Top 10 Software Security Design Flaws | |||
02 | Utvecklingsmetodik | ||
Iterative and Incremental Development: A Brief History | |||
The Scrum Guide | |||
Scrum of scrums | Web | ||
03 | Projekthantering | ||
04 | Kravhantering och kundkontakt | ||
05 | Modellering för objektorienterad analys och design | ||
Agile Modeling | Web | ||
Modeling in the Agile Age (Astah) | Web | ||
UML 2.0 Quick Reference | Web | ||
UML Cheat sheet | |||
Asta Five-step-exempel (från 2014) | asta/PDF | ||
Asta Five-step-exempel (från 2013) | asta/PDF | ||
06 | Systemarkitektur | ||
Patterns For Large-Scale JavaScript Application Architecture | Web | ||
What is Systems Architecture (by Boris Golden) | Web | ||
07 | Modul- och Programdesign | ||
08 | Implementation | ||
C++ Core Guidelines | Web | ||
Doxygen | Web | ||
x | Multi-trådning | ||
09 | Design-mönster | ||
10 | Refaktorering | ||
Refactoring, Improving the Design of Existing Code | |||
Flyway, Why Database Migrations | Web | ||
11 | Testning | ||
List of unit testing frameworks | Web | ||
12 | Underhåll | ||
Extra topics | |||
x | Språkstrimman | ||
Att skriva en rapport | |||
Rapportskrivning och akademiskt skriftspråk | |||
Kommentarer 2018 | |||
Språkguider, Linköpings universitet | Web | ||
Ordlista, Datatermgruppen | Web | ||
WebbGranska @ KTH/Nada | Web | ||
x | Projekt |
Javascript är lätt att programmera i men notoriskt svårt att använda för systemutveckling. För att få till effektiv utveckling (som inte slutar med att alla sitter kring en dator) eller göra mer avancerade applikationer för Webben behövs djupare förståelse och/eller alternativa verktyg:
Tänk på att de flesta moderna språk tillåter OOP även om de ofta inte används för OOP, t ex PHP:
För utveckling av användargränssnitt:
Lab 1 | Laboratory Platform (optional) | (tnm093) | |
Lab 2 | Version Control | handledning | |
Lab 3 | Design Modelling | handledning | filer |
Lab 4 | Code Quality Analysis Tools | handledning | filer |
Alla som vill göra projektarbetet ska lämna in en individuell rapport som beskriver ett personligt genomförandeplan. Detaljerade instruktioner finns i separat dokument.
Rapporten ska vara skriven på svenska i nedanstående mall och kapitel 1–N (appendix ej inkluderat) bör vara maximalt 6000 ord.
Instruktioner | |
Rapport-mall, LaTeX | TeX PDF |
Språkguider, Linköpings universitet | Web |
Rapporten lämnas in via URKUND i PDF-format. Använd ert
LiU-id som namn på filen (<LiU-ID>.pdf
) och
skicka den som bilaga via e-post till adressen karljohan.palmerius.liu@analys.urkund.se. Använd
ämne [TNM094-2018]
för att underlätta
sortering.
När alla i gruppen har lämnat in den individuella rapporten så är det tillåtet att låta material därifrån återanvändas i projektplanen och grupprapporten.
För godkänt i kursen ska man framgångsrikt medverka i ett utvecklingsprojekt. Detaljerade instruktioner finns i separat dokument.
Varje team lämnar in en projektplan. Detaljerade instruktioner finns i separat dokument. Inlämning kan ske via e-post till examinatorn.
Varje team kommer att kallas till åtminstone två avstämningsmöten med "ledningsgruppen", i den här kursen examinatorn tillsammans med eventuell mentor. På avstämningsmötet presenterar teamet hur arbetet fortskrider med utgångpunkt från utvecklingsprocessen, d v s hur kommunikationen inom gruppen fungerar, rutiner, dokumentation, kravhantering, programdesign, etc.
För många team kommer avstämningsmötena ha samma deltagare som kundmötena, men det är två helt olika möten med olika syfte. På kundmöten diskuteras produkt och progression utifrån projektets krav och mål. På avstämningsmöten diskuteras istället teamet inre funktioner och hur projektet går utifrån systemutvecklingsprinciper och kursens mål.
Tanken är att dessa möten ska vara av informell karaktär men alla ansvariga bör vara förberedda och ha med sig relevanta dokument och annat material.
Projektet redovisas i en projektrapport som ska lämnas in vid två tillfällen. Detaljerade instruktioner finns i separat dokument.
Instruktioner | |
Rapport-mall, LaTeX | ZIP PDF |
Språkguider, Linköpings universitet | Web |
Språkverkstaden på ISV, Linköpings universitet | Web |
Varje student kommer att tilldelas ett projekt att opponera individuellt på. Opponenten läser och ger återkoppling på ett fullständigt och färdigt utkast av rapporten. Detaljerade instruktioner finns i separat dokument.
Varje projekt presenteras på ett slutseminarium med obligatorisk närvaro. Alla studenter har då läst minst en rapport var och har förberett frågor som kan leda till bra diskussioner om varje projekt.
Schema över slutseminariets presentationer
Presentationen kommer att pågå i ca 30 minuter varpå en frågestund följer som kan pågå i ca 10 minuter. Tiden för presentationen skulle kunna delas upp på följande sätt, men det är fritt fram för gruppen att disponera tiden på annat sätt om det passar projektet bättre:
Även om redovisningen hålls öppen för allmänheten, så är målgruppen era kurskamrater. Tänk på att de också har använt agil utveckling och har full koll på de grundläggande principerna, men har jobbat på ett helt annat projekt och kanske hört talas om ert projekt. De vill inte ha en lektion i utvecklingsmetodik men kommer att vara väldigt nyfikna på om ni gjort någonting annorlunda, hur detta har fungerat, hur ni har tänkt, vilka erfarenheter ni fått och vad ni har lyckats åstadkomma. Intressant är framför allt misstag som ni rättat till!
I oppositions-momentet har ni läst om de andra projekten — använd teamets kollektiva kunskap för att fokusera på det som gör ert projekt unikt!
Tänk på att ha med mycket bilder och figurer som beskriver hur ni har arbetat, vad ni har arbetat med och vilka resultat ni fick.