Det er lidt vanskeligt at sige, hvad et softwaredesign er * ikke *, hvis det ikke er et program, fordi det afhænger af, hvordan vi definerer "program".
Her er en sammenbrud:
* Program: Et program er den faktiske, arbejdskode, der fortæller en computer, hvad de skal gøre. Det er som opskriften på en skål, der viser de specifikke trin.
* Softwaredesign: Dette er planen for et program. Det er en plan på højt niveau, der skitserer:
* hvad softwaren vil gøre: Funktionaliteterne og funktionerne.
* hvordan det vil være struktureret: Komponenter, forhold og interaktioner.
* Brugeroplevelsen: Hvordan brugeren vil interagere med softwaren.
Så hvad er et softwaredesign, hvis det ikke er et program?
* En plan: Det er som en arkitektonisk plan for en bygning - den viser, hvad der vil blive bygget, men det bygger det faktisk ikke.
* En specifikation: Det er en detaljeret beskrivelse af, hvordan softwaren fungerer, men den indeholder ikke koden for at få den til at fungere.
* En model: Det er en repræsentation af softwaresystemet, men ikke en fungerende, eksekverbar version.
Tænk på det sådan:
* et program er selve bilen.
* Et softwaredesign er planen for bilen.
Softwaredesignet er vigtigt for at opbygge programmet, men det er ikke selve programmet. Det giver en guide for programmererne til at følge, når de skriver den faktiske kode.