Šta je zapravo softverska arhitektura? Odgovor na to pitanje se nalazi na više nivoa. Na najvišem nivou, nalaze se arhitekturni uzori koji definišu sveukupan oblik i strukturu aplikacije. Na nižem nivou je arhitektura koja je specifična za aplikaciju koju razvijamo. Na još nižem niovu je arhitektura modula, klasa i njihovih veza. To je zapravo nivo mikro arhitekture. Dok se na još nižem nivou nalaze idiomi.
Značaj uzora u proizvodnji složenih sistema je odavno priznat u drugim disciplinama. Konkretno, Kristofer Aleksander i njegove kolege su prvi predložili da se jezik uzora upotrebi u arhitekturi zgrada i gradova. Njegove ideje i doprinosi sada su ukorenjeni u zajednici objektno orijentisanog softvera.
Sve dobro strukturirane objektno orijentisane arhitekture su pune uzora. Ako se prilikom razvoja sistema usresredi na pravilno korišćenje uzora dobija se manja, jednostavnija i razumljivija arhitektura nego ako se ignorišu.
Uzori sadrže rešenja koja su se vremenom razvijala i proširivala. To nisu rešenja koja se prave iz prve, već su prošla dosta iterativnih poboljšanja.
Postoji više definicija šta je uzor. Najjednostavnija je „uzor je provereno rešenje za problem u datom kontekstu“. Međutim, mnogi smatraju da je ovo isuviše pojednostavljeno. Čak je i Richard Gabriel rekao „Alexander je mogao da napiše definiciju uzora u jednoj rečenici, ili esej, ali je umesto toga napisao knjigu od 550 stranica, zato što je koncept težak za razumevanje“.
Ovo je samo mali uvod u ono o čemu planiram da pišem. Stoga se može smatrati kao prvi od više članaka na tu temu.
Najbolji program za surfovanje po internetu