[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