Académique Documents
Professionnel Documents
Culture Documents
SEMINARSKI RAD
Nastavni predmet: Softver inenjreing
Tema rada: Komozicija komponenti (sekvencijalna, hijerarhijska)
Studijski program: Primenjena informatika
Predmetni nastavnik:
Student:
Vranje, 2013.
Seminarski rad
Sadaj
Uvod................................................................................................................................................3
1. Komponente i njihovo korienje................................................................................................3
1.1. Softverski procesi zasnovani na komponentama......................................................................6
1.2. Kompozicija komponenti........................................................................................................11
Literatura.......................................................................................................................................18
Seminarski rad
Uvod
U ovom poglavlju bavimo se danas aktualnom i po svemu sudei vrlo efikasnom tehnikom
ponovne upotrebe koja se zasniva na takozvanim komponentama. Najpre govorimo generalno o
komponentama i njihovom korienju. Zatim opisujemo dva razvojna procesa koji su vezani uz
komponente: prvi se odnosi na razvoj samih komponenti koje e se ponovo upotrebljavati, a
drugi na razvoj novih aplikacija uz upotrebu komponenti. Na kraju prouavamo postupke
meusobnog spajanja komponenti u svrhu izgradnje sloenih podsistema odnosno celih sistema.
Komponenta je nezavisna izvriva celina. Nije nam dostupan njen izvorni kod, ona se ne
kompilira zajedno s ostalim delovima naeg sistema, ve se instalira u binarnom obliku i
pokree kao zasebni proces.
Komponenta objavljuje svoj interfejs. Sve interakcije s njom odvijaju se kroz taj interfejs.
Samo interfejs zadaje se u obliku parametriziranih operacija, slino kao kod objekta.
Seminarski rad
Komponenta se ponaa kao crna kutija. Nije nam vidljivo njeno unutranje stanje. Ne
znamo na koji nain ona implemenira svoje operacije. U pravilu je nevano u kojem
programskom jeziku je ona razvijena.
Komponenta je zamenljiva celina. Dakle ako imamo dve komponente koje pruaju iste
usluge preko istog interfejsa tada jednu od njih moemo zameniti drugom.
sledeih operacija:
Seminarski rad
Sl. 1 ujedno predstavlja i jednostavni primer UML component dijagrama. Takvi dijagrami
slue za prikaz grae sistema sastavljenog od komponenti. Vidimo da se po UML-ovim
pravilima komponenta crta kao pravougaonik s odgovarajuom ikonom. Ponueni interfejs
obino se crta kao niz utikaa, a traeni interfejs kao niz utinica. Na sloenim component
dijagramima pojavljuje se vie komponenti. Situacija kad jedna komponenta daje uslugu, a druga
prima, crta se tako da odgovarajui utika prve komponente bude povezan u odgovarajuu
utinicu druge komponente. Primeri takvih dijagrama pojavie se na slikama 6 11.
Iz svega to smo do sada rekli, jasno je da koritenje komponenti donosi bitne promene u
nain kako se softver oblikuje, implementira i kasnije pokree. Da bi neki system uspeno
realizovali pomou komponenti, neophodno je da su ispunjeni sledei uslovi.
Sam system mora biti oblikovan kao skup komponenti koje meusobno komuniciraju,
dakle njena graa treba biti prikazana pomou UML component dijagrama.
Na naim raunarima moramo imati instaliran middleware koji implemenitra taj odabrani
model i koji je u stanju integrisati sve odabrane komponente u celini.
Vidimo da nam za rad s komponentima treba posebna softverska podrka, takozvani
middleware. Zaista, osim to slue za ponovnu upotrebu, komponente se mogu promatrati i ako
sredstvo za izgradnju distribuiranih sistema. Ideja o komponentama zapravo je proirenje ideje o
distribuiranim objektima.
Kao konkretan primer middleware-a mogli bismo navesti bilo koji alat koji implementira
otvoreni standard CORBA. Ali, danas su mnogo vie u upotrebi proprietary softveri poput
Microsoft-ovog .NET ili Sun-ovog Enterprise Java Beans.
Rekli smo da je osnovni zadatak middleware-a da omogui meusobnu komunikaciju
komponenti, bez obzira nalaze li se one na istim ili razliitim raunarima. Ali, dananji
middleware-i obino omoguuju i vie od toga. Sl. 2 prikazuje uobiajne usluge koje middleware
prua.
Seminarski rad
Seminarski rad
Razvoj za ponovnu upotrebu. Cilj je stvoriti same komponente koje e se kasnije ponovo
upotrebljavati. Process se obino sastoji od generalizacije postojeih komponenti.
Seminarski rad
Seminarski rad
Integracija to veeg broja usluga koje je komponenta do sada dobijala preko svog
traenog interfejsa, u svrhu njene vee nezavisnosti.
operacija koje nisu bile potrebne u polaznoj aplikaciji a mogle bi postati potrebne u buduim
aplikacijma. Na primer, ako postojea komponenta lii na onus a Sl. 1, i daje porku za rad s
jednim tampaem, treba joj dodati mogunost rada s vie tampaa i operaciju prebacivanja
dokumenta iz reda jednog u drugog tampaa.
Rukovanje izuzetaka u pravilu treba reiti tako da sama komponenta ne obrauje izuzetke
nego ih prosleuje aplikaciji. Naime, svaka aplikacija ima svoje zahteve u pogledu obrade
izuzeti. Ali, takav pristup esto dovodi nezgrapnim interfejsima, a koji put je i nemogu ako
funkcionalnost komponente zahteva da se iznimka obradi lokalno u komponenti.
Oigledno je da poveanjem optosti komponente (dodavanjem novih operacija ili
parametara) poveavamo njenu ponovnu upotrebljivost, ali, istovremeno je inimo sve
komplikovanijom za upotrebu. Prevelika sloenost komponente i njenih interfejsa i opirnost
njene dokumentacije moe odbiti korisnike. Zbog toga takoe treba paziti da se ne pretera s
optenitosti. Dakle treba nai dobar kompromis izmeu ponovne upotrebljiosti i lakoe
korienja.
U preostalom delu ovog odseka raspravljamo o CBSE uz ponovnu upotrebu. Da bi
ponovna upotreba komponenti u nekom novom sistemu bila uspena, sam process razvoja tog
novog sistema mora uzimati u obzir mogunost koritenja komponenti. Drugim reima, taj
process mora izgledati kao na Sl. 4.
Seminarski rad
10
Seminarski rad
11
Seminarski rad
12
Seminarski rad
13
Seminarski rad
14
Seminarski rad
15
Seminarski rad
ulicu odnosno kuni broj, potrebno je ipak napisati adapter. Taj adapter iz adrese koju je vratio
addressFinder izdvaja ulicu odnosno kuni broj, i salje ih kao zasebne parameter u mapper.
Re je o primeru sekvencijalne kompozicije. Skica programskog koda za adapter prikazana je na
Sl. 10.
Slika 10. Skica programskog koda za adapter koji e povezati komponente sa Sl. 9
Kao drugi primer koritenja adaptera posmatramo Sl. 11. Komponenta DataCollector
ugrauje se u meteoroloku stanicu. Ona upravlja skupom senzora ugraenih u stanicu
(termometri, anemometri, barometri, ) te skuplja i objedinjuje podatke koji stiu s tih senzora.
Ponueni interfejs od DataCollector omoguuje korisniku da na posredan nain pokrene ili
zaustavi odreeni sensor ili da dobije skupljene podatke od svih senzora. Traeni interfejs od
DataCollector slui za njegovo povezivanje sa samim senzorima i sastoji se od dela za
upravljanje senzorom i dela za oitavanje vrednosti sa senzora. Komponenta Sensor na Sl. 11
predstavlja jedan od senzora njegov ponueni interfejs sastoji se od operacija za pokretanje i
zaustavljanje senzora te operacije za oitavanje vrednosti.
16
Seminarski rad
17
Seminarski rad
18
Seminarski rad
Uopteno i dugorono gledajui, princip koji bi trebalo sledeti pri kompoziciji komponenti
je princip razdvajanja odgovornosti. Dakle sistem bi trebalo oblikovati tako da svaka
komponenta ima jasno definisanu ulogu, i da se te uloge po mogunosti ne preklapaju. Ali, ovo
je lake rei nego ostvariti. esto je jeftinije uzeti jednu gotovu komponentu s mnogo funkcija
nego razviti dve ili tri komponente s razdvojenim funkcijama. Takoe, kod ponovo upotrebljivih
komponenti funkcionalnosti se obino preklapaju jer svaka od njih nastoji biti to samostalnija.
19
Seminarski rad
Literatura
01.05.2013.,
20