MVC_class_diagram
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{matrix}
\tikzset{>=latex}
\usepackage{lib/tikz-uml}
\begin{document}
\begin{tikzpicture}
\begin{umlpackage}[y = 0, x = -3, fill=green!20]{vista}
\umlclass[rectangle split parts = 1, x=1.25]{AplicacioUB2}{}{}
\umlclass[rectangle split parts = 1, x=7]{IniciadorAplicacioUB}{}{}
\umlimport[]{IniciadorAplicacioUB}{AplicacioUB2}
\end{umlpackage}
\umlclass[rectangle split parts=1, x=-5, y=-6]{File}{}{}
\umlclass[rectangle split parts=1, x=0, y=-6]{Serializable}{}{}
\umlclass[rectangle split parts=1, x=5, y=-6]{ArrayList}{}{}
\umlclass[rectangle split parts=1, x=-6.5, y=-3.5]{ReproductorBasic}{}{}
\umlclass[rectangle split parts=1, x=-3, y=-12.3]{FileIn/OutputStream}{}{}
\umlclass[rectangle split parts=1, x=2.5, y=-12.3]{ObjectIn/OutputStream}{}{}
\umlclass[rectangle split parts=1, x=-6.5, y=0]{Menu}{}{}
\umlclass[rectangle split parts=1, x=-6.5, y=-1]{Scanner}{}{}
\begin{umlpackage}[y=-7.9, x = -5]{model}
\umlclass[rectangle split parts=1, y=0]{FitxerMultimedia}{}{}
\umlclass[rectangle split parts=1, y=-1.5]{FitxerReproduible}{}{}
\umlclass[rectangle split parts=1, y=-3, x=-1.25]{Video}{}{}
\umlclass[rectangle split parts=1, y=-3, x=1.25]{Audio}{}{}
\umlclass[rectangle split parts=1, x=5, y=-1.25]{Dades}{}{}
\umlclass[rectangle split parts=1, x=10]{CarpetaFitxers}{}{}
\umlclass[rectangle split parts=1, x=10, y=-3]{BibliotecaFitxersMultimedia}{}{}
\umlinherit[]{FitxerMultimedia}{File}
\umlreal[]{Dades}{Serializable}
\umlinherit[geometry=|-|]{FitxerReproduible}{FitxerMultimedia}
\umlinherit[]{Video}{FitxerReproduible}
\umlinherit[]{Audio}{FitxerReproduible}
\umlinherit[]{BibliotecaFitxersMultimedia}{CarpetaFitxers}
\umlinherit[]{CarpetaFitxers}{ArrayList}
\umlimport[]{Dades}{BibliotecaFitxersMultimedia}
\umlimport[]{Dades}{Video}
\umlimport[]{Dades}{Audio}
\umlimport[]{Dades}{FileIn/OutputStream}
\umlimport[]{Dades}{ObjectIn/OutputStream}
\end{umlpackage}
\begin{umlpackage}[y=-3.5, x=-1.5, fill=red!20]{controlador}
\umlclass[rectangle split parts=1, x=5]{Controlador}{}{}
\umlclass[rectangle split parts=1, x=0]{Reproductor}{}{}
\end{umlpackage}
\umlimport[]{AplicacioUB2}{Controlador}
\umlimport[xshift=2cm]{AplicacioUB2}{Reproductor}
\umlimport[]{Controlador}{Dades}
\umlinherit[]{Reproductor}{ReproductorBasic}
\umlimport[]{AplicacioUB2}{Menu}
\umlimport[]{AplicacioUB2}{Scanner}
\end{tikzpicture}
\end{document}