1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| for $c in doc('project.xml')/project/classe[@nom="classe1"]
let $seqQc:=(
for $g1 at $num1 in $c/methodes/methode
for $g2 at $num2 in $c/methodes/methode
where ($g2 != $g1) and
($g1/attributs_utilises/attribut/@nom != $g2/attributs_utilises/attribut/@nom)
return
concat($num1,'-',$num2)
)
let $seqPc:=(
for $g1 at $num1 in $c/methodes/methode
for $g2 at $num2 in $c/methodes/methode
where ($g2 != $g1) and
($g1/attributs_utilises/attribut/@nom = $g2/attributs_utilises/attribut/@nom)
return
concat($num1,'-',$num2)
)
return
<LCOM>
{
for $g1 at $num1 in $c/methodes/methode
for $g2 at $num2 in $c/methodes/methode
where $g2 != $g1
return
if ($g1/attributs_utilises/attribut/@nom != $g2/attributs_utilises/attribut/@nom)
then
<Qc>{index-of($seqQc, concat($num1,'-',$num2))}</Qc>
else
<Pc>{index-of($seqPc, concat($num1,'-',$num2))}</Pc>
}
</LCOM> |
Partager