Software Engineering er et stort felt med mange forskellige kategorier. Det er vanskeligt at definere en endelig liste, da feltet konstant udvikler sig, og nye områder dukker op. Men her er en sammenbrud af nogle hovedkategorier baseret på forskellige aspekter:
efter applikationsdomæne:
* webudvikling: Bygning af websteder og webapplikationer. Inkluderer front-end-udvikling (brugergrænseflade) og back-end-udvikling (logik på serversiden).
* Mobiludvikling: Oprettelse af applikationer til smartphones og tablets. Inkluderer iOS -udvikling (Apple -enheder) og Android Development (Google Devices).
* Desktop -applikationer: Udvikling af software til personlige computere (PCS) og bærbare computere.
* indlejrede systemer: Design af software til specialiserede enheder som medicinsk udstyr, biler eller husholdningsapparater.
* spiludvikling: Oprettelse af videospil. Kræver ekspertise inden for spilmotorer, grafik og lyddesign.
* datavidenskab og maskinlæring: Opbygning af algoritmer og systemer til analyse af store datasæt og forudsigelser.
* cloud computing: Design og implementering af software på cloud -platforme som Amazon Web Services (AWS) eller Microsoft Azure.
efter softwareudvikling livscyklus:
* Kravstik: Definition af softwarens behov og specifikationer.
* design: Planlægning af softwarens arkitektur og struktur.
* Implementering: Skrivning af koden og oprettelse af softwaren.
* test: At sikre softwaren fungerer som tilsigtet og opfylder kvalitetsstandarder.
* implementering: Frigør softwaren til brugerne.
* Vedligeholdelse: Rettelse af bugs, tilføjelse af nye funktioner og at holde softwaren opdateret.
ved teknisk specialisering:
* Front-end-udvikling: Fokuserer på brugergrænsefladen og interaktion med Internettet.
* back-end udvikling: Fokuserer på serversiden logik og datastyring.
* fuld-stack udvikling: Kombinerer front-end og back-end færdigheder.
* DevOps: Broer kløften mellem softwareudvikling og operationer. Fokuserer på automatisering, kontinuerlig integration/kontinuerlig levering (CI/CD) og infrastrukturstyring.
* Databaseteknik: Design, styring og vedligeholdelse af databaser.
* Sikkerhedsteknik: Beskyttelse af software og systemer mod cybertrusler.
* kunstig intelligens (AI) og maskinlæring (ML): Udvikling af algoritmer og systemer, der kan lære og tilpasse sig.
ved metodologi:
* Agile udvikling: Iterativ og samarbejdsmæssig tilgang fokuserede på hurtig udvikling og kundefeedback.
* vandfaldsmodel: Lineær tilgang, hvor hver fase er afsluttet, før den går til den næste.
* Scrum: En ramme for agil udvikling, der understreger teamwork og selvorganisation.
* kanban: Visuelt system til styring af opgaver og arbejdsgange.
Andre kategorier:
* Softwarearkitektur: Design af softwaresystemer på højt niveau af softwaresystemer.
* Softwaredesignmønstre: Genanvendelige løsninger på almindelige softwaredesignproblemer.
* Software Engineering Tools: Forskellige softwareprogrammer, der bruges til at understøtte softwareudviklingsprocessen.
Denne liste er ikke udtømmende, og der er mange andre specialiserede områder inden for softwareteknik. De specifikke kategorier, du støder på, afhænger af dine interesser og karrierevej.