Hvad er softwareudvikling? Karakteristika, definition
⚡ Smart opsummering
Software Engineering er den disciplinerede proces med at analysere krav og derefter designe, bygge og teste software, der opfylder dem. Denne ressource forklarer dens definitioner, softwarekrisen, der skabte den, dens popularitet, relaterede discipliner, udfordringer og karakteristikaene for god software.

Hvad er software engineering?
Softwareudvikling er defineret som processen med at analysere brugerkrav og derefter designe, bygge og teste en softwareapplikation, der opfylder disse krav.
Lad os se på de forskellige definitioner af softwareudvikling:
- IEEE definerer i sin standard 610.12-1990 softwareudvikling som anvendelsen af en systematisk, disciplineret og beregningsbar tilgang til udvikling, drift og vedligeholdelse af software.
- Fritz Bauer definerede det som "etablering og brug af standardtekniske principper. Det hjælper dig med økonomisk set at opnå software, der er pålidelig og fungerer effektivt på rigtige maskiner".
- Boehm definerer softwareudvikling som "den praktiske anvendelse af videnskabelig viden til kreativt design og opbygning af computerprogrammer. Det omfatter også den tilhørende dokumentation, der er nødvendig for udvikling".ping, drift og vedligeholdelse af dem.”
Hvorfor Software Engineering? Softwarekrise og dens løsning
Hvad var softwarekrisen?
- Det var i slutningen af 1960'erne, da mange softwareprojekter mislykkedes.
- Meget software overskred budgettet. Resultatet var upålidelig software, der var dyr at vedligeholde.
- Større software var vanskelig og ret dyr at vedligeholde.
- Meget software kunne ikke opfylde kundernes voksende behov.
- Kompleksiteten af softwareprojekter steg, når deres hardwarekapacitet steg.
- Efterspørgslen efter ny software steg hurtigere sammenlignet med evnen til at generere ny software.
Alle ovenstående problemer førte til 'softwarekrisen'.
Løsningen
Løsningen på problemet var at omdanne uorganiseret kodningsindsats til en softwareudviklingsdisciplin. Disse ingeniørmodeller hjalp virksomheder med at strømline driften og levere software, der opfyldte kundernes krav.
- I slutningen af 1970'erne oplevede man en udbredt anvendelse af softwareudviklingsprincipper.
- I 1980'erne automatiseredes softwareudviklingsprocessen og computerstøttet softwareudvikling (CASE) voksede.
- I 1990'erne blev der lagt øget vægt på 'ledelses'-aspekter af projekter og standarder for kvalitet og processer, ligesom i ISO 9001.
Hvorfor er softwareteknologi populært?
Her er vigtige årsager bag populariteten af software engineering:
- Stor software – I virkeligheden er det meget nemmere at bygge en mur end et hus eller en bygning. På samme måde, når softwareudvikling bliver større, hjælper softwareudvikling dig med at bygge softwaren.
- Skalerbarhed – Hvis softwareudviklingsprocessen er baseret på videnskabelige og tekniske koncepter, er det lettere at genskabe ny software for at skalere eksisterende software.
- Tilpasningsevne – Når softwareprocessen er baseret på videnskabelige og tekniske principper, er det nemt at genskabe ny software ved hjælp af softwareudvikling.
- Pris – Hardwareindustrien har vist sine evner, og enorm produktion har sænket prisen på computere og elektronisk hardware.
- Dynamisk natur – Softwarens konstant voksende og tilpasningsdygtige natur. Det afhænger af det miljø, brugeren arbejder i.
- Quality Management – Tilbyder en bedre metode til softwareudvikling for at levere softwareprodukter af høj kvalitet.
Software Engineerings forhold til andre discipliner
Sådan forholder softwareudvikling sig til andre discipliner:
- Computer videnskab: Giver det videnskabelige grundlag for software, ligesom fysik er fundamentet for elektroteknik.
- Ledelsesvidenskab: Softwareudvikling er arbejdskrævende arbejde, der kræver både teknisk og ledelsesmæssig kontrol. Derfor er det meget anvendt inden for ledelsesvidenskab.
- Økonomi: I denne sektor hjælper softwareudvikling dig med ressourceestimering og omkostningskontrol. Der skal udvikles et computersystem, og data skal vedligeholdes regelmæssigt inden for et givet budget.
- Systemteknik: Det meste software er en komponent i et meget større system, for eksempel softwaren i et industrielt overvågningssystem eller flysoftwaren på et fly. Softwareudviklingsmetoder bør anvendes til studiet af disse typer systemer.
Udfordringer ved Software Engineering
Her er nogle kritiske udfordringer, som softwareingeniører står over for:
- Inden for sikkerhedskritiske områder som rumfart, luftfart og atomkraftværker kan omkostningerne ved softwarefejl være enorme, fordi liv er i fare.
- Øgede markedskrav til hurtig ekspeditionstid.
- Håndtering af den øgede kompleksitet af software, der er nødvendig til nye applikationer.
- Mangfoldigheden af softwaresystemer, der skal kommunikere med hinanden.
Attributter til softwareprodukter
Karakteristikaene for ethvert softwareprodukt omfatter funktioner, der vises af produktet, når det installeres og tages i brug.
Det er ikke de tjenester, som produktet leverer. I stedet er de relateret til produktets dynamiske adfærd og den anvendelse, produktet gør.
Eksempler på disse attributter er:
Efficiency, reliability, robustness, maintainability, etc.
Imidlertid varierer den relative betydning af disse egenskaber fra et softwaresystem til et andet.
| Produktresuméet | Beskrivelse |
|---|---|
| Maintainability | Softwaren skal udvikle sig for at imødekomme kundernes skiftende krav. |
| Driftssikkerhed | Pålidelighed omfatter forskellige egenskaber. Pålidelig software bør aldrig forårsage fysisk eller økonomisk skade på tidspunktet for systemfejl. |
| Effektivitet | Softwareapplikationen bør ikke overforbruge systemressourcer som hukommelse og processorcyklusser. |
| Usability | Softwareapplikationen skal have en passende brugergrænseflade og dokumentation. |
Det er meget udfordrende at optimere ovenstående attributter. For eksempel kan det at tilbyde en bedre brugergrænseflade reducere systemets effektivitet.
Karakteristika for god software
Enhver software bør bedømmes ud fra, hvad den tilbyder, og de metoder, der hjælper dig med at bruge den.
Enhver software skal opfylde følgende attributter:
- Operanale
- Transitional
- Vedligeholdelse
Her er nogle vigtige karakteristika ved god software udviklet af softwareprofessionelle.
Operanale
Denne egenskab fortæller os, hvor godt software fungerer i operationer, hvilket kan måles på:
- budget
- Effektivitet
- Usability
- Driftssikkerhed
- Korrekthed
- Funktionalitet
- Sikkerhed
- Sikkerhed
Transitional
Dette er et væsentligt aspekt, når softwaren flyttes fra en platform til en anden:
- Interoperabilitet
- Reus Evne
- Overførsel
- Tilpasningsevne
Vedligeholdelse
Dette aspekt handler om, hvor godt software har evnen til at tilpasse sig et hurtigt skiftende miljø:
- Fleksibilitet
- Maintainability
- modularitet
- Skalerbarhed

