Вы находитесь на странице: 1из 45

Modeli sistema

Faze razvoja softverskog sistema



Specifikacija zahtijeva definiše problem koji
treba riješiti.

Nakon analize i specifikacije zahtijeva slijedi
dizajniranje sistema.

Softverski dizajn je kreativni proces
pretvaranja problema u rješenje. Opis
rješenja se takođe naziva dizajn.

Priroda rješenja mođe da se mijenja i u toku
opisa ili implementacije sistema.
Konceptualni i tehnički dizajn

Dizajn je iterativni proces koji iz dva dijela.

Prvo se formira konceptualni dizajn ili
dizajn sistema koji opisuje korisniku šta će
sistem da radi.

Pošto klijent odobri konceptualni dizajn, vrši
se prevođenje u mnogo detaljniji dokument –
tehnički dizajn.

Tehnički dizajn omogućava sistemskim
inžinjerima i programerima da utvrde
karakteristike sistema (koji softver i hardver
će se koristiti za rješavanje problema).
Dobar konceptualni dizajn

Pisan jezikom klijenta

Ne sadrži tehničke izraze

Opisuje funkcije sistema

Ne zavisi od implementacije

Povezan sa dokumentima specifikacije
zahtjeva

Omogućava klijentu da shvati što će sistem
da radi

Objašnjava vidljive, spoljašnje
karakteristike sistema.
Dobar tehnički dizajn

Opisuje:
• Konfiguraciju hardvera
• Hijerarhiju i funkcije softverskih
komponenti
• Korisnički interfejs
• Ulaze i izlaze sistema
• Mrežnu arhitekturu
• Strukturu i tokove podataka
Modelovanje sistema
 Dizajn sistema opisuje se modelima.
 Modeli sistema su grafički prikazi poslovnih procesa,
problema koje treba rešiti i samog sistema koji treba da se
razvije.

 Modeli takođe predstavljaju most između faze analize i


dizajna
 Različiti modeli opisuju sistem iz različitih perspektiva
• Spoljašnja perspektiva je prikaz konteksta sistema i okruženja;
• Perspektiva ponašanja prikazuje ponašanje sistema:
• Strukturna perspektiva prikazuje arhitekturu sistema ili strukturu
podataka;
Tehnike modelovanja sistema
Sistem se može modelovati na mnogo načina.

Izbor modela zavisi od problema koji se rešava.

U konceptualnom dizajnu sistema modeli moraju


biti razumljivi korisnicima.

U tehničkom dizajnu modeli moraju biti razrađeni i


opisani do detalja.
Tehnike modelovanja sistema (1)

Izdvojićemo najčešće korišćenje savremene
tehnike za modelovanje sistema.

To su:
• Modeli konteksta
• Modeli ponašanja
• Modeli podataka
• Objektni modeli
• CASE (Computer-Aided System/Software
Engineering )
1. Modeli konteksta
 U ranoj fazi analize zahteva, potrebno je
odrediti granice novog sistema, tj. Šta je
unutar sistema, a šta je okruženje.
 Kada se ovo uradi na početku smanjuju se
troškovi i vreme potrebno za analizu
sistema.
 Modeli konteksta se koriste da ilustruju gde
su granice sistema.
Primer: Sistem
za galeriju

Dijagram konteksta
SISTEM ZA
GALERIJU (prikazuje granice sistema)
Primer:Sistem za galeriju
Dijagram dekompozicije kompleksnog
sistema

SISTEM ZA
GALERIJU
2. Modeli ponašanja
 Modeli ponašanja se koriste da opišu
celokupno ponašanje sistema.
 Postoje dva tipa modela ponašanja:
• Model toka podataka koji pokazuje kako se
podatak obrađuje dok se kreće kroz sistem;
• Model stanja koji pokazuje kako sistem reaguje
na događaje;
 Ovi modeli mogu biti korišćeni zajedno ili
posebno, u zavisnosti od vrste i namene
sistema koji se razvija.
2. Modeli ponašanja (1)

Većina poslovnih sistema je zasnovana na
podacima (data-driven) i njima se upravlja na
osnovu unetih podataka.

Najčešće je za poslovne sisteme dovoljno samo
napraviti dijagram toka podataka, da bi se
prikazalo ponašanje sistema.


Nasuprot tome, sistemi za rad u realnom vremenu
su često vođeni događajima (event-driven) i za
njih je najpogodniji model stanja koji prikazuje
ponašanje sistema za različite događaje.
2. Modeli ponašanja (2)
 Modeli toka podataka
 Dijagrami toka podataka (Data flow diagrams) se
koriste za prikaz koraka obrade podataka kroz
sistem.
 Jednostavna i univerzalna notacija koju korisnici
mogu razumjeti.
 Podaci se transformišu u svakom koraku obrade i u
drugačijem obliku se prenose u sledeći korak.
Primer: Sistem za biblioteku
Dijagram toka podataka za proces
učlanjenja/promene podataka
3. Modeli stanja
 Ovi modeli opisuju kako sistem reaguje na spoljne i
unutrašnje događaje.
 Oni prikazuju odzive sistema na događaj, pa se
često koriste za modelovanje real-time sistema.
 Ne prikazuju tok podataka u sistemu
 Problem sa modelima stanja
 Broj mogućih stanja rapidno raste i postaje
nemoguće predstaviti na jednom dijagramu sva
stanja sistema.
Potreban je veliki broj dijagrama stanja što otežava
sistem inžinjerima i programerima da razumiju kako
sistem funkcioniše.
3. Modeli stanja (1)
 Dijagrami stanja
 Zaobljeni pravougaonik u dijagramu označava stanje
sistema. Kada se događaj desi, sistem prelazi iz
jednog stanja u drugo.
 U njega je upisan opis akcije koju to stanje obavlja
 Strelice predstavljaju pobudu koja uzrokuje prelaz iz
jednog stanja u drugo.
 Može biti dopunjen tabelama koje opisuju stanje i
pobudu.
4. Modeli podataka
 Koriste se za opisivanje logičke strukture podataka
obrađenih od strane sistema.
 Funkcionalno orjentisane metode
 Najčešće korišćen model je Entitet-veza-atribut model
(Entity Realationship model – ER model), postavlja početne
entitete sistema, veze između tih entiteta, i njihove atribute.
 Objektno orjentisane metode
 UML ne posjeduje specifične notacije za modeliranje
podataka, jer podrazumeva objektno-orijentisani proces
razvoja i modelira podatke korišćenjem objekata i veza.
 Međutim UML se može koristiti za modeliranje podataka,
tako što se svaki entitet može posmatrati kao klasa objekta,
atributi entititeta kao atributi klase, a relacije između entiteta
kao veze među klasama.
OO metode- Primjer ER dijagrama

ER dijagram
ilustruje logičku
strukturu baze
podataka.
Rečnik podataka
 Rečnik podataka je lista svih imena
korišćenih u modelima sistema. Takođe
uključuje i opis entiteta, veza i atributa.
 Primena
• Podrška upravljanju imenima i izbegavanju
duplikata
• Skladište organizacionih znanja povezuje
analize, dizajn i implementaciju;
 Mnogi CASE alati podržavaju rečnike
podataka.
Rječnik upisanih podataka
Objektni modeli
 Objektno-orijentisani pristup celom procesu razvoja
softvera je danas uobičajen.
 Strategija dizajniranja - polazi od objekta, ne od
operacije ili funkcije
 Sistem čine objekti koji su međusobno u interakciji
 Oblikuju se klase objekata i odnosi između klasa
(statički i dinamički prikaz)
Objektni modeli (1)

Objektno orijentisano modelovanje – deo
objektno orijentisanog razvoja sistema gdje
se objektno-orijentirana strategija proteže
kroz razvojni proces:
• Objektno-orijentisana analiza
• Objektno-orijentisani dizajn
• Objektno-orijentisano programiranje
Objektno orjentisana anliza i dizajn
sistema

Metoda je prikladna za dizajn sistema koji rade u realnom
vremenu.


Metoda podržava klase, objekte, nasljeđivanje, slanje
poruka.


Faze metode su:

• Identifikacija objekata i klasa

• Identifikacija semantike objekata (interfejs objekata,


ponašanje objekata)

• Logički dizajn (relacije klasa i objekata)

• Implementacija
Objektni modeli i UML
 UML predstavlja standardno prikazivanje uvedeno
od strane razvojnog tima koji kreira objektno
orjentisane metode za analizu i dizajn.
 On je postao standard za objektno-orijentisano
modelovanje.
 UML je jezik za:
 specifikaciju,
 vizualizaciju,
 konstruisanje,
 dokumentovaje
 Razvila ga je kompanija Rational Software
Corporation (http://www.rational.com) (od 20.2.2003
u sastavu IBM-a)
UML (http://www.uml.org)

UML je grafički jezik za:
• vizualizaciju
• UML je vizuelni, grafički jezik;
• specifikaciju
• pomoću UML jezika formiraju se precizni,
nedvosmisleni i potpuni modeli;
• konstrukciju
• pomoću jezika UML konstruiše se softverski sistem koji se posle
može implementirati;
• dokumentovanje
• pomoću jezika UML mogu se dokumentovati zahtijevi, arhitektura,
projekat, izvorni kod itd.


UML je standardni vizuelni jezik za modelovanje dominantno,
ali ne isključivo, složenih softverskih sistema.koji je postavljen
kao standard od OMG (Object Management Group –
http://www.omg.org).
Šta je cilj UML jezika ?

UML je razvijen sa ciljem da pojednostavi veliki broj
OO razvojnih metoda.


UML se koristi za modelovanje softverskih sistema
naročito onih koji se zasnivaju na OO metodologiji.


Generalni ciljevi kojima UML jezik teži:
• stvaranje jezika za modelovanje kojim je moguće razvijati
i razmjenjivati modele sa određenim značenjem.
• nezavisnost od programskih jezika i razvojnih procesa
• pružanje formalne osnove za razumijevanje jezika za
modelovanje
Šta je cilj UML jezika ? (2)
• podsticanje razvoja OO programskih jezika

• podrška apstraktnih razvojnih pojmova kao što


su saradnja, okvirni rad, uzorci i komponente
(collaborations, frameworks, patterns, and
components)

• integrisanje i razvijanje praktičnim iskustvom.


Ko su korisnici UML-a?


Korisnici UML-a su:
• Sistem-analitičari i krajnji korisnici – specificiraju
zahtijevanu strukturu i ponašanje sistema
• Rukovodioci projekta – vođenje i usmjeravanje kadrova i
upravljanje resursima
• Projektanti –projektuju sistem na osnovu zahtijeva
• Razvojni inžinjeri - transformišu projekat u izvršni kod
• Kontrolori kvaliteta – provjeravaju strukturu i ponašanje
sistema
Klasifikacija UML dijagrama
UML – 9 osnovnih dijagrama
State
State
Dijagrami
Diagrams
Use Case Diagrams
Use Case paketa State
Use Case Diagrams
Dijagram State
Dijagram
Use Case Diagrams Dijagram
Diagrams
Diagrams razmještaja Diagrams
komponenti
Diagrams objekata

Scenario State
Scenario State
Diagrams
Dijagram Dijagram
Diagrams
Diagrams Diagrams
interakcije Dijagram klasa

Scenario Component
Scenario
Dijagram Dijagram
Component
Diagrams Diagrams
promjene
Diagrams Diagrams
slučajeva
stanja Dijagram korišćenja
aktivnosti

statički aspekt sistema dinamički aspekt sistema aspekt implementacije sistema


UML pogledi na arhitekturu sistema
(4+1 Arhitectural Views)

UML definiše 4+1 pogleda na arhitekturu (Arhitectural Views)
koji se opisuju pomoću 13 dijagrama

POGLED POGLED
ANALIZE IMPLEMENTACIJE

POGLED SLUČAJEVA
KORIŠĆENJA

POGLED POGLED
PROJEKTOVANJA RAZMIJEŠTANJA

4+1 Arhitectural Views je predložio Phillipe Kruchten (IBM)


Primjer upotrebe UML dijagrama u
iterativnom procesu razvoja

Aktivnost Proizvodi UML dijagrami


Definisanje projektnih Preliminarni dokument sa Tekstualni dokument
zahtijeva zahtijevima
Analiza zahtijeva Model slučajeva upotrebe, Dijagram slučajeva korišćenja,
Model domena (klasa i Dijagram klasa,
objekata) Dijagram objekata,
Dijagram aktivnosti
Projekat Model projekta i model Dijagram klasa,
procesa Dijagram objekata,
Dijagram interakcije,
Dijagram promjene stanja
Implementacija Model implementacije Dijagram komponenti, Dijagram
razmještanja
Testiranje Model testiranja - nije predmet ovog kursa-
Model-Driven Architecture (MDA)

Defines how
managed
elements in an IT
environment are
represented as a
common set of
objects and
relationships
between them.
PRIMER

MODELOVANJE SISTEMA
RENT-A-CAR AGENCIJE
Primer: Rent-a-Car – Use Case
Pogled
Opis funkcionalnosti sistema

Sakupljanje zahteva
• funkcionalni i nefunkcionalni zahtevi

Kreiranje specifikacije zahteva za sistem
• UML Use Case dijagram
• Opis Use Case dijagrama

Identifikacija akteri i njihovih relacija sa
slučajevima korišćenja
AutoPark System

Primjer: Rent-a-Car Testdriv e Car Pool Maintenance


+ Manage Cars
+ Print list of testdrive cars

Use Case Paketi Testdriv e Appointment Maintenance


+ Manage test drive appointments
+ Print and send testdrive invitation
+ Print list of testdrive appointments
+ Process evaluation form
+ Process TestDrive Request
+ Request TestDrive

Testdriv e Person Maintenance


+ Manage Customers
+ Print list of testdrive persons
Primer: Rent-a-Car
ud Testdriv e Appointment Maintenance

AutoPark Testdrive Maintenance

Use Case Dijagram


Manage test driv e
appointments

Sales Person
(from Actors)

Print and send


testdriv e inv itation

Print list of
testdriv e
appointments

Administrativ e Person

(from Actors)

Process
ev aluation form

Process TestDriv e
Manage Customers
Request «extend»

(from Testdrive Person Maintenance

Request TestDriv e

Customer

(from Actors)
AutoPark - Use Case Pogled
Opis Use Case scenarija

Scenario = Tok aktovnosti u slučaju
korišćenja
• Osnovni
• Alternativni


UML Dijagram aktivnosti
• Opisuje kako se aktivnosti dešavaju u sistemu
Primer: Rent-a-Car
ad Activ ity Diagram - Process TestDriv e Request

Process TestDrive Request Start


Dijagrami Aktivnosti

Display List of Requests ad Activ ity Diagram - Process Request

Process Request Start

Validate User
«UserActivity»
Select Request to process
and rev iew

[Action = PROCESS]
Business Request?
Process Request
[Business Request = NO] [BusinessRequest = YES]

[Action = REJECT]
Create TestDriv e Create TestDriv e Request
Appointment XML File

Delete Request

Process Request End


Process TestDrive Request
Primer: Rent-a-Car – Logički aspekt

Dizajniranje logičke strukture sistema


Identifikacija entiteta
• Identifikacija atributa
• Identifikacija operacija
• Identifikacija relacija
• Identifikacija mnogostrukosti


Kreiranje Dijagrama klasa
Primer: Rent-a-Car – Logički aspekt
cd Logical Data Model - Process TestDriv e Requests

Request TestDriv e::Request

- FirstName: CHARACTER
- LastName: CHARACTER
- Email: CHARACTER
- PhoneNumber: CHARACTER

Manage TestDriv e Appointments::


-
-
-
BirthDate: DATE
LicenseDate: DATE
Brand: CHARACTER
Dijagram Klasa
TestDriv e - Model: CHARACTER
- Version: CHARACTER
- Date: DATE - Engine: CHARACTER
- EvalForm: LOGICAL - Business: LOGICAL
- currentCar: Car
- currentPerson: Person + createRequest() : LOGICAL
+ deleteRequest() : LOGICAL
+ createTestDrive() : LOGICAL + readRequest() : CHARACTER
+ deleteTestDrive() : LOGICAL + findRequest() : CHARACTER
+ readTestDrive() : CHARACTER
+ updateTestDrive() : LOGICAL
+ findTestDrive() : CHARACTER 0..*
+ validateTestDrive() : LOGICAL

0..*

1 1

Manage Cars::Car Manage Customers::Person

- Brand: CHARACTER - FirstName: CHARACTER


- Model: CHARACTER - LastName: CHARACTER
- Version: CHARACTER - PhoneNumber: CHARACTER
- Color: CHARACTER - BirthDate: DATE
- Engine: CHARACTER - LicenseDate: DATE
- Fuel: CHARACTER
- Description: CHARACTER + createCustomer() : LOGICAL
- AvailForTD: LOGICAL + deleteCustomer() : LOGICAL
- DateAdded: DATE + updateCustomer() : LOGICAL
+ readCustomer() : CHARACTER
+ createCar() : LOGICAL + findCustomer() : CHARACTER
+ deleteCar() : LOGICAL + validateCustomer() : LOGICAL
+ readCar() : CHARACTER
+ updateCar() : LOGICAL
+ findCar() : CHARACTER
+ validateCar() : LOGICAL
Primjer: Rent-a-Car – Dinamički aspekt

Opis ponašanja sistema


Identifikacija objekata


Identifikacija interakcije (poruke)


Opis ponašanja sistema - “kako” sistem
funkcioniše
Primer: Rent-a-Car – Dinamički aspekt
Sequence Diagram - Process TestDriv e Request (Client)

Client Server

«interface»
Process TestDrive
Administrative Person Viewer Control Entity Request BE Request::IProcessTDRequest

listRequests

showSelectScreen

getRequests

getRequests

selectRequest

showRequestDetails

getRequestDetails

getRequestDetails

alt v alid request


acceptRequest(request)
[true]
processRequest(request)

processRequest(request)

deleteRequest(request)

[false]
rejectRequest(request)

deleteRequest(request)
Primer: rent-a-Park – Aspekt implementacije
id Manage Customers

Name: Manage Customers


Package: Manage Customers
Version: 1.0
Author: Frank Beusenberg

«realize»

Manage Customers::CustomerMaintenanceView
CustomerMaintenanceView .w

«realize»

CustomerMaintenanceControl CustomerMaintenanceModel «include»


ttContext.i

CustomerMaintenanceControl.p «realize»
+ onValueChangedBrwsCustomer() : void
«includes»
+ onChooseBtnAdd() : void
+ onChooseBtnModify() : void «includes»
CustomerMaintenanceModel.p
+ onChooseBtnDelete() : void
+ onChooseButtonOK() : void + addCustomer() : void
+ onChooseBtnCancel() : void + deleteCustomer() : void
+ onChooseBtnHelp() : void + modifyCustomer() : void
+ onChooseBtnDone() : void + commitCustomer() : void
+ getCustomer() : void

«Include»
«includes»
dsPerson.i «includes»
- DEFINE DATASET Person:
«Include»

includes proSIproxyStart.i
- NEW GLOBAL SHARED VARIABLE ghProxySIproc:

«realize PERSISTENT»

«Include»
etPerson.i

Вам также может понравиться