Kun asiakkaan kanssa on sovittu tuotteen sisältö ja saatu aikaan vaatimusmäärittely, voidaan siirtyä suunnitteluvaiheseen. Tässä vaiheessa on siis tarkoitus laatia suunnitelma, kuinka järjestelmä toteutetaan. Suunnitelma siis vastaa kysymykseen miten. Määrittelyvaiheessa on asiakkaan kanssa laadittu järjestelmän toiminnan kuvaus ja nyt tuo kuvaus pitäisi saada muutettua tekniseksi kuvaukseksi, jonka perusteella järjestelmää voidaan alkaa toteuttamaan.
Suunnitteluvaiheessa syntyvää dokumenttia kutsutaan tekniseksi määrittelyksi. Siinä missä toiminnallinen määrittely kuvaa mitä järjestelmän tulee tehdä asiakkaan näkökulmasta, tekninen määrittely kuvaa miten järjestelmä toteutetaan teknisesti.
Tekninen määrittely sisältää tyypillisesti:
Suunnitteluvaihe voidaan jakaa kahteen päätasoon:
Suunnittelussa esiintyy kaksi termiä, jotka on hyvä erottaa toisistaan:
Arkkitehtisuunnittelussa järjestelmä jaetaan mahdollisimman itsenäisiin, toisistaan riippumattomiin osiin eli moduuleihin. Tässä vaiheessa päätetään järjestelmän kokonaisrakenne ja päätekniset ratkaisut.
Arkkitehtisuunnittelussa määritellään:
Moduulisuunnittelussa kuvataan yksittäisten moduulien sisäinen rakenne yksityiskohtaisesti. Tämä on matalan tason suunnittelua, jossa määritellään esimerkiksi luokat, metodit, algoritmit ja tietorakenteet.
Moduulisuunnittelussa määritellään:
Tietokantasuunnittelu on keskeinen osa teknistä määrittelyä. Se sisältää tietokannan rakenteen suunnittelun, joka tyypillisesti toteutetaan vaiheittain:
Suunnitteluvaiheessa käytetään UML-mallinnuskielen kaavioita teknisen rakenteen kuvaamiseen:
Hyvän suunnittelun periaatteita: