modeliranje er diagrama

Post on 24-Dec-2015

38 Views

Category:

Documents

9 Downloads

Preview:

Click to see full reader

DESCRIPTION

Modeliranje ER diagrama

TRANSCRIPT

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

top related