Utente:Marcobombe/Sandbox: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Nessun oggetto della modifica
Etichetta: Modifica da mobile
 
(31 versioni intermedie di 2 utenti non mostrate)
Riga 1:
SERDES (SERializer/DESerializer) è un' interfaccia elettrica costituita da due di blocchi funzionali utilizzati in sistemi di comunicazione ad alta velocità con un numero limitato di input/output.
'''"Cowboy coding"''' è un termine utilizzato per descrivere una metodologia di sviluppo del software in cui i programmatori hanno piena autonomia nel controllo della pianificazione del progetto, nella scelta degli algoritmi, degli strumenti di sviluppo e dello stile di programmazione del codice.
I suddetti blocchi convertono i dati da seriali a paralleli e viceversa in ambedue le direzioni.
Un "cowboy coder" può essere uno sviluppatore isolato o parte di un gruppo, ma comunque in assenza di alcuna gestione esterna che controlli gli aspetti di sviluppo del progetto, come la sua natura, la portata, il set di funzionalità.
Il termine SERDES à genericamente utilizzato in un gran numero di tecnologie e applicazioni, anche se tipicamente il mondo a cui ci si riferisce è quello delle telecomunicazioni.
 
== Funzionalità ==
Il "Cowboy coding" può avere connotazioni positive o negative, a seconda delle proprie opinioni sul ruolo di gestione e di processo formale nello sviluppo di software. Spesso usato come termine dispregiativo dai sostenitori delle metodologie di sviluppo software, è tuttavia rivalutato da programmatori che praticano il loro lavori all'interno di alcune comunità.
Le funzionalità base di una interfaccia SERDES sono espletate da due blocchi funzionali:
# Convertitore Parallelo-Seriale ([[PISO]])
# Convertitore Seriale-Parallelo ([[SIPO]])
 
Inoltre esistono quattro tipi di architettura SERDES:
 
# Parallel clock SerDes
== Svantaggi del "Cowboy Coding" ==
# Embedded clock SerDes
In contesto "Cowboy Coding", la mancanza nel progetto di formali metodologie software di gestione possono essere indicativi (anche se non necessariamente) di piccole dimensioni di un progetto o di una sua natura sperimentale.
# 8b/10b SerDes
Progetti software con questi attributi possono presentare:
# Bit interleaved SerDes.
*Carenze nella struttura dei rilasci
Il progetto può mancare di uno studio di fattibilità, di stima, pianificazione o attuazione che può causare ritardi di progetto. Improvvise scadenze ed emergenze di rilascio potrebbero favorire la produzione di software con codice sporco e scritto velocemente, in cui gli errori vengono corretti al fine dell' immediata funzionalità e non secondo uno stile pulito e un approccio flessibile e generale. Spesso gli errori corretti in questo modo devono essere ripresi in futuro con maggiore attenzione e maggiore perdita di ulteriore tempo di sviluppo.
* Sviluppatori inesperti
Il "Cowboy Coding" è comune a hobbisti o a programmatori ancora studenti in cui gli sviluppatori possono inizialmente avere familiarità minima con le tecnologie, come ad esempio gli strumenti di sviluppo, che il progetto richiede. Ciò può comportare che il tempo necessario per imparare le conoscenze di base possa essere sottovalutato e accorciato causando ritardi successivi ben più gravi nel processo di sviluppo. L'inesperienza può portare anche a non tener conto di norme comunemente accettate, rendendo il codice sorgente di difficile lettura o causare conflitti tra la semantica dei costrutti del linguaggio e il risultato della loro produzione.
*Requisiti di progettazione incerti
In applicazioni software personalizzate, anche quando si utilizza un ciclo di sviluppo comprovato, possono verificarsi dei problemi con il cliente in materia di requisiti. Il "Cowboy Coding" può accentuare questo problema poiché spesso non scala i requisiti in un calendario ragionevole, e il cliente trova funzionalità non ancora utilizzabili al momento delle scadenze previste. Allo stesso modo, i progetti con i clienti meno tangibili (progetti sperimentali) possono iniziare con l'immediato sviluppo del codice e non con un'analisi formale dei requisiti di progettazione. Mancanza di analisi di progettazione può portare a scelte tecnologiche errate o insufficienti che , nel caso peggiore, può richiedere uno ulteriore sforzo di programmazione e tempo al programmatore, costringendolo a porting di piattaforma o di linguaggio di programmazione.
*Incompletezza
Molti modelli di sviluppo software utilizzano un approccio incrementale che sottolinea prototipi funzionali in ogni fase. Progetti non gestiti possono avere poche possibilità di test e iterazione fra le unità di lavoro, lasciando il progetto incompleto.
 
Il blocco [[PISO]] (Parallel Input, Serial Output) tipicamente è composto da in clock di ingresso, una serie di linee di input e del [[latch]] in uscita. Può, inoltre, utilizzare un [[PLL]] (Phase-locked loop) per moltiplicare il clock entrante fino al di sopra della frequenza della trasmissione seriale.
== Vantaggi del "Cowboy Coding" ==
Nella sua forma più elementare il PISO è comosto da un registro a scorrimento ([[Shift register]]) che riceve i dati in ingresso sincronizzati con il clock e li trasmette a scorrimento verso l'uscita alla velocità definita dal clock seriale. Alcune implementazioni possono avvalersi di un registro a doppia bufferizzazione.
* Gli sviluppatori mantengono una formazione libera di ispirazione artistica nell' ambiente di lavoro che possono incoraggiare la sperimentazione, l'apprendimento e la distribuzione gratuita dei risultati.
== Note ==
* Senza uno sviluppo accurato e un ruolo separato di framework designer, il programmatore, in contrapposizione al project manager, è responsabile per la rimozione delle situazioni di stallo del progetto. Questo può migliorare la velocità di sviluppo.
Questa è una prova.
* Sviluppatori indipendenti possono iniziare con tecniche di codifica "Cowboy Coding", per poi passare ad uno sviluppo più razionale in seguito quando le risorse sono maggiori in vista di una uso commerciale o la creazione di comunità e progetti sostenuti.
== Riferimenti ==
* Piccoli progetti possono essere gravati da pesanti metodologie di gestione del software, il "Cowboy Coding" rimuove questo onere.
== Collegamenti esterni ==
* Con il "Cowboy Coding", un progetto a livello amatoriale che con una pesantezza di progetto e pianificazione troppo elaborata e costosa altrimenti non avrebbe possibilità di un futuro, può comunque giungere a buon fine.
<!--
 
[[Categoria:Metodologie di sviluppo]] -->