Mit
\begin{scope}[shift={($(scope left.north east)+(4cm, 0)$)}, anchor=north west
,local bounding box=scope right]
richtest Du nicht den `scope right` am `scope left` aus. Die Option `anchor=north west` bezieht sich nicht auf `scope right.north west`, sondern wird an den Node `init m1` weitergegeben. Gut erkennen kannst Du das, wenn Du dem Node `init m1` mal versuchsweise den `anchor=south` zuweist.
\begin{scope}[shift={($(scope left.north east)+(4cm, 0)$)}, anchor=north west
,local bounding box=scope right]
\node[model 2,anchor=south] (init m1) {Creation/\\ Initialisation};
\node[model 2] (evo m1) [below of = init m1] {Evolution/\\ Maintenance};
\node[model 2] (qual m1) [below of = evo m1] {Quality\\ Evaluation};
\path (init m1) edge (evo m1)
(evo m1) edge (qual m1)
(qual m1.east) edge[skip hori=10mm] (evo m1.east)
;
\end{scope}
liefert
![alt text][1]
Prinzipiell wäre es einfacher, wenn Du die Positionierung ohne die `scopes` vornehmen würderst. So musst Du aber mindestens den `outer ysep` des obersten Node in der dem `scope right` mit beachten:
\begin{scope}[shift={($(scope left.north east)+(4cm,\pgfkeysvalueof{/pgf/outer ysep})$)}
,anchor=north west,local bounding box=scope right]
![alt text][2]
Zum Zeichnen des Rahmens habe ich den Node `current bounding box` verwendet.
Code:
\documentclass{scrartcl}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\tikzset{
state/.style = {
rectangle, minimum size=6mm, very thick, draw=#1,
rounded corners=4pt,
top color=white,
bottom color=#1!20,
align=center,
},
model 1/.style = {state = orange},
model 2/.style = {state = green},
skip vert/.style = {to path={-- ++(0,#1) -| (\tikztotarget)}},
skip hori/.style = {to path={-- ++(#1,0) |- (\tikztotarget)}},
}
\begin{tikzpicture}[,
node distance=2.0cm,
thick,
every edge/.style={
rounded corners
,draw=black!50
,text=black,font=\sffamily\scriptsize,near end,
thick,
->,
},]
% left model
\begin{scope}[local bounding box=scope left]
\node[model 1] (init m1) {Creation/\\ Initialisation};
\node[model 1] (evo m1) [below of = init m1] {Evolution/\\ Maintenance};
\node[model 1] (qual m1) [below of = evo m1] {Quality\\ Evaluation};
\path (init m1) edge (evo m1)
(evo m1) edge (qual m1)
(qual m1.west) edge[skip hori=-10mm] (evo m1.west)
;
\end{scope}
% right model
\begin{scope}[shift={($(scope left.north east)+(4cm,\pgfkeysvalueof{/pgf/outer ysep})$)}
,anchor=north west,local bounding box=scope right]
\node[model 2] (init m1) {Creation/\\ Initialisation};
\node[model 2] (evo m1) [below of = init m1] {Evolution/\\ Maintenance};
\node[model 2] (qual m1) [below of = evo m1] {Quality\\ Evaluation};
\path (init m1) edge (evo m1)
(evo m1) edge (qual m1)
(qual m1.east) edge[skip hori=10mm] (evo m1.east)
;
\end{scope}
\draw[opacity=.2] (current bounding box.south west) rectangle (current bounding box.north east);
\end{tikzpicture}
\end{document}
[1]: http://texwelt.de/wissen/upfiles/ancsouth.PNG
[2]: http://texwelt.de/wissen/upfiles/outerysep.png