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
Last revisionBoth sides next revision
educare:plantuml [2018/10/12 14:34] profproeducare:plantuml [2020/06/08 22:20] – external edit 127.0.0.1
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: 2022/11/18 16:46 by profpro