Web / primjeri aplikacija 203 RAZVOJ APLIKACIJA KORIŠTENJEM UZORAKA DIZAJNA APPLICATION DEVELOPMENT USING DESIGN PATTERNS Mario Konecki, Zlatko Stapić, Tihomir Orehovački SAŽETAK Dinamika poslovnog svijeta i ostalih aspekata društva zahtijeva brz razvoj novih aplikacijskih rješenja za potporu poslovanju. Razvoj aplikacija se mora svesti na svoj vremenski minimum a mogućnosti krivih načina oblikovanja i razvoja programske podrške se moraju eliminirati jer dovode do nepotrebnog trošenja vremena i odgađanja isporuke samog proizvoda. Uzorci dizajna predstavljaju jedan korak u rješavanju navedene situacije i postaju danas sve popularniji. Uzorci dizajna predstavljaju prepoznata rješenja za ponavljajuće probleme u području dizajna aplikacijske podrške na način da osiguravaju poznat i prokušan način rješavanja pojedinog problema. Mogu se grupirati i klasificirati prema namjeni i načinu primjene. U ovom radu bit će dan pregled svih grupa i vrsta uzoraka dizajna zajedno s mogućnostima njihovog korištenja te problemima koji se mogu pojaviti. Ključne riječi: uzorak dizajna, ponavljajući problem, razvoj, aplikacijska podrška ABSTRACT Dynamics of business world and the rest aspects of human society demand rapid development of new application solutions for business support. Application development has to be brought to its time-consumption minimum and the possibility of using wrong ways of design and development of applications has to be eliminated because it consumes time for no useful results and it delays the final product delivery. Design patterns are one of the steps in solving this situation and they become more and more popular. Design patterns are general solutions for reoccurring problems in software design and in this way they provide known and tested way to solve some particular problem. They can be grouped and classified according to their purpose and the way of usage. In this paper an overview of all groups and types of patterns along with the possibilities of their usage is given along with the problems that can occur in their usage. Keywords: design pattern, reoccurring problem, development, application 1. UVOD Poslovni svijet danas je postao jako zahtjevan u pogledu velikog broja aplikacija za potporu poslovnim procesima. Potreba je proces razvoja ubrzati i u što većoj mjeri automatizirati. Jedan od mogućih pristupa rješavanju dijela ovog problema je i korištenje uzoraka dizajna. Uzorak dizajna je opće i ponovo iskoristivo rješenje nekog problema koji je opće poznat u području oblikovanja programske podrške. To je predložak koji govori kako riješiti neki određeni problem i može biti primjenjiv u više različitih situacija. Općeg je karaktera, što znači da ne može biti izravno preveden u programski kod. On definira objekte, veze, interakcije, itd. koje vode nekom određenom rješenje problema. Osim uzoraka dizajna u području programske podrške postoje i druge vrste uzoraka kao što su npr. arhitektonski uzorci, međutim uzorci dizajna se bave isključivo problemima oblikovanja programske podrške i kao takvi su predmet proučavanja informatičke struke. Općenito, možemo reći da su uzorci dizajna rješenja za ponavljajuće problema u nekom određenom kontekstu. 2. ASPEKTI PROGRAMSKE PODRŠKE Pri oblikovanju programske podrške postoji puno aspekata koji se moraju uzeti u obzir i pomoću kojih odgovarajući uzorak dizajna može biti lakše pronađen. Neki od ovih aspekata su: Ü Ekstenzivnost (Extensibility) – dodavanje novih mogućnosti bez većih promjena u arhitekturi Ü Robusnost (Robustness) – otpornost na teške uvjete rada, nekontrolirani unos, nisku memoriju i druge neočekivane uvjete Ü Pouzdanost (Reliability) – mogućnost izvođenja zadanih funkcija unutar zadanih uvjeta za zadani vremenski period Ü Otpornost na greške (Fault-tolerance) – otpornost na teške uvjete i mogućnost oporavka od uvjeta u kojima dolazi do grešaka i otkazivanja ispravne funkcionalnosti komponenti Ü Sigurnosti (Security) – mogućnost odgovora i reakcije na maliciozne radnje Ü Održivost (Maintainability) – laka izmjena i nadogradnje u svrhu očuvanja postojeće funkcionalnosti Ü Kompatibilnost (Compatibility) – mogućnost rada i komuniciranja sa proizvodima drugih proizvođača Ü Modularnost (Modularity) – programska podrška je izgrađena od dobro definiranih i nezavisnih komponenti (modula) što pomaže lakšem održavanju. Komponente mogu biti implementirane i testirane zasebno prije integracije što omogućava podjelu posla unutar razvojnog projekta. Ü Ponovna iskoristivost (reusability) – ponovna iskoristivost programskih komponenti 3. IDEJA O UZORCIMA DIZAJNA Sama ideja uzoraka je u početku bila arhitektonski koncept koji je osmislio Christoper Alexander (1977- 1979). Kasnije su Kent Beck i Ward Cunningham počeli iskorištavati ideju korištenja uzoraka u području programiranja. Njihova ideja je prezentirana nešto