- Il software viene rappresentato attraverso i seguenti paradigmi, tra loro coesistenti e funzionali allo
sviluppo del software stesso in applicazioni embedded real-time.
-
- Software = strutture dati e algoritmi che operano su di essi, formalizzati tramite pseudolinguaggio.
Rif.: "Algorithms + Data Structures = Programs", by Niklaus Wirth, Prentice-Hall Series in Automatic
Computation.
-
- Software = processi stutturati e sequenziati.
Rif.: "Structured Development for Real-Time Systems", by Paul T. Ward, Stephen J. Mellor,
Prentice-Hall.
-
- Software = automa a stati finiti.
-
- Il software viene codificato secondo un manuale interno (disponibile per i nostri clienti), che permette di
uniformare lo stile di programmazione secondo criteri volti all'ottimizzazione delle prestazioni su
microcontollori embedded. Conseguenza di ciò è anche una maggiore leggibilità del codice ed
interazione tra gli sviluppatori.
-
- Il software viene sviluppato nell'ambito di un ciclo formalizzato (procedura disponibile per i nostri
clienti), che parte dalla specifica dei requisiti e termina con il testing del software.
-
- Per la gestione delle versioni il nostro studio utilizza Subversion (SVN).
L'uso di un sistema di questo tipo presenta i seguenti vantaggi:
-
- integrazione automatica del lavoro di tutti gli sviluppatori, riducendo il rischio di errori ed il tempo
di sviluppo.
-
- registrazione di tutte le revisioni di tutti i files del progetto. Questo in particolare ci permette
di:
-
- ricreare qualunque situazione passata, sulla base della sola data o di una etichetta (tag)
precedentemente apposta.
-
- vedere le differenze tra qualunque coppia di istanze passate di qualunque file.
-
- possibilità di lavorare su più rami di sviluppo paralleli dello stesso software. Questo in
particolare ci permette di:
-
- correggere bachi su vecchie versioni, da integrare poi su quella corrente o su una futura.
-
- produrre comodamente versioni alfa o beta a partire da qualunque versione passata da integrare poi su
qualunque versione futura.
-
- produrre versioni custom e tenerle comodamente aggiornate con l'ultima versione del software
ufficiale (questo interessa molto alle vendite!)
-
|