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 revisionPrevious revision
Next revision
Previous revision
educare:plantuml [2018/10/12 14:34] profproeducare:plantuml [2022/11/18 16:46] (current) profpro
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
 +
 +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 
 +  frase1=`grep 'interface' "$i"`;
 +  if [ -n "$frase1"
 + then echo "interface ${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
 +
 +    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 
 +      frase3=`grep "${j/.java}" "$i" | sed -e 's/\(.*\)\(extends\) \(\W*\w*\)\(.*\)//g' | sed -e 's/\(.*\)\(implements\) \(\W*\w*\)\(.*\)//g'`; 
 + # questo grep rilevava anche extends e implements come CLASSE. Con SED si è rimossa la riga che conteneva extends. 
 + # backquote `` command substitution
 +      echo "$i contiene $j ... $frase3";
 +   if [ ! "$j" = "$i" -a -n "$frase3" ]; 
 +     then
 +        echo "${j/.java} <-- ${i/.java}" >> prova-plantuml.txt;
 +      fi
 +    done
 +done
 +
 +for i in *.java ; do 
 +
 +# cerca implements dentro tutti i sorgenti
 +# quando lo trova, deve prendere SOLO la parola dopo implements
 +
 +    frase2=`grep 'implements' "$i" | sed -e 's/.*\(implements\) \(\W*\w*\)/\2/g'`
 +    echo "$frase2 <|..  ${i/.java}" >> prova-plantuml.txt;
 +done
 +
 +  
 +echo  "@enduml" >> prova-plantuml.txt ;
 +
 +plantuml prova-plantuml.txt ;
 +
 +
 +</code>