\documentclass[12pt]{article} \usepackage{epsfig} \usepackage{pstricks} \usepackage{pst-node} \usepackage{a4wide} \usepackage{amsmath} \setlength{\oddsidemargin}{-2.5cm} \setlength{\textwidth}{19cm} \pagestyle{empty} \newlength{\BIGlen} \newcommand{\BIGL}[2][0cm]{ \setlength{\BIGlen}{#1} \divide\BIGlen by 2 $\left\}\text{ \rule[-\BIGlen]{0cm}{#1}#2}\right.$} \newcommand{\BIGR}[2][0cm]{ \setlength{\BIGlen}{#1} \divide\BIGlen by 2 $\left\{\text{ \rule[-\BIGlen]{0cm}{#1}#2}\right.$} \begin{document} \begin{pspicture}(19.5,19) \sffamily \psset{linewidth=0.5pt,fillstyle=solid,framesep=0,framesize=2.5 1} % lower box \psframe[linestyle=dotted,linewidth=1pt](0,0.5)(19.5,11) % description boxes \multips(1.5,7)(4.5,0){4}{\psframe(3.5,3.5)} \multirput[b](3.25,10.5)(13.5,0){2}{Description} \pnode(4.3,10.8){D1a} \pnode(4,7){D1b} \rput(3.25,8.75){\epsfig{file=AgriDFD.eps,width=3cm}} \rput[b](7.75,10.5){\rnode{D2a}{Description}} \pnode(8,7){D2b} \rput(7.75,8.75){\epsfig{file=AgriERD.eps,width=3cm}} \rput[b](12.25,10.5){\rnode{D3a}{Description}} \pnode(11.25,7){D3b} \rput(12.25,8.75){\epsfig{file=AgriSQL.eps,width=3cm}} % FIX THIS \pnode(15.7,10.8){D4a} \pnode(16,7){D4b} \rput(16.75,8.75){\epsfig{file=AgriFDD.eps,width=3cm}} \rput[t]{90}(18.6,8.75){elements} % representation boxes \multips(2.5,1)(4,0){4}{\psframe(3,4)} \multips(2.5,2.5)(4,0){4}{\psline(3,0)} \multips(2.5,4.5)(4,0){4}{\psline(3,0)} % DFD \pnode(4,5.5){R1} \rput[b](4,5){Representation} \rput(4,4.75){Proc. modelling} \rput[tl](2.6,4.4){\small \emph{Process}} \rput[r](5.4,3.75){\small \emph{Data flow}} \rput[b](3.5,3.1){\small \emph{Data store}} \rput(4,2.75){G\&S DFD} \psframe[framearc=0.1,fillstyle=none](2.75,1.875)(3.25,2.375) \psline(2.75,2.25)(3.25,2.25) \psline{->}(4,2)(5,2) \psline(4,1.5)(3.25,1.5)(3.25,1.125)(4,1.125) \psline(3.375,1.5)(3.375,1.125) % ER \pnode(8,5.5){R2} \rput[b](8,5){Representation} \rput(8,4.75){ERM} \rput[tr](9.4,4.4){\small \emph{Weak entity}} \rput[l](6.6,3.75){\small \emph{Attribute}} \rput[br](9.4,3.1){\small \emph{Relationship}} \rput(8,2.75){Martin ERD} \psframe[doubleline=true,fillstyle=none](8.5,1.75)(9.25,2.25) \rput[l](6.6,1.75){\small \texttt{emp\_no}} \pscircle(8.25,1.25){0.125} \psline(9,1.375)(9,1.125) \psline(9.25,1.375)(9.125,1.25)(9.25,1.125) \psline(8,1.25)(9.25,1.25) % Relational \pnode(11.25,5.5){R3} \multirput[b](11.25,5)(1.5,0){2}{Rep'n} \rput(12,4.75){Relational} \rput[tl](10.6,4.4){\small \emph{Primary key}} \rput[r](13.4,3.75){\small \emph{Attribute}} \rput[bl](10.6,3.1){\small \emph{Table}} \rput(11.25,2.75){SQL} \rput(11.25,1.75){\epsfig{file=SQLConstructs.eps,width=1.4cm}} \rput(12.75,2.75){QUEL} % FDD \pnode(16,5.5){R4} \rput[b](16,5){Representation} \rput(16,4.75){Functional Dep.} \rput[tr](17.4,4.4){\small \emph{Attribute}} \rput[l](14.6,3.75){\small \emph{Attribute set}} \rput[br](17.4,3.1){\small \emph{Dependency}} \rput(16,2.75){Smith FDD} \rput[tr](17.4,2.4){\small EMP\_NO} \rput(15.25,1.75){\psovalbox{\small A+B}} \psline{->>}(17.25,1.25)(16,1.25) \rput[t]{90}(17.6,4){\small \shortstack{``generic'' \\ constructs}} \rput[t]{90}(17.6,2){\small \shortstack{``specialised'' \\ constructs}} \psline[linewidth=1pt,linestyle=dashed,linecolor=gray](0.5,3)(18.75,3) \psline[linewidth=1pt,linestyle=dashed,linecolor=gray](12,3)(12,0.75) % viewpoint boxes \psframe[linestyle=dotted,linewidth=1pt](4.875,12)(15.125,13.5) \fnode(6.375,12.75){V1} \rput(6.375,12.75){Viewpoint} \fnode(10,12.75){V2} \rput(10,12.75){Viewpoint} \fnode(13.625,12.75){V3} \rput(13.625,12.75){Viewpoint} % perspective boxes \fnode(7,15){P1} \rput(7,15){Perspective} \fnode(10,15){P2} \rput(10,15){Perspective} \fnode(13,15){P3} \rput(13,15){Perspective} \psset{arrows=->,arrowscale=2,framesep=1pt} \rmfamily\small % arrows: descriptions to representations \ncline{D1b}{R1}\ncput*[npos=0.4]{expressed using} \ncline{D2b}{R2}\ncput*[npos=0.4]{expressed using} \ncline{D3b}{R3}\ncput*[npos=0.4]{expressed using} \ncline{D4b}{R4}\ncput*[npos=0.4]{expressed using} % arrows: viewpoints to descriptions \ncline{V2}{D1a} \ncline[nodesepB=0.1]{V2}{D2a} \ncline[nodesepB=0.1]{V2}{D3a} \ncline{V2}{D4a} % arrows: viewpoints to viewpoints \ncline{<->}{V1}{V2} \ncline{<->}{V2}{V3} % arrows: perspectives to viewpoints \ncline{P1}{V1} \ncline{P2}{V2}\ncput*[npos=0.375]{formalised as a} \ncline{P3}{V3} % arrows: real-world blob to perspectives \pnode(8.5,17.5){RWP1} \pnode(10,17.5){RWP2} \pnode(11.5,17.5){RWP3} \ncline{RWP1}{P1} \ncline{RWP2}{P2}\ncput*[npos=0.625]{viewed from several} \ncline{RWP3}{P3} % add other text labels \rput*[tl](0,0.4){\emph{Information system design environment using multiple modelling representations}} \rput*(10,11.5){described by one or more} \rput[r](1.9,2){\emph{scheme}} \rput[r](2.5,2){\BIGR[1.7cm]{}} \rput[r](1.9,4){\emph{technique}} \rput[r](2.5,4){\BIGR[1.7cm]{}} % phenomenon blob \rput(10,17.75){\input{::RWPBlob.tex}}% \rput(10,17.625){\large \textsf{\textbf{Real-world phenomenon}}} \end{pspicture} \end{document}