Lingua Ubiquitous e tipi personalizzati

3

Si noti che la mia domanda si riferisce a quegli attributi che già da soli rappresentano un concetto (cioè forniscono da soli un significato coesivo ). Quindi tale attributo non ha bisogno di ulteriore supporto funzionale e in quanto tale è auto-contenuto .

Sono anche consapevole che anche con gli attributi autonomi i tipi personalizzati possono rivelarsi utili (ad esempio, danno la possibilità di aggiungere nuovi comportamenti in seguito , quando cambiano i requisiti aziendali). Pertanto, la mia domanda si concentra solo sul fatto che i tipi personalizzati per gli attributi auto-contenuti arricchiscano davvero l'Ubiquitous Language UL

a) Ho letto che nella maggior parte dei casi, anche gli attributi auto-contenuti semplici dovrebbero avere tipi personalizzati, più descrittivi piuttosto che tipi di valori di base ( double, string ...), perché, tra le altre cose, tipi descrittivi si aggiunge al UL , mentre l'uso dei tipi di base invece indebolisce la lingua.

Capisco l'importanza di UL , ma come avere un tipo base per un attributo auto-contenuto indebolisce la lingua, poiché con attributi indipendenti il nome dell'attributo descrive adeguatamente il concetto e quindi contribuisce al vocabolario UL ?

Ad esempio, il termine person_age spiega già adeguatamente il concetto di quantificare il numero di anni di una persona :

class Person
{
       string person_age;
}

quindi cosa potremmo ottenere introducendo anche il termine ThingAge per UL :

class person
{
      ThingAge person_age; 
}

grazie

    
posta EdvRusj 24.06.2013 - 19:31
fonte

1 risposta

3

Se hai un sistema che considera età di "cose" differenti, potrebbe essere utile avere un tipo ThingAge . Ad esempio, un sistema di software di assicurazione considera l'età dei conducenti e l'età dei veicoli (per l'automobile), l'età degli edifici (per la casa e la proprietà commerciale). Potrebbe essere utile avere ulteriori sottotipi come DriverAge per i driver, che ha una logica particolare per i driver (come ad esempio essere sopra / sotto le età di guida minime regionali), e altri tipi come HouseAge con logica relativa a regole della struttura del patrimonio regionale. EquipmentAge potrebbe riguardare attrezzature meccaniche / industriali che potrebbero essere rilevanti per la sottoscrizione.

Naturalmente, in tale sistema non bisogno di avere ThingAge , DriverAge , HouseAge , EquipmentAge tipi; è solo un modo uno per farlo che può essere legittimo in alcuni sistemi. In altri, potrebbe non essere un buon modo per farlo.

Se il tuo sistema solo considererà mai "persone" come aventi un attributo "età", allora avere un tipo ThingAge potrebbe non essere molto utile.

    
risposta data 24.06.2013 - 21:21
fonte

Leggi altre domande sui tag