Program design etmekten bahsetmissin ama isin icine GUI dizayn da eklemissin sanki.
Program dizayni icin program degil, diyagram kullanilir. UML, Sequence vb gibi diyagramlarla programin nasil calisacagi resmedilir. Programin tasarlanisi sirasinda bulunmayan bir muhendis, ise basladiginda bu dizayn dokumanlarina bakarak butun tasarimi anlayabilir.
Butonun nerede duracagina UI/UX muhendisleri karar veriyor. O butona basinca ne yapilacagina da onlar karar verir. Onlar da genelde mock-up cizim yaparlar, sonra son halini verirler uygulamaya.
Yazilimin kodlamaya baslamadan onceki asamasi dokumandir. Istersen notepad ile yazarsin. Beyaz tahtanin basina gecip dizayn edersin sistemi sonra da dokumente edersin ki yeni katilan muhendisler de anlasinlar olayi. Ayrica driver gibi spesifik bir noktaya entegre olacak yazilimlari dizayn etmeye baslamadan once gereksinim analizi denilen (requirement analysis ) bir sey yapilir. Yani henuz daha nasil bir yazilima ihtiyac oldugunu dahi tam kafamizda kestiremedigimiz bir asama. Bu asamada da gercek hayatta kullanilacak yazilimin tutarli ve kapsayici gereksinimleri cizilir. Yani sen "tren istasyona gelince kapilar acilsin" dersin ama bir muhensis sana tam olarak hangi noktada, tam olarak ne kadar hizda iken kapi acmasi gerektigini sorar. Bu islem de sonra dokumente edilir.