E.g. UpFrontDesign, UnifiedModelingLanguage (UML), ObjectOrientedAnalysisAndDesign (OOAD), ArchitecturalSpike
E.g. TestDrivenDevelopment, or just normal improvisational coding
TDD implies that tests (a form of system definition, and thus part of its design) are written before code
E.g. ReFactoring, RefactoringToPatterns
See also SoftwareDesign