Inom projektutveckling finns det flera viktiga begrepp som är bra att känna till.
Systemutvecklingsfaser
Utvecklingsprocesser är systematiska metoder för att skapa programvara eller digitala system. De delas vanligtvis in i flera faser:
I) Analys (Requirements & Planning)
Denna fas handlar om att förstå användarnas behov och definiera projektets krav och mål.
Innehåll i analysfasen:
- Identifiera målgrupper och intressenter (stakeholders)
- Identifiera och formulera krav (funktionella och icke-funktionella krav)
- Riskanalys och tekniska begränsningar
- Val av utvecklingsprocess och metodik (Scrum, Kanban)
- Skapa en tidsplan och resursfördelning
Exempel:
Om projektet är en webbapplikation för att hantera uppgifter, skulle analysfasen innebära att bestämma vad användarna ska kunna göra, t.ex. skapa, redigera och radera uppgifter.
II)Design (System & UI/UX Design)
I denna fas planeras systemets struktur och användarupplevelse.
Innehåll i designfasen:
- Arkitekturdesign (val av teknologi och struktur: React, CSS ramverk, API)
- Databasdesign
- UI/UX-design (wireframes, prototyper, användartester)
Exempel:
Vid utveckling av en webbapp skulle designfasen inkludera att skapa en wireframe för hur uppgiftshanteringen ser ut och att definiera hur data lagras och hämtas via API:er.
III)Implementation (Development & Coding)
I denna fas implementeras designen i faktisk kod.
Innehåll i implementeringsfasen:
- Utveckling av backend och frontend
- Databasimplementation
- API-utveckling och integrationer
- Versionhantering (Git, GitHub, CI/CD)
- Iterativ utveckling med kodgranskningar
IV)Testning (Verification & Validation)
Testning säkerställer att systemet fungerar enligt kraven.
Innehåll i testfasen:
- Funktionstester – Verifiera att systemet uppfyller kravspecifikationen
- Prestandatester – Belastningstester (Load testing, Stress testing)
- Användartester (UX tests) – Användare testar systemets användbarhet
Exempel:
Ett e-handel system kan testas genom att en användare försöker lägga till, ändra och radera beställningar. Automatiska tester kan verifiera att API:erna returnerar rätt svar.
V)Underhåll(Maintenance):
Maintenance (underhåll) är den sista fasen i mjukvaruutvecklingsprocessen där ett system övervakas, uppdateras och förbättras efter att det har lanserats. Det är en kritisk fas för att säkerställa att mjukvaran fungerar smidigt över tid och att den fortsätter att möta användarnas behov.
Det finns flera metoder för systemutveckling, och valet av metod beror på projektets krav, storlek och flexibilitet. Här är några av de vanligaste metoderna:
Vattenfallsmodellen
Vattenfallsmodellen är en traditionell, linjär och sekventiell modell där varje fas måste vara helt klar innan nästa påbörjas. Det är en toppstyrd och planbaserad metod som används när kraven är tydliga från början.
Exempel:
Om du utvecklar en webbaserad bokningsplattform enligt vattenfallsmodellen börjar du med att specificera alla krav i detalj(Analys), sedan designa systemet, implementera och till sist testa innan lansering. Ändringar efter testfasen kan bli dyra och tidskrävande.
Agila metoder (Scrum & Kanban)
Agil systemutveckling är iterativ, flexibel och kundfokuserad. Istället för att följa en strikt sekvens som i vattenfallsmodellen sker utvecklingen i korta cykler där teamet kontinuerligt anpassar sig efter förändringar.
Scrum – en populär agil metod
Scrum bygger på iterationer (sprintar) på 1-4 veckor där teamet levererar en fungerande del av systemet vid varje sprint.
Viktiga delar av Scrum:
- Backlog – Lista över uppgifter och funktioner som behöver utvecklas.
- Sprint Planning – Planering av vilka uppgifter som ska genomföras i sprinten.
- Daily Stand-up – Kort dagligt möte för att synka teamets arbete.
- Sprint Review & Retrospective – Granskning av resultat och förbättringar inför nästa sprint.
Exempel:
Om du utvecklar en e-handelsplattform kan Scrum användas för att successivt bygga och testa funktioner som produktvisning, varukorg och betalningssystem under olika sprintar.
Användare (Users)
Användare är de personer eller grupper som direkt kommer att använda en produkt, ett system eller en tjänst. De kan vara primära användare (de som använder systemet dagligen) eller sekundära användare (de som använder det ibland eller indirekt).
Exempel:
- För en lärplattform kan lärare och studenter vara primära användare.
- För en e-handelsplattform kan kunder vara primära användare.
Stakeholders (Intressenter)
Stakeholders är alla som har ett intresse i projektet eller systemet, men som inte nödvändigtvis är direkta användare. De kan påverka eller påverkas av systemet.
Exempel:
- I en e-handelsystem kan säljare, administratörer, betaltjänstleverantörer, logistik- och fraktföretag, marknadsföringsteam
Användarbehov (User Needs)
Användarbehov beskriver vad användarna behöver för att kunna utföra en viss uppgift effektivt(beställa en produkt, lär ett ämne). Dessa behov ligger till grund för systemets funktioner och design.
Exempel:
- En student på en lärplattform behöver kunna:
- Ladda upp uppgifter och få feedback.
- Kommunicera med lärare och klasskamrater.
- Få notiser om deadlines.
- En kund i en e-handelsplattform behöver:
- Söka och filtrera produkter enkelt.
- Se produktrecensioner innan köp.
- En snabb och säker betalningsprocess.
Kravspecifikation (Requirement Specification)
Kravspecifikationen beskriver systemets funktionella och icke-funktionella krav. Det är en detaljerad dokumentation av vad systemet ska kunna göra.
Funktionella krav (Functional Requirements)
Dessa beskriver vad systemet ska utföra.
Exempel:
- En lärplattform ska ha en inloggningsfunktion med autentisering via e-post och lösenord.
- Ett e-handelssystem ska ha en kundvagn där användare kan lägga till, ta bort och justera kvantitet på produkter.
Icke-funktionella krav (Non-Functional Requirements)
Dessa beskriver hur systemet ska fungera, t.ex. prestanda, säkerhet och användarvänlighet.
Exempel:
- Svarstid: Systemet ska svara på användarens begäran inom 2 sekunder.
- Säkerhet: All användardata ska krypteras med AES-256.
- Tillgänglighet: Systemet ska vara tillgängligt 99,9 % av tiden.
Kravhantering (Requirement Management)
Kravhantering är processen(som en del av analys fasen) för att samla in, analysera, dokumentera och spåra krav genom hela utvecklingscykeln av ett system eller produkt. Det säkerställer att slutprodukten uppfyller användarnasbehov.
Steg i kravhantering:
- Insamling av behov – Samla in användare och intressenters behov via intervjuer, enkäter, workshops, etc.
- Analys och prioritering – Utvärdera och prioritera behov och askriva som krav(funktionella ock icke funktionella)
- Dokumentation – Skriva kravspecifikationer
- Validering och verifiering – Säkerställa att kraven är korrekta, tydliga och uppfyller användarnas behov.
- Spårbarhet och förändringshantering – Hålla koll på kravens utveckling och hantera ändringar vid behov.
Exempel på kravhantering:
Vid utveckling av en e-handelsplattform kan kravhanteringen inkludera att samla in krav från:
- Kunder (t.ex. enkel sökning, produktrecensioner, smidig betalning).
- Butiksägare (t.ex. möjlighet att lägga till och hantera produkter).
- Logistikavdelningen (t.ex. realtidsuppdateringar om leveranser).
MVP (Minimum Viable Product)
Definition:
MVP (Minimum Viable Product) är den minsta versionen av en produkt som har tillräckligt med funktionalitet för att kunna lanseras och testas av tidiga användare. Syftet är att snabbt validera en idé och samla feedback utan att investera för mycket tid och resurser i utvecklingen.
Egenskaper hos en MVP:
- Har kärnfunktionaliteten – Den innehåller de mest kritiska funktionerna som behövs för att produkten ska vara användbar.
- Snabb utveckling – Byggs snabbt för att validera konceptet.
- Låter användare testa – Användarna kan testa och ge feedback, vilket hjälper utvecklingsteamet att iterera och förbättra produkten.
Exempel på MVP:
- E-handelsplattform:
- MVP: En enkel webbsida där användare kan se produkter och lägga beställningar via ett formulär.
- Fullständig produkt: Ett avancerat system med rekommendationsalgoritmer, användarrecensioner, kundvagn och betalningsintegration.
- Matleveransapp:
- MVP: En app där användare kan se en meny och beställa via SMS.
- Fullständig produkt: En app med GPS-spårning, realtidsbeställningar och betalning direkt i appen.
- Lärplattform:
- MVP: En webbsida där lärare kan ladda upp material och elever kan ladda ner det.
- Fullständig produkt: En interaktiv plattform med quiz, diskussionsforum och automatiserade betygssystem.
Vad är versionshantering?
Versionshantering (Version Control System, VCS) är en metod för att hantera ändringar i filer över tid. Det används ofta inom mjukvaruutveckling för att:
- Spåra ändringar i koden.
- Samarbeta effektivt med andra utvecklare.
- Återgå till tidigare versioner om något går fel.
Vad är Git?
Git är ett distribuerat versionshanteringssystem som skapades av Linus Torvalds 2005 för att hantera Linux-kärnans kod. Det är snabbt, flexibelt och används brett inom mjukvaruutveckling.Git fungerar genom att spåra ändringar i filer och hantera dessa via ett repository (repo). Ett repo kan vara lokalt på din dator eller fjärrlagrat på en plattform som GitHub, GitLab eller Bitbucket.
Git gör det möjligt att spåra, samarbeta och hantera kod i mjukvaruutvecklingsprojekt. Utan Git kan kodförändringar vara svåra att hantera, särskilt i större team.
Vad är GitHub?
GitHub är en molnbaserad plattform för versionshantering och samarbete, byggd kring Git. Det används främst för att:
- Lagra och hantera Git-repositorier (privata och offentliga).
- Samarbeta på kod med andra utvecklare genom Pull Requests.
- Spåra problem och uppgifter genom Issues och Projects.
Skillnad mellan Git och GitHub:
- Git är själva versionshanteringssystemet.
- GitHub är en plattform som hanterar Git-repositorier och underlättar samarbete.
Alternativa tjänster: GitLab, Bitbucket, Azure DevOps.
Vad är en IDE?
En Integrated Development Environment (IDE) är en programvara som erbjuder en uppsättning verktyg för att skriva, redigera, felsöka och köra kod. Den gör det enklare att utveckla program genom att integrera funktioner som:
- Kodredigering (Syntax highlighting, autokomplettering)
- Debugging (Felhantering, breakpoint-inspektion)
- Byggsystem (Kompilering, paket-hantering)
- Versionshantering (Git-integration)
- Terminal/Konsol (Kommandoradsverktyg direkt i IDE:t)
Exempel : Visual Studio Code, IntelliJ IDEA, Atom, Stackblitz, Replit
Vad är Frontend?
Frontend är den del av en applikation eller webbplats som användaren ser och interagerar med. Det handlar om design, layout, knappar, formulär och all interaktivitet i användargränssnittet.
HTML (HyperText Markup Language), CSS (Cascading Style Sheets), JavaScript
Vad är Backend?
Backend är den del av en applikation som hanterar logik, databaser och serverkommunikation. Det är “hjärnan” bakom en webbapplikation där data lagras, bearbetas och skickas till frontend.
Vad är ett gränssnittsutveckling-ramverk?
Ett gränssnittsdesign-ramverk (UI Framework) hjälper utvecklare att bygga interaktiva och responsiva användargränssnitt. Dessa ramverk erbjuder färdiga verktyg och bibliotek för att hantera UI-rendering och händelsehantering.
React.js, Vue.js, Solid, Next.js
Vad är en databas?
En databas är ett organiserat system för att lagra, hantera och hämta data. Databaser används inom nästan alla digitala system, t ex webbapplikationer.
Relationsdatabaser
Relationsdatabaser använder en tabellbaserad struktur med tydliga relationer mellan olika datauppsättningar.
NoSQL-databaser
En NoSQL-databas (Not Only SQL) är en typ av databas som inte använder den traditionella tabellstrukturen som i relationsdatabaser (SQL). Den är designad för att hantera stora datamängder, hög prestanda och flexibel datamodell. JSON är ett format som används mycket i NoSQL databaser.
JSON
JSON (JavaScript Object Notation) is a lightweight data interchange format that is easy for both humans to read and write, and for machines to parse and generate. It’s widely used in web applications for transmitting data between a server and a client as text. Though it originates from JavaScript, it is language-independent, meaning it can be used with most programming languages.
Key Features of JSON:
Simple Structure: JSON is built from two main structures:
- Objects: A collection of key/value pairs, similar to a dictionary or hash map in other languages. Keys are strings, and values can be strings, numbers, arrays, booleans, objects, or null.
- Arrays: An ordered list of values (which can be strings, numbers, objects, etc.).
JSON Syntax:
- Object: Encased in curly braces
{}
, key-value pairs separated by colons:
, and pairs are separated by commas,
. - Array: Encased in square brackets
[]
, with values separated by commas.
{
"name": "Alice",
"age": 25,
"email": "alice@example.com",
"isStudent": false,
"skills": ["JavaScript", "Python", "HTML"],
"address": {
"street": "123 Main St",
"city": "Wonderland",
"postalCode": "12345"
}
}
Vad är API?
Ett API (Application Programming Interface) är ett gränssnitt som tillåter olika system att kommunicera med varandra.
Exempel på API:
- Väder-API för att hämta aktuell temperatur.
- Betalnings-API (Stripe, PayPal) för att hantera betalningar.
- Google Maps API för att integrera kartor i en webbplats.
Vad är REST API?
REST (Representational State Transfer) är en arkitekturstil för att bygga webb-API:er. Ett REST API är ett API som följer REST-principerna och använder HTTP-protokollet för att skicka och ta emot data.
CSS-ramverk
CSS-ramverk hjälper utvecklare att snabbt bygga stiliga och responsiva gränssnitt utan att behöva skriva all CSS från grunden. De innehåller färdiga klasser, komponenter och ibland även JavaScript-funktioner.
Bootstrap
–Komponentbaserat, responsivt och enkelt att använda
-Bygger på Flexbox & Grid system
-Stort ekosystem med färdiga UI-komponenter
<div class="container">
<div class="row">
<div class="col-sm">
One of three columns
</div>
<div class="col-sm">
One of three columns
</div>
<div class="col-sm">
One of three columns
</div>
</div>
</div>
Tailwind CSS
🔹 Du skriver CSS direkt i HTML med korta klasser
🔹 Inget behov av separata CSS-filer
🔹 Perfekt för moderna UI-designs
<div class="h-16 w-36 bg-sky-400 opacity-20 ..."></div>
<div class="-mt-8 bg-sky-300 ...">-mt-8</div>
Vad är Webbhosting?
Webbhosting (Web Hosting) är en tjänst som gör det möjligt att publicera webbplatser och applikationer på internet. En hostingtjänst ger dig servrar där din webbplats lagras och kan nås av användare via en webbläsare.
🔹 Domännamn (ex: www.example.com) – Pekar mot servern där din webbplats lagras.
🔹 Webbserver (ex: Apache, Nginx) – Hanterar inkommande HTTP-förfrågningar.
🔹 Databas (ex: MySQL, MongoDB) – Lagrar dynamisk data.