\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\title{Résumé de cas d'utilisation --- Éditer un programme} % à remplacer
\date{} % laisser vide
\author{} % Laisser vide
    \begin{document}

        \maketitle

        \section{Acteurs}
            Programmeur : Il écrit ou modifie un programme à faire exécuter par
            l'interpréteur.

        \section{Objectifs}
            Écrire un nouveau programme ou en modifier un existant dans le
            but de l'exécuter ou de le sauvegarder.

        \section{Pré-conditions, Post-conditions}

            \subsection{Pré-Condtions}
                L'interpréteur LIR est en mode édition. Un code vierge est
                affiché ou un code préexistant est chargé depuis un fichier.

            \subsection{Post-Conditions}
                Le code source édité est prêt à être exécuté, abandonné ou sauvegardé,
                selon l'intention du programmeur.

        \section{Scénario nominal (grandes étapes)}
            \begin{enumerate}
                \item Le programmeur écrit une ligne de code par instruction, en la
                      faisant précéder de son étiquette.

                \item Le programmeur consulte le code déjà écrit à tout moment avec la
                      commande \verb|liste|. Selon la syntaxe choisie, l'interpréteur
                      affiche la plage demandée ou la totalité des lignes de code
                      du programme dans l'ordre croissant des étiquettes.

                \item Le programmeur consulte la liste des identificateurs déclarés et
                      leurs valeurs en entrant la commande \verb|defs|.

                \item Au besoin, le programmeur efface une ou plusieurs lignes avec la
                      commande \verb|efface|.

                \item Au besoin, le programmeur efface les lignes de code et identificateurs
                      mémorisés et commence un nouveau code avec la commande \verb|debut|.
            \end{enumerate}

        \section{Scénarios d'échec}

            \paragraph{Point 2 du scénario nominal :} Aucune ligne de code n'est écrite ou
            la plage de code à afficher n'est pas correcte.
            \begin{itemize}
                \item L'interpréteur en avise le programmeur au moyen d'un message d'erreur.
                \item Retour au point 1.
            \end{itemize}

            \paragraph{Point 3 du scénario nominal :} Aucun identificateur n'a encore été
            déclaré.
            \begin{itemize}
                \item L'interpréteur affiche un message informant le programmeur.
                \item Retour au point 1.
            \end{itemize}

            \paragraph{Point 4 du scénario nominal :} La plage de ligne à effacer est
            incorrecte.
            \begin{itemize}
                \item Un message d'erreur en informe le programmeur
                \item Retour au point 1.
            \end{itemize}


    \end{document}