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:
- Skriv en beskrivning av syftet med programmet.
- Lista funktioner som ska finnas.
- Skapa minst ett användningsfall.
- Rita ett flödesschema för ett centralt flöde.
- Skriv pseudokod för minst en funktion.
- 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.