OOA & D: ricerca di sistemi e attori quando sono coinvolti più processi

1

Sto leggendo Applicando UML e Pattern e cercando di abbinare i principi di OOA & D in là a un progetto su cui ho lavorato. È una sorta di esercizio di apprendimento retroattivo.

La domanda di base a cui sto cercando di rispondere è che ho la comprensione corretta su come trovare gli attori in questo dominio? Li ho trovati correttamente?

L'idea di base del progetto è quella di collegare allarmi di sicurezza di vari marchi con comportamenti generalmente simili (sebbene con differenze significative) e distinti protocolli TCP proprietari a un server o server e controllarli tramite un'app mobile (e anche tramite un'applicazione web se non sei un utente finale.

Quindi l'utente sarà in grado di inserire / disinserire un allarme di qualsiasi marca dal suo telefono ed eseguire comandi simili, oltre a ricevere una notifica quando scatta l'allarme e altri eventi. Inoltre, gli eventi verranno inviati ai centri di monitoraggio (di terze parti). Gli utenti sono clienti dei centri di monitoraggio.

Un comando arm inviato dal telefono chiamerà un'API REST che a sua volta invierà il comando al server da eseguire interagendo con l'allarme tramite il suo protocollo.

Il server espone quindi almeno due porte, una per la ricezione di comandi e una per gli allarmi di un determinato modello per la connessione.

Vedo i seguenti sistemi in discussione (SuD): l'app mobile, l'applicazione web che contiene l'API REST, gli allarmi modello X, gli allarmi modello Y, il server TCP (potrebbero esserne presenti più di uno).

Il libro parla di attori primari. Quelli hanno gli obiettivi degli utenti soddisfatti attraverso l'utilizzo dei servizi del SuD.

Vedo i seguenti attori principali:

  • L'utente: il suo obiettivo è interagire con gli allarmi attraverso l'app mobile.

  • L'app mobile: il suo obiettivo è interagire con gli allarmi tramite l'API REST.

  • L'applicazione web: il suo obiettivo è comandare i pannelli attraverso il server TCP e registrare e gestire utenti e allarmi.

  • Il centro di monitoraggio: il suo obiettivo è registrare utenti e allarmi.

  • L'amministratore: il suo obiettivo è registrare i centri di monitoraggio e gestire gli utenti e gli allarmi.

Il libro parla di attori secondari. Quelli forniscono un servizio (per esempio informazioni) al SuD.

Vedo i seguenti attori di supporto:

  • Il server TCP: esegue i comandi dall'API REST dell'applicazione Web.

  • Gli allarmi: obbedire al server TCP.

Attori fuori scena: hanno interesse nel comportamento del caso d'uso, ma non sono primari o di supporto. Non ne vedo nessuno.

Ho trovato correttamente i SuD e gli attori?

    
posta Piovezan 16.02.2018 - 23:14
fonte

1 risposta

2

In un certo senso, questo tipo di analisi è soggettivo, ma diventa utile in base al fatto se aiuta veramente le persone a capire un sistema e ne migliora il design, elimina i problemi e / o lo valorizza al di là delle sue attuali capacità.

Quando un'azienda ha sia un sistema di fatturazione che un sistema di buste paga, è chiaro dove tracciare la linea nei SuD (Sistemi in progettazione). Guardando a questo articolo, mi sembra che si stia tentando di scindere quello che è essenzialmente un sistema con un unico obiettivo in più SuD semplicemente per il gusto dell'esercizio. La mia reazione istintiva è che ciò che abbiamo qui è un sistema di gestione degli allarmi che interagisce con componenti di sistema sia interni che di proprietà del fornitore. Da questo punto di vista, come scritto, c'è un solo obiettivo e un solo SU: "Il sistema di gestione degli allarmi". Il problema del collegamento di più marche è l'integrazione con i fornitori esterni, non con la progettazione di un sistema.

Un altro modo di considerarlo è che l'integrazione con i prodotti del fornitore è abbastanza complessa da richiedere un sotto-progetto in sé e per sé. In questo scenario, è possibile che si stia esaminando un "Sistema di comunicazione fornitore" e un "Sistema di gestione allarmi". Quale è giusto? Ciò potrebbe richiedere una revisione dei diagrammi architettonici per il sistema esistente per effettuare questa chiamata.

Si noti che un altro analista potrebbe dividerlo in modo diverso. Queste sono solo le mie migliori interpretazioni di ciò che hai scritto finora.

Gli attori hanno un obiettivo specifico all'interno di un sistema. In un sistema di database, potrei avere un software che esegue query sul DB utilizzando un accesso specifico per eseguire alcune funzioni automatizzate senza che l'utente inizi l'azione. In tal caso, avrebbe senso che il software iniziasse le query a essere elencato come attore con l'obiettivo della sua funzione specifica di essere lo "scopo dell'attore".

In questo caso, l'app mobile e il server Web si sentono come componenti di sistema su cui agiscono gli amministratori, il personale addetto al monitoraggio della sicurezza e gli utenti finali del servizio software. Gli amministratori gestiscono gli account utente e, come detto, eseguono una sorta di gestione degli allarmi. Gli utenti finali ottengono abilitare / disabilitare gli allarmi per tutti i marchi controllati dal sistema di over-arc. Il personale addetto al monitoraggio della sicurezza dovrebbe essere analizzato un po 'più da vicino. Questo è un ruolo o diversi? Cosa devono fare e quali informazioni hanno bisogno di farlo? Queste domande potrebbero consentire una migliore elaborazione degli attori all'interno dei centri di monitoraggio.

Per gli attori secondari, questo articolo potrebbe aiutare (vedere la definizione modificata dopo l'originale in alto):

link

Secondo il mio modo di pensare, i server TCP e gli allarmi potrebbero adattarsi alla precedente definizione di attori secondari, ma pensare agli umani effettivi dai marchi che stai cercando di controllare potrebbe essere necessario per modificare o migliorare il sistema potrebbe illuminare meglio potenziali ostacoli alle decisioni future sul design.

Spero che lo trovi utile.

    
risposta data 20.02.2018 - 03:10
fonte

Leggi altre domande sui tag