PI 04 01 Modeling

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 44

Model sustava - Zašto?

PROGRAMSKO INŽENJERSTVO
2021/22
Model sustava
• Most između „dva svijeta”

PROGRAMSKO INŽENJERSTVO
2021/22
Model sustava
• “Pojednostavljeni” apstraktni prikaz sustava
– tekstualni model,
– vizualni model,
– mješoviti model, ...
• Svrha:
– Lakši razvoj / komunikacija unutar tima
– Dokumentacija sustava
– Korak prema automatizaciji implementacije sustava

PROGRAMSKO INŽENJERSTVO
2021/22

Model sustava
• Kako izgleda? Kako se gradi?

PROGRAMSKO INŽENJERSTVO
2021/22
Model sustava

PROGRAMSKO INŽENJERSTVO
2021/22
Više “pogleda” daje cjelinu

PROGRAMSKO INŽENJERSTVO
2021/22
Alati za modeliranje
• Razvojna okruženja (s dodacima)
• Okruženja za modeliranje (UML alati)

ArgoUML
h p://argouml. gris.org/

• Ala za izradu dijagrama (najjednostavniji)

Lucidchart
h ps://www.lucidchart.com
PROGRAMSKO INŽENJERSTVO
2021/22
tt
tt
ti
ti

Proizvod
Prikupljanje zahtjeva
Vanjski pogled

PROGRAMSKO INŽENJERSTVO
2021/22

Prikupljanje i analiza zahtjeva

• Tipično 1. faza
• Intervju,
razgovori,
obrasci, …
• UML (Use Case)
dijagrami
obrasca uporabe

PROGRAMSKO INŽENJERSTVO
2021/22



Analiza zahtjeva
• Mora sadržavati:
– Sažetak. Opis problema, konteksta i cilja rješenja.
– Ciljevi. Što želimo postići? Na koji način ćemo to
postići?
– Ciljna skupina. Tko su krajnji korisnici našeg sustava?
Na koji način međudjeluju sa sustavom?
– Funkcije sustava. Koje su funkcije koje će sustav
pružati?
– Dodatak. Jedan ili više „Use case” dijagrama

PROGRAMSKO INŽENJERSTVO
2021/22

Dijagram obrazaca uporabe


• eng. „Use Case” dijagram
• Opisuje funkcionalno ponašanje sustava /
obrasce uporabe (use cases) u interakciji sa
sudionicima sustava - akterima (actors)
• Sustav se promatra kao crna kutija
• Prikazuju se samo funkcionalnosti koje vide
korisnici
• Koristi se za pregovaranje s kupcem
• Kreira se u ranijim fazama dizajna (prvi dijagram)
PROGRAMSKO INŽENJERSTVO
2021/22

Dijagram obrazaca uporab


• Mora biti:
– jasan (ne više od desetak elemenata, ukoliko ima
potrebe razložiti kroz više dijagrama)
– uredan i pregledan
– cjelovit
– jasno naznačenih granica sustava (što sustav vrši,
ponekad i što ne vrši - ako je bitno naglasiti)
• Uvid u dijagram mora dati brz odgovor o
načelnoj uporabi sustava

PROGRAMSKO INŽENJERSTVO
2021/22

Elementi dijagrama
obrazaca uporabe

PROGRAMSKO INŽENJERSTVO
2021/22

Dijagram obrazaca uporabe


• Akter (engl. actor) predstavlja sudionika (živog ili
neživog) u interakciji sa sustavom. Akter nije dio
sustava.
• Pitanja za prepoznavanje aktera:
– Tko vodi/koristi određeni dio sustava?
– Tko će održavati/servisirati/administrirati
sustav?
– Da li sustav koristi vanjske resurse?
– Da li sustav koristi druge sustave?

PROGRAMSKO INŽENJERSTVO
2021/22


Dijagram obrazaca uporabe
• Slučaj uporabe je slijed operacija koje izvodi
sustav čiji je rezultat akteru od neke koristi
• Funkcije koje sustav nudi
• Komunikacija između sustava i aktera
• Skup svih slučajeva = skup funkcionalnosti
• Dobra praksa: desetak slučaja uporabe po
dijagramu

PROGRAMSKO INŽENJERSTVO
2021/22

Dijagram obrazaca uporabe


• Pitanja za određivanje slučajeva uporabe:
– Koji su zadaci svakog od aktera (prema sustavu)?
– Da li neki akter upisuje, čita ili mijenja podatke iz
sustava?
– Da li akter treba obavijestiti sustav o nekim
promjenama izvana?
– Mogu li se svi zahtjevi sustava obaviti pomoću
de niranih slučajeva?

PROGRAMSKO INŽENJERSTVO
2021/22
fi

Dijagram obrazaca uporabe


• Paziti da slučaj uporaba de nira radnju, a
ne stanje ili objekt
• Ispravno: “Unos narudžbe”, “Kontrola
zaliha”, “Evidentiranje zaposlenika”
• Neispravno: “Naruždba”, “Zalihe”,
“Zaposlenik”

PROGRAMSKO INŽENJERSTVO
2021/22

fi

Vrste veza
• A) Veza između aktera i obrasca -> Asocijacija

Usmjerena veza koja označava interakciju (od aktera,


prema akteru ili oba smjera)

Usmjerenje predstavlja tko je inicirao komunikaciju

PROGRAMSKO INŽENJERSTVO
2021/22

Vrste veza (2)


• B) Veze između dva slučaja upotrebe
1) veza «include» se koristi kada više slučajeva
upotrebe mogu dijeliti zajedničku funkcionalnost
koja se smješta u zaseban slučaj

ostale veze: Opcionalno izvođenje

Proširenje (poopćenje)

PROGRAMSKO INŽENJERSTVO
2021/22

Dijagram obrazaca uporabe

2) veza «extend» koristi se kada


se neki obrazac uvjetno proširuje
drugim

3) Poopćenje (generalizacija,
nasljeđivanje)
se koristi kada se zgodno više
sličnih slučajeva ili korisničkih rola
poopćiti u zajednički slučaj ili rolu
PROGRAMSKO INŽENJERSTVO
2021/22

Primjeri

• Cjelovitost svakog
obrasca
• Što korisnik zaista
želi od sustava?
• Ne navodi među-
korake koji ne
doprinose cjelovitom
shvaćanju zahtjeva

PROGRAMSKO INŽENJERSTVO
2021/22

ti


Primjeri (2)
• Razlike između «extend» i «include» veze

PROGRAMSKO INŽENJERSTVO
2021/22
Primjeri (3)
• Razlike između «include» i poopćenja

PROGRAMSKO INŽENJERSTVO
2021/22
Primjeri (4)
Granice sustava su važne!
Pr. “Dostava se odvija mimo sustava”

PROGRAMSKO INŽENJERSTVO
2021/22

LucidChart Alat
• Otvaranje novog dijagrama
1. https://www.lucidchart.com/pages/usecase/
education
2. Prijaviti se u LucidChart (koristiti @unipu.hr adresu)
3. Otvoriti novi dokument
4. Categories: UML > „Blank UML”
5. Alternativno > označiti UML palete
6. Za ovu vježbu dovoljna je
„UML Use Case” paleta

PROGRAMSKO INŽENJERSTVO
2021/22

Zadatak
• Nacrtati dijagram obrazaca uporabe za sustav „mobilnog
naručivanja” trgovačke robe:
– Terenski djelatnici tvrtke koja koristi mobilno naručivanje
posjećuju svoje klijente i zaprimaju njihove narudžbe (ako
se roba šalje iz centralnog skladišta) ili izdaju račun (ako
robu prodaju i izručuju odmah iz vozila). Pritom djelatnici
koriste pametni uređaj.
– Izrađeni dokumenti se automatski šalju u centralne
poslovnice gdje ih obrađuju referenti, te za svaku narudžbu
izrađuju otpremnice; ukoliko nedostaje zaliha mijenjaju
naručene količine ili stavljaju zamjenske artikle.
– Skladištari pakiraju i šalju robu po otpremnicama tako da
koriste navedeni sustav pri izradi naloga za isporuku koji se
automatski šalje u drugi sustav kurirske službe.

PROGRAMSKO INŽENJERSTVO
2021/22

Zadatak
• Koraci u rješavanju:
– Identi cirati aktere
• Postoje li i vanjski akteri?
– Identi cirati procese
– Proučiti veze između obrazaca uporabe
• Da li neki obrasci koriste neke zajedničke obrasce?
• Da li se neki obrasci uvjetno izvršavaju ili uvijek?
• Da li se neki obrasci mogu poopćiti / generalizirati?

PROGRAMSKO INŽENJERSTVO
2021/22
fi
fi

Rješenje

PROGRAMSKO INŽENJERSTVO
2021/22
Zadatak 2
• Izraditi dijagram korištenja za sustav
uporabe skalne blagajne (osmisliti sustav)
• Identi cirati min. dva aktera i 4-5 obrasca
uporabe
• Primjer obrazaca:
– Fiskaliziranje računa
– Uređivanje dostupnih artikala
– Izrada računa, …
PROGRAMSKO INŽENJERSTVO
2021/22
fi

fi

UML-01 http://bit.ly/pi-zadatak
• Nacrtati Use Case dijagram za informacijski sustav "e-pošta". Radi se o sustavu pri
kojem krajnji korisnik dobiva svoj virtualni sandučić na koji prima račune i brzojave u
elektroničkom obliku. Korisnik pristupa sustavu pomoću mobilne aplikacije ili
računala kroz web aplikaciju. Korisnik također koristi sustav da naruči slanje neke
pošiljke te da prati status isporuke bilo kada šalje ili prima. Ako prima, mora sam
unijeti kod za praćenje koji dobije od pošiljatelja. Sustav e-pošte integriran je sa
dosadašnjim sustavom Hrvatske Pošte te mu prenosi zahtjeve za slanje pošiljaka i
prima informacije o statusu isporuke. Za elektroničke račune koji korisnici primaju u
virtualni sandučić omogućeno je i online plaćanje, i to: kreditnom karticom (partner
HP banka), PayPal-om ili mPay-om (partner PBZ banka). Pri svakom plaćanju računa,
moguće je po želji donirati manji iznos u dobrotvorne svrhe. Sustav također koriste i
poduzeća koja mogu krajnjim korisnicima slati e-račune u njihove virtualni sandučiće.

• Naznačiti na dijagramu sve aktere i procese u kojima sudjeluju


• Iskoristiti vezu specijalizacije gdje je to moguće
• Ispravno naznačiti granice sustava

PROGRAMSKO INŽENJERSTVO
2021/22

Dijagram slijeda
obrazaca uporabe

PROGRAMSKO INŽENJERSTVO
2021/22

Prikupljanje i analiza zahtjeva

Obrasci
korištenja

Dijagrami
Proto p
slijeda
sučelja
korištenja Proto p sučelja

PROGRAMSKO INŽENJERSTVO
2021/22
ti
ti
Dijagram slijeda obrazaca uporabe
• Engl. Use Case Sequence Diagram
• Opisuje slijed korištenja
sustava
• Proširuje dijagram obrazaca s detaljima realizacije
pojedinog obrasca
• Uvijek ima dva vremenska
pravca:
– Korisnik
– Sustav

PROGRAMSKO INŽENJERSTVO
2021/22



Dijagram slijeda obrazaca uporabe


• Elementi dijagrama:
– Korisnik
– Sustav
– Vremenski pravac

vrijeme
PROGRAMSKO INŽENJERSTVO
2021/22

Dijagram slijeda obrazaca uporabe


• Elementi dijagrama
– Poruka

– Izvođenje

PROGRAMSKO INŽENJERSTVO
2021/22

Dijagram slijeda obrazaca uporabe


• Tipovi poruka:
– „Query event” – zahtjev / prikaz informacija
– „Mutation event” – promjena podataka u sustavu
– Označavaju se pre ksom <<Q>> ili <<M>>

PROGRAMSKO INŽENJERSTVO
2021/22

fi

Dijagram slijeda obrazaca uporabe


• Elementi dijagrama:
– Iteracija
(Loop)

– Uvjetno izvođenje (alternative)

PROGRAMSKO INŽENJERSTVO
2021/22



Dijagram slijeda obrazaca uporabe


• Elementi dijagrama:
– Opcionalno izvođenje

– Kompletna de nicija na
http://www.uml-diagrams.org/sequence-diagrams.html

PROGRAMSKO INŽENJERSTVO
2021/22



fi



Zadatak 3
• Izraditi dijagram slijeda za unos narudžbe iz primjera
„mobilno naručivanje” gdje se narudžba unosi tako da se:
– izabere kupac iz baze kupaca (pretragom),
– unese željeni datum dostave,
– za svaki naručeni artikl unese se željena količina.
• Sustav upozorava ako nema artikla na zalihama, te ga
korisnik mijenja ili miče
• Nakon unosa artikala sustav prikazuje iznos narudžbe
• Ukoliko je potrebno zabilježi se napomena uz narudžbu
• Na kraju se potvrđuje narudžba
PROGRAMSKO INŽENJERSTVO
2021/22

Rješenje

PROGRAMSKO INŽENJERSTVO
2021/22
UML-02 http://bit.ly/pi-zadatak

• Izraditi dijagram slijeda kod podizanja novaca sa


bankomata:
– Unos PIN-a (autenti kacija)
– Upit u stanje računa
– Unos traženog iznosa gotovine
– Zahtjev za ispisom potvrde
– Promjena PIN-a
– Kupovina pre-paid bona za mobilne usluge

PROGRAMSKO INŽENJERSTVO
2021/22

fi

Galerija modela
• Pripaziti da nisu svi "pozitivno" ocjenjeni
• Kritički sagledati greške i poboljšati
• Link: https://airtable.com/shr5uNhjAeF7hco1k

PROGRAMSKO INŽENJERSTVO
2021/22

Protip sučelja
• Za svaki obrazac korištenja izrađuje se prototip
sučelja
• Mora biti sveobuhvatno
– pregled, dodavanje, brisanje podataka
– autenti kacija
– izvještaji
– iskočni izbornici ("Jeste li sigurni ...")

PROGRAMSKO INŽENJERSTVO
2021/22
fi

You might also like