% \documentclass[11pt,a4paper,twoside]{article} % \usepackage[T1]{fontenc} % \usepackage[applemac]{inputenc} % % \usepackage[latin1]{inputenc} % \usepackage{pst-uml} % \begin{document} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Placement des objet} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\drawClassi}{% \umlClass{Classe1}{% umlClassWidth = 0 \\ (par défaut) \\\hline Attribut2 Tres tres longue ligne \\ \hline Attribut3 \\ \hline % Méthode1% }} \newcommand{\drawClassii}{% \umlClass[umlClassWidth=4cm,umlParameter={\ T\ }]{Classe2}{% largeur = 4cm \\ \hline Attribut2 \\ \hline % Methode1\\ Methode2% }} \newcommand{\drawClassiii}{% \umlClass[umlClassWidth=2.7]{Classe3}{% attribut 1 \\ attribut 1\\ \hline Methode1 \\ Methode2% }} \newcommand{\drawClassiv}{% \umlClass{Classe4}{% MonAttribut 1 \\ MonAttribut 2 \\ \hline Methode1% }} % Classe5 : largeur automatique et titre seul \newcommand{\drawClassv}{% \umlClass[umlClassWidth=0]{Classe5}{}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Placement des objets %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{pspicture}(18,15)\psgrid \rput(3,13){\rnode{Class1}{\drawClassi}} \pnode(17.5,13){pnode1} \rput(9,10){\rnode{Class2}{\drawClassii}} \rput(2,5){\rnode{Class3}{\drawClassiii}} \rput(12,5){\rnode{Class4}{\drawClassiv}} \rput(5.5,5.5){\rnode{Class5}{\drawClassv}} % \rput(16,11){\rnode{Actor1}{\umlActor{Acteur(é) 1}}} \end{pspicture} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Dessin des liens et labels %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % La grande boucle en deux étapes : \ncline{Class1}{pnode1} \ncputicon[npos=0.7,nrot=:U]{umlV} \naput{ncline}\naput[npos=1,ref=r]{Node "P1"} \ncSXE[armA=11.5]{pnode1}{Class3} \nbput{SXE (armA=11.5)} \ncputicon{umlV}% debut \ncputicon[npos=1.9999,nrot=:U]{umlV} \ncputicon[npos=2,nrot=:U]{umlV} \ncputicon[npos=5,nrot=:U]{umlV}% fin ERREUR si nrot=4 ok pour 5!!!! % \ncSE{Class1}{Class2} \naput[npos=1.5]{\{ncSE npos=1.5\}} \ncSE[offset=-1]{Class1}{Class2} \ncputicon{umlAgreg} % debut \ncputicon[npos=2,nrot=:U]{umlCompos}% fin \nbput[npos=0.3]{0..*} \naput[npos=1.8]{0..2} \naput[npos=1.4]{ncSE,offset=-1} % \ncSHS[armA=1.5]{Class2}{Class4}\naput{ncSHS} \ncSHS[armA=1.5]{Class2}{Class3}\nbput{ncSHS} \ncputicon{umlHerit}% héritage au debut \ncputicon[npos=3,nrot=:U]{umlV}% V en fin % \ncSHN[arm=.7]{Class3}{Class4} \naput{ncSHN (3 vers 4)} \ncputicon[npos=1.8,nrot=:U]{umlV}% fleche au milieu vers destination ! % % \ncE[npos=0.4]{Class5}{Class4}\naput{ncE,npos=0.4} \ncE{Class5}{Class4}\naput[npos=0.4]{ncE,npos=0.4} \ncputicon{umlCompos} % % Essai de définition d'un style personnalisé \newpsstyle{umlDependance}{% linestyle=dashed, arrows=->, arrowscale=3, arrowinset=0.6 } \ncline[style=umlDependance,offset=-0.5]{Class3}{Class4} \naput{ncline} \ncputicon{umlV}% fleche au debut \nbput[npos=0.15]{1..*} % % % % On peut coller n'importe quoi par rapport à un node : % % % Essai pour mettre un template sur une classe : prévoir % % % une option du style [umlTemplate=myString] % % \nput*[labelsep=-0.8,offset=1.4]% % % {0}{Class2}{\psframebox% % % [fillstyle=solid,fillcolor=white,linestyle=dashed]% % % {\LARGE\textbf{\ T\ }}} % % % % Lien de Class2 et Class4 vers l'acteur : \ncline[linestyle=dashed]{Class2}{Actor1} \naput{ncline} \ncputicon{umlAgreg} \ncputicon[npos=0.7,nrot=:U]{umlAgreg} \ncputicon[npos=1,nrot=:U]{umlCompos} % en fin % \nccurve[linestyle=dashed, angleA=75,offsetA=-1,angleB=-45]{Class4}{Actor1} \ncputicon{umlHerit} % debut \ncputicon[npos=0.7,nrot=:U]{umlHerit} \ncputicon[npos=1,nrot=:U]{umlHerit}% en fin % \end{document}