TNM094 — Medietekniskt kandidatprojekt
Våren 2017

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äsning2017-01-16
Deadline kundkontakt2017-02-02
Deadline individuell rapport2017-02-16 kl 12:00
Deadline projektplan2017-02-24 kl 12:00
Avstämningsmöten2017-03-07/-08
Språkseminarium2017-04-05
Deadline komplettering av projektplan2017-04-19 kl 12:00
Deadline komplettering av individuell rapport2017-04-19 kl 12:00
Avstämningsmöten2017-04-24
Deadline projektrapport2017-05-11 kl 12:00
Deadline opponeringsrapport2017-05-23 kl 12:00
Deadline slutlig projektrapport2017-06-01 kl 23:59
Slutseminarium2017-06-02

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]
Maria Thunborg Examinerar individuella rapporter språkligt [Maria Thunborg]
Ali Samini Handleder laborationer [Ali Samini]
Robin Skånberg Handleder laborationer [Robin Skånberg]
Karljohan Lundin Palmerius, Jimmy Johansson, 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 Systemarkitektur PDF
Patterns For Large-Scale JavaScript Application Architecture Web
What is Systems Architecture (by Boris Golden) Web
06 Modul- och Programdesign PDF
07 Modellering och notationer 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
08 Implementation PDF
Google Style Guide Web
Doxygen Web
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

x1 Multi Threaded Programming PDF
x2 Språkstrimman
Att skriva en rapport PDF
Inför kandidatarbete (individuell del) PDF
Kommentarer 2017 PDF
Språkguider, Linköpings universitet Web
Ordlista, Datatermgruppen Web
WebbGranska @ KTH/Nada Web
x3 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-2017] 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.

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

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:

Målgruppen är era kurskamrater. Tänk på att de har jobbat på ett helt annat projekt och kanske hört talas om ert projekt. De kommer att vara väldigt nyfikna på hur ni har tänkt, vilka erfarenheter ni fått och vad ni har lyckats åstadkomma.

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