Gestione di innovazioni rivoluzionarie in un sistema di produzione - Inserisci oggetto di gestione di livello intermedio

3

Come richiesto dal nostro cliente, stiamo procedendo a cambiare la base del nostro sistema. Abbiamo già la seguente struttura:

A class has many students. (simple typical one - to - many)

Ora dobbiamo cambiarlo in:

A class has many groups. Each group has many students. (Intermediate Object "Group" is inserted).

Sembra una modifica "semplice", ma interrompe tutta l'interfaccia di gestione, dal client mobile alle visualizzazioni web. E anche nella struttura del database.

Il nostro sistema è un programma di gestione dei dati in cui abbiamo circa 50-60 oggetti di dominio che fanno parte di un modello di gerarchia di circa 5 livelli. E l'oggetto intermedio viene inserito attorno al 2 ° stadio.

La mia domanda include 2 aspetti:

1) Come stimare gli sforzi necessari. Sto creando un nuovo ramo di codice, quindi inserisco il nuovo oggetto dominio, dopo di ciò interrompo la relazione dello studente di classe per inserire il nuovo "gruppo". Quindi cerca nel rapporto errori di Eclipse per individuare il codice problematico. Tuttavia, rende rosso l'intero progetto e ho problemi a fornire stime precise del tempo per l'attività.

2) Come evitare / evitare che questa situazione si verifichi in futuro. Succede una volta prima, e in quel momento ho trascorso una settimana a scrivere script di conversione del database, oltre a apportare le modifiche. Ma in quel momento il sistema è ancora piccolo. Ora è diventato grande.

    
posta Hoàng Long 27.05.2013 - 11:10
fonte

1 risposta

6

Il modo migliore per fare qualcosa di simile è farlo a piccoli passi. Innanzitutto, anche quando aggiungi questo gruppo, gli studenti sono legati in modo passivo alla singola classe. Quindi, mentre all'interno c'è un qualche tipo di raggruppamento, l'interfaccia esterna potrebbe ignorare questo e presentare solo la relazione Student-Class.

Quindi il primo passo potrebbe essere mantenere la relazione Classe-Studente, ma aggiungere la relazione Gruppo-Studente e Classe-Gruppo sul lato. Sì, ci saranno duplicati, ma questo dovrebbe essere solo temporaneo. Questo ti permetterà di rifare lentamente la vecchia relazione nella nuova relazione. Questo "stato" transitivo del tuo modello esporrà entrambe le relazioni, in modo che i clienti possano spostarsi lentamente da quello vecchio a quello nuovo. E quando tutti i client si spostano su quello nuovo, puoi rimuovere quello vecchio.

    
risposta data 27.05.2013 - 11:31
fonte