Utilizzo del diagramma dei componenti

0

Sono un po 'confuso su questo tipo di diagramma UML che ho visto usato in modi non coerenti.

I diagrammi dei componenti spesso rappresentano una sorta di snapshot a livello di architettura dell'applicazione in fase di sviluppo, sono molto vicini ai diagrammi di implementazione, solo un po 'più astratti (cioè senza i dettagli del nodo). Alcune persone addirittura inseriscono annotazioni su di esse con l'indicazione di file o DLL specifici. Quindi fondamentalmente considerano i componenti come istanze.

Ma se non sbaglio sono classificatori, quindi non dovrebbero esistere in fase di esecuzione. Quindi è corretto visualizzare questi diagrammi come composti da istanze concrete?

Ad esempio, supponiamo di avere una sorta di database distribuito a cui si accede da un livello middleware. Nel diagramma classe / pacchetto ho una classe / pacchetto datasource e una classe / pacchetto middleware. Nel diagramma di implementazione ho un artefatto / nodo middleware e più di un artefatto / nodo di origine dati. Nel diagramma dei componenti devo inserire uno o più componenti dell'origine dati?

    
posta Strata771 26.10.2017 - 16:51
fonte

1 risposta

3

Secondo il documento delle specifiche normative di UML 2.5 che può essere trovato qui , un componente è un classificatore (sezione 11.6.4 Notazione):

A Component is shown as a Classifier rectangle [...]. The attributes, operations and internal structure compartments all have their normal meaning.

Si dice anche che è possibile rappresentare "realizzazioni di componenti" nello stesso modo in cui si descrivono le realizzazioni di interfacce in un diagramma di classe:

A ComponentRealization is notated in the same way as a Realization dependency (i.e., as a general dashed line with a hollow triangle as an arrowhead).

(Nota: è necessario prestare attenzione in quanto la stessa notazione viene utilizzata nella rappresentazione esplicita delle interfacce fornite, pertanto ciò potrebbe causare confusione se entrambi vengono utilizzati nello stesso diagramma.)

Non ho trovato nulla di specifico sulle istanze di Component, ma suppongo che sia possibile rappresentarli anche nel solito modo.

A proposito, descrivono la semantica della nozione di un componente nel modo seguente:

A Component represents a modular part of a system that encapsulates its contents and whose manifestation is replaceable within its environment.

A Component is a self-contained unit that encapsulates the state and behavior of a number of Classifiers. A Component specifies a formal contract of the services that it provides to its clients and those that it requires from other Components or services in the system in terms of its provided and required Interfaces.

A Component is a substitutable unit that can be replaced at design time or run-time by a Component that offers equivalent functionality based on compatibility of its Interfaces.

    
risposta data 27.10.2017 - 12:05
fonte

Leggi altre domande sui tag