This answer doesn't add anything to the previous answers regarding the positioning of nodes and arrows. But, just for fun, I added a shape with a folded edge for the last node. Although, I have to admit, it's a bit much for just one bend edge.
The new shape is named document
. It's based on an example from the PGF manual. The folded edge can be on any edge of the node (option document corner
). It has the same anchors as a rectangular node and additionally the anchors north west corner
, north east corner
, south east corner
, and south east corner
to get lines and arrows all the way to the bend corner. (Option blocklast
see complete example below.)
\node [blocklast,shape=document,document corner=south east] (6) at (0,4) {\textbf{Executable Program}};
\node [blocklast,shape=document,document corner=south west] (7) at (5,4) {\textbf{Executable Program}};
\node [blocklast,shape=document,document corner=north west] (8) at (5,2) {\textbf{Executable Program}};
\node [blocklast,shape=document,document corner=north east] (9) at (0,2) {\textbf{Executable Program}};
\draw [latex-latex,thick] (6.south east corner) -- (8.north west corner);
\draw [latex-latex,thick] (7.south west corner) -- (9.north east corner);

The folded edge itself can also be configured (options in picture):

With this, the diagram looks like this:

The code:
\documentclass{article}
\usepackage{tikz}
% the new shape, based on example in
% 101.5.3 Command for Declaring New Shapes
% on page 1039, pgf manual for version 3.0.1a
\makeatletter
% options
\tikzset{%
document corner width/.store in=\dc@width,
document corner height/.store in=\dc@height,
document corner shift/.store in=\dc@shift,
document corner bend/.store in=\dc@bend,
document corner width=18pt,
document corner height=6pt,
document corner shift=3pt,
document corner bend=2pt,
document corner/.is choice,
document corner/north west/.code={\def\dc@corner{0}},
document corner/north east/.code={\def\dc@corner{1}},
document corner/south east/.code={\def\dc@corner{2}},
document corner/south west/.code={\def\dc@corner{3}},
document corner=south east
}
\newdimen\pgf@xd
%\newdimen\pgf@yd
\newdimen\pgf@xe
\newdimen\pgf@ye
\pgfdeclareshape{document}{
\inheritsavedanchors[from=rectangle]
\inheritanchorborder[from=rectangle]
\inheritanchor[from=rectangle]{center}
\inheritanchor[from=rectangle]{mid}
\inheritanchor[from=rectangle]{base}
\inheritanchor[from=rectangle]{north}
\inheritanchor[from=rectangle]{south}
\inheritanchor[from=rectangle]{west}
\inheritanchor[from=rectangle]{east}
\inheritanchor[from=rectangle]{mid west}
\inheritanchor[from=rectangle]{base west}
\inheritanchor[from=rectangle]{mid east}
\inheritanchor[from=rectangle]{base east}
\inheritanchor[from=rectangle]{north west}
\inheritanchor[from=rectangle]{south west}
\inheritanchor[from=rectangle]{north east}
\inheritanchor[from=rectangle]{south east}
% anchors for corners
\anchor{north west corner}{
\southwest
\pgf@xa=\pgf@x
\northeast
\pgf@x=\pgf@xa
\pgf@xa=\dc@width\pgf@xa=0.5\pgf@xa
\pgf@ya=\dc@height\pgf@ya=0.5\pgf@ya
\advance\pgf@x by \pgf@xa
\advance\pgf@y by-\pgf@ya
}
\anchor{north east corner}{
\northeast
\pgf@xa=\dc@width\pgf@xa=0.5\pgf@xa
\pgf@ya=\dc@height\pgf@ya=0.5\pgf@ya
\advance\pgf@x by-\pgf@xa
\advance\pgf@y by-\pgf@ya
}
\anchor{south east corner}{
\northeast
\pgf@xa=\pgf@x
\southwest
\pgf@x=\pgf@xa
\pgf@xa=\dc@width\pgf@xa=0.5\pgf@xa
\pgf@ya=\dc@height\pgf@ya=0.5\pgf@ya
\advance\pgf@x by-\pgf@xa
\advance\pgf@y by \pgf@ya
}
\anchor{south west corner}{
\southwest
\pgf@xa=\dc@width\pgf@xa=0.5\pgf@xa
\pgf@ya=\dc@height\pgf@ya=0.5\pgf@ya
\advance\pgf@x by \pgf@xa
\advance\pgf@y by \pgf@ya
}
\backgroundpath{%
% store lower right in xa/ya and upper right in xb/yb
\southwest \pgf@xa=\pgf@x \pgf@ya=\pgf@y
\northeast \pgf@xb=\pgf@x \pgf@yb=\pgf@y
\ifcase\dc@corner % north west
% compute corner of ‘‘flipped page’’
\pgf@xc=\pgf@xa \advance\pgf@xc by \dc@width
\pgf@yc=\pgf@yb \advance\pgf@yc by-\dc@height
\pgf@xd=\pgf@xc \advance\pgf@xd by-\dc@shift
\pgf@xe=\dc@width \advance\pgf@xe by-\dc@shift \pgf@xe=0.5\pgf@xe % = (\dc@width-\dc@shift)/2
\advance\pgf@xe by \pgf@xa
\pgf@ye=\pgf@yc \advance\pgf@ye by \dc@bend
% construct main path
\pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}}
\pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@yc}}
\pgfpathlineto{\pgfpoint{\pgf@xc}{\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}}
\pgfpathclose
% add little corner
\pgfpathmoveto{\pgfpoint{\pgf@xc}{\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xd}{\pgf@yc}}
\pgfpathquadraticcurveto{\pgfpoint{\pgf@xe}{\pgf@ye}}{\pgfpoint{\pgf@xa}{\pgf@yc}}
\or % north east
% compute corner of ‘‘flipped page’’
\pgf@xc=\pgf@xb \advance\pgf@xc by-\dc@width
\pgf@yc=\pgf@yb \advance\pgf@yc by-\dc@height
\pgf@xd=\pgf@xc \advance\pgf@xd by \dc@shift
\pgf@xe=\dc@width \advance\pgf@xe by-\dc@shift \pgf@xe=0.5\pgf@xe % = (\dc@width-\dc@shift)/2
\advance\pgf@xe by \pgf@xd
\pgf@ye=\pgf@yc \advance\pgf@ye by \dc@bend
% construct main path
\pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}}
\pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xc}{\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yc}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}}
\pgfpathclose
% add little corner
\pgfpathmoveto{\pgfpoint{\pgf@xc}{\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xd}{\pgf@yc}}
\pgfpathquadraticcurveto{\pgfpoint{\pgf@xe}{\pgf@ye}}{\pgfpoint{\pgf@xb}{\pgf@yc}}
\or % south east
% compute corner of ‘‘flipped page’’
\pgf@xc=\pgf@xb \advance\pgf@xc by-\dc@width
\pgf@yc=\pgf@ya \advance\pgf@yc by \dc@height
\pgf@xd=\pgf@xc \advance\pgf@xd by \dc@shift
\pgf@xe=\dc@width \advance\pgf@xe by-\dc@shift \pgf@xe=0.5\pgf@xe % = (\dc@width-\dc@shift)/2
\advance\pgf@xe by \pgf@xd
\pgf@ye=\pgf@yc \advance\pgf@ye by-\dc@bend
% construct main path
\pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@ya}}
\pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yc}}
\pgfpathlineto{\pgfpoint{\pgf@xc}{\pgf@ya}}
\pgfpathclose
% add little corner
\pgfpathmoveto{\pgfpoint{\pgf@xc}{\pgf@ya}}
\pgfpathlineto{\pgfpoint{\pgf@xd}{\pgf@yc}}
\pgfpathquadraticcurveto{\pgfpoint{\pgf@xe}{\pgf@ye}}{\pgfpoint{\pgf@xb}{\pgf@yc}}
\or % south west
% compute corner of ‘‘flipped page’’
\pgf@xc=\pgf@xa \advance\pgf@xc by \dc@width
\pgf@yc=\pgf@ya \advance\pgf@yc by \dc@height
\pgf@xd=\pgf@xc \advance\pgf@xd by-\dc@shift
\pgf@xe=\dc@width \advance\pgf@xe by-\dc@shift \pgf@xe=0.5\pgf@xe % = (\dc@width-\dc@shift)/2
\advance\pgf@xe by \pgf@xa
\pgf@ye=\pgf@yc \advance\pgf@ye by-\dc@bend
% construct main path
\pgfpathmoveto{\pgfpoint{\pgf@xa}{\pgf@yc}}
\pgfpathlineto{\pgfpoint{\pgf@xa}{\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@yb}}
\pgfpathlineto{\pgfpoint{\pgf@xb}{\pgf@ya}}
\pgfpathlineto{\pgfpoint{\pgf@xc}{\pgf@ya}}
\pgfpathclose
% add little corner
\pgfpathmoveto{\pgfpoint{\pgf@xc}{\pgf@ya}}
\pgfpathlineto{\pgfpoint{\pgf@xd}{\pgf@yc}}
\pgfpathquadraticcurveto{\pgfpoint{\pgf@xe}{\pgf@ye}}{\pgfpoint{\pgf@xa}{\pgf@yc}}
\fi
}
}
\makeatother
\begin{document}
\begin{tikzpicture}[%
blocksize/.style={minimum height=2.8em,minimum width=12em},
block/.style={blocksize,draw},
blocklast/.style={blocksize,draw,thick},
blockdots/.style={blocksize}
]
\node [block] at (0,0) (1) {\textbf{Abstract Specification ($R_{0}$)}};
\node [block] at (2,-2) (2) {\textbf{Refined Specification($R_{1}$)}};
\node [blockdots] at (3.7,-3.7) (3) {\dots\dots\dots};
\node [block] at (5.4,-5.4) (4) {\textbf{Refined Specification ($R_{N}$)}};
\node [blocklast,shape=document] at (7.4,-7.4) (5) {\textbf{Executable Program}};
% arroows
\draw [-latex,thick] (1) -- node [right] {\textit{\small Refinement}} (2) ;
\draw [-latex,thick] (2) -- node [right] {\textit{\small Refinement}} (3) ;
\draw [-latex,thick] (3) -- node [right] {\textit{\small Refinement}} (4) ;
\draw [-latex,thick] (4) -- node [right] {\textit{\small Refinement}} (5) ;
\end{tikzpicture}
\end{document}