PDA

View Full Version : [Java/Jsp] Bontà del software


Policchia
08-10-2008, 17:36
riporto la discussione poichè avevo errato il titolo e gli sviluppi che ci sono stati.
Chiedo venia per l'errore, che eviterò in futuro e chiedo gentilmente di non andare fuori tema.


Avrei bisogno di un programma per testare la bontà del software, possibilmente non a pagamento, qualcosa tipo cast per intenderci...
Ne conoscete?
si insomma, qualcosa per fare l'analisi metrica in poche parole...


mi servirebbero in ambiente MS(così nessuno si offende) per java e jsp...
Avevo letto di un plugin di eclipse ma non l'ho trovato e quindi non capisco se possa fare al caso mio...
Come metriche mi interessano sono più o meno tutte, nel senso...
(e non mi interessa se magari il tutto si fa con 1 o più sw)
mi serve capire se il sw è conforme alla iso 9000 per lo più per i parametri interni quindi verificabilità, manutenibilità, evolvibilità, leggibilità etcetc... spero di essermi spiegata..
grazie mille!!!

edit.
Il programma che sto cercando mi deve in pratica dire se le pagine che gli fanno analizzare fanno schifo, tipo non ci sono sufficienti commenti, il codice è cablato, obsoleto, deprecato,
dopo di che mi servirebbe sare la sua usabilità, insomma dire perche quel cacchio di sw fa schifo e magari con un programma che supporti le mie idee e magari faccia un report

adesso guardo i prodotti che mi ha gentilmente indicato l'utente variabilepippo (che ringrazio)
e cioè
Source Monitor
JDepend
Metrics

Se qualcun altro ha altro da aggiungere o da suggerire è ben accetto :)
Grazie

ech0s
08-10-2008, 17:52
Non so se è quello che fa per te, ma in Netbeans c'è un ottimo profiler del codice che indaga sull'uso delle risorse hardware del pc (RAM, CPU, e così via) e crea ottimi report sulle prestazioni del tuo software.
Per quanto riguarda i commenti e l'indentazione non credo ci sia uno standard (a parte le annotazioni che già conoscerai), è compito del programmatore curare questi aspetti, mentre per il codice deprecato c'è sempre Netbeans che te lo segnala già in fase di programmazione.

Policchia
08-10-2008, 18:05
ti ringrazio ma stiamo parlando di due cose diverse.
Non mi interessano le prestazioni del sw, ma proprio come è fatto il sw.
Ci sono degli studi appositi per valutarne la metrica.

In genere si usa per valutare se conviene di più rifare da capo il prodotto o se aggiustarlo, e la qualità dello stesso. :)

ech0s
08-10-2008, 18:21
Devo informarmi allora ;)

cdimauro
08-10-2008, 19:57
Il problema è che non esiste una metrica (oggettiva) per valutare la qualità del codice. Ne esistono diverse, ognuna coi propri punti di forza e debolezza.

So che nella pubblica amministrazione vengono usati i function point, ma te li sconsiglio. Una metrica che va molto di moda (nel senso buono del termine) è il calcolo della complessità ciclomatica.

shinya
08-10-2008, 20:58
Cominciavo infatti a chiedermi a che servissero questi tool, e come si possano misurare "verificabilità, manutenibilità, evolvibilità, leggibilità", come dice Policchia...

Quali sarebbero i parametri della iso 9000?

_Claudio
09-10-2008, 09:16
Al di là di tutte le metriche definibili... secondo me per valutare la bontà in "senso Policchia" :D del codice è... lavorarci, estenderlo in prima persona.

L'unica cosa che sì può analizzare rigorosamente e oggettivamente sono le prestazioni, il resto rimane sempre una questione soggettiva, data l'indecidibilità... ossia potremmo stare ore e ore a discutere sul fatto che un dato sorgente sia facilmente estendibile o meno... e che eventuali standard (di cui non ho mai sentito parlare, ma forse questa è ignoranza mia) siano effettivamente una coperta "abbastanza grande" da redimere ogni discussione a riguardo.

Poi dipende dal perchè devi fare queste analisi, se servono personalmente a te o qualcuno ti ha chiesto di lavorare su questo noioso compito, io andrei a valle a riconsiderare le motivazioni.

P.S. se qualcuno ha editato un software su una questione indecidibile come spiegato sopra non rende questa decidibile, tutti noi sappiamo che non è ortodosso ideare un software per un problema indecibile, anche se tuttavia il 99% del software disponibile nel mercato è pensato su questioni indecibili... e difatti nel 99% delle cose della vita esiste sempre un'approssimazione... che è sempre pronta a fregarci... :D :muro:

Policchia
09-10-2008, 10:15
cerco di spiegarmi, quello che mi serve è un analizzatore di codice...
Insomma mi serve un prodotto che supporti la mia idea, condivisa da tutti, compresi gli sviluppatori del codice stesso, che quello è da buttare e anzichè dargli dei colpi di assestamento è meno costoso rifarlo ex novo, anche in previsione di nuove funzionalità.
Quindi il lavoro da fare è doppio.
Quello che mi serve è un programma tipo cast, la cui licenza costa però un cifra piuttosto elevata.
Stavo guardando i programmi che mi ha indicato variabilepippo ma sono riuscita al momento a guardare solo Source Monitor e mi stavo apprestando a installare e provare gli altri due.

Tanto per farvi un esempio questo codice NON ha commenti, ha select/insert/update e compagnia danzante cablati nel codice
Lo stesso le pagine della jsp hanno le scritte cablate (quindi tutte le volte che si deve fare una modifica anche ridicola deve metterci le mani il programmatore e fare un nuovo rilascio)
I nomi delle variabili, quelle rare che ci sono, non sono "parlanti" sono metà in inglese e italiano, metà degli acronimi e sono o tutti maiuscoli o tutti minuscoli, senza nessun criterio.
Il codice è rindondante, le pagine vengono ripetute piuttosto che crearne una "di base" con le varie personalizzazioni.
Grossa parte della logica dell'applicativo sta nella jsp...
L'indentazione è non si sa cosa è, ci sono ogni tanto dei colpi di tab sparati a caso, e ci sono delle classi da oltre un migliaio di righe...
Non vengono praticamente gestiti gli errori se non generici con tanto di messaggi cablati"si è verificato un errore, contattare il reparto XXXYYY"
se volete continuo ma credo di aver reso l'idea.

Ovviamente un sw non deve dirmi tutto cio'... ma solo indicarmi gli errori di una cattiva programmazione per dar supporto a quello che ho constatato

dimenticavo qui c'è la spiegazione dei vari sio
http://users.dimi.uniud.it/~carlo.tasso/qualitaiso.html/index.htm

cdimauro
09-10-2008, 10:25
Da quel che dici fate prima a rifarlo da capo il progetto. :p

Comunque il fatto che un codice NON abbia sorgenti può essere un punto a suo favore. Ovviamente non mi riferisco al software che hai descritto. :D

Policchia
09-10-2008, 10:47
infatti l'obiettivo è quello di dirgli:
sto coso fa schifo per x, y e z motivi, supportato anche ai programmi X/y/z
Conviene rifarlo.

In pratica lo sanno anche loro che conviene rifarlo, ma burocraticamente devono avere sto documento del piffero per poterlo mettere a budget.

shinya
09-10-2008, 11:06
In pratica lo sanno anche loro che conviene rifarlo, ma burocraticamente devono avere sto documento del piffero per poterlo mettere a budget.

Forse la scelta migliore è cambiare lavoro, se l'intelligenza dei dirigenti è a questo livello.

Se non dovessi trovare quello che cerchi puoi sempre provare a scriverlo da sola il documento, magari infarcendolo di buzzword.
Eccone alcune (notare le lettere maiuscole al posto giusto, molto massonico):

"Architettura MVC", "Design Pattern", "AJAX", "Comet", "Web 2.0", "Java EE", "Enterprise Bean", "Best Practices", "Domain Driven Design", ...

Scrivi un bel documento farcito, e vedrai che se la bevono!

ps. non c'è bisogno che dica che le slide al link che hai fornito sono aria fritta, vero?
Ops...

Policchia
09-10-2008, 11:12
Forse la scelta migliore è cambiare lavoro, se l'intelligenza dei dirigenti è a questo livello.

Se non dovessi trovare quello che cerchi puoi sempre provare a scriverlo da sola il documento, magari infarcendolo di buzzword.
Eccone alcune (notare le lettere maiuscole al posto giusto, molto massonico):

"Architettura MVC", "Design Pattern", "AJAX", "Comet", "Web 2.0", "Java EE", "Enterprise Bean", "Best Practices", "Domain Driven Design", ...

Scrivi un bel documento farcito, e vedrai che se la bevono!

ps. non c'è bisogno che dica che le slide al link che hai fornito sono aria fritta, vero?
Ops...

scusa per il link è il primo che mi è capitato sotto mano, mi sembrava che spiegasse la cosa, cmq anche wiki ti spiega la cosa.
PEr la parte superiore... bhè in tutte le grandi aziende serve la parte burocratica... Quanto al doc word mi sta bene, ma a me serve un prodotto a supporto, non cosa scrivere nel documento :)

cdimauro
09-10-2008, 13:33
Pardon, prima ho scritto codice senza sorgenti, ma volevo dire senza commenti. :muro:

_Claudio
09-10-2008, 17:38
cerco di spiegarmi, quello che mi serve è un analizzatore di codice...
Insomma mi serve un prodotto che supporti la mia idea, condivisa da tutti, compresi gli sviluppatori del codice stesso, che quello è da buttare e anzichè dargli dei colpi di assestamento è meno costoso rifarlo ex novo, anche in previsione di nuove funzionalità.
Quindi il lavoro da fare è doppio.
Quello che mi serve è un programma tipo cast, la cui licenza costa però un cifra piuttosto elevata.
Stavo guardando i programmi che mi ha indicato variabilepippo ma sono riuscita al momento a guardare solo Source Monitor e mi stavo apprestando a installare e provare gli altri due.

Tanto per farvi un esempio questo codice NON ha commenti, ha select/insert/update e compagnia danzante cablati nel codice
Lo stesso le pagine della jsp hanno le scritte cablate (quindi tutte le volte che si deve fare una modifica anche ridicola deve metterci le mani il programmatore e fare un nuovo rilascio)
I nomi delle variabili, quelle rare che ci sono, non sono "parlanti" sono metà in inglese e italiano, metà degli acronimi e sono o tutti maiuscoli o tutti minuscoli, senza nessun criterio.
Il codice è rindondante, le pagine vengono ripetute piuttosto che crearne una "di base" con le varie personalizzazioni.
Grossa parte della logica dell'applicativo sta nella jsp...
L'indentazione è non si sa cosa è, ci sono ogni tanto dei colpi di tab sparati a caso, e ci sono delle classi da oltre un migliaio di righe...
Non vengono praticamente gestiti gli errori se non generici con tanto di messaggi cablati"si è verificato un errore, contattare il reparto XXXYYY"
se volete continuo ma credo di aver reso l'idea.

Ovviamente un sw non deve dirmi tutto cio'... ma solo indicarmi gli errori di una cattiva programmazione per dar supporto a quello che ho constatato

dimenticavo qui c'è la spiegazione dei vari sio
http://users.dimi.uniud.it/~carlo.tasso/qualitaiso.html/index.htm

Leggo bene ciò che c'è scritto in grassetto o è ora di cambiare lenti agli occhiali? Con tutto il rispetto... ma io oltre al codice butterei via anche i programmatori se lo scrivono male e ammettono di averlo scritto male senza fornire almeno uno straccio di giustificazione peraltro.

Comunque... ho guardato un po' di fretta alcune diapositive sulla "qualità del software" che hai indicato, in quelle slide ci sono giusto delle linee generali per scrivere del buon codice o valutare a posteriori con occhio umano... e la base è... avere a che fare con i sorgenti o con l'applicativo.

Anche io fossi in te scriverei un buon documento infarcito di paroloni da 4 soldi in ordine sparso per impressionare la dirigenza...

Oppure, se il software presentare SERI problemi di usabilità cercherei di estrarre una demo e la proporrei alla dirigenza così si rendono conto di persona di cosa stai parlando. Sempre che questo non comporti più di 2 giorni di lavoro per te o a chi avrà questo sgradevole compito e non più di una mezz'oretta alla dirigenza, sia mai che ci prendono gusto ad usare una applicazione improponibile... :D

Policchia
09-10-2008, 18:11
Leggo bene ciò che c'è scritto in grassetto o è ora di cambiare lenti agli occhiali? Con tutto il rispetto... ma io oltre al codice butterei via anche i programmatori se lo scrivono male e ammettono di averlo scritto male senza fornire almeno uno straccio di giustificazione peraltro.

Comunque... ho guardato un po' di fretta alcune diapositive sulla "qualità del software" che hai indicato, in quelle slide ci sono giusto delle linee generali per scrivere del buon codice o valutare a posteriori con occhio umano... e la base è... avere a che fare con i sorgenti o con l'applicativo.

Anche io fossi in te scriverei un buon documento infarcito di paroloni da 4 soldi in ordine sparso per impressionare la dirigenza...

Oppure, se il software presentare SERI problemi di usabilità cercherei di estrarre una demo e la proporrei alla dirigenza così si rendono conto di persona di cosa stai parlando. Sempre che questo non comporti più di 2 giorni di lavoro per te o a chi avrà questo sgradevole compito e non più di una mezz'oretta alla dirigenza, sia mai che ci prendono gusto ad usare una applicazione improponibile... :D

Non ho bisogno di occhiali, specie per quello che ho scritto io :) e poi non porto occhiali :ciapet:
Non ho detto da nessuna parte che il codice lo farebbero gli stessi sviluppatori, che cmq sia quando iniziato quel progetto erano appena entrati nel mondo del lavoro ed erano in ritardo ancora prima di iniziare...
Cmq come fare il documento lo so, non sto chiedendovi come scrivere il documento, ma dei software per l'analisi metrica.
Il sw in questione è vecchio e molto grande, non basterebbero due giorni manco solo per dare una scorsa a tutte le jsp e codice java. Cerco appunto per quello un sw che mi faccia queste cose.

Vi ringrazio per i suggerimenti, ma cerco solo un sw di analisi metrica simile a cast.
:)

_Claudio
09-10-2008, 18:33
Non ho bisogno di occhiali, specie per quello che ho scritto io :) e poi non porto occhiali :ciapet:
Non ho detto da nessuna parte che il codice lo farebbero gli stessi sviluppatori, che cmq sia quando iniziato quel progetto erano appena entrati nel mondo del lavoro ed erano in ritardo ancora prima di iniziare...
Cmq come fare il documento lo so, non sto chiedendovi come scrivere il documento, ma dei software per l'analisi metrica.
Il sw in questione è vecchio e molto grande, non basterebbero due giorni manco solo per dare una scorsa a tutte le jsp e codice java. Cerco appunto per quello un sw che mi faccia queste cose.

Vi ringrazio per i suggerimenti, ma cerco solo un sw di analisi metrica simile a cast.
:)

Gli occhiali erano riferiti a me... non volevo crederci quando ho letto.

Comunque che dire... se appena entrati nel mondo del lavoro non avevano le basi per scrivere un buon software e hanno formato una squadra di inesperti... iniziando il lavoro in ritardo per di più... non ci si può aspettare altro che rifare tutto il lavoro... in ritardissimo ma sicuramente scrivendo meglio il codice...

cdimauro
09-10-2008, 20:03
x Policchia: anche se erano alla prima esperienza, se hanno prodotto quell'orrore che hai descritto i casi sono due.
O a sQuola non hanno imparato una mazza (perché le metodologie di sviluppo del software si studiano, eh!) e hanno preferito passare il tempo a scaldare i banchi.
Oppure è gente "prestata alla programmazione" (magari hanno fatto una o due materie di informatica o il classico corso d'aggiornamento e sono stati fulminati-ma-forse-era-meglio-se-ci-restavano-secchi sulla via di Spaghetti Code).

In entrambi i casi... fuori. Non ci si può affidare a gente così. La manodopera nel campo dell'informatica non manca di certo, e prendendo i primi che capitano si taglia fuori chi ha realmente delle capacità.

Policchia
10-10-2008, 10:10
Concordo con il fatto che quelle persone non dovevano svolgere quel lavoro in quel modo, infatti si vuol far fare riscrivere ex-novo il codice da veri programmatori, hanno solo bisogno di un giutificativo supportato da programmi, schemini e report per i rami d'azienda che non sanno cosa sia un mouse...

Il primo che mi ha suggerito variabilepippo è un po troppo scarno per le mie esigenze, sto provando a installare metrics ma ho qualche problema con i plugin, forse per una versione diversa di eclipse, ma anche quello a breve dovrebbe funzionare...
Intanto grazie a tutti :)

cdimauro
10-10-2008, 13:41
Forse questo (http://www.hwupgrade.it/forum/showthread.php?t=1670914) ti potrà aiutare. ;)

Policchia
10-10-2008, 13:47
grazie mille ci guardo subito :)

ci ho guardato, ma non ho capito come hanno fatto a ricavare quei risultati/%... qualche lume?

cdimauro
10-10-2008, 14:13
grazie mille ci guardo subito :)

ci ho guardato, ma non ho capito come hanno fatto a ricavare quei risultati/%... qualche lume?
Francamente non l'ho configurato io quel tool, per cui non saprei.

Vediamo se qualche altro partecipante a Diamonds se lo ricorda. Jappilaaaaaaaaas! Se ci sei, rispondi! :p

jappilas
10-10-2008, 17:10
Francamente non l'ho configurato io quel tool, per cui non saprei.

Vediamo se qualche altro partecipante a Diamonds se lo ricorda. Jappilaaaaaaaaas! Se ci sei, rispondi! :peccomi :O

che io sappia, le metriche erano rilevate e mostrate in un comodo report sotto forma di pagine html, da Cobertura (http://cobertura.sourceforge.net/), a sua volta chiamato in un task di ant configurato (da fek) nel makefile (build.xml)

<target name="cover-report" depends="cover-test">
<cobertura-report format="html" destdir="${reports}/coverage" srcdir="${src}"/>
</target>
con cover-test, che in pratica è un normale task di junit, chiamato però dopo aver eseguito la code instrumentation
<!-- test coverage instrumentation task -->
<target name="instrument" depends="compile-debug">
<cobertura-instrument todir="${instrumented}">
<fileset dir="${bin}/debug">
<include name="it/diamonds/**/*.class"/>
<exclude name="it/diamonds/tests/**/*.class"/>
</fileset>
</cobertura-instrument>
</target>

Policchia
10-10-2008, 17:36
grazie..... mi sa che è un pochino complicato, ma provo a studiarmelo nel we come approccio :)

|aura
13-10-2008, 18:06
ce ne era uno da integrare dentro eclipse ma non ricordo come si chiamava...