This structure is used in product design process to define the product architecture.
Its also used in system engineering to get an overview of a product.
\documentclass[tikz]{standalone}
\usepackage{tikz}
\usepackage{tikz-qtree}
\usetikzlibrary{trees} % this is to allow the fork right path
\begin{document}
\begin{tikzpicture}
%Define the function structure
\tikzset{
grow'=right,level distance=25mm, sibling distance =3.5mm,
execute at begin node=\strut,
every tree node/.style={
draw,
rounded corners,
anchor = west,
minimum width=20mm,
text width=18mm,
align=center,
font = {\scriptsize}},
edge from parent/.style={draw, edge from parent fork right}
}
%Draw the function structure (top to bottom)
%distance from root: width of tree
\begin{scope}[frontier/.style={distance from root=75mm}]
\Tree
[.{Overall-\\ Function}
[.{Main-\\ Function A}
[.{Sub-Function\\ A}
\node(f1){Function A};
\node(f2){Function B};
\node(f3){Function C};
]
\node(f4){Function D};
]
[.{Main-\\ Function B}
[.{Sub-Function\\ B}
\node(f5){Function E};
\node(f6){Function F};
\node(f7){Function G};
]
\node(f8){Function H};
]
\node(f9){Function I};
]
\end{scope}
%Define the product structure
\tikzset{grow'=left,
sibling distance =3.85mm,
edge from parent/.style={
draw, edge from parent fork left}
}
%Draw the product structure (bottom up)
%distance from root: width of tree
%xshift/yshift: Shiftoption of right tree
\begin{scope}[
frontier/.style={distance from root=75mm},
xshift=190mm,
yshift=4.9mm]
\Tree
[.{Product}
\node(p8){Part H};
[.{Module A}
[.{Component B}
\node(p7){Part G};
\node(p6){Part F};
\node(p5){Part E};
]
\node(p4){{Part D}};
]
[.{Module B}
[.{Component A}
\node(p3){Part C};
\node(p2){Part B};
\node(p1){Part A};
]
]
]
\end{scope}
%Draw the lines between function and product side
\draw [thick, >=stealth, dashed]
(f1.east)--(p1.west)
(f2.east)--(p2.west)
(f3.east)--(p3.west)
(f3.east)--(p1.west)
(f4.east)--(p4.west)
(f5.east)--(p5.west)
(f6.east)--(p6.west)
(f7.east)--(p7.west)
(f7.east)--(p6.west)
(f8.east)--(p4.west)
(f8.east)--(p5.west)
(f8.east)--(p8.west)
(f9.east)--(p7.west);
%Draw the headlines
\begin{scope}[every node/.style = {rounded corners, font = {\normalsize\bfseries}}]
\node at (5,5) [] {function structure};
\node at (16,5) [rounded corners] {product structure};
\end{scope}
\end{tikzpicture}
\end{document}
