Cosa specificare come interfacce nei diagrammi dei componenti

0

Sto seguendo le specifiche del software Object oriented usando UML, patterns e Java (3rd edition) e sto definendo le interfacce tra i componenti di sistema (sottosistemi). Ma ho riscontrato un problema pratico nella notazione.

Immagina per esempio un componente Transaction Management component che si occupa di transazioni e consuma un'interfaccia esportata da un Database Storage component .

Come dovrei nominare quell'interfaccia? Dovrei usare un nome generico come Storage and Database Service , o preferire un più specifico al componente consumante come Transaction storage Management Service ?

    
posta Kaki Master Of Time 20.08.2018 - 19:06
fonte

1 risposta

4

In un UML diagramma dei componenti , l'interfaccia rappresentata da un connector dovrebbe avere un nome che descrive il servizio (comportamento) di cui il consumatore ha bisogno, indipendentemente dal componente specifico che lo fornirà.

Tuttavia, non è semplice rispondere alla tua domanda, senza saperne di più sulle tue intenzioni:

  1. Se i componenti di fornitura saranno tutti componenti di database (ad esempio un provider MongoDB, un provider Oracle, un provider DB2, ecc.), l'interfaccia potrebbe essere molto buona database storage interface.

  2. Se i componenti di fornitura potrebbero essere qualcosa di più generico e essere soddisfatti da un componente di database, un componente di archiviazione di file o anche una memoria di rete distribuita, il nome dell'interfaccia dovrebbe essere più genetico (ad esempio Storage interface )

  3. Non è vietato utilizzare un nome più specifico. In effetti è una pratica comune per disegnare un componente generico in un diagramma e nominare l'interfaccia in base a quel componente di fornitura / implementazione . Questo tipo di convenzione viene spesso utilizzato quando si suppone che il componente di fornitura nel diagramma sia un segnaposto e non vi è alcuna intenzione di annullare le diverse varianti concrete di quel componente. Ma tieni presente che se il nome dell'interfaccia è così specifico che i componenti di fornitura non sono più intercambiabili, ci sarebbe qualcosa di sbagliato.

Ma qualunque sia il nome che hai scelto, dovrebbe essere correlato a ciò che viene fornito; non a ciò che è consumato.

    
risposta data 21.08.2018 - 00:51
fonte