Programmering nivå 2

Kap 5.1 – Planera ett projekt

Gå från idé till tydlig projektplan innan du börjar programmera.

Mål med lektionen

När du har arbetat klart med denna lektion ska du:

  • Förstå varför det är viktigt att planera innan du programmerar.
  • Känna till och kunna använda analysverktyg som flödesscheman, användningsfall och pseudokod.
  • Kunna strukturera ett programmeringsprojekt från idé till färdig lösning.
  • Välja en uppgift och börja forma en plan inför ditt avslutande projekt.

Så här lär du dig bäst

Du lär dig bäst genom att först fundera på vad du vill att ditt program ska göra. Vad är målet, vilka användare finns och vilka problem ska lösas? Därefter kan du använda verktyg för att bryta ned problemet i delar. Skriv ut dina idéer och diskutera dem med en klasskamrat eller din lärare. En god plan gör programmeringen mycket enklare.

Planering betyder inte att allt måste vara perfekt från början. Det betyder att du gör problemet tillräckligt tydligt för att kunna börja koda i rätt ordning. När du planerar upptäcker du ofta oklarheter innan de blir svåra kodproblem.

Centrala begrepp

  • Användningsfall - Ett enkelt sätt att beskriva hur olika typer av användare ska kunna använda ditt program. Det hjälper dig att identifiera vilka funktioner som behövs. Repetera i Kap 1.7 eller Kapitel 3, avsnitt 3.3.
  • Flödesschema - Ett diagram som visar logiken och stegen i ett program. Det är användbart för att tänka igenom beslut och loopar. Repetera i Kap 1.7, Kap 2.1 eller Kap 2.5.
  • Pseudokod - En blandning av naturligt språk och programmering som beskriver hur en funktion ska fungera utan att skriva riktig kod. Repetera i Kap 1.7, Kap 1.8, Kap 2.1 eller Kap 2.5.
  • MVP - Minimum Viable Product, den enklaste versionen av ett program som fungerar. Det är ett bra första mål i projektet. Det här begreppet introduceras i detta kapitel.

Från idé till krav

En vanlig fälla är att börja med kod direkt: skapa filer, skriva menyer och lägga till funktioner utan att först veta exakt vad programmet ska klara. I ett projekt är det bättre att först skriva enkla krav. Ett krav beskriver något programmet ska kunna göra.

Exempel på tydliga krav för ett lånebibliotek:

  • Användaren ska kunna lägga till en bok med titel och författare.
  • Användaren ska kunna söka efter en bok med titel.
  • Programmet ska visa om boken är tillgänglig eller utlånad.
  • Programmet ska kunna spara data så att böckerna finns kvar nästa gång programmet startas.

De här kraven är lättare att programmera än en vag idé som "gör ett bibliotekssystem". De hjälper dig också att se vilka delar som behövs: inmatning, lagring, sökning och utskrift.

Så planerar du ett programmeringsprojekt

När du startar ett programmeringsprojekt är det viktigt att först förstå problemet du vill lösa. Här är några steg som hjälper dig att komma igång.

1. Beskriv idén

Vad ska programmet göra? Vilket problem löser det? Vem ska använda det?

Programmet ska vara ett lånebibliotek där användaren kan lägga till, söka och låna ut böcker.

2. Skapa användningsfall

Fundera på vilka användare som finns och vad de ska kunna göra.

Användare: Bibliotekarie
Användningsfall: Registrera bok, sök bok, låna ut bok.

3. Rita flödesscheman

Visa hur programmet ska fungera steg för steg. Du kan till exempel rita flödet för att låna ut en bok: användaren söker efter boken, programmet kontrollerar om den finns och sedan uppdateras statusen.

4. Skriv pseudokod

Beskriv i ord, eller blandat med kod, hur en funktion ska fungera.

Om användaren matar in titel:
    Sök i databasen
    Om boken finns:
        Visa information
    Annars:
        Skriv "Boken finns inte"

5. Identifiera vad som behöver kodas

Gör en första lista över programmets delar, till exempel databas, menyer, formulär, användarinmatning, filhantering, klassstruktur eller API-anrop.

6. Bestäm din MVP

MVP är den minsta versionen som fortfarande fungerar. Den ska inte innehålla allt du kan tänka dig. Den ska bara innehålla det viktigaste så att du snabbt får ett körbart program.

För lånebiblioteket kan en rimlig MVP vara:

  • lägga till böcker
  • visa alla böcker
  • söka efter titel

Funktioner som kan vänta till senare:

  • inloggning
  • grafiskt gränssnitt
  • statistik över mest lånade böcker
  • export till PDF eller CSV

Exempel: plan för ett elevregister

Här ser du hur en enkel projektplan kan se ut innan någon kod skrivs.

Syfte

Programmet ska hjälpa en lärare att registrera elever och deras poäng på en uppgift.

Användningsfall

Användare: Lärare
Mål: Registrera en elevs namn och poäng
Steg: Läraren väljer "lägg till elev", skriver namn och poäng, programmet sparar eleven och visar en bekräftelse.

Pseudokod

Visa meny
Om användaren väljer "lägg till elev":
    Fråga efter namn
    Fråga efter poäng
    Kontrollera att poängen är ett tal
    Spara eleven
    Skriv "Elev sparad"

Möjlig kodstruktur

elevregister/
    main.py        # meny och användarens val
    databas.py     # spara, hämta och söka elever
    modeller.py    # klasser, till exempel Elev

Planen behöver inte vara lång. Det viktiga är att den gör nästa steg tydligt: vilka filer som behövs, vilka funktioner som ska byggas först och hur användaren ska arbeta med programmet.

Planeringschecklista

Innan du börjar koda, kontrollera att du kan svara på dessa frågor:

  • Vad är programmets syfte?
  • Vem ska använda programmet?
  • Vilka tre funktioner är viktigast?
  • Vad är den minsta fungerande versionen?
  • Vilken data behöver programmet spara eller hantera?
  • Vilka fel kan användaren råka göra?
  • Vilken funktion ska du bygga först?

Om du inte kan svara på en fråga är det inte ett misslyckande. Det betyder bara att den delen behöver tänkas igenom innan du skriver för mycket kod.

Öva - Planeringsuppgift

Välj ett eget projekt, eller använd ett exempel som Receptregister, RPG-strid eller Elevregister. Gör sedan följande:

  1. Skriv en beskrivning av syftet med programmet.
  2. Lista funktioner som ska finnas.
  3. Skapa minst ett användningsfall.
  4. Rita ett flödesschema för ett centralt flöde.
  5. Skriv pseudokod för minst en funktion.
  6. Bestäm vad som ingår i din MVP och vad som får vänta.

När du har försökt själv kan du jämföra med ett lösningsförslag: planering av ett elevregister.

Sammanfattning

  • Du har nu verktyg för att planera ditt projekt på ett strukturerat sätt.
  • Du har lärt dig att använda användningsfall, flödesscheman och pseudokod.
  • Du har sett hur krav och MVP hjälper dig att avgränsa projektet.
  • Du har påbörjat planeringen av ditt avslutande projekt, vilket gör att du kan programmera mer effektivt.

Tillbaka till Kapitel 5