86006uml

48
Projektiranje i održavanje programske podrške UML – Unified Modelling Language

description

rrf

Transcript of 86006uml

Page 1: 86006uml

Projektiranje i održavanje

programske podrške

UML – Unified Modelling Language

Page 2: 86006uml

4/1/2008 Zvonimir Vuković 2

UML - Definicija

� "The Unified Modeling Language (UML) is a graphical language forvisualizing,specifying, constructing, and documenting the artifacts of a software-intensive system.The UML offers a standard way to write a system's blueprints, including conceptual things such as business processes and system functions as well as concrete things such as programming language statements,database schemas, and reusable software components."Object Management Group (OMG)

� UML je općeniti jezik za modeliranje koji se koristi grafičkim prikazom za izradu abstraktnog modela promatranog sustva

� tzv. UML model

� U području razvoja aplikativnih rješenja UML je standardni jezik za specifikaciju objektnog modela

� Standard

� ISO/IEC 19501:2005 Information technology -- Open Distributed Processing -- Unified Modeling Language (UML) Version 1.4.2.

� UML 2.0

Page 3: 86006uml

4/1/2008 Zvonimir Vuković 3

UML – Uvod

�UML nije ograničen samo na modeliranje aplikativnih rješenja (software-a), moguće ga je upotrijebiti i za modeliranje poslovnih procesa, organizacijskih struktura i ostalih sustava

�UML je omogućio razvoj tehnologija modeliranja (“model-driven technologies”) kao što su MDD(“Model Driven Development”), MDE (“Model Diriven Engineering”) i MDA (“Model Driven Architecture”)

�UML ne predstavlja metodologiju, ali može biti njezin sastavni dio; sukladan je zahtijevima modernih metodologija razvoja aplikacija

Page 4: 86006uml

4/1/2008 Zvonimir Vuković 4

UML – Uvod (2)

�Industrijski standard grafičke notacije općih koncepcija kao što su klasa, komponenta, generalizacija, agregacija i ponašanje dozvoljava dizajnerima aplikacija da više pažnje posvete dizajnu i arhitekturi sustava

�UML dijagrami se mogu automatski transformirati i u druge oblike (npr. Java)

Page 5: 86006uml

4/1/2008 Zvonimir Vuković 5

UML – Modeli i dijagrami

�Treba razlikovati UML model od pojedihih dijagrama sustava.

�Dijagram je djelomična reprezentacija sustava

�Model nadopunjuje dijagrame potrebnom dokumentacijom i opisima

�Postoje tri osnovna modela� Funkcionalni model

�Objektni model

�Dinamički model

Page 6: 86006uml

4/1/2008 Zvonimir Vuković 6

UML – Modeli i dijagrami (2)

� Funkcionalni model

�Prikazuje funkcionalnost sustava sa stajališta korisnika.

�Sastoji se od dijagrama uporabnih slučajeva (“use-case”)

�Objektni model

�Prikazuje strukturu i podstrukturu sustava koristeći se objektima, atributima, operacijama i relacijama

�Sadrži dijagrame klasa

� Dinamički model

�Prikazuje interno ponašanje sustava

�Sadrži dijagrame tijeka i dijagrame aktivnosti

Page 7: 86006uml

4/1/2008 Zvonimir Vuković 7

UML – Modeli i dijagrami (3)

�Moguće je definirati i podjelu na slijedeće dvije skupine dijagrama�Dijagrame ponašanja

⌧Dijagram uporabnih slučajeva (“use-case”)

⌧Dijagram slijeda

⌧Dijagram aktivnosti

�Dijagrame strukture⌧Dijagram klasa

⌧Dijagram objekata

⌧Dijagram komponenti

Page 8: 86006uml

4/1/2008 Zvonimir Vuković 8

UML – Koncepti

� Struktura

�Učesnik, Atribut, Klasa, Komponenta, Sučelje, Objekt, Paket

� Ponašanje

�Aktivnost, Događaj, Poruka, Metoda, Operacija, Stanje

�Odnos

�Agregacija, Asocijacija, Kompozicija, Ovisnost, Generalizacija

Page 9: 86006uml

4/1/2008 Zvonimir Vuković 9

UML - OOP

�Dizajn OO sustava se bazira na izradi modela

�Model je abstraktni prikaz bitnih elemenata i ponašanja sustava

�Model se sastoji od objekata koji se nalaze u međusobnoj interakciji, tj. koji međusobno komuniciraju

�Objekti se sastoje od atributa i metoda

Page 10: 86006uml

4/1/2008 Zvonimir Vuković 10

UML – OOP (2)

�Atributi opisuju sve ono što objekti poznaju

�Vrijednosti atributa određuju stanje objekata

�Metode opisuju ono što objekti znaju činiti

�Ponašanje objekta

�Klase su predlošci objekata, a sastoje se od atributa i metoda

�Objekti su instance klasa

Page 11: 86006uml

4/1/2008 Zvonimir Vuković 11

UML – “Use Case” dijagram

�Opisuje ponašanje sustava iz perspektive vanjskog promatrača. Pri tome je naglasak je na pitanju što, a ne kako

�Odnosi se na pojedine scenarije koji opisuju što se događa u sustavu kada se s njim stupi u interakciju

�Uporabni slučaj je skup scenarija koje povezuje određeni zadatak, cilj ili događaj

�Učesnik (Actor) je netko ili nešto što inicira određeni događaj

Page 12: 86006uml

4/1/2008 Zvonimir Vuković 12

UML – “Use Case” dijagram (2)

�Služi ponajviše za

�Uvid u funkcionalnost sustava

�Identifikaciju korisnika sustava

�Identifikaciju područja u kojima dolazi do interakcije čovjeka i računala

Page 13: 86006uml

4/1/2008 Zvonimir Vuković 13

UML – “Use Case” dijagram (3)

�Koncepti

�Učesnik (“Actor”)

⌧Korisnik sustava

�Uporabni slučaj (“Use Case”)

⌧Funkcionalnost koju sustav pruža

�Veza

⌧Veza između korisnika i uporabnih slučajeva

Page 14: 86006uml

4/1/2008 Zvonimir Vuković 14

UML – Elementi “Use Case” dijagrama

Page 15: 86006uml

4/1/2008 Zvonimir Vuković 15

UML – Primjer: “Use Case” dijagram

Page 16: 86006uml

4/1/2008 Zvonimir Vuković 16

UML – Dijagram tijeka

� Prikazuje interakciju

� Dinamički dijagram

� Detaljan opis operacija koje se izvode, poruka koje se pri tome razmijenjuju i trenutaka kada se poruke razmijenjuju

� Prikaz je organiziran prema vremenskom slijedu aktivnosti, vremenski progres se prati od vrha prema dnu dijagrama

�Objekti koji sudjeluju u interakciji se navode s lijeva na desno adekvatno vemenskom trenutku u kojemu su involvirani

Page 17: 86006uml

4/1/2008 Zvonimir Vuković 17

UML – Dijagram tijeka (2)

�Koncepti

�Objekt

⌧Instanca klase

�Učesnik

�Životna linija

⌧Prikazuje životni vijek objekta u vremenu

Page 18: 86006uml

4/1/2008 Zvonimir Vuković 18

UML – Dijagram tijeka (3)

�Koncepti

�Aktivacija

⌧Prikazuje trenutke u kojima objekt izvršava neku operaciju

�Poruka

⌧Opisuje komunikaciju među objektima

Page 19: 86006uml

4/1/2008 Zvonimir Vuković 19

UML – Primjer: Dijagram tijeka

Page 20: 86006uml

4/1/2008 Zvonimir Vuković 20

UML – Primjer: Dijagram tijeka (2)

Page 21: 86006uml

4/1/2008 Zvonimir Vuković 21

UML – Dijagram aktivnosti

�Prikazuje redoslijed radnji unutar sustava (“workflow”), i to od poslovnog procesa prema operativnom procesu

�Naglasak se stavlja na prikaz internih aktivnosti sustava

Page 22: 86006uml

4/1/2008 Zvonimir Vuković 22

UML – Dijagram aktivnosti (2)

�Koncepti

�Aktivnost

�Tranzicija

⌧Prelazak iz jedne aktivnosti u drugu

�Područje

⌧Grupira aktivnosti prema objektu koji ih izvršava

Page 23: 86006uml

4/1/2008 Zvonimir Vuković 23

UML – Dijagram aktivnosti (3)

� Koncepti

�Inicijalno stanje

⌧Početak aktivnosti

�Završno stanje

⌧Završetak aktivnosti

�Sinhronizacija

⌧Označava aktivnosti koje se izvršavaju paralelno; moguće je prikazati iniciranje više paralelnih aktivnosti ili završetak više paralelnih aktivnosti (što je uvjet za izvršavanje slijedeće aktivnosti)

Page 24: 86006uml

4/1/2008 Zvonimir Vuković 24

UML – Primjer: dijagram aktivnosti

Page 25: 86006uml

4/1/2008 Zvonimir Vuković 25

UML – Dijagram klasa

� Prikazuje sustav pomoću klasa i relacija (veza) među klasama

� Statički dijagram – prikazuje učesnike u interakciji, ali ne pokazuje što se događa tijekom interakcije

� Koncepti�Klasa

�Asocijacija

�Kompozicija

�Ovisnost

�Agregacija

�Generalizacija

Page 26: 86006uml

4/1/2008 Zvonimir Vuković 26

UML – Dijagram klasa (2)

�Klasa�Element OO svijeta

�Asocijacija�Veza među instancama dvije klase; asocijacija postoji ukoliko instanca jedne klase mora poznavati instancu neke druge klase da bi mogla obaviti zadatak

�Kompozicija�Slučaj kada promatrana klasa ne može egzistirati bez neke druge klase

Page 27: 86006uml

4/1/2008 Zvonimir Vuković 27

UML – Dijagram klasa (3)

� Ovisnost

�Slučaj kada promatrana klasa koristi drugu klasu (npr. u obliku atributa)

� Agregacija

�Veza u kojoj promatrana klasa pripada kolekciji unutar neke druge klase

⌧Termin “ima”

� Generalizacija

�Nasljedna veza među klasama; označava da je jedna klasa nadklasa drugoj klasi

� (nasljeđivanje)

⌧Termin “je”

Page 28: 86006uml

4/1/2008 Zvonimir Vuković 28

UML – Elementi dijagrama klasa

Naziv klase

Atributi

Metode

Page 29: 86006uml

4/1/2008 Zvonimir Vuković 29

UML – Primjer: Dijagram klasa

Asocijacija

Generalizacija

(nasljeđivanje)

Page 30: 86006uml

4/1/2008 Zvonimir Vuković 30

UML –Dijagram paketa i objekata

�Paketi su kolekcije logički povezanih UML elemenata

�Dijagram objekata

�prikazuje instance umjesto klasa

�Pogodan je ze prikazivanje rekurzivnih veza

�Koncepti

�Objekt

�Veza

Page 31: 86006uml

4/1/2008 Zvonimir Vuković 31

UML – Primjer: Dijagram objekata

Page 32: 86006uml

4/1/2008 Zvonimir Vuković 32

UML – Dijagram komponenti

�Prikazumeđusobnu ovisnost aplikativnih komponenti sustava; primjerice između izvršnih datoteka i izvornih datoteka

�Koncepti

�Komponenta

⌧Komponenta aplikacije; npr. izvorna datoteka, dokument, resursna datoteka, ...

�Ovisnost

⌧Prikazuje ovisnost među komponentama

Page 33: 86006uml

4/1/2008 Zvonimir Vuković 33

UML – Dijagram implementacije

�Prikazuje na koji način je hardware implementiran u nekom sustavu i kako je međusobno povezan

�Koncepti

�Komponenta

�Čvor (“node”)

�Veza

Page 34: 86006uml

4/1/2008 Zvonimir Vuković 34

UML – Dijagram implementacije (2)

�Komponenta

�Aplikativna cjelina (software)

�Čvor (“node”)

�Hardware komponenta u sustavu

�Veza

�Prikazuje komunikaciju među čvorovima

Page 35: 86006uml

4/1/2008 Zvonimir Vuković 35

UML – Primjer: Dijagram implementacije

Page 36: 86006uml

4/1/2008 Zvonimir Vuković 36

UML – Proces razvoja aplikacija

1) Izraditi model poslovnog procesa

• Prikaz aktivnosti i procesa koji se događaju u sustavu, a koji može poslužiti za izradu “use-case” modela

• Najčešće sadrži veću količinu informacija nego što je predmet implementacije aplikativnog rješenja

Page 37: 86006uml

4/1/2008 Zvonimir Vuković 37

UML – Proces razvoja aplikacija

2) Izraditi “use case” model

• Točan prikaz funkcionalnosti koje su tema implementacije i to sa stanovišta poslovnog korisnika

• Svaki “use case” mora imati svoju vezu prema modelu poslovnog procesa (tj. ne smije postojati “use case” koji nije definiran poslovnim procesom)

Page 38: 86006uml

4/1/2008 Zvonimir Vuković 38

UML – Proces razvoja aplikacija

3) Pregled (“Review”) “use case” modela

• “use case” model oplemenjen korisničkim zahtijevima, ograničenjima, razinom kompleksnosti, bilješkama i scenarijima

• Detaljan opis samog “use case-a” – što radi, kako radi i koja ograničenja djeluju na njega tijekom izvršavanja

• Treba sadržavati i scenarije sistemskog testiranja kao podlogu za proces primopredaje rješenja krajnjem korisniku

Page 39: 86006uml

4/1/2008 Zvonimir Vuković 39

UML – Proces razvoja aplikacija

3) Pregled (“Review”) “use case” modela

• “use case” model oplemenjen korisničkim zahtijevima, ograničenjima, razinom kompleksnosti, bilješkama i scenarijima

• Detaljan opis samog “use case-a” – što radi, kako radi i koja ograničenja djeluju na njega tijekom izvršavanja

• Treba sadržavati i scenarije sistemskog testiranja kao podlogu za proces primopredaje rješenja krajnjem korisniku

Page 40: 86006uml

4/1/2008 Zvonimir Vuković 40

UML – Proces razvoja aplikacija

4) Temeljem rezultata prethodnih koraka izraditi model poslovnih objekata, dijagrame tijeka, model korisničkih sučelja

• Opis elemenata sustava, njihove međusobne interakcije i sučelja koje će biti na raspolaganju krajnjem korisniku za izvođenje definiranih “use case-ova”

Page 41: 86006uml

4/1/2008 Zvonimir Vuković 41

UML – Proces razvoja aplikacija

5) Izraditi dijagram klasa

• Detaljan prikaz objekat u sustavu, njihovih atributa i metoda

• Plan izvođenja sistemskog testa

• Da li klase djeluju sukladno specifikaciji zahtijeva ?

• Da li klase međusobno komuniciraju na propisani način ?

Page 42: 86006uml

4/1/2008 Zvonimir Vuković 42

UML – Proces razvoja aplikacija

6) Pregled i dopuna modela klasa; izrada modela komponenti

• Identifikacija paketa i komponenti

• Komponenta – dio aplikacije koji sadrži jednu ili više klasa, može djelovati kao jedna cjelina, a koji ima točno definirana sučelja prema ostalim komponentama

• Za svaku komponentu definirati scenarije sistemskog testa kako bi se provjerilo da li sučelja komponente djeluju prema specifikaciji

Page 43: 86006uml

4/1/2008 Zvonimir Vuković 43

UML – Proces razvoja aplikacija

7) Dokumentiranje i prikupljanje dodatnih zahtijeva

• Tijekom realizacije prethodnih koraka se u pravilu identificira niz novih okolnosti – dodatni zahtijevi

• “non functional” zahtijevi

• Performanse

• Sigurnost, ...

Page 44: 86006uml

4/1/2008 Zvonimir Vuković 44

UML – Proces razvoja aplikacija

8) Izrada plana produkcije i integracije

• Definira fizičku arhitekturu sustava

• HW, operativni sustav, mrežno okruženje, OEM (“Other Equipment Manufacturer”) SW

• Konfiguracija, strategija izrade sigurnosnih kopija podataka (“back-up”), strategija obrane od raznih nepogoda (“disaster recovery”)

Page 45: 86006uml

4/1/2008 Zvonimir Vuković 45

UML – Proces razvoja aplikacija

9) Implementacija

• Definirati radne pakete (“work packages”) i dodjeliti ih (rasporediti) članovima razvojnog tima

• Svaki paket obuhvaća

• realizaciju određene komponente ili jednog dijela komponente

• test komponente, integracijski test i sistem test

Page 46: 86006uml

4/1/2008 Zvonimir Vuković 46

UML – Proces razvoja aplikacija

10) Test

• Praćenje svih nepravilnosti (grešaka) ili odstupanja identificiranih tijekom testiranja

• Usporedba sa zahtijevima i korekcije

• Kontrola probijanja zahtijeva (“scope creep”)

Page 47: 86006uml

4/1/2008 Zvonimir Vuković 47

UML – Proces razvoja aplikacija

11)Obnavljanje (održavanje) modela

• Voditi računa o mogućem utjecaju izmjena/dopuna na kasniji tijek implementacije (potrebne količina uloženog rada)

Page 48: 86006uml

4/1/2008 Zvonimir Vuković 48

UML – Proces razvoja aplikacija

12) Produkcija

• Isporuka implementiranog i testiranog aplikativnog rješenja

• Integracija u postojeće okruženje

• Aplikativno rješenje se često mora integrairati u postojeće okruženje

• Migracija podataka

• Podaci iz “starih” sustava se često moraju migrirati u novi sustav

• Primopredaja (“Acceptance test”)