uvod u softverski inženjering
DESCRIPTION
Uvod i osnove softverskog inženjeringa, UML-a, ...TRANSCRIPT
UvodUvod
UML osnoveUML osnove
Unified Modeling Language (UML) je vizuelni jezik
za modeliranje koji se koristi za specificiranje,
vizuelizaciju, konstrukciju i dokumentovanje
softverskih sistema.
Omogućava donošenje odluka i razumevanje
sistemima koji se mogu konstruisati.
Koristi se za analizu, dizajn, pretragu, konfigurisanje,
održavanje i kontrolu informacija o takvim sistemima.
Da prikažemo strukturu i ponašanje sistemaDa pokažemo kako se elementi sistema
uklapajuOdržimo konzistentnost dizajna i
implementacijeDa prema potrebi prikažemo ili sakrijemo
detaljeObezbedimo nedvosmislenu komunikaciju
Zašto modeliramo vizuelno?Zašto modeliramo vizuelno?
UML osnoveUML osnove
UML kombinuje najbolje iz:
Koncepta “Data Modeling” (Entity Relationships Diagrams)
Poslovnog modelovanja (work flow) Objektnog i komponentnog modelovanja
UML obuhvata informacije o statičkoj strukturi i dinamičkom
ponašanju sistema. Sistem se modelira kao kolekcija diskretnih
objekata koji su u interakciji.
Statičke strukture definišu vrste objekata važne za sistem i
njihovu implementaciju, isto kao i veze između objekata.
Dinamičko ponašanje definiše istoriju objekata u vremenu i
komunikaciju između objekata da bi se postigli određeni ciljevi.
Modeliranje sistema sa različitih ali povezanih pogleda
omogućava da sistem bude razumnjiv za različite namene.
UML osnoveUML osnove
UML nije u osnovi programski jezik. Neki alati omogućavaju generisanje
koda iz UML-a u različitim programskim jezicima, isto kao i 'reverse-
enginereed' modele iz postojećih programa u UML dijagrame.
UML je diskretan jezik za modeliranje koji nije namenjen za modeliranje
kontinuiranih sistema koji se nalaze u inženjeringu i fizici.
Namena UML je da bude univerzalni jezik modeliranja za diskretne
sisteme – softverske sisteme, organizacijske ili npr. sisteme koji sadrže
digitalnu logiku. UML omogućava konstruisanje šema koje modeliraju sistem opisujući:
konceptualne stvari (npr. proces poslovanja i funkcije sistema) konkretne stvari (npr. tipove klasa, šeme baza podataka, softverske komponente)
UML osnoveUML osnove
UML osnoveUML osnove
UML je projektovan kao vrlo fleksibilan i prilagodiv jezik, koji omogućava vrlo različite vrste modelovanja, uključujući: modele koji olakšavaju razumevanje poslovnih procesa, odvijanja tokova događaja, sekvenci upita, aplikacija, baza podataka, arhitektura i dr.
Istorija UML-aIstorija UML-a
UML je razvijen kao pokušaj pojednostavljenja i konsolidacije velikog broja objektno-orijentisanih metoda razvoja koje su našle svoju primenu u praksi usled nagle popularizacije objektno orijentisanih programskih jezika.
Jezici za OO modeliranje se pojavljuju još od sredine 70ih (uzrok njihove pojave je pojava nove generacije OO jezika i povećana kompleksnost softverskih sistema)
Iako se prvim objektno orijentisanim (OO) jezikom smatra Simula-67 (jezik nastao 1967.godine), ekspanzija OO metoda za razvoj softvera se desila u osamdesetim godinama prošlog veka, nakon pojave jezika kao što su Smalltalk i nešto kasnije, C++ (U periodu 1989-1994 broj OO metoda je porastao sa manje od 10 na više od 50).
Neke od OO metoda koje su postale jako popularne u ranim
devedesetim godinama bile su:
Booch metoda (autor Grady Booch),
OMT – Object Modeling Technique (James Rambaugh),
OOSE/Objectory (Ivar Jacobson),
Fusion (D. Coleman) i
Coad/Yourdan.
Svaki od navedenih autora je predvodio grupu praktičara kojima su se
dopadale njihove ideje.
Istorija UML-aIstorija UML-a
Međutim, najveći problem je bio to što su metode bilo
veoma slične, a ipak su obuhvatale izvestan broj razlika.
Svaka od metoda je imala sopstvenu notaciju (simbole za
grafičku prezentaciju OO modela), procese i alate (CASE
alate za podršku notacije i procesa).
Tokom tog perioda istovremeno se govorilo i o
standardizaciji, ali bez nekog prevelikog uspeha.
Istorija UML-aIstorija UML-a
Ključni detalj u stvaranju UML-a se desio kada je Jim Rambaugh napustio
kompaniju General Electric i pridružio se Grady Boochu u kompaniji
Rational, koja je sada deo IBM-a.
Grady i Jim su najavili kraj tzv. „rata metoda” i vrlo brzo pripremili prvi
javni opis svog objedinjenog razvojnog postupka: to je bila verzija 0.8
dokumenta UM (Unified Method).
Još značajnije je bilo to što su objavili da je kompanija Rational Software
kupila firmu Objectory i da će se Ivar Jacobson pridružiti timu
(1995.godina).
Istorija UML-aIstorija UML-a
Proizvođači raznih CASE alata, uplašeni da će standard kojim upravlja
Rational pružiti alatima ove firme nepravednu prednost na tržištu, su digli
veliku buku u pogledu standardizacije metode, i kao rezultat toga
angažovana je Grupa za upravljanje objektima (engl. Object
Management Group – OMG).
Usledili su brojni pregovori između velikog broja kompanija i konačno, u
novembru 1997.godine, UML je zvanično postao standard čijim daljim
razvojem upravlja OMG (Rational je objavio verziju 1.0, dok se verzija
1.1 smatra zvaničnim, originalnim standardom).
Istorija UML-aIstorija UML-a
Uglavnom se smatra da su Grady Booch, Ivar Jacobson i Jim
Rambaugh tvorci jezika UML. Iako se oni smatraju najzaslužnijim za
razvoj ovog jezika, treba napomenuti da su zaista veliki deo posla uradili i
još uvek rade timovi grupe OMG.
Nakon više godina iskustva u korišćenju UML-a, OMG je izdao predlog
za nadogradnju (upgrade) UML-a, za fiksiranje problema koji su se otkrili
i proširenje UML dodatnim kapacitetima kako bi bio primenjiv u više
aplikacijskih domena. Zahtevi po predlogu su se razvijali od novembra
2000 do jula 2003, sa specifikacijom UML verzije 2.0. Poslednja verzija mart 2011. – UML verzija 2.4
Istorija UML-aIstorija UML-a
Istorija UML-aIstorija UML-a
Dakle, kompanija Rational Software objedinila je tri vodeće metode objektno orijentisanog modelovanja: OOAD (Object-Oriented Analysis and Design) koju je razvio
Grady Booch, OOSE (Object-Oriented Software Engineering) koju je razvio
Ivar Jacobson. OMT (Object Modeling Technique) koju je razvio Jim
Rambaugh i
Grady Booch Ivar Jacobson James Rumbaugh
Šta znači unified?Šta znači unified?
Unified ima sledeća relevantna značenja za UML:
Kroz istorijske metode i notacije – UML kombinuje
zajedničke prihvaćene koncepte iz mnogih objektno-
orijentisanih metoda, selektujući jasne definicije za svaki
koncept, isto kao i notaciju i terminologiju.
Kroz razvojni ciklus – isti set koncepata i notacija može
se koristiti u različitim stanjima razvoja i spajati ga unutar
jednog modela.
Kroz aplikacijske domene - UML je namenjen za modeliranje većine
aplikacijskih domena, uključujući velike, kompleksne, real-time,
distribuirane sisteme.
Kroz implementacione jezike i platforme - UML teži da bude koristan
za sisteme implementirane u različitim jezicima i platformama, uključujući
programske jezike, baze, organizacijsku dokumentaciju.
Kroz razvojne procese – UML je jezik modeliranja, nije opis detaljnog
razvojnog procesa. On teži da bude koristan kao jezik modeliranja i da
podrži iterativno inkrementalni model razvoja.
Šta znači unified?Šta znači unified?
Osnovne idejeOsnovne ideje UML-a UML-a
Uhvatiti i opisati poslovne procese
Poboljšati komunikaciju
Projektant(poslovanje)
Programer(tehnologija)
????
?? ??
Osnovne idejeOsnovne ideje UML-a UML-aPomoć u borbi sa kompleksnošću
Definisanje logičke arhitekture sistema
Baza podatakaC++ & SQL
Poslovna logikaC++, Java
Korisničko okruženjeVisual Basic, Java
Osnovne idejeOsnovne ideje UML-a UML-a
Ponovno korišćenje već gotovih komponenti
Projekt DProjekt CProjekt A Projekt B
Kategorije korisnikaKategorije korisnika
UML koriste sledeće kategorije korisnika: Sistem analitičari i krajnji korisnici – specifikacija
zahtevane strukture i ponašanje sistema Arhitekte sistema – projektanti sistema koji će
zadovoljiti zahteve Razvojni inženjeri (developers) – transformišu
arhitekturu u izvršni kod Kontrolori kvaliteta – provera strukture i ponašanje
sistema Rukovodioci projekta (managers) – vode i usmeravaju kadrove
i resurse
PoglediPoglediObjektno-orijentisani sistemi zahtevaju sledeće poglede/modele:
pogled zahteva za sistem (prikazuje korisničke zahteve),
pogled dizajna (obuhvata vokabular prostora problema i prostora
rešenja problema),
pogled interakcije (prikazuje interakciju između pojedinih delova
sistema i okruženja),
pogled implementacije (odnosi se na fizičku realizaciju sistema), i
pogled razvoja (fokusira se na sistemski inženjering).
Svaki od ovih pogleda može sadržavati i strukturu i ponašanje sistema.
Zajedno, ovi pogledi predstavljaju nacrt softvera.
Arhitektura softverskih sistemaArhitektura softverskih sistema
RRazumevanjeazumevanje UMLUML--aa
Potrebno je formirati konceptualan model jezika i to
zahteva učenje tri glavna elementa:
osnovni gradivni blokovi UML-a,
pravila koja diktiraju kako koristiti i slagati te
blokove i
opšti mehanizmi koji se primenjuju kroz UML.
Rečnik UML-aRečnik UML-a
Rečnik UML-a obuhvata tri tipa gradivnih blokova:
Elementi, stvari (things)
Relacije
Dijagrami
Elementi su apstrakcije i one su glavni delovi UML-a.
Relacije povezuju te iste elemente, a
Dijagrami grupišu interesantne kolekcije tih elemenata.
Elementi u UML-uElementi u UML-u
Postoje četiri vrste elementa u UML-u:
Strukturalni elementi (eng. structural things)
Elementi ponašanja (eng. behavioral things)
Grupišući elementi (eng. grouping things)
Elementi označavanja (eng. annotational things)