
\section{Conception d'un logiciel}

\begin{frame}{\large \insertsection}
    \begin{block}{Quoi-qu'est-ce ?}
        \begin{itemize}
            \item "plan du code" (diagrammes de classes…) 
            \item au début du projet, permet de prévoir le code à écrire
            \item pendant le projet, permet de suivre l'avancée du projet
            \item à la fin du projet, permet de documenter le code (maintenance)\\
            $\rightarrow$ doit correspondre aux fonctionnalités prévues et au code réel
        \end{itemize}
    \end{block} 
\end{frame}

\begin{frame}{\large \insertsection}
    \begin{block}{En pratique}
        \begin{itemize}
            \item représentation graphique + explications 
            \item si possible, utiliser un formalisme classique (UML)
            \item utiliser plusieurs niveaux d'abstraction (vue d'ensemble, vues détaillées)
        \end{itemize}
    \end{block} 
\end{frame}

\begin{frame}{\large \insertsection}
    \begin{block}{Étape de conception}
        \begin{itemize}
            \item étape \textbf{très importante}, à faire avant le développement
            \item évite "d'avoir à tout casser" au cours du développement
            \item permet de répartir le travail et de planifier plus finement
        \end{itemize}
    \end{block} 
\end{frame}



\begin{frame}{\large \insertsection}
    \begin{block}{Quelques conseils}
        \begin{itemize}
            \item faire simple, logique, classique (MVC, design patterns…)
            \item granularité : ne pas trop détailler sauf si important/incertain/complexe
            \item vérifier \textbf{a priori} que la conception permet d'implémenter les fonctionnalités prévues dans le cahier des charges
        \end{itemize}
    \end{block} 
\end{frame}


