TransWikia.com

How can I construct a waterfall model diagram by LaTeX in Beamer?

TeX - LaTeX Asked by Ali Mansour on February 17, 2021

I need to construct a Waterfall model diagram like these:

waterfall1

waterfall2

2 Answers

An alternative to Gernot nice answer, in which is employed chains TikZ library and connection between nodes are establish in a loop:

documentclass[tikz, margin=3mm]{standalone}
usepackage{}
usetikzlibrary{chains,positioning,shadows}

begin{document}
    begin{tikzpicture}[>=stealth,
    node distance = 3mm and 3mm,
      start chain = A going below right,
every node/.style = {draw, text width=24mm, minimum height=12mm, align=center,
                     inner sep=1mm, fill=white, drop shadow={fill=black},  on chain=A},
                        ]
node {Requirements}; % A-1
node {Design};
node {Coding and unit test};
node {System integration};
node {Operation and maintenance};
%
foreach i [count=j] in {2,...,5}
{
  draw[->, thick] (A-i) -| (A-j);
  draw[->, thick] (A-j) -| (A-i);
}
end{tikzpicture}
end{document}

enter image description here

Correct answer by Zarko on February 17, 2021

enter image description here

documentclass[border=2mm]{standalone}
usepackage{tikz}
usetikzlibrary{positioning}
begin{document}
tikzset
  {phase/.style={draw,minimum width=2cm,minimum height=1.3cm,align=center}
  ,previous/.style={below right=0.5cm of #1}
  }
newcommandconnect[2]%
  {draw[->,thick] (#1) -| (#2);
   draw[->,thick] (#2) -| (#1);
  }
begin{tikzpicture}[>=stealth]
  node[phase]                       (requirements) {Requirements};
  node[phase,previous=requirements] (design)       {Design};
  node[phase,previous=design]       (coding)       {Coding andunit test};
  node[phase,previous=coding]       (integration)  {Systemintegration};
  node[phase,previous=integration]  (operation)    {Operation andmaintenance};
  connect{requirements}{design};
  connect{design}{coding};
  connect{coding}{integration};
  connect{integration}{operation};
end{tikzpicture}
end{document}

enter image description here

documentclass[border=2mm]{standalone}
usepackage{tikz}
usetikzlibrary{positioning}
begin{document}
tikzset
  {phase/.style={draw,minimum width=2cm,minimum height=1.3cm,align=center}
  ,previous/.style={below right=0.5cm of #1}
  }
newcommandconnect[2]%
  {draw[->,thick] (#1.east) to[out=0,in=90] (#2.north);
   draw[->,thick] (#2.west) to[out=180,in=270] (#1.south);
  }
begin{tikzpicture}[>=stealth]
  node[phase]                       (requirements) {Requirements};
  node[phase,previous=requirements] (design)       {Design};
  node[phase,previous=design]       (coding)       {Coding andunit test};
  node[phase,previous=coding]       (integration)  {Systemintegration};
  node[phase,previous=integration]  (operation)    {Operation andmaintenance};
  connect{requirements}{design};
  connect{design}{coding};
  connect{coding}{integration};
  connect{integration}{operation};
end{tikzpicture}
end{document}

Answered by gernot on February 17, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP