Matrica susjedstva opcenito je mnogo manja od matrice incidencije, pa se stoga pretežno upotrebljava za racunalni prikaz i spremanje grafa. Maksimalni moguci broj bridova u grafu iznosi: n(n-1)/2, gdje je n broj cvorova grafa.
Matricni prikazi nisu efikasni za grafove koji imaju mali broj bridova u odnosu na maksimalni moguci broj bridova. U takvim slucajevima obicno se koriste liste cvorova i liste bridova s kojima se lakše i brže manupilira nego s matricama. Primjer takvih listi prikazan je u tablici 1. 1 1 2 3 4 5 6 7 8 2 3 6 5 4
cvor vezani bridovi brid krajnje tocke 1 1, 2, 8 1 1, 2 2 1, 3, 4 2 1, 3 3 2, 5, 6, 7 3 2, 4 4 3, 8 4 2, 5 5 4, 5, 6 5 3, 5 6 7 6 5, 3 7 3, 6 8 4, 1
Tablica 1: Liste cvorova i bridova primjera grafa sa slike 17
4.5 Metode prikaza procesa
U prethodnim razmatranjima topologije prikaza akcija u procesu konstruiranja, za sam prikaz procesa korišten je graf, odnosno cvorovi i njihove veze (bridovi). Opceniti graf ima mrežnu strukturu, dok su linearna lista i hijerarhijsko stablo samo specijalni oblici (slucajevi). Opci grafovi koriste se kao metode prikaza u raznim podrucjima - ekonomiji, za prikaz elektricnih mreža, molekularnih struktura, organizacijskih struktura, itd. Osim grafova, razvijeno je još mnogo metoda prikaza procesa (od kojih se neke temelje na grafovima).
Metode prikaza procesa (opcenite i specificne namjene) predmet su mnogih istraživanja. Americki nacionalni institut za standarde i tehnologiju (NIST) nastoji razviti opceniti jezik za prikaz procesa (Unified process specification language) koji bi trebao postati standardom. U tom projektu krenuli su s analizom prednosti i nedostataka postojecih metoda prikaza procesa. Zakljuceno je da niti jedna od postojecih metoda ne može ispuniti sve zahtjeve opcenitog prikaza. Stoga nastoje analizirati prednosti pojedinih metoda u odredenim domenama, te kombiniranjem karakteristika i elemenata više metoda doci do osnovnih koncepata opcenitog jezika za prikaz procesa.
Prema [12] analizirano je 26 metoda prikaza procesa, odnosno njihova primjenjivost za odredeni skup zahtjeva. Analiza je takoder pokazala da se neke osnovne metode i elementi prikaza koriste u svim analiziranim prikazima procesa. U dosta slucajeva analiziranih 26 metoda koriste se kombinacije pet osnovnih metoda prikaza:
- AND/OR grafovi
- dijagrami toka podataka (data flow diagrams) - usmjereni grafovi (directed graphs)
- dijagrami tranzicije stanja (state transition diagrams) - strukture stabla
Druga faza analize u projektu prema [12] ukljucuje odredivanje koje metode su pogodne za odredene vrste zahtjeva pri prikazu procesa. Razradena je klasifikacija na temelju znacajki koje opisuju prikaze. Navesti cemo neke od tih znacajki metoda prikaza procesa: - temeljene na ogranicenjima, temeljene na "EXPRESS-u", fokusirane na cilj, graficke, temeljene na grafovima, hijerarhijske, usredotocene na znanje, logicki orijentirane, objektno orijentirane, proceduralne, usredotocene na proces, usredotocene na stanja.
Na primjer za opis metode AP213 vrijede znacajke da je temeljena na "EXPRESS-u", usredotocena na proces, objektno orijentirana i tekstualna.
U slijedecoj fazi istraživanja prema [12] nastojati ce se kombiniranjem i spajanjem karaketristika i elemenata analiziranih postojecih metoda prikaza procesa doci do opcenitog modela koji bi se mogao standardizirati.
Iz razmatranja o metodama prikaza procesa može se zakljuciti da objektni model procesa konstruiranja treba koncipirati tako da u pocetnoj fazi sadrži jednu od metoda prikaza procesa, ali da treba ostati otvoren i za daljnje modifikacije te metode kao i za implementaciju drugih metoda.
5. Objektno orijentirani pristup modeliranju i
programiranju
Temeljna je ideja (princip) objektno orijentiranog programiranja: modelirati aplikaciju kao skup objekata koji komuniciraju da bi postigli zajednicki cilj.
Važno je naglasiti da se objektno orijentirano programiranje ne bavi programiranjem u smislu razvoja algoritama i struktura podataka, nego ga treba promatrati kao skup sredstava za organiziranje programa, odnosno opcenitije kao tehnike za koncipiranje programa [96].
Osnovna sredstva strukturiranja programa su objekti. Objekti modeliraju entitete iz stvarnog svijeta, mogu obuhvacati apstrakcije kompleksnih fenomena ili mogu reprezentirati elemente programskog sustava (npr. stogove ili upravljanje grafickim prikazom). Operacijski gledano, objekti kontroliraju racunalni proces. Iz perspektive razvoja programa, najvažnija karakteristika objekata nije njihovo ponašanje kao takvo, nego cinjenica da se ponašanje objekta može opisati apstraktnom karakterizacijom njegova sucelja. Takva apstraktna karakterizacija dovoljna je za pocetno koncipiranje sustava. Stvarno ponašanje objekta može se implementirati i doraditi kasnije, prema potrebama.
Vjerojatno najvažniji doprinos objektne orijentacije programerskoj praksi je upotreba nasljedivanja pri odredivanju relacija izmedu objekata, odnosno klasa objekata. Nasljedivanje omogucuje inkrementalno dodavanje funkcionalnosti (specifikaciji). Na taj nacin osigurano je bolje konceptualno modeliranje - mogu se izvuci zajednicki dijelovi specifikacije i omogucena je ponovna upotrebljivost specifikacije. Ako se (disciplinirano) primjenjuje na odgovarajuci nacin, nasljedivanje omogucuje postupan razvoj specifikacije tipa klase objekata. Razliciti objekti razlicitih tipova mogu se promatrati kao elementi zajednickog "super" tipa.
5.1 Modeliranje objektima
Objektna orijentacija promatra racunalni program kao skup objekata, gdje svaki objekt modelira entitet ili dogadaj iz aplikacijskog problema (domene). Svi objekti rade (funkcioniraju) zajedno da bi postigli cilj zadatka postavljenog cjelokupnom sustavu. Središnji programski (softverski) koncept je "objekt". Objekt obuhvaca identitet, strukturu i ponašanje aplikacijskih entiteta koje reprezentira (modelira, prikazuje).
U stvarnom svijetu mnogi objekti su slicni - imaju zajednicka svojstva i ponašanje. Ipak, svaki objekt ima svoj identitet i svoje jednistvene vrijednosti (unutar) zajednickih svojstava. Unatoc jednistvenosti identiteta i vrijednosti svakog objekta, smislenije je opisivati objekte u grupama. Objektno orijentirani program opisuje objekte koji se pojavljuju u aplikaciji - to cini sa klasama cije instance su objekti. Dakle "objekt" je programski (softverski) koncept koji modelira aplikacijski entitet. "Klasa" je programski (softverski) koncept koji opisuje skup objekata.
Objekti se mogu usporediti sa varijablama u tradicionalnim programskim jezicima. Ipak, postoji znacajna razlika izmedu objekta i varijable. Varijabla obuhvaca samo "podatkovni" (informacijski) aspekt objekta (vrijednost), ali ne i ponašanje.
Kombinacija strukture podataka i deklaracije funkcija, zajedno sa sposobnošcu da iz sebe kreira instance razlicitih identiteta, naziva se klasom u objektno orijentiranim programskim jezicima. Klasa usko povezuje strukture podataka i njima pridružene procedure koje ih obraduju.
U objektno orijentiranom pristupu naglasak je na modeliranju stvarnosti u domeni problema umjesto stvaranja arhitekture modela sustava koja vodi k implementaciji.
Objektna tehnologija razvoja sustava koristi isti model kroz cijeli proces razvoja sustava: - zapoceti sa objektno orijentiranom analizom
- konvertirati rezultate analize u objektne koncepte - napisati objektno orijentirane programe
Dakle, možda najveca prednost objektne tehnologije je u konzistentnosti modela tijekom cijelog procesa razvoja programskog sustava. Što je sustav kompleksniji i veci, ta prednost više dolazi do izražaja.
5.2 Osnovna terminologija
Osnovni elementi objekata su atributi i operacije. Prema [97] atribut je informacijski detalj svojstven objektu. Ovisno o konkretnom programskom jeziku, atributi se nazivaju i varijablama ili svojstvenim poljima (member fields). Operacija je funkcionalni detalj svojstven objektu i spremljen kao dio objekta. Za operacije se koriste i nazivi svojstvena funkcija (member function) ili metoda. Pri modeliranju sustava korisno je prikazivati objekte i klase pomocu dijagrama. Dijagram objekta naglašava objekt kao nešto što ogranicava svoju "unutrašnjost" i komunicira sa "vanjskim svijetom" (slika 18).
atributi
operacije
sucelje
objekt
unutrašnjost vanjski svijet
private
protected
public
sucelje prema podklasama
sucelje prema klijentima