This is an attempts where pics
skill is used, requiring tikz 3.0

Code
\documentclass[border=10pt]{standalone}%[12pt,twoside,a4paper]{book}
\usepackage{graphicx,wrapfig,tikz}
\usetikzlibrary{positioning,shapes}
\tikzset{myarrow/.pic = {
\begin{scope}[rotate=-90,scale=0.5]
\draw[fill=black] (-0.5,0) -- (0,0.5)--(0.5,0)--(0.5,1)--
(0,1.5)--(-0.5,1)--(-0.5,0) ;
\end{scope}},
mydot/.pic={
\draw[fill=black,inner sep=0.7pt] circle(5pt);},
myelliB/.pic={
\draw[fill=black,inner sep=0.7pt] ellipse (1em and 0.5em);},
myelli/.pic={
\draw[very thick,inner sep=0.7pt] ellipse (1em and 0.5em);},
rec/.style={draw,minimum height=3em,minimum width=15em,fill=yellow},
}
\begin{document}
\begin{tikzpicture}
\draw (0,0) rectangle (6,6);
\node[] at (3,3) {CMDA::ALDS};
% draw myarrows on the left side
\foreach \i [count=\j from 1] in {5,4,3,2,1} {
\pic () at (-0.5,\i) {myarrow};
\node[xshift=-2cm] at (-1,\i) {input\j};
}
% draw mydots at bottom
\foreach \i [count=\j from 1] in {5,4,3,2,1} {
\pic (b\i) at (\i,0) {mydot};
\draw[] (\j,0)--(\j,-\i)node[right] {variable\j};
}
% draw myarrows on the right
\foreach \i [count=\j from 1] in {5,4} {
\pic () at (5.5,\i) {myarrow};
\node[xshift=2cm] at (6,\i) {output\j};
}
%--------legend
\node[rec] (L) at (11,2){Ledgend};
\node[rec,below=0.1cm of L](L1){RTDB variable};
\node[rec,below=0.1cm of L1](L2) {in all variants};
\node[rec,below=0.1cm of L2](L3){in some variants};
\node[rec,below=0.1cm of L3](L4) {XP variable};
\pic[xshift=-2.3cm] at (L1) {myarrow};
\pic[xshift=-2.cm] at (L2) {myelliB};
\pic[xshift=-2.cm] at (L3) {myelli};
\pic[xshift=-2.cm] at (L4) {mydot};
\end{tikzpicture}
\end{document}
TeX.SX
! An extensive manual forTikZ
is available onTeXdoc
and it also comes with someTeX
distributions by using e.g.texdoc tikz
in the command line (works for a lot of packages). Have you given that a look yet?pstricks
and more specifically withpst-node
.