Objektno orijentisani pristup rešavanju problema i objektno programiranje

Smatra se da je složenost problema koje je neko u stanju da reši derektno srazmerna predmetu (šta?) i kvalitetu (kako?) apstrakcije kojom raspolaže.

Svi programski jezici obezbeđuju podršku određenim apstraktnim kategorijama.

Asemblerski jezik poseduje nizak nivo apstrakcije u odnosu na fizičku mašinu (hardware).
Većina imperativnih programskih jezika (FORTRAN, BASIC, C) su samo apstrakcije asemblerskog jezika pa, iako predstavljaju značajan napredak u odnosu na asemblerski jezik, u biti njihove apstrakcija leže kategorije koje odgovaraju arhitekturi računarskog sistema a ne problema koji se rešava.
U ovom slučaju, zadatak programera je da uspostavi korespondenciju izmeñu domena rešenja (apstraktnog modela mašine) i domena problema (apstraktnog modela realnog sveta).
Napor koji je neophodno uložiti u ovo preslikavanje, a koji u jednom delu leži u samoj strukturi korišćenog
programskog jezika, često nema adekvatnu valorizaciju budući da rezultira programima niskog stepena semantike.

Alternativa prethodno opisanom pristupu je modeliranje problema koji se rešava.
Prvi programski jezici koji su razvijeni na problemskoj orijentaciji uvode specifične apstrakcije realnosti na kojima zasnivaju postupak preslikavanja domena problema u domen rešenja.
Tipični primeri su sledeći pristupi:

  • Sve probleme je moguće apstrahirati listom i operacijama nad njom (LISP – LISt Processing).
  • Svi problemi su algoritamske prirode (APL-Algoritmic Programming Language).
  • Svi problemi se daju iskazati kao lanci odlučivanja (PROLOG – PROgramming LOGic).
  • Svi problemi se mogu iskazati kao skup apstraktnih ograničenja i manipulacija sa njima (Constraint Based Programming).

Svi navedeni pristupi predstavljali su dobra rešenja za određenu usku klasu problema za koju su objektivno i dizajnirani, no svaki pokušaj generalizacije iskoraka van inicijalnog domena gotovo bez izuzetka rezultira neuspehom.

Objektno-orijentisani pristup posebnim čini obezbeđenje alata mehanizama za iskazivanje problema pojmovima iz domena problema.
Apstrakcije koje ono uvodi su dovoljno opšte tako da programer nije ograničen jednim domenom primene.

Objektno-orijentisano programiranje

Predstavlja implementacionu metodu kod koje su programi organizovani kao kooperativni skup objekata pri čemu svaki objekat predstavlja instancu neke klase iz hijerarhiji klasa nastale na bazi relacija nasleđivanja (inheritance).

Objektno-orijentisani dizajn

Predstavlja projektantsku metodu koja obuhvata proces objektno orijentisane dekompozicije i notaciju za iskazivanje logičkih i fizičkih kao i statičkih i dinamičkih modela posmatranog sistema.

Objektno-orijentisana analiza

Predstavlja analitičarsku metodu koja zahteve(requirements) posmatra iz perspektive KLASA i OBJEKATA koji pripada domenu problema.

Elementi objektnog modeliranja

Razlikujemo četiri osnovna:

  • APSTRAKCIJA (Abstraction)
  • ENKAPSULACIJA (Encapsulation)
  • MODULARNOST (Modularity)
  • HIJERARHIJA (Hierarchy)

i tri sporedna:

  • TIPIZACIJA (Typing)
  • KONKURENCIJA (Concurency)
  • PERSISTENCIJA (Persistency)

elementa objektnog modeliranja.


Add a New Comment
or Sign in as Wikidot user
(will not be published)
- +
Unless otherwise stated, the content of this page is licensed under GNU Free Documentation License.