Ponovna upotrebljivost

S Vikipedije, slobodne enciklopedije

U računarskoj nauci i inženjeringu softvera, ponovna upotrebljivost je upotreba postojećih sredstava u nekom obliku u okviru procesa razvoja softverskog proizvoda. Sredstva su proizvodi životnog ciklusa razvoja softvera i sadrže kod, softverske komponente, testove, dizajn i dokumentaciju. Optimizacija je menjanje postojećih sredstava koliko je potrebno da zadovolje specifične zahteve sistema. Ponovna upotreba podrazumeva stvaranje odvojenih održivih verzija sredstava, zato ima veći prioritet od optimizacije.[1]

Potprogrami ili funkcije su najjednostavniji oblik ponovne upotrebljivosti. Deo koda je regularno raspoređen koristeći module ili imenske prostore u slojevima. Zagovornici tvrde da objekti i softverske komponente nude napredniju formu ponovne upotrebljivosti, iako je bilo teško objektivno meriti i definisati nivoe ili rezultate mogućnosti ponovne upotrebljivosti.

Ponovna upotrebljivost se oslanja na sposobnost konstrukcije velikih stvari od manjih delova i u stanju je da identifikuje istovetnost među tim delovima. Ponovna upotrebljivost je često neophodna karakteristika platformskog softvera. Ponovna upotrebljivost donosi nekoliko aspekata u razvoj softvera koje ne treba uzeti u obzir kada ponovna upotrebljivosti nije neophodna.

Ponovna upotrebljivosti podrazumeva eksplicitno upravljanje konstrukcije, pakovanja, distribucije, instalacije, konfiguracije, raspoređivanja, održavanja i nadogradnje. Ako se ne uzmu u obzir ova pitanja, softver može izgledati da je za višekratnu upotrebu sa tačke gledišta dizajna, ali se neće ponovo koristiti u praksi.

Ponovna upotrebljivost softvera se preciznije odnosi na karakteristike dizajna softverskog elementa (ili kolekciju softverskih elemenata) koji poboljšavaju svoju sposobnost za ponovnu upotrebu.

Mnogi principi ponovne upotrebljivosti dizajna softvera su razvijeni na radionicama na Univerzitetu u Mejnu.

Dizajnerske funkcije kandidata za ponovnu upotrebu softvera uključuju:

  • Prilagodljivost
  • Kratkoća
  • Konzistentnost
  • Ispravnost
  • Proširivost
  • Brzina
  • Fleksibilnost
  • Generičnost
  • Modularnost
  • Ortogonalnost
  • Parametarizacija
  • Jednostavnost: mala složenost
  • Stabilnost usled menjanja zahteva

Konsenzus još nije postignut na ovoj listi o relativnoj važnosti unosa niti o pitanjima koja čine svaki važnim za određenu klasu aplikacija.

Reference[uredi | uredi izvor]

  1. ^ Lombard Hill Group (22. 10. 2014). „What is Software Reuse”. www.lombardhill.com. Lombard Hill Group.  Nedostaje ili je prazan parametar |url= (pomoć);