Questa è una separazione di preoccupazioni?

4

Sto creando un programma che analizza i commenti nei documenti di Word (in termini di contenuto testuale). Tuttavia, a volte chi vuole analizzare i dati testuali può modificare alcuni dei contenuti dei commenti. Tuttavia, penso che sia meglio lasciare le funzionalità di elaborazione dei testi al programma di elaborazione testi stesso e dire all'utente di farlo in Word. In altre parole, non voglio entrare nel caos di salvare i documenti di Word e l'utente potrebbe anche essere più a suo agio nel modificare il documento in ambiente Word.

Posso chiamare questo un Separation of Concerns (SoC)? Immagino che la situazione non possa essere chiamata SoC perché è correlata a funzioni in programmi separati (mio e Word).

Nota: questo è il mio progetto. Non voglio convincere un datore di lavoro a chiedere meno funzioni. Penso solo che non c'è davvero bisogno di inseguire con la modifica di documenti di Word e dovrei concentrarmi sulle funzionalità specializzate del mio programma stesso. Voglio mantenerlo semplice, in altre parole. Tuttavia, ho bisogno di una spiegazione scientifica per questo perché voglio pubblicare lo strumento in un diario. Voglio presentare una motivazione logica per quello che sto facendo. Ad ogni modo, se non lo faccio nel modo giusto, ho bisogno di motivi validi anche per questo.

    
posta ehsan88 12.04.2018 - 06:01
fonte

4 risposte

3

La storia che penso di ascoltare è che sei attualmente impegnato a creare un programma che analizzi i commenti nei documenti di parole. Qualcuno sta proponendo una nuova funzionalità che permetterebbe alle persone di cambiare i commenti. Vuoi respingere ma vuoi conoscere il modo professionale per farlo. Stai cercando alcune parole d'ordine del design ma non ne sei sicuro.

Ciò di cui ti occupi qui si chiama funzionalità di scorrimento . Hai pensato che il progetto sarebbe stato x e ora anche le persone stanno parlando di y.

L'atteggiamento professionale è che stai bene, ma non dirmi che è ancora solo x. Y ha bisogno di una sua giustificazione, è il suo tempo per completare, non si ottiene gratis quando chiedi x.

Ciò che puoi fare è sfruttare ciò che hai appreso che riguarda sia x che y. Potrebbe persino esserci un codice che può essere riutilizzato. Ma non importa quanto siano correlati, non lascia che ti convincano che virare su x su x non è un vero lavoro, perché lo è.

    
risposta data 12.04.2018 - 10:12
fonte
2

SoC è il processo di dissezione di un pezzo di software in caratteristiche distinte che racchiudono un comportamento e dati univoci che possono essere utilizzati da altre classi. Generalmente, una preoccupazione rappresenta una caratteristica o un comportamento di una classe. L'atto di separare un programma in responsabilità discrete aumenta in modo significativo il riutilizzo del codice, la manutenzione e la testabilità.

Detto questo, credo che SoC sia non una spiegazione adatta, specialmente scientifica, per sostenere il tuo desiderio di mantenere la tua applicazione con la funzionalità R solo invece di CRUD.

Personalmente, non userei il termine "SoC" in questo contesto . La tua domanda riguarda la ampiezza della tua applicazione; quanto vuoi che vada in termini di funzionalità e funzionalità; lo scopo della tua stessa applicazione. È una questione di Specifica dei requisiti utente e non è una questione di SoC.

Pensa il contrario. Supponiamo che tu decida infine di consentire aggiornamenti di commenti (forse perché l'analisi suggerisce tali aggiornamenti e vuoi fornire i mezzi per applicarli al documento dal tuo software). Ora, questa è una caratteristica distinta e dovresti certamente applicare SoC per incapsularlo nella tua applicazione; SoC può certamente essere usato in questo contesto per ragionare su te stesso.

    
risposta data 13.04.2018 - 11:28
fonte
1

La separazione delle preoccupazioni in un contesto di ingegneria del software significa qualcosa di diverso. Quando noi (programmatori) parliamo di preoccupazioni o responsabilità, pensiamo a parti di codice in un programma. Ciò che le persone dovrebbero fare cosa e cosa non è quasi mai una nostra preoccupazione (!). Un amministratore di sistema può pensare in questo modo quando si assegnano i diritti di accesso. Non riconosciamo le persone, preferiamo concentrarci sul codice.

    
risposta data 12.04.2018 - 07:31
fonte
0

Sì, rendere il tuo programma solo responsabile dell'analisi dei commenti e lasciare che un componente software esistente (in questo caso l'elaboratore di testi) sia l'unica parte responsabile del sistema per la modifica dei documenti, può essere chiamato Separation of Concerns. Il SoC non è legato alle funzioni, è un termine che può essere applicato a tutti i tipi di componenti software di diverse dimensioni e a diversi livelli di astrazione.

Tuttavia, proprio perché questo termine può essere applicato, non trarre conclusioni premature che questa separazione sia un buon modo di progettare il sistema dal punto di vista degli utenti finali o per declinare la funzione. Per un utente, posso immaginare che abbia senso avere una funzione di modifica dei commenti integrata alla funzione di analisi, ad esempio, dalla posizione a specifici commenti che sono stati scelti dall'analisi.

Potresti ancora implementarlo aggiungendo un altro componente che consente di controllare la modifica, a parte il componente di analisi. Sarebbe ancora un disegno che separa le preoccupazioni.

Ovviamente, quando la richiesta di "modifica dei commenti" non porta alcun vantaggio all'utente rispetto alla modifica diretta utilizzando il processore di Word, allora questo è un motivo economico per non implementare questa funzione (e non una "ragione per buzzword" ).

    
risposta data 12.04.2018 - 22:03
fonte

Leggi altre domande sui tag