[Tex/LaTex] How to draw this diagram using TikZ package

tikz-arrowstikz-pgftikz-styles

Please can someone show me how to draw the diagram (photo) using TikZ package.

enter image description here

I just arrived to the following diagram

enter image description here

by using the following code

\documentclass[smallextended]{svjour3}       % onecolumn (second format)
%\documentclass[twocolumn]{svjour3}          % twocolumn
%
\smartqed  % flush right qed marks, e.g. at end of proof
%
\usepackage{graphicx}
\usepackage{lineno,hyperref}
\usepackage{graphicx}
\usepackage{amsfonts, amssymb, amsmath, graphicx, hyperref, etoolbox, algorithm, tikz, algpseudocode, algorithm, algorithmicx, tabu, longtable, mathtools, qtree, xcolor, framed, lipsum, caption}
\allowdisplaybreaks
\usetikzlibrary{arrows,matrix,positioning,shapes,arrows}
\usetikzlibrary{shapes.geometric, arrows, calc, intersections}
\newcommand{\tikznode}[2]{\relax
    \ifmmode%
    \tikz[remember picture,baseline=(#1.base),inner sep=0pt] \node (#1) {$#2$};
    \else
    \tikz[remember picture,baseline=(#1.base),inner sep=0pt] \node (#1) {#2};%
    \fi}

\begin{document}
    \begin{tikzpicture}
    [
    roundnode/.style={circle, draw=green!60, fill=green!5, very thick, minimum size=7mm},
    squarednode/.style={rectangle, draw=black!60, fill=red!5, very thick, minimum size=5mm},
    ]
    %Nodes
    \node[squarednode]      (maintopic)                              {BM};
    \node[squarednode]      (uppersquare)       [above=of maintopic] {MC};
    \node[squarednode]      (rightsquare)       [right=of maintopic] {FM};
    \node[squarednode]      (lowersquare)       [above=of rightsquare] {TM};

    %Lines
    \draw[->] (uppersquare.south) -- (maintopic.north);
    \draw[->] (maintopic.east) -- (rightsquare.west);
    \draw[->] (rightsquare.north) -- (lowersquare.south);
    \draw[->] (uppersquare.east) -- (lowersquare.west);
    %\draw[->] (rightsquare.south) .. controls +(down:7mm) and +(right:7mm) .. (lowercircle.east);
    \end{tikzpicture}
\end{document}

Best Answer

a bit shorter code, exploiting TikZ libraries arrows.meta and quotes:

\documentclass[smallextended]{svjour3}
\usepackage{tikz}
\usetikzlibrary{arrows.meta,    % <---
                positioning,
                quotes}         % <---

\begin{document}
    \begin{tikzpicture}[
     node distance = 12mm and 24mm,
squarednode/.style = {draw=black!60,
                      very thick,
                      align=center,
                      minimum width=15mm,
                      minimum height=7mm,
                      font=\itshape},
       every edge/.style = {draw, -Triangle},       % <---
every edge quotes/.style = {auto=right,
                            font=\small\sffamily}   % <---
                        ]
% nodes
\begin{scope}[every node/.style = {squarednode}]    % <---
    \node   (n11)                   {MC};
    \node   (n12) [right=of n11]    {TM};
    \node   (n21) [below=of n11]    {BM};
    \node   (n22) [below=of n12]    {FM};
\end{scope}
% conection
    \draw   (n11) edge                  (n12)       % <---
            (n11) edge["Algorithm 1"]   (n21)
            (n21) edge["Algorithm 2"]   (n22)
            (n22) edge["Algorithm 3"]   (n12);
    \end{tikzpicture}
\end{document}

enter image description here