TNM094 — Medietekniskt kandidatprojekt
Våren 2018

Innehåll

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.

Kursorganisation

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.

Undervisning

Kursdisposition och datum

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äsning2018-01-15
Deadline formulär2018-01-16 (09:00)
Deadline kundkontakt2018-02-01
Avstämningsmöten2018-02-05
Deadline individuell rapport2018-02-15 kl 12:00
Deadline projektplan2018-02-23 kl 12:00
Avstämningsmöten2018-03-05
Deadline komplettering av projektplan2018-04-12 kl 12:00
Deadline komplettering av individuell rapport2018-05-02 kl 12:00
Avstämningsmöten2018-04-16/17?
Deadline projektrapport (komplett)2018-05-10 kl 12:00
Deadline opponeringsrapport2018-05-22 kl 12:00
Deadline projektrapport (kompletterad)2018-05-31 kl 23:59
Slutseminarium2018-06-01

Kurslitteratur

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.

Examination

Lärare

Karljohan Lundin Palmerius Examinator och kursledare. Ger även föreläsningar, bedömer rapporter och handleder projektarbeten. [KJ]
Daniel Jönsson [Daniel Jönsson]
Victoria Pihlgren Examinerar individuella rapporter språkligt [Victoria Pihlgren]
Robin Skånberg Handleder laborationer [Robin Skånberg]
Ali Samini Handleder laborationer [Ali Samini]
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äsningsämnen och material

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 PDF
01 Introduktion PDF
Top Ten Lists of Software Project Risks: Evidence from the Literature Survey PDF
Avoiding the Top 10 Software Security Design Flaws PDF
02 Utvecklingsmetodik PDF
Iterative and Incremental Development: A Brief History PDF
The Scrum Guide PDF
Scrum of scrums Web
03 Projekthantering PDF
04 Kravhantering och kundkontakt PDF
05 Modellering för objektorienterad analys och design PDF
Agile Modeling Web
Modeling in the Agile Age (Astah) Web
UML 2.0 Quick Reference Web
UML Cheat sheet PDF
Asta Five-step-exempel (från 2014) asta/PDF
Asta Five-step-exempel (från 2013) asta/PDF
06 Systemarkitektur PDF
Patterns For Large-Scale JavaScript Application Architecture Web
What is Systems Architecture (by Boris Golden) Web
07 Modul- och Programdesign PDF
08 Implementation PDF
C++ Core Guidelines Web
Doxygen Web
x Multi-trådning PDF
09 Design-mönster PDF
10 Refaktorering PDF
Refactoring, Improving the Design of Existing Code PDF
Flyway, Why Database Migrations Web
11 Testning PDF
List of unit testing frameworks Web
12 Underhåll PDF

Extra topics

x Språkstrimman
Att skriva en rapport PDF
Rapportskrivning och akademiskt skriftspråk PDF
Kommentarer 2018 PDF
Språkguider, Linköpings universitet Web
Ordlista, Datatermgruppen Web
WebbGranska @ KTH/Nada Web
x Projekt PDF

Ytterligare material

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:

Laborationer

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

Individuell rapport

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 PDF
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.

Utvecklingsprojekt

För godkänt i kursen ska man framgångsrikt medverka i ett utvecklingsprojekt. Detaljerade instruktioner finns i separat dokument.

Projektplan

Varje team lämnar in en projektplan. Detaljerade instruktioner finns i separat dokument. Inlämning kan ske via e-post till examinatorn.

Avstämningsmöten

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.

Projektrapport

Projektet redovisas i en projektrapport som ska lämnas in vid två tillfällen. Detaljerade instruktioner finns i separat dokument.

Instruktioner PDF
Rapport-mall, LaTeX ZIP PDF
Språkguider, Linköpings universitet Web
Språkverkstaden på ISV, Linköpings universitet Web

Opponering

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.

Slutseminarium

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.

Tillgängliga generella resurser