52
Tema 4: Osnovne funkcije i struktura CASE proizvoda PROJEKTOVANJE INFORMACIONIH SISTEMA dr Vladislav Miškovic FAKULTET ZA POSLOVNU INFORMATIKU 2011/2012 1

Modeliranje ER diagrama

Embed Size (px)

DESCRIPTION

Modeliranje ER diagrama

Citation preview

Page 1: Modeliranje ER diagrama

Tema 4: Osnovne funkcije i

struktura CASE proizvodastruktura CASE proizvoda

PROJEKTOVANJE INFORMACIONIH SISTEMA

dr Vladislav Miškovic

FAKULTET ZA POSLOVNU INFORMATIKU

2011/2012

1

Page 2: Modeliranje ER diagrama

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

Page 3: Modeliranje ER diagrama

1. Uvod

• Alati za projektovanje

• Automatizovani alati i tehnologije projektovanja

3

Page 4: Modeliranje ER diagrama

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

Page 5: Modeliranje ER diagrama

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

Page 6: Modeliranje ER diagrama

2. Definicija i vrste CASE alata

1. Definicija CASE alata

2. Vrste CASE alata

6

Page 7: Modeliranje ER diagrama

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

Page 8: Modeliranje ER diagrama

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

Page 9: Modeliranje ER diagrama

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

Page 10: Modeliranje ER diagrama

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

Page 11: Modeliranje ER diagrama

Alati za implementaciju i održavanje

(Lower CASE)

• Generatori Web aplikacija, npr.

– CodeCharge Studio

– Iron Speed

Page 12: Modeliranje ER diagrama

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

Page 13: Modeliranje ER diagrama

3. Struktura CASE alata

1. Osnovne komponente CASE alata

2. Primeri

13

Page 14: Modeliranje ER diagrama

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)

Page 15: Modeliranje ER diagrama

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

Page 16: Modeliranje ER diagrama

4. Funkcije CASE alata

1. Modelovanje

2. Generisanje koda

3. Sinhronizacija modela

4. Reverzni inženjering4. Reverzni inženjering

16

Page 17: Modeliranje ER diagrama

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

Page 18: Modeliranje ER diagrama

Modelovanje informacionog sistema

1. Modelovanje procesa

2. Modelovanje podataka

3. Objektno orijentisano modelovanje

18

Page 19: Modeliranje ER diagrama

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)

Page 20: Modeliranje ER diagrama

Dijagrami toka podataka (DFD)

• Osnovni elementi

dijagrama toka

podataka (DTP)

– procesi

– tokovi podataka

– skladišta

– spoljašnji entiteti

Page 21: Modeliranje ER diagrama

Microsoft Visio - dijagrami toka podataka

(data-flow, DFD)

• Dva standarda označavanja

– Gene-Sarson

– Yourdon-Coad

Page 22: Modeliranje ER diagrama

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

Page 23: Modeliranje ER diagrama

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

Page 24: Modeliranje ER diagrama

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

Page 25: Modeliranje ER diagrama

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

Page 26: Modeliranje ER diagrama

UML dijagrami

• UML standardi za opis logike procesa: dijagrami

stanja, sekvenci, aktivnosti

Page 27: Modeliranje ER diagrama

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

Page 28: Modeliranje ER diagrama

Dijagram sekvenci

• Prikazuje objekte koji su od

interesa za izvršavanje

slučaja korišćenja

– Slučaj korišćenja "Otvaranje

novog računa"

28

Page 29: Modeliranje ER diagrama

Djagram aktivnosti

• Opis svih aktivnosti jednog

slučaja korišćenja

– Slučaj korišćenja "Otvaranje

novog računa"

– dijagram toka (flowchart)

29

Page 30: Modeliranje ER diagrama

4.1.2 Modelovanje podataka

• ER model i ER dijagrami

• Alati za modelovanje podataka

Page 31: Modeliranje ER diagrama

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

Page 32: Modeliranje ER diagrama

• Oracle Designer

• ERWin

• DBDesigner

• MySQL Workbench

Alati za modelovanje podataka

• MySQL Workbench

32

Page 33: Modeliranje ER diagrama

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)

Page 34: Modeliranje ER diagrama

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

Page 35: Modeliranje ER diagrama

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

Page 36: Modeliranje ER diagrama

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)

Page 37: Modeliranje ER diagrama

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):

Page 38: Modeliranje ER diagrama

Primer: NetBeans IDE - generisanje kôda

• Generiše kôd na osnovu

UML dijagrama klasa

38

Page 39: Modeliranje ER diagrama

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

Page 40: Modeliranje ER diagrama

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

Page 41: Modeliranje ER diagrama

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

Page 42: Modeliranje ER diagrama

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

Page 43: Modeliranje ER diagrama

Primer: NetBeans 6 IDE reverzni inženjering

• Na osnovu izabranih

modula izvornog koda

generiše dijagram klasa

• Generisani dijagram klasa

43

Page 44: Modeliranje ER diagrama

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

Page 45: Modeliranje ER diagrama

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

Page 46: Modeliranje ER diagrama

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)

Page 47: Modeliranje ER diagrama

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)

Page 48: Modeliranje ER diagrama

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)

Page 49: Modeliranje ER diagrama

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)

Page 50: Modeliranje ER diagrama

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

Page 51: Modeliranje ER diagrama

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

Page 52: Modeliranje ER diagrama

dr Vladislav MiškovicProjektovanje informacionih sistema

Tema 4: Osnovne funkcije i struktura CASE proizvoda

Pitanja?Pitanja?

52