\chapter{Besoins fonctionnels} L'application sera réalisée en PHP (et autres technologies web), et utilisera une base de données gérée par MySQL. \section{Concernant la base de donnée} \subsection{Les éléments à enregistrer} On doit pouvoir enregistrer un ensemble de composants électroniques. Pour l'instant, on a 2 types de composants électronique: \begin{itemize} \item Les Convertisseur Numérique-Analogique (CNA). Ce sont des composants électronique dont la fonction est de générer à partir d'une valeur numérique (codée sur plusieurs bits) une valeur analogique proportionnelle à la valeur numérique codée. Le plus souvent il s'agira de tensions électriques. \item Les Convertisseur Analogique-Numérique (CAN). Il s'agit d'un montage électronique dont la fonction est de générer à partir d'une valeur analogique, une valeur numérique (codée sur plusieurs bits), proportionnelle à la valeur analogique entrée. Le plus souvent il s'agira de tensions électriques. \end{itemize} \subsection{Les caractéristiques des CNA/CAN} Un ensemble de caractéristiques doivent être enregistrées sur les CNA et CAN. Ces caractéristiques sont issues d'un document fournit par le fabriquant. Chaque composant est entré par un utilisateur, et visible par tous les utilisateurs. Il est modifiable et supprimable uniquement par son propriétaire et l'administrateur du système.\\ A chaque composant est associé un nom d'utilisateur (son propriétaire) et une référence. \subsubsection{Caractéristiques idéales} Les CAN et les CNA ont des caractéristiques communes idéales, qui sont fournit par le constructeur.\\ \begin{center} \begin{tabular}{l|l} Nom de la caractéristique & Type \\ \hline Résolution (ou nombre de bit) & entier positif \\ Fréquence d'échantillonnage & réel positif \\ Quantum & réel positif \\ Bande Passante Analogique & intervalle de réel \\ Dynamique de sortie pour le CNA & réel positif \\ Dynamique d'entrée pour le CAN & réel positif \\ Température minimale & réel \\ Température maximale & réel \\ \end{tabular} \end{center} \subsubsection{Caractéristiques mesurées} Les caractéristiques idéales sont globalement des valeurs théoriques. Outre ses caractéristiques, on utilise des valeurs mesurées. \noindent\underline{Communes aux deux convertisseurs}\\ \begin{center} \begin{tabular}{l|l} Nom de la caractéristique & Type \\ \hline Non linéarité intégrale & réel \\ Non linéarité Différentielle & réel \\ Nombre de bits effectifs & réel positif \\ SNR & réel positif \\ SFDR & réel positif \\ THD & réel négatif \\ Puissance consommée & réel positif \\ SINAD & réel positif \\ \end{tabular} \end{center} \\ \noindent\underline{Spécifiques au CNA}\\ Certaines mesures sont spécifiques au CNA.\\ \begin{center} \begin{tabular}{l|l} Nom de la caractéristique & Type \\ \hline SR & réel positif \\ Tn & réel positif \\ Te & réel positif \\ \end{tabular} \end{center} \subsubsection{Caractéristiques annexes} En tant que composant électronique (qu'il s'agisse de CNA ou de CAN), on souhaite enregistrer d'autres types de caractéristiques, lié à la fabrication de composant ou à son equipe de développement.\\ \begin{center} \begin{tabular}{l|l} Nom de la caractéristique & Type \\ \hline Référence & chaîne de caractère alpha-numérique \\ Nom & chaine de caractère alpha-numérique \\ La technologie & élément de l'ensemble: CMOS, MOS, BiPolaire, BiCMOS \\ Les matériaux & élément de l'ensemble: Si, AsGa, Ge \\ L'architecture & chaîne de caractère alpha-numérique \\ Université + équipe de développement & chaîne de caractère alpha-numérique \\ Entreprise & chaîne de caractère alpha-numérique \\ Pays & chaîne de caractère alpha-numérique \\ URL de l'equipe de developpement & chaîne de caractère alpha-numérique \\ Un ou des liens vers des documents & chaîne de caractère alpha-numérique \\ Année + Mois & format date \\ \end{tabular} \end{center} \\ La référence correspond à l'identifiant donné par le fabriquant. Le nom d'un composant est celui utilisé par les utilisateurs. \\ Le composant électronique utilise une technologie bien précise. L'ensemble des technologies est un ensemble fini, et seul l'administrateur sera habilité à ajouter une nouvelle technologie dans cet ensemble. Cependant, un utilisateur peut envoyer une requète à l'administrateur pour ajouter une nouvelle technologie (si le composant qu'il souhaite ajouter l'utilise).\\ Un composant électronique est fabriqué à partir d'un materiau. L'ensemble des matériaux est un ensemble fini, et seul l'administrateur sera habilité à ajouter un nouveau materiau dans cet ensemble. Cependant, un utilisateur peut envoyer une requète à l'administrateur pour ajouter une nouveau materiau (si le composant qu'il souhaite ajouter l'utilise).\\ Un composant électronique a été développé par une équipe universitaire, ou une entreprise. S'il s'agit d'une université, on doit connaitre le nom de l'université, et les noms de l'equipe de développement. S'il s'agit d'une entreprise, le nom de l'entreprise suffit. Il est aussi important de connaitre le pays ou se situe l'université ou l'entreprise, ainsi que l'adresse de son site internet (s'il existe), et la date de mise a disposition du composant (l'année est obligatoire, le mois est facultatif). \\ Les caractéritiques d'un composant électronique sont issues d'une ou plusieurs documents. Ces documents peuvent être disponible dans un format électronique. L'utilisateur qui ajoute un nouveau composant est alors libre de lier son (ses) document(s) au composant. \section{Concernant l'utilisation de la base de données} \subsection{Accès aux fichiers} Les documents enregistrées dans la base de données peuvent être confidentielles, et l'utilisateur ne souhaite peut être pas que ses documents soient visibles ou téléchargeables par les autres utilisateurs. Il existe trois types de protections (ou verrous) applicables à un document:\\ \begin{itemize} \item Publique : la référence au document est visible sur le composant, et tous les utilisateurs peuvent consulter le document. \item Protégé : la présence du document est indiquée à tous les utilisateurs mais il n'est consultable que par le propriétaire. \item Privé : aucune référence au document n'est visible, sauf pour l'utilisateur proprietaire du document. \end{itemize} \\ Pour être sûr qu'un utilisateur n'enregistre pas de document illegal dans la base de donnée du logiciel, l'administrateur aura un droit de regard sur les documents stockés, malgré les verrous. \subsection{Les différents acteurs} Il existe plusieurs types d'acteurs, avec différentes actions possible: \begin{itemize} \item Un administrateur unique, qui peut activer, désactiver ou supprimer des comptes, ajouter un nouveau type de technologie ou de matériaux, et peut se connecter en tant que n'importe quel utilisateur (sans nécéssairement connaitre ses identifiants de connexion). \item Des utilisateurs : ils ont la possibilité d'ajouter des composants dans la base de données, de modifier ou supprimer leurs composants. Ils peuvent poser des verrous sur les documents liés à leurs composants, envoyer des requetes d'ajout de technologies ou de materiaux. A partir de la base de donnée, ils ont la possibilité d'utiliser celle-ci pour générer divers graphiques, à partir des caractéristiques de composant. \end{itemize} Il est nécéssaire d'être identifié en tant qu'utilisateur ou administrateur pour pouvoir utiliser le logiciel.\\ Un nouvel acteur pourra faire sa demande d'activation de compte à l'administrateur. Il renseignera alors les données utile à la création d'un compte (nom d'utilisateur, adresse e-mail, un mot de passe). Le compte sera alors dans un état désactivé, et l'utilisateur ne pourra pas encore acceder au logiciel. L'administrateur sera averti de cette demande d'activation, et pourra changer l'etat du compte. \subsection{Représentation graphique} Un utilistateur identifié peut utiliser le logiciel pour générer un ou plusieurs graphiques. \subsubsection{Les données représentées} Ces graphiques seront des représentations de données, issu de la base de données du logiciel. L'utilisateur choisira les caractéristiques qu'il souhaite utiliser, et pourra appliquer divers fonctions mathématiques de base entre ces caractéristiques. Ces caractéristiques, modifiées ou non, serviront ensuite à générer le graphique voulu. \subsubsection{Le type de graphique utilisé} Les types de graphique disponibles seront uniquement limités par les possibilités de la bibliothèque graphique utilisée par le logiciel. Il s'agira principalement de courbes, d'histogrammes, de camemberts et de graphiques libres (chaque point est représenté par des coordonnées (x, y)). \subsection{La sélection des composants} Les données à représenter sont issues d'une selection de composant dans la base de donnée du logiciel. Cette selection sera le resultat d'une recherche à partir de critère précis, ou d'un choix individuel de l'utilisateur. On utilise la notion de "panier" pour visualiser la selection de composant. L'utilisateur pourra ainsi voir les composants qu'il souhaite utiliser pour générer son graphique. \subsection{Exportation des données} Les informations sélectionnées dans la représentation graphique peuvent être exportées dans différents formats : le format CSV, et un format compatible avec le logiciel Matlab ou Gnuplot. \subsection{Exportation des graphiques} Les graphiques générés pourront être enregistré dans un format "image" par l'utilisateur.