|
| 1 | +--- |
| 2 | +title: Analisi e Design del Business Domain |
| 3 | +layout: default |
| 4 | +parent: Descrizione del processo adottato |
| 5 | +nav_order: 1 |
| 6 | +has_children: false |
| 7 | +--- |
| 8 | + |
| 9 | +# Analisi e Design del Business Domain |
| 10 | + |
| 11 | +Il campo del dominio sanitario presenta numerose sfaccettature che possono rendere estremamente complesso comprendere appieno questo ambito, soprattutto per coloro che non sono addetti ai lavori e non hanno familiarità con il linguaggio tecnico e le pratiche specifiche di questo settore. A fronte di ciò si è reso necessario intraprendere un percorso di Knowledge Crunching, al fine di colmare il gap della lack of knowledge e, ancora più importante, della lack of awareness. |
| 12 | + |
| 13 | +Considerando che il DDD ha l'obiettivo di ottenere una conoscenza condivisa del dominio, adottando un approccio che si avvicinasse alla realtà, è necessario stabilire un unico punto nel quale la conoscenza converge ed evolve in modo organizzato ed accessibile da tutti, anche dagli esperti di dominio in maniera semplice. A tal fine si è scelto di utilizzare [Confluence](https://www.atlassian.com/it/software/confluence), un software commerciale nel quale è stato documentato sia l'analisi del problem space che la progettazione del solution space. |
| 14 | + |
| 15 | +La scelta di questo strumento è stata incentivata dalla possibilità di integrazione con strumenti di comunicazione come [Slack](https://slack.com/intl/it-it). Infatti, considerando che il processo di Knowledge Crunching necessita di più meeting, è necessario prevedere uno strumento che gestisca la comunicazione, assicurando cooperazione e collaborazione. |
| 16 | + |
| 17 | +Il sito di progetto è visitabile al seguente link:https://giacomoaccursi.atlassian.net/l/cp/vAxD2YKh |
| 18 | + |
| 19 | +Seguendo le best-practice del knowledge crunching abbiamo cercato, insieme all'esperto del dominio (il professore del corso), di comprendere il dominio del problema. Al termine di questo primo meeting è stata prodotta una mind-map che riassumesse i requisiti coarse-grained del sistema e che mettesse in evidenza i concetti chiave del dominio. Questo primo incontro ha inoltre permesso l'identificazione degli stakeholder coinvolti e gli esperti di dominio da consultare nelle fasi successive. A seguito di ciò, al fine di delineare il comportamento del sistema, è stato effettuato un ulteriore meeting che ha condotto alla redazione dei diagrammi dei casi d'uso. |
| 20 | +Partendo da essi abbiamo raffinato iterativamente la conoscenza di alcuni processi ponendo domande mirate al committente, aumentando la collaborazione e diminuendo l'ambiguità con l'ausilio di strumenti di sketching come il Domain Storytelling. |
| 21 | +Gli ultimi dubbi rimasti e i dettagli prettamente tecnici sono stati chiariti effettuando un'intervista che ha coinvolto gli sviluppatori, l'esperto di dominio e un esperto tecnico dell'ospedale. |
| 22 | + |
| 23 | +Una volta ottenuta una soddisfacente conoscenza del dominio, al fine di gestire la complessità e lo spazio del problema, sono stati individuati i relativi sottodomini che lo compongono, classificandoli in una delle tre tipologie tipiche del DDD. Questo ci ha aiutato a suddividere il problema in modo che fosse di più facile gestione. |
| 24 | +Inoltre, per alcuni sottodomini è stata eseguita un'analisi più approfondita, accompagnata da una predizione della loro futura evoluzione, tramite l'ausilio di Core Domain Charts. |
| 25 | + |
| 26 | +Durante i vari meeting svolti, e per tutta la durata del progetto, si è cercato di individuare un linguaggio preciso e consistente eliminando qualsiasi forma di ambiguità, andando a creare di fatto quello che viene definito Ubiquitous Language. Nello specifico è stata creata una tabella dove ad ogni termine è associata una breve descrizione e i sottodomini d'interesse. |
| 27 | + |
| 28 | +Nell'ultima fase di analisi del dominio del problema si è provveduto, per ogni sottodominio, alla formalizzazione dei requisiti secondo la suddivisione tradizionale (business, utente, funzionali, non funzionali e di implementazione). |
0 commit comments