0

I am making an UML diagram using tikz-uml style. But it throws the following error, while developing the association relationship. I have used \umlactor and \umlusecase options to generate the actors and use cases. But found difficulty to generate the association relationship between the actors and use cases. I don't know how to resolve it, as because i am new to tikz. Any help is appreciated. The diagram will run smoothly, provided that the \umlassoc tags are commented. What is this error about Package pgf Error: No shape named usecase-3 is known. \umlassoc{E}{usecase-3}?

The MWE is as follows.

\documentclass[conference]{IEEEtran}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usepackage{tikz-uml}
\usetikzlibrary{shapes,arrows}
\begin{document}
\begin{figure}
\begin{center}
\begin{tikzpicture}  
\begin{umlsystem}[x=0,y=2.5]{SYSTEM} 
\umlusecase[x=0,y=-4]{usecase-3} 
\umlusecase[x=0,y=-2]{use case2}
\end{umlsystem}  

\umlactor[x=-3, y=-.1, anchor=east]{D}  
\umlactor[x=-2, y=-3, anchor=north]{S}  
\umlactor[x=2, y=-3, anchor=north]{E} 
\umlactor[x=-2, y=3]{T}
\umlactor[x=2, y=3]{I}

\umlassoc{E}{usecase-3} 

\end{tikzpicture}
\end{center}
\caption{High Level.}
\end{figure}
\end{document}
1

According to the documentation of the tikz-uml package, you have to use the automatic number given by the package (see here):

The text argument is the label of the use case. The node representing the use case has a default name, based on a global counter, that is like usecase-17. For pratical reasons, you can rename it thanks to the name option.

For this reason, you should name your use cases by using the name argument for it or use usecase-1 in your case:

\documentclass[conference]{IEEEtran}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usepackage{tikz-uml}
\usetikzlibrary{shapes,arrows}
\begin{document}
\begin{figure}
\begin{center}
\begin{tikzpicture}  
\begin{umlsystem}[x=0,y=2.5]{SYSTEM} 
\umlusecase[x=0,y=-4,name=usecase3]{usecase-3} 
\umlusecase[x=0,y=-2]{use case2}
\end{umlsystem} 

\umlactor[x=-3, y=-.1, anchor=east]{D}  
\umlactor[x=-2, y=-3, anchor=north]{S}  
\umlactor[x=2, y=-3, anchor=north]{E} 
\umlactor[x=-2, y=3]{T}
\umlactor[x=2, y=3]{I}

\umlassoc{E}{usecase3}
% or \umlassoc{E}{usecase-1}, if you remove the name argument from the usecase

\end{tikzpicture}
\end{center}
\caption{High Level.}
\end{figure}
\end{document}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.