Garantire la compatibilità tra i componenti software

1

Abbiamo diversi componenti nel nostro prodotto che sono

  1. Componente A
  2. Componente B
  3. Componente C

Le dipendenze sono (se il sistema non ha esito positivo fallisce):

A < - > B
B < - > C

Attualmente stiamo creando una pipeline di build e finalmente il Software per ogni componente viene impacchettato in un'unica immagine firmware:

A - > Uscita A
B - > Uscita B
C - > Uscita C

Uscita A + Uscita B + Uscita C = Firmware

Il firmware è pieno di documentazione e verrà quindi distribuito. Le implementazioni dovrebbero avvenire ogni settimana per i test e ogni 2-4 settimane per la produzione.

Firmware + Documenti = Software implementato

Il mio problema ora è:

  • Come faccio a garantire la compatibilità tra A, B e C dato che sono tutti sviluppati da team diversi?

    Ho visto questa domanda qui Ricerca delle best practice per la numerazione delle versioni dei componenti software dipendenti

    Disponiamo di numeri di versione per A, B e C e anche il firmware generale ne ha uno. Esistono buone pratiche o modi per farlo?

  • Come faccio a rintracciare la compatibilità? (Oltre a guardare nel firmware pacchettizzato e vedere quali versioni sono state incluse in un determinato momento)

    Ho pensato di utilizzare i tag git qui e di inserire il numero di versione del firmware (solo prodotti spediti) come tag su A, B, C.

posta pfried 22.09.2016 - 07:48
fonte

1 risposta

3

How do i ensure compatibility between A,B and C given the fact that they are all developed by different teams?

I tuoi strumenti di compilazione o il sistema di controllo della versione non possono farlo per te. Per questo sono necessari test di integrazione, idealmente una suite di test di integrazione completamente automatizzata. La frequenza con cui esegui questa suite dipende dal tuo team, il requisito minimo è una volta prima di ogni distribuzione, nei team che utilizzano un server CI questo può accadere molto più frequentemente, probabilmente più volte al giorno.

We do have version numbers in place for A,B and C and the overall Firmware has one as well. Are there any best practices or ways to do it?

Questo è completamente coperto da link che hai già menzionato nella tua domanda.

How do i track back compatibility? (Besides looking into the packaged firmware...)

Guardare nel firmware pacchettizzato non è necessariamente un approccio errato, se si ha un facile accesso ai pacchetti, si hanno strumenti per depackarli facilmente e archiviare correttamente i pacchetti. Tuttavia, se ciò non soddisfa le tue esigenze, devi automatizzare completamente il processo di pacchettizzazione e assicurarti che gli script del pacchetto possano prelevare automaticamente ogni numero di versione da ogni componente. Quindi lascia che lo script scriva quei numeri di versione in un file di registro e mantieni il file di registro.

    
risposta data 22.09.2016 - 08:48
fonte