Veckoplan med kursveckor - vad händer och vad göra?

By . Latest revision .

Detta dokument uppdateras löpande under kursen, som minnesnoteringar för vad som händer i varje kursvecka.

Varje kursvecka förekommer ett eller flera fokusområden som presenteras från lärarteamet med föreläsningar och/eller artiklar. Dessa fokusområden skall sedan diskuteras och hanteras i grupperna och införlivas i gruppens arbete.

#Förbered inför kursen

Skaffa dig en grupp genom att till exempel annonsera att du söker en grupp i kursens chattkanal eller prata med dina studiekompisar.

Läs igenom bakgrunden till projektet i dokumentet “Elsparkcyklar bakgrundsanalys” för att skaffa dig kunskap om den domän där du skall verka i.

#Rekommenderad studieplan

Det finns en översiktlig rekommenderad studieplan som visar hur kursens veckor är fördelade.

Här nedan följer en mer detaljerar beskrivning av vad som händer vecka för vecka.

#Vecka 01: Kund och uppdrag

Kursen startar och projektet presenteras tillsammans med kursens upplägg. Kundens kravbild gås igenom. Första uppgiften gås igenom, det handlar om förutsättningar för att skapa en översikt av systemet via en System Design Specification (SDS). Vi pratar om olika typer av arkitekturer när man bygger ett större system.

Innan veckan är slut skall alla finnas i en grupp. Gruppstorleken är 4 studenter.

Presentation

Material

Följande material är viktiga styrdokument att sätta sig in i.

  1. Elsparkcyklar bakgrundsanalys
  2. Kravspecifikation
  3. Tips, trix och förtydliganden

Resurser

Följande läsresurser är relevanta denna veckan.

Rörande arkitektur.

  1. Software architecture patterns - Take a deep dive into several common software architecture patterns
    1. The top 5 software architecture patterns: How to make the right choice (shorter article on the same matter)
  2. The Big Ball of Mud and Other Architectural Disasters
    1. Big Ball of Mud (original paper)
    2. Why Software Becomes a Big Ball of Mud (yet another (short) article on the matter)
  3. What UML diagram should I use to show a platform’s architecture? (TLDR; “make it look good”)
  4. Paper “Architectural Blueprints—The 4+1 View Model of Software Architecture” showing examples on how to draw 4+1 architecture blueprints.

Rörande arbetsmetoder.

  1. Vad är ett stand-up meeting? Vilka frågor känns relevanta att svara på ett stand-up?
  2. Vilken är din roll i gruppen? Emil lyfter frågan om hur en grupp organiserar sig och vilken roll man tar på sig.

Assignment

#Vecka 02: Fokus serversidan

Jobba vidare med SDS för att bryta ned och förstå systemet och dess delar. Fokus på serversidan av projektet.

Presentation

Vi träffas och pratar som saker som hjälper oss framåt.

  1. Jobba med arkitekturen och backenden samt olika teknikval
  2. Designa och dokumentera ett REST API
  3. GitHub/GitLab flow
  4. Effektiva och högpresterande team
  5. Tekniska studier och rapporter för att lära sig och sprida kunskap.
    • Någon som är sugen på en teknisk studie om Docker med många containrar?

Resurser

Följande läsresurser är relevanta denna veckan.

Följande artikelserie tar dig igenom hur man kan tänka när man designar ett REST API. Du får också stöd för hur du kan designa ditt API med en matris som lite kan liknas vid hur vi designade databasen med ER-modellering.

  1. How to design a RESTful API architecture from a human-language spec (part 1)
  2. How a RESTful API server reacts to requests (part 2)
  3. How a RESTful API represents resources (part 3)

Dokumentation av REST API:er.

  1. Här är en REM server som visar ett exempel på hur en API:et till en REST server kan se ut och som kan användas för test. Använd en REST klient likt ARC för att testa API:et.

  2. Emils dokumentation av REST API:et för lager API:et.

Hur jobba med Git repon (GitHub eller GitLab) när man jobbar i grupp?

Vad innebär “högpresterande team” och vad är “bike shedding”?

Tekniska rapporter för att göra små korta utredningar och presentera resultat.

#Vecka 03: Fokus klientsidan

Jobba med SDS. Fokus på klientsidan av projektet.

Presentation & Seminarie

Vi träffas och pratar som saker som hjälper oss framåt.

  1. Allmänt om arkitektur, teknik och mjuka värden.

Resurser

  1. Vilka varianter finns det för att bygga klienter med webbteknologier?

    • Mobile app via webbläsaren, responsiv eller utvecklad enbart för små enheter, baserad på klassisk server-side generering av webbsidor.
    • Single Page Application (SPA)
      • React, Angular, Vue, Mithril
    • Progressiva web appar
    • Apache Cordova kompilera HTML, CSS, JS till nativ applikation.
    • “Native apps”, kompilerade för respektive enhet.
      • iPhone med Swift och Objective-C
      • Android med Java/Kotlin
    • Electron, “Build cross-platform desktop apps with JavaScript, HTML, and CSS”.
  2. Choosing the best programming language for mobile app development” är en artikel som kortfattat nämner flertalet av ovan tekniker för att bygga klientapplikationer med webbaserade teknologier.

  3. Docker med exempel på hur images byggs och containrar startas upp och kommunicerar.

  4. Hur ser industrin på att organisera sig i team och grupper?

  5. Vilka krav har industrin på nya studenter?

Lästips

  1. “The Deadline: A Novel About Project Management” by TomDeMarco ISBN 0-932633-39-0. Populär och utbildande novell om projektledning av ett utvecklingsprojekt. Smått humoristisk och allvarlig om hur man kan få ett projekt i mål. Boken börjar med att projektledaren blir drogad och kidnappad och sätts i en position där ett lyckat projekt är samma sak som att behålla sin livhanke.

#Vecka 04: SDS klar

Leverans av SDS.

#Vecka 05: Implementationsfas

Påbörja implementationsfasen av projektet och implementera systemet enligt er SDS.

#Vecka 06: Teknikval

Lämna in de teknikval ni gjort för projektet och berätta kort om hur ni kommer att implementera systemet.

#Vecka 07: Implementera projektet

Jobba med implementationen av projektet och se till att kontinuerligt integrera teamets arbete i en helhet.

Första möjligheten att göra en leverans av systemet.

#Vecka 08: Implementera projektet

#Vecka 09: Implementera projektet

#Vecka 10 (v01): Förbered inför leverans

Jobba med projektet och förbered inför leveransen. Genomför en egenkontroll i form av en avstämning inför slutleveransen, vad skall finnas med och hur skall det leveraras, dokumenteras, presenteras och testköras?

#Vecka 11 (v02): Leverans och presentation

Gruppen levererar systemet och presenterar arbetet och demonstrerar att systemet fungerar.

Avslutningsvis skrivs en slutrapport från gruppens projektarbetet. Slutrapporten innehåller även en erfarenhetsrapport med lärdomar.

Varje deltagare skriver också en avslutande summering av sina egna erfarenheter och lärdomar av gruppens arbete och kursens utformning.

#Revision history

  • 2022-10-24: (B, mos) Länk till domänbeskrivning.
  • 2022-10-10: (A, mos) Första utgåva inför kursstart HT2022.

Document source.