Credo che la risposta di @Ewan copra lo specifico scenario fornito, quindi questo seguirà un percorso più generico / generale, ove possibile. (Nota che gli esempi seguenti sono usati solo per mostrare una prospettiva simile)
La prima cosa che ti viene in mente per aiutare con la tua confusione è mostrare alcuni problemi relativi visti quando si ha a che fare con diversi spazi dei nomi, in questo caso possiamo guardare alle enumerazioni. Ad esempio, se un oggetto in un livello dati viene utilizzato come enumerazione "principale" che definisce la digitazione per una determinata voce. (ES .: PersonEnum {Dipendente = 1, Manager = 2, Contractor = 3, CEO = 4, Fornitore = 5, ...})
Quando si arriva a un caso d'uso, potrebbe esserci un'istanza in cui è definito un enum (ValidPersonEnum) per indicare quali valori di PersonEnum sono validi per il caso d'uso. Ad esempio, dipendenti e manager possono essere mostrati solo in un rapporto di stipendio, gli appaltatori possono essere mostrati sia nel rapporto sul salario sia nel riepilogo dei costi del progetto, e i fornitori esposti nel riepilogo dei costi del progetto.
Quando si controllano questi valori l'uno contro l'altro (è la voce data del tipo Employee?), si verifica un errore, in cui lo spazio dei nomi viene utilizzato per definire il tipo di enum. Con questo in mente, possiamo affrontare un punto di vista di alto livello usando il tuo esempio.
Per il Dipendente del sistema esterno, è definito all'interno di quel sistema come parte del suo concetto. Per il tuo sistema, puoi utilizzare Employee, tramite dati o metodi, ma il Dipendente viene sostanzialmente modificato in YourSystem.Employee piuttosto che in ExternalSystem.Employee.
Per il tuo modello, il Dipendente potrebbe quindi essere mostrato rispetto a come l'applicazione corrente lo usa piuttosto che come fa il sistema esterno. Per diramarsi sul punto @ Ewan, questa confusione potrebbe essere chiarita attraverso una qualche forma di astrazione. Questo potrebbe essere usato nella tua applicazione come un concetto di Persona come base, e come Dipendente come un'implementazione di Persona.
Essendo generale, vorrei sottolineare che ci possono essere delle volte in cui vorresti / potresti voler includere il concetto dal sistema esterno. Questi si ridurranno di più nelle applicazioni di tipo estensione, dove la nuova applicazione manipolerà (crea / modifica) i dati all'interno del sistema esterno.
Quindi, per la tua prima domanda, non dovresti necessariamente dichiarare le responsabilità del Dipendente rispetto al sistema esterno. Il dipendente deve essere dichiarato per le sue responsabilità nel modello e potrebbero esserci metodi simili a seconda di cosa è necessario. Questo modello sarebbe quindi rispetto all'applicazione di destinazione. Se hai provato a progettare il modello attorno a un altro sistema, allora potrebbe sembrare più un'aggiunta a quel sistema esistente piuttosto che un'applicazione separata.
Inoltre, se un modello dipendesse da come un oggetto viene usato in un sistema separato, allora potrebbe diventare più difficile ottenere alcune nuove applicazioni dal terreno, poiché l'oggetto (i) può cambiare in qualsiasi momento per qualsiasi motivo ( s) al di fuori della nuova applicazione (durante e dopo la progettazione di un modello di concetto).
Se si decide di indicare l'origine dati di ciascun elemento, è possibile includere il percorso (file, server di database, ecc.) o alcune dipendenze di processo denominate (aggiornamento notturno o qualche altra elaborazione dati esterna).
Per quanto riguarda la domanda di implementazione, questo è il punto in cui hai diversi livelli da recensire. Il concetto ti darà una road map per la tua applicazione (la classe X contiene un elenco di classi Y per determinare se l'azione Z può essere eseguita, o la classe M non può esistere senza la classe L). Quando si implementa il concetto, è possibile definire l'origine dei dati, poiché il concetto potrebbe non avere l'opportunità di definire una fonte. Questi passaggi di implementazione finirebbero per essere il luogo che definisce le interazioni con altri sistemi (i dati dei dipendenti vengono recuperati in base al sistema esterno).
Ancora una volta, gli esempi di cui sopra sono stati dati solo come un tentativo di mostrare una prospettiva simile, e penso che la risposta di @ Ewan copre gli stessi punti rispetto al tuo esempio. Spero che i miei esempi aiutino a collegare i concetti forniti.