Uzor
Uzor (engl. pattern) takođe poznat i kao patern, obrazac, šablon, ili šema (shema) predstavlja relativno nov koncept u nauci. Pojam potiče iz ahitekture, od arhitekte Christopher Alexandera. Uzori predstavljaju komponente od kojih se gradi Jezik uzora i služi za opis najbolje prakse dolaska do određenih rešenja. Uzori se često mešaju sa metodologijom, ali ipak imaju drugačiju prirodu. Oni u nauci predstavljaju novi način sagledavanja pojava, ali su tek u povoju i kao takvi pretstavljaju kontraverznu pojavu u naučnom shvatanju istine.
Po Aleksanderu:
Svaki uzor predstavlja trodelno pravilo, koje uspostavlja relaciju između nekog problema, njegovog rešenja i njihovog konteksta. To je istovremeno i stvar koja se dešava u stvarnosti i pravilo koje govori kako se kreira navedena stvar i kako se ona može kreirati.
Ward Cunningham primećuje da uzor više liči na recept nego na plan. Plan se može dobiti iz građevine, ali recept se ne može dobiti inverznim postupkom, iz kolača.
Christopher Alexander je do uzora došao na osnovu posmatranja gradova, njihove strukture i građevina. Uzor treba da prati i odgovarajuća dokumentacija, kako bi se olakšalo nalaženje rešenja u sličnoj problemskoj situaciji. Odnos između uzora i dokumentacije se može porediti sa odnosom između poezije i proze.
James Coplien tvrdi da uzori ne predstavljaju metodu projektovanja, već obuhvataju praksu koja se razvila iz postojećih metoda razvoja softvera.
Uzori postoje u svim oblastima ljudskog života, međutim, ili nisu dokumentovani, ili ne postoji svest ni praktična potreba za njihovim dokumentovanjem. Kolekcija uzora u jednoj oblasti se može nazvati i jezikom uzora u širem smislu, ali u jednoj oblasti takođe može postojati i više takvih jezika u užem smislu. Nezavisno od ovoga postoji generalna klasifikacija uzora, to su (po Jamesu Coplienu):
- Tronivojski
- Idiomi - zavise od tehnologije, npr. programski jezik
- Uzori projektovanja - mikriarhitektura, ne preterano složeni
- Okviri
- Aleksanderovo skaliranje - pravljenje generalnog jezika uzora
- Drugi skalirajući pristupi
- Anti-uzori - u praksi su se pokazali kao loši
- Meta-uzori
Služe za stvaranje dokumentacije kako bi se olakšalo nalaženje rešenja u sličnoj problemskoj situaciji pomažući, pri tome, da se shvati: problem koji se rešava, kontekst problema i objašnjenje rešenja. Za sada postoji tri poznata oblika predstavljanja uzora:
- Aleksanderov oblik
- GOF oblik
- Coplienov oblik
- Alexander Christopher: The timeless way of building, New York:Oxford University Press, 1979.
- Coplien James O, Software Patterns, Bell Labs, Hillside Group, 2000.
- Gamma Errich, Helm Richard, Johnson Richard, Vilssides John: Design Patterns, Addison Wetley, 1999.(ISBN 0-201-63361-2)