User Tools

Site Tools


educare:plantuml

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
educare:plantuml [2018/10/12 14:34]
profpro
educare:plantuml [2020/06/08 22:20] (current)
Line 1: Line 1:
 +Il seguente software è fornito con licenza GPL2 o versione successiva.
 +**È necessario installare il programma "plantuml"**
  
 +Esempio di output
 +
 +{{ :educare:prova-plantuml.png?nolink&400 |}}
 +
 +Questo script ti costruisce automaticamente un diagramma delle classi UML a partire da un gruppo di file.java.
 +
 +<code>
 +#!/bin/bash
 +
 +# to do: 
 +# rimuovere prima tutti i commenti perché potrebbero contenere nomi di classi esterne
 +
 +echo "@startuml" > prova-plantuml.txt ;
 +
 +for i in *.java ; do 
 +  frase1=`grep 'class' "$i"`;
 +  if [ -n "$frase1"
 + then echo "class ${i/.java}" >> prova-plantuml.txt ;
 +  fi
 +done
 +
 +
 +for i in *.java ; do 
 +
 +# cerca extends dentro tutti i sorgenti
 +# quando lo trova, deve prendere SOLO la parola dopo extends
 +
 +# to do: devo escludere la eventuale parentesi graffa dopo extends
 +
 +    frase2=`grep 'extends' "$i" | sed -e 's/.*\(extends\) \(\W*\w*\)/\2/g'`
 +    echo "$frase2 <|--  ${i/.java}" >> prova-plantuml.txt;
 +done
 +
 +for i in *.java ; do
 +    for j in *.java ; do 
 +    # questo grep rilevava anche extends. Con SED si è rimossa la riga che conteneva extends. 
 +      frase3=`grep "${j/.java}" "$i" | sed -e 's/\(.*\)\(extends\) \(\W*\w*\)\(.*\)//g'`; 
 +
 + # to do:
 + # errore da correggere: questo if cerca semplicemente la presenza di classi (iniziale maiuscola)
 + # in qualsiasi punto del codice,  ma forse le classi andrebbero cercate solo tra i seguenti elementi:
 + # attributi
 + # valori restituiti dai metodi
 + # valori argomento di metodi
 +
 +   if [ ! "$j" = "$i" -a -n "$frase3" ]; 
 +     then
 +        echo "${j/.java} <-- ${i/.java}" >> prova-plantuml.txt;
 +      fi
 +    done
 +done
 +  
 +  
 +echo  "@enduml" >> prova-plantuml.txt ;
 +
 +plantuml prova-plantuml.txt ;
 +
 +
 +</code>
educare/plantuml.txt · Last modified: 2020/06/08 22:20 (external edit)