[Python] Python vs UML
Enrico Franchi
enrico.franchi a gmail.com
Gio 7 Feb 2008 17:18:54 CET
On Feb 7, 2008, at 3:55 PM, Java wrote:
> Toh... compare un linguagigo di modellazione per specifiche hardware.
> Per l'hardware va bene e per il software no?
E' chiara la differenza fra hardware e software con annessi e connessi?
Chiedo perché se lo fosse, dovresti renderti conto che in primo luogo
quello che va bene per il software non va bene per l'hardware
(aggiungo che, anche se forse nei corsi universitari di Ing Sw non lo
dicono spesso che ci sono *grosse* differenze anche nel modo in cui
approcciare diversi tipi di progetti software, costi accettabili,
defect rate accettabili, tipi di difetti accettabili, tipi e quantità
di ritardo accettabile).
In aggiunta il punto è che essere 'contrari' ad un dato linguaggio di
modellizzazione voglia essere contrario a *tutti*, al concetto di
'modellizzazione' (ivi inclusa quella per ambiti non informatici etc
etc etc).
Tipicamente l'hardware ha in se e per se un livello di astrazione
bassino; viceversa il software non necessariamente. Tipicamente Python
ha un livello di astrazione non certamente più basso di UML (per
quanto ovviamente un linguaggio di programmazione come Python è
adattissimo per esprimere determinati tipi diagrammi UML, mentre altri
no -- al che bisogna chiedersi se questi altri diagrammi sono o meno
utili, per cui vedere se usare UML per quelli, se usare un altro
formalismo oppure se si possono non fare e basta --).
Poi si pongono problemi di *costo* di realizzazione. Un prototipo
software è direttamente eseguibile (un diagramma UML no).
*Costruire* dell'hardware, disfarlo, cambiarlo è costosissimo: con il
software molto meno (specie se in un linguaggio in cui i cambiamenti
sono facili).
Tipicamente fai prima a scrivere un programma in verilog che a
bruciarti un PLA (ammesso che il problema che stai risolvendo sia
proprio semplice, se no con un PLA vai poco lontano). Etc etc.
Comunque io fossi in te mi chiederei se pensi *davvero* che hw e sw
siano la stessa cosa.
> C'è una grossa azienda che produce software molto grosso e ha sedi di
> tutto il mondo. Essa vende un programma fantastico che però quasi
> subito
> accusa dei malfunzionamenti. Fatti gli accertamenti del caso, si
> scopre
> che c'è un pezzo di codice che non si comporta a dovere.
> Supponiamo poi che il progettista e lo sviluppatore siano persone
> diverse (che non è una roba così poco diffusa come potreste pensare)
> come fa il progettista a discolparsi? Con dei fogli di stampante su
> cui
> ha scritto degli appuntini per lo sviluppatore? O magari affermando
> "che
> lui gliel'aveva detto al programmatore come si faceva"?
Scusa, ma questa è stra-fuffa. E' una situazione ipotetica in primo
luogo, sufficientemente generica da voler dire tutto e nulla.
Aggiungo che in un caso del genere, i primi a saltare sono quelli del
reparto qualità (se esiste), poi quelli del testing (che evidentemente
hanno cazzeggiato).
Questo sempre nel mondo fantastico dei ruoli distinti e del 15 teste e
un senior e 10 neolaureati.
Comunque, tornando a noi, dopo averti ringraziato dei tuoi insights
sul mondo del software, non posso che ribadire quello che ti fa
notare anche Antonio.
More information about the Python
mailing list