C’è un inituitive UML approccio per descrivere thread

Io sono un appassionato di utilizzare diagrammi UML per descrivere il mio software. Nella maggior parte dei casi i diagrammi per il mio uso personale, e io li uso per più coinvolti i pezzi di codice, interazioni, etc. dove potrai beneficiare di essere in grado di guardare indietro su di loro in futuro.

Una cosa che mi sono trovato a fare un paio di modi diversi è la creazione di diagrammi di thread. Thread, per loro natura, tendono a pop-up in più coinvolti pezzi di codice e tenere traccia di loro è spesso un obiettivo primario dei miei documenti di progettazione.

In passato ho usato un simbolo in un diagramma di sequenza per la creazione di un nuovo thread ma alcuni diagrammi di fare che a volte ambiguo tra la vita di un oggetto – che i diagrammi di sequenza sono – e un filo di vita. C’è un approccio migliore per incorporare i thread in UML?

InformationsquelleAutor sipwiz | 2009-06-05

 

8 Replies
  1. 11

    Sono riuscito a produrre un diagramma che ha senso per me, al momento di disegnare. La premessa di base è che ho sovrapposto grigio caselle che rappresentano istanze della classe con il blu caselle che rappresentano thread vite. La cosa principale che mi consente di tenere traccia di conoscere in quale thread voglio essere eseguiti quando l’ho chiamata determinati metodi.

    Senza dubbio non c’è migliore e più intuitiva modi per fare il filo e classe di modellazione. La misura del successo per me è se la mia schema mi dà ancora lo stesso livello di comprensione 6 mesi lungo la pista.

    • Può avere un senso visivo, ma la modellazione non è così. Le sovrapposizioni non hanno UML significato. Da non soddisfare le vostre esigenze per la documentazione, se che funziona alla grande.
    • “ma la modellazione non – vuoi dire: ma di modellazione UML non è così. Ho fatto guardare oltre gli esempi che hai fornito, ma niente in forma. Ho il sospetto che il thread non erano un grosso problema quando lo standard UML è stato concepito.
    • Io sto con sipwiz – UML non è proprio il termine “modellazione”. Mi piace molto questo schema.
  2. 9

    Attività, la Sequenza e i Diagrammi di Stato sono tutti corretti modi di mostrare thread comportamento.

    1°: (A vs commenti) Ci sono due serie di diagrammi o elementi di modellazione in UML, struttura statica, come dici tu, e comportamentali. Qualsiasi libro vi aiuterà a capire la suddivisione, in genere nel contenuto/TOC, inoltre esso può essere visto a pagina 11 di Martin Fowler UML Distillata vicino di standard de facto per l’inizio di UML, a mio parere.

    2°: (Per sipwiz domanda e commento) i diagrammi di Attività non sono comunemente inteso come modello di business, di processo, essi possono essere utilizzati per che, tuttavia, e la maggior parte degli esempi o semplice tutorial sarebbe approccio da un punto di vista economico.

    Discussione sulle opzioni di threads del modello:

    Diagrammi di attività – Consente per la creazione e specificando la concorrenza utilizzando una BARRA e l’utilizzo di linee. Nota: in fondo non è un processo di business, esempio. La maggior parte delle persone in grado di leggere questi, business, la gestione, e gli sviluppatori, anche se a volte la mancanza di dettaglio o di ottenere disordinato.

    Sequenza di Interazione diagrammi – Nello stesso post, esempio, vedrete i diagrammi di sequenza consente di specificare il comportamento parallelo all’interno di una sequenza da boxe possibile parallelizzare con un comportamento etichetta “pari”, questo è utile per mostrare al lettore quali metodi possono o dovrebbero essere chiamati in parallelo, vale a dire, da thread diversi. Questo è il metodo che vorrei utilizzare per la mappa sviluppatore come le discussioni circa la costruzione di un oggetto.

    Diagramma di stato – Lo stato di grafico, proprio come l’attività permette di concorrenza utilizzando una BARRA e l’utilizzo di linee.

    NOTA: Questi non modello un thread specifico ed è esatto ciclo di sollevamento, che è parte dell’istanza/run-time livello di modellazione, se è questo che vuoi chiarire la tua domanda e io ti risponderò. Vorrei solo modello, utilizzando uno dei sopra non è altro che un MDA/UML di esperti sarà chiamata fuori, e non la generazione di un sistema in esecuzione.

    Anche: si Prega di notare che ulteriori dettagli possono essere trovati nella maggior parte UML libri.
    Anche sfruttato: http://www.jguru.com/faq/view.jsp?EID=56322

  3. 8

    Tradizionalmente threading, è stato descritto in diagramatically mediante Reti di Petri. Rob Martin ha un articolo sul multithreading in UML, che si possono trovare utili.

    Aggiornamento – appena ricordato, è possibile rappresentare i thread con le forche in diagrammi di attività – sono riuscito a trovare qualcosa che spieghi questo.

    È molto difficile trovare un tutorial gratuiti per Reti di Petri, comunque mi sa Reti di Petri sono un bene per la modellazione di concorrenza, così ho Google sarebbe “produttore-consumatore Reti di Petri” (il mio preferito filettatura cosa) e trovato questo.

    Ho anche trovato alcune diapositive che mostrano Reti di Petri modellazione di un Semaforo.

    • Il tuo “qualcosa che spiega questo” collegamento sballato
  4. 4

    UML diagrammi di attività hanno forchetta e unire gli elementi per mostrare il flusso parallelo di logica.

    • I Diagrammi di attività sono comunemente inteso come modello di un processo di business. Quello che mi interessa di più è la modellazione del funzionamento interno del mio software. Prendo il tuo punto, però, ci sono alcuni aspetti di un Diagramma di Attività che può essere utile per la modellazione softwar thread.
    • Non è vero che i diagrammi di attività sono utilizzati solo per i processi di business. Si prega di vedere la mia risposta.
  5. 2

    Non so di un modo, ma utilizzando un diagramma di sequenza, non sembra del tutto inappropriato, visto che un thread è in molte lingue implementato come un Thread (o simili) di classe.

    Più UML-compatibile sarebbe probabilmente aggiungere un’annotazione di qualche tipo, che indica che l’oggetto rappresenta un filo.

    • sì, io uso il diagramma di sequenza, prima di descrivere la sincronizzazione dei thread. Ho appena trovato un altro schema denominato diagramma di temporizzazione, molto interessante.
  6. 2

    UML è definito da UML Sovrastruttura, che si può trovare qui http://www.omg.org/spec/UML.
    Se leggi le specifiche è possibile trovare una classe UML può essere attivo. Un Attivo di Classe è una classe con il meta-attributo isActive impostata su true. È anche raffigurato in modo diverso.
    Un oggetto di istanze di una classe attiva automaticamente esegue un “classificatore ” comportamento”. Come per qualsiasi comportamento che si può definire per mezzo di un’attività in cui si fa attendere segnali asincroni (AcceptEventActions) e richiama i metodi (CallOperationAction) o altri comportamenti (CallBehaviorActions). Che è come gli oggetti sono modellati in UML. Basta leggere la specifica UML.

  7. 1

    Diagrammi di attività e modellare il funzionamento interno del vostro software con forcelle e si unisce a rappresentare thread. Per saperne di esattamente come modello di questo correttamente, si prega di vedere Conrad Bock ottima serie di articoli. Qui è l’articolo che copre le forcelle e join, ma è necessario seguire il link al primo articolo della serie a imparare come modello utilizzando “Colorato Reti di Petri”. Non è come si pensa (ed è abbastanza facile)!

    C’è un nuovo standard di processo al OMG per un linguaggio chiamato Alf che offre un comfort maggiore superficie di notazione per i diagrammi di attività e destinato a rappresentare codice. Dalle specifiche tecniche:

    Un obiettivo primario di un’azione lingua è di agire come la superficie di una notazione specifica eseguibile
    i comportamenti all’interno di un più ampio modello che è principalmente rappresentata come di consueto con la grafica notazioni di
    UML. Per esempio, questo può includere metodi sulle operazioni di classi o di effetto di transizione
    i comportamenti su macchine di stato.

    Per un programmatore, che probabilmente non può ottenere più intuitivo rispetto a Alf. E si permette di convertire perfettamente in UML diagrammi di attività.

  8. 0

    UML punto di forza è che rappresenta la struttura statica. Se si utilizza di breve durata thread, anche io non vedo alcun modo semplice per la creazione di diagrammi di loro. Forse si può trovare una soluzione girando le cose un po ‘ intorno: perché usare/bisogno thread? Qual è la funzionalità che forniscono? Se interagiscono l’uno con l’altro e seguire alcune (message passing) API di disegno, come componenti potrebbe avere un senso.

Lascia un commento