De tre huvudsakliga aktiviteterna i systemdesign är:
1. Arkitektonisk design: Detta handlar om att definiera systemets övergripande struktur, identifiera dess huvudkomponenter och deras interaktioner och välja de tekniker och plattformar som kommer att användas. Det upprättar planen på hög nivå.
2. detaljerad design: Detta fokuserar på detaljerna för varje komponent som identifierats i den arkitektoniska designen. Det handlar om att specificera datastrukturer, algoritmer, gränssnitt och andra låga nivåer som är nödvändiga för implementering. Det är "hur" att uppnå arkitekturen.
3. gränssnittsdesign: Detta innebär att utforma interaktioner mellan olika komponenter i systemet, såväl som användargränssnittet (UI) om tillämpligt. Det säkerställer sömlös kommunikation och användbarhet för både interna systemkomponenter och externa användare. Detta täcker både interna API:er och externa användarvänliga aspekter.