Upload
mihret-sarac
View
38
Download
9
Embed Size (px)
DESCRIPTION
Modeliranje ER diagrama
Citation preview
Tema 4: Osnovne funkcije i
struktura CASE proizvodastruktura CASE proizvoda
PROJEKTOVANJE INFORMACIONIH SISTEMA
dr Vladislav Miškovic
FAKULTET ZA POSLOVNU INFORMATIKU
2011/2012
1
Sadržaj predavanja
1. Uvod
2. Definicija i vrste CASE alata
3. Struktura CASE alata
4. Funkcije CASE alata: modelovanje, generisanje koda, 4. Funkcije CASE alata: modelovanje, generisanje koda,
siinhronizacija modela i reverzni inženjering
5. Primeri alata
2
1. Uvod
• Alati za projektovanje
• Automatizovani alati i tehnologije projektovanja
3
Alati za projektovanje
• Integrisani alati za podršku svih faza razvoja
• Alati za podršku pojedinih faza razvoja sistema
– analiza i projektovanje (Upper CASE )
– implementacija i održavanje (Lower CASE)– implementacija i održavanje (Lower CASE)
– podrška projektu (Cross Life-cycle CASE)
4
Automatizovani alati i tehnologije
projektovanja
• Alati za automatizaciju delova ili celokupnog procesa razvoja informacionog sistema su
– Computer-Aided Systems Engineering (CASE)
– Application Development Environments (ADEs)Application Development Environments (ADEs)
– Alati za podršku menadžmenta projekta
• Tehnologije i standardi
– XML, XLS
– SOA
– UML
2. Definicija i vrste CASE alata
1. Definicija CASE alata
2. Vrste CASE alata
6
2.1 Definicija CASE alata
CASE alati (Computer-Aided Systems Engineering) su automatizovani softverski alati, koji podržavaju izradu i analizu modela sistema i njegovih specifikacija
– manji troškovi razvoja (brže, lakše održavanje i jednostavije modifikacije)
– veći kvalitet (automatizacija dokumentovanja, provera konzistentnosti)
• Omogućavaju
– Forward Engineering – mogućnost CASE alata da direktno generiše inicijalni deo softvera i/ili bazu podataka
– Reverse Engineering – mogućnost CASE alata da generiše model sistema na osnovu postojećeg softvera i/ili baze podataka
– Round-trip Engineering – sinhronizovane izmene koda i modela
• Neki CASE alati omogućavaju generisanje prototipa ili celokupnog koda
2.2 Vrste CASE alata
• Integrisani alati za podršku svih faza razvoja
• Alati za analizu i projektovanje (Upper CASE )
– Alati za izradu dijagrama
– Generatori formi i izveštaja
– Alati za analizu– Alati za analizu
• Alati za implementaciju i održavanje (Lower CASE)
– Generatori koda
• Alati za podršku (Cross Life-cycle CASE)
– Alati za dokumentaciju i podršku upravljnja projektom
Integrisani alati
za podršku svih faza razvoja
• Okruženja za podršku analize, projektovanja,
implementacije i održavanja sistema, npr.
– IBM Rational Software Architect
– Rational Rose XDE
– Oracle JDeveloper
– Microsoft Visual Studio 2010
Alati za analizu i projektovanje
(Upper CASE )
• Alati za izradu dijagrama, npr.
– Microsoft Visio
– Dia (open source)
• Generatori formi i izveštaja• Generatori formi i izveštaja
• Alati za analizu
Alati za implementaciju i održavanje
(Lower CASE)
• Generatori Web aplikacija, npr.
– CodeCharge Studio
– Iron Speed
Poznatiji UML alati otvorenog koda sa
generisanjem koda/aplikacija
• AndroMDA
– generator koda na osnovu UML modela (J2EE i dr.)
• BOUML
– modeliranje i generisanje koda (C++, Java, Php, Python)
• dia2codedia2code– generator koda na osnovu UML modela (Ada, C, C++, C#, IDL, Java,
PHP, PHP5, Python, Ruby, SQL)
• Dzine– CASE alat za OOAP, generiše kod (C++, Java, SQL), reverzni inženjering
koda
• Olympos– Web (PHP, J2EE), Desktop (C#) i mobilne aplikacije (.NET, J2ME) na
osnovu UML modela
3. Struktura CASE alata
1. Osnovne komponente CASE alata
2. Primeri
13
3.1 Osnovne komponente CASE alata
• Komponente za
– izradu dijagrama
– rečnik (Dictionary)
– projektovanje (Design)
– upravljanje kvalitetom – upravljanje kvalitetom
(Quality Management)
– dokumentovanje
– generisanje koda
• Baza podataka modela sistema (CASE repository)
– detaljni opisi, specifikacije i sl.
– sinonimi su rečnik (dictionary) i enciklopedija (encyclopedia)
3.2 Primeri
• Integrisani alati sa podrškom za UML
– IBM Rational Rose
– IBM Rational Software Architect
– IBM System Architect
– Oracle JDeveloper
– Sybase PowerDesigner
– Gentleware Poseidon for UML
– Sparx Systems Enterprise Architect
– MagicDraw UML
– Microsoft Visual Studio 2010 Ultimate
15
4. Funkcije CASE alata
1. Modelovanje
2. Generisanje koda
3. Sinhronizacija modela
4. Reverzni inženjering4. Reverzni inženjering
16
4.1 Modelovanje
• Modelovanje je proces izgradnje modela sistema
– modelovanje sistema je jedan od osnovnih inženjerskih
principa
– sistem se sastoji od entiteta koji su objekt posmatranja
– nijedan model ne obuhvata sve aspekte realnog sistema– nijedan model ne obuhvata sve aspekte realnog sistema
• Vrste modela
– Verbalni
– Analitički ili matematički
– Slikovni ili šematski
– Simulacioni
17
Modelovanje informacionog sistema
1. Modelovanje procesa
2. Modelovanje podataka
3. Objektno orijentisano modelovanje
18
4.1.1 Modelovanje procesa sistema
• Grafičko predstavljanje procesa, koji prikupljaju,
manipulišu, smeštaju i distribuiraju podatke između
sistema i njegove okoline, kao i između sistemskih
komponenti
najpoznatija tehnika su dijagrami toka podataka (data flow – najpoznatija tehnika su dijagrami toka podataka (data flow
diagrams, DFD)
Dijagrami toka podataka (DFD)
• Osnovni elementi
dijagrama toka
podataka (DTP)
– procesi
– tokovi podataka
– skladišta
– spoljašnji entiteti
Microsoft Visio - dijagrami toka podataka
(data-flow, DFD)
• Dva standarda označavanja
– Gene-Sarson
– Yourdon-Coad
Modelovanje logike procesa
• Tehnike prikaza strukture i sadržaja (logike) samih
procesa u sistemu:
– strukturisani prirodni jezik
– tebele odlučivanja
– stabla odlučivanja
– UML dijagrami
Strukturisani prirodni jezik
• Originalni tekst
Sales promotion policy:
– Preferred customers who order more than $1 ,000 are entitled to a 5% discount, and an additional 5% discount if they used our charge card
– Preferred customers who do not order more than $1 ,000 receive a $25 bonus coupon
– All other customers receive a $5 bonus coupon
Strukturisani prirodni jezik (pseudokôd)• Strukturisani prirodni jezik (pseudokôd)Sales promotion policy:
IF customer is a preferred customer, AND
IF customer orders more than $1,000 THEN
Apply a 5% discount, and
IF customer uses our charge card, THEN
Apply an additional 5% discount
ELSE
Award a $25 bonus coupon
ELSE
Award a $5 bonus coupon
Tabele odlučivanja
• Sve kombinacije uslova i mogućih odluka
• Primer: 2uslova x 2 odluke
Proces potvrde narudžbe
uslovi
odluke
Proces potvrde narudžbe
1 2 3 4
Kreditno sposoban Da Da Ne Ne
Proizvod na lageru Da Ne Da Ne
Prihvati narudžbu X
Poništi narudžbu X X X
Stabla odlučivanja
• Grafički prikaz logike procesa, npr. procesa
odlučivanja
• Ekvivalent tabela odlučivanja
Kreditno
sposoban?
Proizvod na
lageru?
Prihvati
narudžbu
Poništi narudžbu
Poništi narudžbu
UML dijagrami
• UML standardi za opis logike procesa: dijagrami
stanja, sekvenci, aktivnosti
Dijagram stanja
• Dijagram stanja (statechart)
modeluje efekte interakcije
između objekata
– opisuje život objekta u
terminu događaja koji dovode
do promena u stanjima do promena u stanjima
objekta
– identifikuje spoljne i interne
događaje koji mogu da
menjaju stanje objekta
27
Dijagram sekvenci
• Prikazuje objekte koji su od
interesa za izvršavanje
slučaja korišćenja
– Slučaj korišćenja "Otvaranje
novog računa"
28
Djagram aktivnosti
• Opis svih aktivnosti jednog
slučaja korišćenja
– Slučaj korišćenja "Otvaranje
novog računa"
– dijagram toka (flowchart)
29
4.1.2 Modelovanje podataka
• ER model i ER dijagrami
• Alati za modelovanje podataka
Dijagrami objekti-veze (ERD)
• ERD (Entity Relationship
Diagram)
– entiteti i relacije
– različite notacije:– različite notacije:
• Chen
• IDEF1X
• Bachman
• Crow's Foot
• ISO
• UML dijagram klasa
• Oracle Designer
• ERWin
• DBDesigner
• MySQL Workbench
Alati za modelovanje podataka
• MySQL Workbench
32
4.1.3 Objektno orijentisano modelovanje
• UML dijagrami - tri pogleda na model sistema:
1. Funkcionalni zahtevi: prikazuju funkcionalne zahteve iz
ugla korisnika (Use Case Diagrams)
2. Statička struktura: prikaz statičke strukture sistema
pomoću objekata, atributa, operacija i relacija (Class pomoću objekata, atributa, operacija i relacija (Class
Diagrams)
3. Dinamičko ponašanje: prikaz dinamičkog ponašanja
sistema kroz saradnju objekata i promene njihovih
unutrašnjih stanja (Sequence Diagrams, Activity
Diagrams, State Diagrams)
4.2 Generisanje koda
• Informacioni sistem (softver) predstavlja izvršni kod
• Funkcija generisanje koda CASE alata omogućava
pretvaranje specifikacija u izvršni kod
– generisanje koda može biti ograničeno na generisanje – generisanje koda može biti ograničeno na generisanje
skeleta sistema (samo zaglavlja procedura i deklaracije
objekata) ili aplikacija/delova aplikacija
– generisanje funkcionalnih sistema ili njihovih delova je
moguće za neke klase softvera na osnovu semi-formalnih
specifikacija
• na osnovu modela/baza podataka
• na osnovu grafičkih UML modela
34
Prednosti generisanja koda
• Generisanje koda eliminiše
– napor programera da pronalazi načine za izbegavanje
ponavljanja istog ili veoma sličnog koda
(procedure/funkcije/objekti...)
– kreiranje složenih programskih interfejsa, kojim se – kreiranje složenih programskih interfejsa, kojim se
nepotrebno nameću standardi širem okruženju
• Prednosti
– povećanje produktivnosti
– smanjenje broja grešaka
– povećanje kvaliteta napisanog koda
Primer: Visio 2003 - generisanje kôda
• Visio for Enterprise Architects 2003 ima UML dodatak (add-
on) koji omogućava generisanje skeleta kôda, normalni i
reverzni inženjering na osnovu UML dijagrama
– nije predviđen round-trip engineering (automatsko ažuriranje koda u
hodu, npr. kao IBM Rational Rose/RSA)
• Automatsko generisanje koda na osnovu UML dijagrama
– automatski se generiše kostur kôda na osnovu 4 UML dijagrama
statičke strukture (Class, Statechart, Component, Deployment)
Primer: Visual Studio - generisanje kôda
• Procedura generisanja
– UML/Code/Generate
• Primer: UML definicija klasa
Kupac i Korpa
• Generisani skelet koda (VS):• Generisani skelet koda (VS):
Primer: NetBeans IDE - generisanje kôda
• Generiše kôd na osnovu
UML dijagrama klasa
38
Primer: UML2PHP - generisanje PHP kôda
aplikacije na osnovu UML dijagrama
• UML model se kreira
pomoću nezavisnog alata za
UML modeliranje (XMI)
• UML2PHP generiše kôd
aplikacije na osnovu UML aplikacije na osnovu UML
dijagrama klasa– pokrene se Application Wizard
– izabere se konfiguracija
– generiše se kôd (Generate)
• aplikacija je na Web folderuhttp://localhost/uml2php/uml
2phpexamples/recipeCollectio
n/index.php
39
4.3 Sinhronizacija modela
• Sinhronizacija modela i koda ili baze podataka
moguća je kod većine sistema koji podržavaju
direktni i reverzni inženjering
• Sistemi koji podržavaju projektovanje u hodu (round-Sistemi koji podržavaju projektovanje u hodu (round-
trip engineering) vrše automatsku sinhronizaciju
modela i kôda
40
Primer: NetBeans IDE sinhronizacija kôda
• Sinhronizacija izmena
modela i kôda
• Objedinjava generisani i
korisninčki kôd
• Generisanje koda na osnovu • Generisanje koda na osnovu
šablona (template)
– šabloni se mogu menjati
41
4.4 Reverzni inženjering
• Većina CASE alata može da generiše model sistema
na osnovu postojećeg softvera i/ili baze podataka
• Primeri:
– Baze podataka i ER modeli– Baze podataka i ER modeli
• ERwin
• DBDesigner
– Programski kod i UML modeli
• IBM Rational Rose
• IBM Software Architect
• Microsoft Visio for VS 2003 EE
• Net Beans
42
Primer: NetBeans 6 IDE reverzni inženjering
• Na osnovu izabranih
modula izvornog koda
generiše dijagram klasa
• Generisani dijagram klasa
43
5. Primeri alata
1. IBM Rational Rose
2. IBM Rational Software Architect
3. Oracle JDeveloper
4. Sybase Power Designer4. Sybase Power Designer
5. Microsoft Visual Studio 2010 Ultimate
6. NetBeans 6.1 UML
44
5.1 IBM Rational Rose
• Tradicionalni integrisani alat za OO razvoj složenih sistema
• podržava timski rad
• podržava UML• podržava UML
• podržava veliki broj tehnologija i arhitektura (Java, C/C++, Web,...)
• problem: nepregledan i složen interfejs
5.2 IBM Rational Software Architect
• Integrisani alat za
razvoj složenih sistema
• podržava timski rad
• podržava UML• podržava UML
• podržava više
tehnologija i
arhitektura (Java,
C/C++, Web servisi,
SOA)
5.3 Oracle JDeveloper
• Besplatni integrisani
alat (free) , koji
podržava sve faze
razvoja složenih
sistemasistema
• podržava timski rad
• podržava UML
• podržava više
tehnologija i
arhitektura (Java, Web
servisi, SOA)
5.4 Sybase Power Designer
• Integrisani alat, koji
podržava sve faze
razvoja složenih
sistema
• podržava timski rad
• podržava UML
• podržava više
tehnologija i
arhitektura (Java, Web
servisi, SOA)
5.5 Microsoft Visual Studio 2010 Ultimate
• Integrisani alat, koji
podržava sve faze
razvoja složenih
sistema
• podržava timski rad
• podržava 6 UML
dijagrama (T4
generator)
• podržava više
tehnologija i
arhitektura (C#, Java,
Web servisi, SOA)
5.6 NetBeans 6.1 UML
• Dodatak (plug-in) , podržava
UML dijagrame slučajeva
korišćenja, aktivnosti,
sekvenci, klasa, stanja,
zavisnostizavisnosti
• podržava reverzni
inženjering i više tehnologija
i arhitektura (C#, Java, Web
servisi, SOA)
• Problem: novije verzije više
nemaju podršku za UML
(6.5 do 7.1) 50
Literatura
1. Miškovic V., Projektovanje informacionih sistema (predavanja), Univerzitet
Sinergija, 2012
2. Sommerville I., Software Engineering, 9thEd, Addison Wesley, 2011
3. Schach R.S., Object-oriented Software Engineering, Mc-Gow Hill, 2008
4. Whitten J. L., Bentley L. D., Dittman K. C., Systems Analysis and Design
Methods, 7th Ed, Irwin McGraw Hill, 2007Methods, 7th Ed, Irwin McGraw Hill, 2007
5. Kroll P., P. Kruchten, Rational Unified Process Made Easy – A Practitioner’s
Guide to RUP, John Waley, 2003
6. IBM Rational Product Training: DEV475 Mastering Object-Oriented
Analysis and Design with UML
7. Priručnici za programske alate i Web reference
8. http://uml-directory.omg.org/vendor/list.htm
51
dr Vladislav MiškovicProjektovanje informacionih sistema
Tema 4: Osnovne funkcije i struktura CASE proizvoda
Pitanja?Pitanja?
52