% \chapter{Présentation du projet}
    \section{Définition générale du besoin : l'Interpréteur LIR}
L’Interpréteur LIR est un interpréteur d’un langage de programmation
simple, il sera nommé LIR pour Langage IUT de Rodez.
Un interpréteur est un automate enchaînant les tâches suivantes :
analyse lexico-syntaxique d’une ligne de commande puis interprétation.
\\Une ligne entrée par un utilisateur sera donc : soit une commande à
exécuter immédiatement, soit une ligne de programme à mémoriser pour
une exécution ultérieure. Une ligne de programme se distinguera d'une
ligne de commande par le fait qu'elle sera toujours précédée d'un
"numéro d'ordre" appelé aussi "étiquette".

\section{Cahier des charges}
Le document en annexe fourni par la maîtrise d’ouvrage (MOA) définit
l’interpréteur attendu avec les éléments du Langage IUT de Rodez, la
syntaxe des instructions de programmation et des commandes générales
attendues dans le logiciel final. Le document précise également le
comportement attendu de l’interpréteur lors de son utilisation suivi
d’un exemple d’une session sous cet interpréteur LIR.

\section{Définitions et acronymes}
\paragraph{Analyse syntaxique :}
La vérification de la conformité aux contraintes syntaxiques
définies par une grammaire.

\paragraph{Analyse lexicale :}
L’identification des éléments du vocabulaire d’un langage dans
une description textuelle (scanning) et la recherche des unités
lexicales (lexèmes).

\paragraph{Grammaire :}
Contraintes syntaxiques définissant les constructions correctes
(autorisées) d’un langage.

\paragraph{Interpréteur :}
Programme capable d’analyser les instructions d’un langage
(évolué) et de les exécuter directement.

\paragraph{Langage :}
Outil de description et d’expression.

\paragraph{Langage IUT de Rodez (LIR)}

\paragraph{Sémantique :}
Étude du sens des unités linguistiques et de leurs combinaisons.
\\Aspect de la logique qui traite de l'interprétation et de la
signification des systèmes formels, par opposition à la syntaxe, entendue
comme l'étude des relations formelles entre formules de tels systèmes
(d’après le dictionnaire Larousse).

\paragraph{Syntaxe :}
Partie de la grammaire qui décrit les règles par lesquelles les unités
linguistiques se combinent en phrases. En logique, étude des relations
formelles entre expressions d'un langage (d’après le dictionnaire
Larousse).
\\Aussi, la syntaxe est spécifiée par des grammaires et des notations
formelles.

\paragraph{Vocabulaire :}
Symboles de base utilisés dans un langage.

\section{Charte de projet}
\subsection{Objectifs du projet}
Réaliser un interpréteur capable d'exécuter un script ou une série
d'instructions dans le langage LIR avec les outils et connaissances
et mis à disposition par l’IUT de Rodez.

\subsection{Périmètre du projet}
Ce projet est doit être mené jusqu'à obtention d’un interpréteur
capable d’exécuter toutes les commandes précisées dans le cahier des
charges fourni.

\subsection{Demandes hors périmètre}
Il n’y a pas de demandes hors périmètre.

\subsection{Principaux livrables identifiés}
\paragraph{Livrables :} plan projet, dossier de projet, CD (de
préférence un dossier compressé plutôt qu’un CD) contenant les codes
exécutables les fichiers de données, les codes sources et la version
numérique du dossier et le manuel utilisateur.

\paragraph{Définition du cadre}
\subparagraph{Coût :} À définir par le chef de projet (P. Debas).
\subparagraph{Délais :} Deux dates butoirs identifiées.
\begin{itemize}
    \item Remise du projet le vendredi 28 mai 2021.
    \item Soutenance du projet la semaine du 7 juin 2021.
\end{itemize}

\subparagraph{Qualité :}
Projet codé en Java dans les respects des conventions et bonnes
pratiques.

\subsection{Les acteurs du projet}

\begin{center}
    \begin{tabular}{rl}
        L'équipe MOE :        & N. CAMINADE, S. COURTIOL, \\
        & P. DEBAS, H. DEXTER,      \\
        & L. VABRE                  \\
        La MOA :              & F. Barrios                \\
        Le contrôle qualité : & F. Barrios et J. Accot    \\
    \end{tabular}
\end{center}

\subsection{Autres moyens et ressources}
Pas de moyens ou ressources supplémentaires.

\subsection{Conditions d’acceptation}
Pas d’exigence ou de contraintes supplémentaires.

\subsection{Principaux risques identifiés et politique de gestion des risques}
Si possible tous les membres du groupe auront les mêmes droits sur
les fichiers communs. En conséquence chaque membre du groupe ne doit
pas donner des droits sur ces fichiers à une personne extérieure au
projet (autre que MOA). Cf. Gestion de la configuration (produit par
S. Courtiol).
\\Des sauvegardes du dépôt GitHub (contenant toutes les données du
projets) seront effectuées régulièrement (fréquence à définir) par le
gestionnaire de configuration. Toutes données qui ne sont pas dans le
dépôt sont à la responsabilité de chacun. Cf. Gestion de la
configuration (produit par S. Courtiol).

\section{Étude générale du besoin}
\paragraph{Diagramme de cas d'utilisation général de l'Interpréteur LIR}
comprenant un acteur (le programmeur) et deux cas d'utilisation
identifiés comme suit :
\\

\includegraphics[width=\linewidth]{./img/DiagrammeCasUtilisation.png}

\subsection{Les acteurs}
\paragraph{Programmeur :} % TODO à détailler
Personne utilisant l'interpréteur.

\subsection{Résumés de cas d'utilisation}
\subsubsection{\Large --- Exécuter une commande}

\input{./fichiers/etudeGeneraleBesoin/resumeCasUtilisation/resumeExecuterUneCommande.tex}

\subsubsection{\Large --- Éditer une ligne de code}

\input{./fichiers/etudeGeneraleBesoin/resumeCasUtilisation/resumeEditerUnProgramme.tex}

\subsection{Récits d'utilisation (user stories)}
Les récits d'utilisation %TODO déf
\\Des récits d'utilisation ont été rédigés pour chaque commande et instruction.

