Det är lite knepigt att säga vad en mjukvarudesign är * inte * om det inte är ett program, eftersom det beror på hur vi definierar "program".
Här är en uppdelning:
* Program: Ett program är den faktiska, arbetskoden som berättar en dator vad man ska göra. Det är som receptet för en maträtt och listar ut de specifika stegen.
* Programvarudesign: Detta är planen för ett program. Det är en plan på hög nivå som beskriver:
* vad programvaran kommer att göra: Funktionaliteterna och funktionerna.
* hur det kommer att struktureras: Komponenter, relationer och interaktioner.
* Användarupplevelsen: Hur användaren kommer att interagera med programvaran.
Så, vad är en mjukvarudesign om det inte är ett program?
* En plan: Det är som en arkitektonisk plan för en byggnad - den visar vad som kommer att byggas, men det bygger inte den faktiskt.
* En specifikation: Det är en detaljerad beskrivning av hur programvaran kommer att fungera, men den innehåller inte koden så att den fungerar.
* En modell: Det är en representation av programvarusystemet, men inte en fungerande, körbar version.
Tänk på det så här:
* Ett program är själva bilen.
* En mjukvarudesign är planen för bilen.
Programvaredesignen är avgörande för att bygga programmet, men det är inte själva programmet. Det ger en guide för programmerarna att följa när du skriver den faktiska koden.