+ All Categories
Home > Documents > Unified Modeling Language - DIMES Unicalsi.deis.unical.it/~cuzzocrea/sisinfo/Lezione03.pdf · 2 3...

Unified Modeling Language - DIMES Unicalsi.deis.unical.it/~cuzzocrea/sisinfo/Lezione03.pdf · 2 3...

Date post: 16-Feb-2019
Category:
Upload: hoangkiet
View: 215 times
Download: 0 times
Share this document with a friend
29
1 1 Unified Modeling Language Unified Modeling Language Luciano Baresi Luciano Baresi Politecnico Politecnico di Milano di Milano 2 Modellazione visuale Modellazione visuale Computer System Computer System “Un “Un modello cattura modello cattura le le parti parti essenziali essenziali di un di un sistema sistema” Dr. James James Rumbaugh Rumbaugh Business Process Business Process richiesta richiesta ordine ordine consegna consegna
Transcript

1

11

Unified Modeling LanguageUnified Modeling Language

Luciano BaresiLuciano Baresi

PolitecnicoPolitecnicodi Milanodi Milano

22

Modellazione visualeModellazione visuale

Computer SystemComputer System

“Un“Un modello catturamodello cattura le le parti parti essenzialiessenziali di un di un sistemasistema””

Dr. James James RumbaughRumbaugh

Business ProcessBusiness Process

richiestarichiesta

ordineordine

consegnaconsegna

2

33

Perché UMLPerché UML

UML è il linguaggio visuale standard (OMG) UML è il linguaggio visuale standard (OMG) per definire, progettare, realizzare e per definire, progettare, realizzare e documentare i sistemi software ad oggettidocumentare i sistemi software ad oggettiUML riunisce molte proposte esistenti (Booch, UML riunisce molte proposte esistenti (Booch, Rumbough e Jacobson)Rumbough e Jacobson)UML copre l’intero processo di produzioneUML copre l’intero processo di produzioneUML è sponsorizzato dalle maggiori industrie UML è sponsorizzato dalle maggiori industrie produttrici di softwareproduttrici di software

44

Perché UML (cont.)Perché UML (cont.)

UML riunisce aspetti dell’ingegneria del UML riunisce aspetti dell’ingegneria del software, delle basi di dati e della software, delle basi di dati e della progettazione di sistemiprogettazione di sistemiUML è indipendente da qualsiasi linguaggio di UML è indipendente da qualsiasi linguaggio di programmazioneprogrammazioneUML è utilizzabile in domini applicativi diversi UML è utilizzabile in domini applicativi diversi e per progetti di diverse dimensionie per progetti di diverse dimensioniUML è estendibile per modellare meglio le UML è estendibile per modellare meglio le diverse realtàdiverse realtà

3

55

Diagrammi Diagrammi UMLUML

Viste staticheViste staticheUse Case DiagramsUse Case DiagramsClass DiagramsClass DiagramsObject DiagramsObject DiagramsComponent DiagramsComponent DiagramsDeployment DiagramsDeployment Diagrams

Viste dinamicheViste dinamicheSequence DiagramsSequence DiagramsCollaboration DiagramsCollaboration DiagramsStatechart DiagramsStatechart DiagramsActivity DiagramsActivity Diagrams

66

Use case diagramUse case diagram

4

77

RequisitiRequisiti

Il primo passo di “qualsiasi” processo di Il primo passo di “qualsiasi” processo di sviluppo è la definizione dei requisitisviluppo è la definizione dei requisiti

Definizione del Business Model Definizione del Business Model Solitamente informale e in linguaggio naturaleSolitamente informale e in linguaggio naturale

Jacobson (OOSE) propone una notazione Jacobson (OOSE) propone una notazione particolare che è confluita in UMLparticolare che è confluita in UML

Use Case DiagramUse Case Diagram

88

Elementi graficiElementi grafici

Actor: è qualcuno (utente) o qualcosa Actor: è qualcuno (utente) o qualcosa (sistemi esterni (sistemi esterni -- hardware) che:hardware) che:

Controlla le funzionalitàControlla le funzionalitàFornisce input o riceve output dal sistemaFornisce input o riceve output dal sistema

Use Case: è un’unità funzionale parte Use Case: è un’unità funzionale parte del sistemadel sistema

5

99

Relazioni principaliRelazioni principali

AssociationsAssociations identificano relazioni semplici identificano relazioni semplici tra attori e casitra attori e casi

Include Include fattorizza proprietà comuni. fattorizza proprietà comuni. ÈÈsimile all’innesto di procedure alla Pascalsimile all’innesto di procedure alla Pascal. A . A includes Bincludes B

ExtendExtend identifica comportamenti simili identifica comportamenti simili (varianti)(varianti). A . A può essere visto come una può essere visto come una variante divariante di BB

GeneralizationGeneralization si applica sia ad attori che si applica sia ad attori che a use casea use case. A . A eredita il comportamento dieredita il comportamento di B. B. A A può essere sostituito ad ogni occorrenza può essere sostituito ad ogni occorrenza di Bdi B

<<include>>A B

<<extend>>A B

A B

1010

EsempioEsempio(Registrazione corsi)(Registrazione corsi)

Cambio organizzazione corso

Richiesta studenti registrati

Professore

Selezione corso

Gestione professori

Gestione studenti

Archivio globale

Gestione corsi

Richiesta corsi

Cambio corsi

Studente

Scelta corsiAmministrazione

6

1111

ContestoContesto(Ufficio postale)(Ufficio postale)

Il primo Use Case Il primo Use Case diagram definisce il diagram definisce il contesto del modellocontesto del modelloScelte diverse possono Scelte diverse possono imporre imporre

Attori diversiAttori diversiUse case diversiUse case diversi

Cliente

Distr. posta

Sportello

Postino

Impiegato

1212

EsempioEsempio

Utente

Impiegato

Gestione prestito

Ordine Ordine Internet

Gestione dati

<<include>>

Gestione disponibilitàGestione pagamento

<<include>>

<<include>>

<<include>>

<<extend>>

7

1313

Use caseUse case(Processo)(Processo)

Il processo di definizione degli use case è iterativoIl processo di definizione degli use case è iterativoSi inizia identificando il comportamento più sempliciSi inizia identificando il comportamento più sempliciSi descrivono i comportamenti alternativi e più complessiSi descrivono i comportamenti alternativi e più complessi

Quando smettere?Quando smettere?Un buon livello di dettaglio facilità tutte le attività successiUn buon livello di dettaglio facilità tutte le attività successiveveTroppi dettagliTroppi dettagli

Complicherebbero inutilmente la descrizioneComplicherebbero inutilmente la descrizioneIntrodurrebbero prematuramente scelte progettualiIntrodurrebbero prematuramente scelte progettualiPrecluderebbero la visione d’insiemePrecluderebbero la visione d’insieme

1414

DocumentazioneDocumentazione

Per ogni use case:Per ogni use case:TitoloTitolo: Computo tasse: Computo tasseAutoriAutori: Pluto e Topolino: Pluto e TopolinoDescrizioneDescrizione: Quando le iscrizioni di uno studente : Quando le iscrizioni di uno studente sono state accettate si inviano le informazioni sono state accettate si inviano le informazioni all’ufficio contabileall’ufficio contabileAttoriAttori: Ufficio contabile: Ufficio contabilePrePre--condizionicondizioni: Studente registrato: Studente registratoPostPost--condizionicondizioni: Non identificate: Non identificateScenariScenari:.....:.....

8

1515

ScenariScenari

Uno scenario è un’istanza di uno use caseUno scenario è un’istanza di uno use caseÈ una ”esecuzione” particolare dello use caseÈ una ”esecuzione” particolare dello use caseRappresenta il comportamento (le azioni e gli eventi) del Rappresenta il comportamento (le azioni e gli eventi) del sistema nel caso particolare consideratosistema nel caso particolare considerato

Gli scenari definiscono requisiti di più basso livello Gli scenari definiscono requisiti di più basso livello rispetto agli use caserispetto agli use caseGli scenari sono solitamente definiti in linguaggio Gli scenari sono solitamente definiti in linguaggio naturalenaturaleUML propone una notazione particolareUML propone una notazione particolare

Interaction DiagramInteraction Diagram

1616

EsempioEsempio(Selezione corsi)(Selezione corsi)

Paperino Paolino scegliePaperino Paolino sceglie ii corsicorsi:: informaticainformatica,, fisicafisica,, analisianalisi ee disegnodisegnoComeCome corsi alternativi scegliecorsi alternativi sceglie:: fotografiafotografia ee giornalismogiornalismoII corsi scelti sono immessi nel sistemacorsi scelti sono immessi nel sistema didi registrazioneregistrazioneLoLo studente viene aggiunto ai primistudente viene aggiunto ai primi 33 corsi principalicorsi principaliIl quartoIl quarto corsocorso non ènon è disponibiledisponibileIF la primaIF la prima alternativaalternativa èè disponibiledisponibile THENTHEN

LoLo studente viene aggiuntostudente viene aggiunto alal corsocorsoELSIF laELSIF la seconda alternativaseconda alternativa èè disponibledisponible THENTHEN

LoLo studente viene aggiuntostudente viene aggiunto alal corsocorsoELSEELSE notifica allo studente notifica allo studente

IF notIF not notificanotifica THENTHENSi creaSi crea lala cartella corsi dello studentecartella corsi dello studenteSi mandanoSi mandano lele informazioni all’ufficio contabileinformazioni all’ufficio contabile

9

1717

Interaction diagramInteraction diagram

1818

Interaction diagramInteraction diagram

Descrivono il comportamento dinamico di un gruppo Descrivono il comportamento dinamico di un gruppo di oggetti che “interagiscono” per risolvere un di oggetti che “interagiscono” per risolvere un problemaproblemaSono utilizzati per “formalizzare” gli scenari in terminiSono utilizzati per “formalizzare” gli scenari in termini

Entità (oggetti)Entità (oggetti)Messaggi scambiati (metodi)Messaggi scambiati (metodi)

UML propone due diversi tipi di Interaction DiagramUML propone due diversi tipi di Interaction DiagramSequence DiagramSequence DiagramCollaboration DiagramCollaboration Diagram

10

1919

Sequence diagramSequence diagram

Evidenziano la sequenza temporale delle Evidenziano la sequenza temporale delle azioniazioniNon si vedono le associazioni tra oggettiNon si vedono le associazioni tra oggettiUsabili in due forme diverseUsabili in due forme diverse

La forma generica: tutte le sequenze (esecuzioni) La forma generica: tutte le sequenze (esecuzioni) possibilipossibiliLa forma d’istanza: una sequenza particolare La forma d’istanza: una sequenza particolare (consistente con quella generica)(consistente con quella generica)

2020

EsempioEsempio((Caso specificoCaso specifico))

Pippo Selettore Informatica

Scegli informatica

Disponibile?

Aggiungi PippoConferma registrazione

Potrebbe essere diventare un attore

Potrebbe essere diventare un attore

Candidati per diventare classi

Candidati per diventare classi

Candidati per diventare metodi

Candidati per diventare metodi

Le risposte restano impliciteLe risposte restano implicite

11

2121

EsempioEsempio((Raffinamento diagramma precedenteRaffinamento diagramma precedente))

Pippo

:Selettore Informatica: Corso

seleziona(informatica)

disponibile()

Aggiungi(Pippo)conferma(Informatica)

{transient}

2222

EsempioEsempio((Chiamata telefonicaChiamata telefonica))

Chiamante Mezzo Chiamato

inizio

disponibile

digita n.

...

instrada

aspetta suona

risposta

fine attesa fine attesa

ab

c

d

d’

{b-a < 1 sec.}{c-b < 10 sec.}

{d’-d < 5 sec.}

Il ritardo è dato dal mezzo di comunicazione

La conversazione inizia

12

2323

Sequence diagramSequence diagram((Alternative e creazione oggettiAlternative e creazione oggetti))

Obj1:C1op()

doit(z)

Obj3:C3

Obj2:C2

Obj4:C4

[x>=0] foo(x)

[x<0] bar(x)

doit(w)

more()

2424

Collaboration diagramCollaboration diagram

Simili a sequence diagram, maSimili a sequence diagram, maEvidenziano le interazioni tra le partiEvidenziano le interazioni tra le partiMaggior attenzione allo scambio messaggiMaggior attenzione allo scambio messaggiAdatti per Adatti per

Concorrenza e threadConcorrenza e threadInvocazioni innestateInvocazioni innestateInterazioni “sofisticate”Interazioni “sofisticate”

Il tempo non è associato ad una dimensione precisaIl tempo non è associato ad una dimensione precisaLe sequenze si scoprono usando strane numerazioniLe sequenze si scoprono usando strane numerazioniSequence alternative possono essere modellate sullo stesso Sequence alternative possono essere modellate sullo stesso diagrammadiagramma

13

2525

EsempioEsempio((Precedenza tra corsiPrecedenza tra corsi))

:Selettore :Corso

1: precedenza(softEng)

true

2: precedenza(softEng)

Multioggetto

2626

EsempioEsempio:Corso

:Selettore

Info:InfoAmministrative

F1:CartellaStudente

Pippo

1: seleziona 4 corsi

2: seleziona Informatica3: seleziona Matematica4: seleziona Chimica

5: seleziona Storia

6: seleziona altri 2 corsi

7: seleziona Ing. Software8: seleziona Italiano

9: sottometti corsi

10: * corso Disponibile?11: * aggiungi Pippo

12: crea CartellaStudente

13: crea InfoAmministrative

14

2727

Class DiagramClass Diagram

2828

Class DiagramClass Diagram

Definiscono la visione statica del sistemaDefiniscono la visione statica del sistemaclassiclassirelazioni tra classirelazioni tra classi

associazione (uso)associazione (uso)generalizzazione (ereditarietà)generalizzazione (ereditarietà)aggregazione (contenimento)aggregazione (contenimento)

È forse il modello più importante perché È forse il modello più importante perché definisce gli elementi base del sistemadefinisce gli elementi base del sistema

15

2929

ClassiClassi

In UML una classe è composta da tre partiIn UML una classe è composta da tre partinomenomeattributi (lo stato)attributi (lo stato)metodi (il comportamento)metodi (il comportamento)

Professore

nomecognome

create()delete()

Professore

create()delete()

Professore

nomecognome

Professore

3030

ClassClassii((VisibilitVisibilitàà ee mmolteplicitàolteplicità))

Professore

nome: Stringcognome: Stringetà: integer

visualizza()selezionaCorso()

ProfessoreProfessore

+ nome: String

# cognome: String

- età: integer = 0

+visualizza()

- selezionaCorso()

45

classe astrattamolteplicità

public

protected

private

scope

valore iniziale

Method ::= [visibility] name [(parameter linst)] [: return type]Method ::= [visibility] name [(parameter linst)] [: return type]

Parameter ::= [direction] name: type [= defaultParameter ::= [direction] name: type [= default--value]value]

16

3131

InterfacInterfacciacia((DefiniDefinizionezione))

SpecificanoSpecificano il comportamento di una classe senza il comportamento di una classe senza darne l’implementazionedarne l’implementazione

String

isEqual(String): BooleanisGreater(String): Booleanlength(): Integer

<<interface>>Sortable

isEqual(Object): BooleanisGreater(Object): Boolean

String

isEqual(String): BooleanisGreater(String): Booleanlength(): Integer Sortable

3232

SortedStringList

String

isEqual(String): BooleanisGreater(String): Booleanlength(): Integer

InterfacInterfacciacia(Us(Usoo))

<<interface>>Sortable

isEqual(Object): BooleanisGreater(Object): Boolean

String

isEqual(String): BooleanisGreater(String): Booleanlength(): Integer Sortable

SortedStringList

17

3333

AssociazioniAssociazioni

Un’associazione definisce un canale di Un’associazione definisce un canale di comunicazione bidirezionale fra le due classicomunicazione bidirezionale fra le due classiLa molteplicità definisce il numero di istanze La molteplicità definisce il numero di istanze che prendono parte alla relazioneche prendono parte alla relazioneI link sono istanze delle associazioniI link sono istanze delle associazioni

Un link connette due oggettiUn link connette due oggettiUn'associazione connette due classiUn'associazione connette due classi

3434

Corso CartellaStudenteappare

AssociazioniAssociazioni

Un’associazione indica una relazione tra classiUn’associazione indica una relazione tra classiad esempio persona che lavora per aziendaad esempio persona che lavora per azienda

Un’associazione deve avere un nomeUn’associazione deve avere un nomeIl nome è solitamente un verbo (un etichetta Il nome è solitamente un verbo (un etichetta al centro della linea che definisce al centro della linea che definisce l’associazione)l’associazione)

18

3535

Corso Studente

3 .. 100..*

MolteplicitàMolteplicità

La molteplicità dice:La molteplicità dice:Se l’associazione è obbligatoria oppure no?Se l’associazione è obbligatoria oppure no?Il numero minimo e massimo di oggetti che Il numero minimo e massimo di oggetti che possono essere relazionati ad un altro oggettopossono essere relazionati ad un altro oggetto

segue

3636

Molteplicità (cont.)Molteplicità (cont.)

EEsattamentesattamente unouno: 1: 1Zero o Zero o unouno: 0..1: 0..1MMoltiolti: 0..*: 0..*UnoUno oo piùpiù: 1..*: 1..*Un numero specificoUn numero specifico: 7: 7Un intervalloUn intervallo: 4..15: 4..15ListListaa: 0..1, 3..4, 6..*: 0..1, 3..4, 6..*

Tutti i numeri eccettoTutti i numeri eccetto 2 2 ee 55

?

19

3737

RuoloRuolo

Definisce il ruolo svolto nell’associazioneDefinisce il ruolo svolto nell’associazioneUtile perUtile per

AutoAuto--associazioniassociazioniAssociazioni multiple tra due classiAssociazioni multiple tra due classi

work forPerson Company

employee employer

1..* 0..1

Person

0..1

0..1

husband

wife

is married toUser Directory

owner

ack. user

container

contained

0..*

0..*

0..*

0..*1

1

3838

Studente Corso

Frequenzapercentualeprofitto

1..* 1..*

Classi associazioneClassi associazione

Alcune proprietà potrebbero appartenere Alcune proprietà potrebbero appartenere all’associazione e non alle parti coinvolteall’associazione e non alle parti coinvolte

20

3939

Corso Curriculum1..*

AggregazioniAggregazioni

Le aggregazioni sono una forma particolare di Le aggregazioni sono una forma particolare di associazione. Una parte è in relazione con un associazione. Una parte è in relazione con un oggetto (oggetto (partpart--ofof))

1

4040

SliderPanel Button

Window

1

1

1

scrollbar body close2

1

1

ComposizioniComposizioni

Una relazione di composizione è un’aggregazione forte Una relazione di composizione è un’aggregazione forte Le parti componenti non esistono senza il contenitoreLe parti componenti non esistono senza il contenitore

21

4141

Persona

Studente Professore

Ereditarietà (Generalizzazione)Ereditarietà (Generalizzazione)

Esplicita eventuali Esplicita eventuali comportamenti comunicomportamenti comuniÈ possibile dover:È possibile dover:

Aggiungere nuove Aggiungere nuove proprietà alle classiproprietà alle classiRidefinire/modificare Ridefinire/modificare operazioni esistentioperazioni esistenti

4242

PackagePackage

I packageI package sonosono ““contenitoricontenitori” ” didi classiclassiSistemi complessiSistemi complessi ((realireali))devono essere modellati devono essere modellati gerarchicamentegerarchicamente

SottosistemiSottosistemi (package) in(package) inrelazione fra lororelazione fra loroClassi all’interno deiClassi all’interno deipackagepackage

PackagePackageAltaAlta coesione all’internocoesione all’internoInterfacce precise eInterfacce precise e limitatelimitate

GUI

Server

+Database+LoggingService

Client

+OrderForm

+TrackingForm

+Order

22

4343

EsempiEsempi

GeneralizGeneralizzazionizazioniAggregaAggregazionizioni

Package possono contenere altri packagePackage possono contenere altri packageImportImportAccessAccess

<<import>>

User services

Business services

Data services

GUI

MacGUIDOSGUI

<<import>>

4444

StatechartStatechart diagramdiagram

23

4545

State DiagramState Diagram

Rappresentano il comportamento dei singoli Rappresentano il comportamento dei singoli oggetti di una classe in termini dioggetti di una classe in termini di

Eventi a cui gli oggetti (la classe) sono sensibiliEventi a cui gli oggetti (la classe) sono sensibiliAzioni prodotteAzioni prodotteTransizioni di stato Transizioni di stato

Identificazione degli stati interni degli oggetti Identificazione degli stati interni degli oggetti

Possibilità di descrivere evoluzioni parallelePossibilità di descrivere evoluzioni paralleleSintassi mutuata da StateChart (D. Harel)Sintassi mutuata da StateChart (D. Harel)

4646

Elementi graficiElementi grafici

StStatoato

Decomposizione Decomposizione ANANDD

Decomposizione ORDecomposizione OR

eventoazione

TransizioneTransizione

Stato inizialeStato iniziale

Stato finaleStato finale

24

4747

Inizio e FineInizio e Fine

Inizio BiancoMuovere

NeroMuovere

Matto o Abbandono

Stallo o Accordo

MossaBianca

MossaNera

Vince Nero

Vince Bianco

Patta

Matto o Abbandono

Stallo o Accordo

4848

ProntoVerde [incrocio.stato=libero]

InCorsa

CondizioneEvento

CondizioniCondizioni

Funzioni booleane sui valori degli oggettiFunzioni booleane sui valori degli oggettiUtili quando non basta l'evento, ma si vuole Utili quando non basta l'evento, ma si vuole aggiungere un predicatoaggiungere un predicato

25

4949

EsempioEsempio(P(Prenotazione volirenotazione voli))

No reservationsentry/ reset()

openFlight()

Fully booked

cancel()[ reservedSeats>1 ]

reserve[ freeSeats>1 ]

cancelFlight()

reserve()

cancel()

close()

cancel()[ reservedSeats=1 ]

reserve()[ freeSeats=1 ]Closed

close()

Partiallybooked

5050

Folle RetroMarcia

MarciaAvanti

Prima Seconda Terza

levaR

levaN

levaF levaN

accelera accelera

deceleradecelera

Cambio Automatico

Decomposizione ORDecomposizione OR

Un macro stato equivale ad una scomposizione OR Un macro stato equivale ad una scomposizione OR degli statidegli statiI sottostati ereditano le transizioni dei loro superstatiI sottostati ereditano le transizioni dei loro superstati

26

5151

Decomposizione ANDDecomposizione AND

NaturalmenteAttento

do: appunti

do: sbadiglia

do: gratta

Distratto

noiarichiamo

ForzatamenteAttento

do: ghirigoririchiamo

5252

HistoryHistory

History può essere associata a stati non fogliaHistory può essere associata a stati non fogliaQuando l’esecuzione lascia uno stato S con historyQuando l’esecuzione lascia uno stato S con history

Si salva l’ultimo stato visitato Si salva l’ultimo stato visitato SS11 in Sin S

Quando l’esecuzione ritorna inQuando l’esecuzione ritorna in SSSi riparte daSi riparte da SS11

H

A A1

A2

B

27

5353

ExampleExample((Selezione corsiSelezione corsi))

Creazione Selezione

Selezione extra

Sospendi

Salva

SottometticorsiE < 2

corsi < 4

sospendi

continua

quit

corsiE = 2

corsi = 4

H

5454

BibliografiaBibliografia

28

5555

LibriLibri

The Unified Modeling Language User GuideThe Unified Modeling Language User GuideG. Booch, J. Rumbaugh e I. JacobsonG. Booch, J. Rumbaugh e I. JacobsonAddison Wesley, 1998Addison Wesley, 1998The Modeling Language Reference ManualThe Modeling Language Reference ManualJ. Rumbaugh, I. Jacobson e G. Booch J. Rumbaugh, I. Jacobson e G. Booch Addison Wesley, 1999Addison Wesley, 1999The Unified Software Development ProcessThe Unified Software Development ProcessI. Jacobson, G. Booch e J. RumbaughI. Jacobson, G. Booch e J. Rumbaugh

UML DistilledUML DistilledM. Fowler e K. ScottM. Fowler e K. ScottAddison Wesley, 1999Addison Wesley, 1999

5656

Libri (cont.)Libri (cont.)

The Object Constraint LanguageThe Object Constraint LanguageJ. Warmer e A. KleppeJ. Warmer e A. KleppeAddison Wesley, 1999Addison Wesley, 1999Visual Modeling with Rational Rose and UMLVisual Modeling with Rational Rose and UMLT. QuatraniT. QuatraniAddison Wesley, 2000 Addison Wesley, 2000 UML ExplainedUML ExplainedK. ScottK. ScottAddison Wesley, 2001Addison Wesley, 2001RealReal--Time UMLTime UMLB. DouglassB. DouglassAddison Wesley, 1998Addison Wesley, 1998

29

5757

I tool più famosiI tool più famosiEmbarcaderoEmbarcaderoRhapsodyRhapsodyTogetherTogether JJRational Rational RoseRoseObjecteering Objecteering UML ModelerUML ModelerUML Suite UML Suite VisioVisioArgoUMLArgoUMLMetaEditMetaEdit++

hrefhref="http://www.="http://www.objectsbydesignobjectsbydesign.com/tools/modeling.com/tools/modeling

5858

Siti webSiti web

http://www.cetushttp://www.cetus--links.orglinks.orghttp://www.rational.comhttp://www.rational.comhttp://www.omg.orghttp://www.omg.orghttp://www.klasse.nl/ocl/http://www.klasse.nl/ocl/

"Using UML"Using UML for Modeling a Distributed Java Application“for Modeling a Distributed Java Application“K.K. BergnerBergner, A. Rausch, and M. , A. Rausch, and M. SihlingSihlingTechnische Universität MünchenTechnische Universität München, TUM, TUM--I9735, July 1997. I9735, July 1997. http://www4.http://www4.informatikinformatik..tutu--muenchenmuenchen.de/reports/TUM.de/reports/TUM--I9735.htmlI9735.html


Recommended