Nell'analisi sistemica classica è importante definire correttamente dove passano i confini del sistema progettato: quali funzioni sono implementate al suo interno, cosa viene delegato a servizi esterni e come si costruisce l'integrazione con essi. In grandi progetti questo passo è critico per semplificare l'architettura e minimizzare i rischi.
Negli anni '70-'80, durante l'analisi di grandi sistemi, divenne chiaro che confini scelte in modo errato portano a costosi aggiustamenti di integrazione e caos nell'architettura.
Confini del sistema troppo ampi o ristretti complicano la manutenzione, aumentano il numero di integrazioni e generano incoerenza nei dati.
Utilizzare la tecnica del Diagramma di Contesto (Context Diagram) e la Matrice delle Responsabilità dei Servizi (Service Responsibility Matrix) per distribuire funzioni e responsabilità. Concentrarsi sugli obiettivi aziendali affinché i confini del sistema corrispondano alla reale struttura dell'azienda.
Bisogna sempre puntare alla massima autonomia del sistema creato?
No, a volte è più efficace delegare parte delle funzioni ad altri sistemi per evitare duplicazioni.
L'analista deve determinare i formati dei dati per tutte le integrazioni prima di iniziare l'implementazione?
No, ciò avviene a livello di design di alto livello (high-level design). I formati dettagliati vengono elaborati insieme ad architetti e integratori successivamente.
È molto grave se una stessa funzione è implementata in più sistemi?
Questo porta a duplicazioni, costi per la sincronizzazione e perdita di integrità dei dati; pertanto, è opportuno evitare tali sovrapposizioni.
Caso negativo:
Il sistema è stato progettato senza considerare la struttura dell'azienda, non sono stati definiti chiaramente quali funzioni sarebbero state interne e quali in altri servizi.
Vantaggi: avvio rapido della progettazione, minima spesa di risorse.
Svantaggi: si sono ottenute molte integrazioni duplicate, costanti problemi con lo scambio di dati e un'architettura espansa.
Caso positivo:
L'analista di sistema ha sviluppato un diagramma di contesto, ha concordato i confini del sistema con il business e gli architetti, minimizzando le interazioni di integrazione.
Vantaggi: architettura trasparente, meno bug di integrazione, supporto più conveniente.
Svantaggi: grande lavoro preparatorio all'inizio, necessaria expertise su tutti i sistemi correlati.