commit
e7a9b1a7cf
28 changed files with 1610 additions and 0 deletions
@ -0,0 +1,233 @@ |
|||
|
|||
# Created by https://www.gitignore.io/api/latex |
|||
|
|||
### LaTeX ### |
|||
## Core latex/pdflatex auxiliary files: |
|||
*.aux |
|||
*.lof |
|||
*.log |
|||
*.lot |
|||
*.fls |
|||
*.out |
|||
*.toc |
|||
*.fmt |
|||
*.fot |
|||
*.cb |
|||
*.cb2 |
|||
|
|||
## Intermediate documents: |
|||
*.dvi |
|||
*.xdv |
|||
*-converted-to.* |
|||
# these rules might exclude image files for figures etc. |
|||
# *.ps |
|||
# *.eps |
|||
# *.pdf |
|||
|
|||
## Generated if empty string is given at "Please type another file name for output:" |
|||
.pdf |
|||
|
|||
## Bibliography auxiliary files (bibtex/biblatex/biber): |
|||
*.bbl |
|||
*.bcf |
|||
*.blg |
|||
*-blx.aux |
|||
*-blx.bib |
|||
*.run.xml |
|||
|
|||
## Build tool auxiliary files: |
|||
*.fdb_latexmk |
|||
*.synctex |
|||
*.synctex(busy) |
|||
*.synctex.gz |
|||
*.synctex.gz(busy) |
|||
*.pdfsync |
|||
*Notes.bib |
|||
|
|||
## Auxiliary and intermediate files from other packages: |
|||
# algorithms |
|||
*.alg |
|||
*.loa |
|||
|
|||
# achemso |
|||
acs-*.bib |
|||
|
|||
# amsthm |
|||
*.thm |
|||
|
|||
# beamer |
|||
*.nav |
|||
*.pre |
|||
*.snm |
|||
*.vrb |
|||
|
|||
# changes |
|||
*.soc |
|||
|
|||
# cprotect |
|||
*.cpt |
|||
|
|||
# elsarticle (documentclass of Elsevier journals) |
|||
*.spl |
|||
|
|||
# endnotes |
|||
*.ent |
|||
|
|||
# fixme |
|||
*.lox |
|||
|
|||
# feynmf/feynmp |
|||
*.mf |
|||
*.mp |
|||
*.t[1-9] |
|||
*.t[1-9][0-9] |
|||
*.tfm |
|||
|
|||
#(r)(e)ledmac/(r)(e)ledpar |
|||
*.end |
|||
*.?end |
|||
*.[1-9] |
|||
*.[1-9][0-9] |
|||
*.[1-9][0-9][0-9] |
|||
*.[1-9]R |
|||
*.[1-9][0-9]R |
|||
*.[1-9][0-9][0-9]R |
|||
*.eledsec[1-9] |
|||
*.eledsec[1-9]R |
|||
*.eledsec[1-9][0-9] |
|||
*.eledsec[1-9][0-9]R |
|||
*.eledsec[1-9][0-9][0-9] |
|||
*.eledsec[1-9][0-9][0-9]R |
|||
|
|||
# glossaries |
|||
*.acn |
|||
*.acr |
|||
*.glg |
|||
*.glo |
|||
*.gls |
|||
*.glsdefs |
|||
|
|||
# gnuplottex |
|||
*-gnuplottex-* |
|||
|
|||
# gregoriotex |
|||
*.gaux |
|||
*.gtex |
|||
|
|||
# hyperref |
|||
*.brf |
|||
|
|||
# knitr |
|||
*-concordance.tex |
|||
# TODO Comment the next line if you want to keep your tikz graphics files |
|||
*.tikz |
|||
*-tikzDictionary |
|||
|
|||
# listings |
|||
*.lol |
|||
|
|||
# makeidx |
|||
*.idx |
|||
*.ilg |
|||
*.ind |
|||
*.ist |
|||
|
|||
# minitoc |
|||
*.maf |
|||
*.mlf |
|||
*.mlt |
|||
*.mtc[0-9]* |
|||
*.slf[0-9]* |
|||
*.slt[0-9]* |
|||
*.stc[0-9]* |
|||
|
|||
# minted |
|||
_minted* |
|||
*.pyg |
|||
|
|||
# morewrites |
|||
*.mw |
|||
|
|||
# nomencl |
|||
*.nlo |
|||
|
|||
# pax |
|||
*.pax |
|||
|
|||
# pdfpcnotes |
|||
*.pdfpc |
|||
|
|||
# sagetex |
|||
*.sagetex.sage |
|||
*.sagetex.py |
|||
*.sagetex.scmd |
|||
|
|||
# scrwfile |
|||
*.wrt |
|||
|
|||
# sympy |
|||
*.sout |
|||
*.sympy |
|||
sympy-plots-for-*.tex/ |
|||
|
|||
# pdfcomment |
|||
*.upa |
|||
*.upb |
|||
|
|||
# pythontex |
|||
*.pytxcode |
|||
pythontex-files-*/ |
|||
|
|||
# thmtools |
|||
*.loe |
|||
|
|||
# TikZ & PGF |
|||
*.dpth |
|||
*.md5 |
|||
*.auxlock |
|||
|
|||
# todonotes |
|||
*.tdo |
|||
|
|||
# easy-todo |
|||
*.lod |
|||
|
|||
# xindy |
|||
*.xdy |
|||
|
|||
# xypic precompiled matrices |
|||
*.xyc |
|||
|
|||
# endfloat |
|||
*.ttt |
|||
*.fff |
|||
|
|||
# Latexian |
|||
TSWLatexianTemp* |
|||
|
|||
## Editors: |
|||
# WinEdt |
|||
*.bak |
|||
*.sav |
|||
|
|||
# Texpad |
|||
.texpadtmp |
|||
|
|||
# Kile |
|||
*.backup |
|||
|
|||
# KBibTeX |
|||
*~[0-9]* |
|||
|
|||
# auto folder when using emacs and auctex |
|||
/auto/* |
|||
|
|||
# expex forward references with \gathertags |
|||
*-tags.tex |
|||
|
|||
### LaTeX Patch ### |
|||
# glossaries |
|||
*.glstex |
|||
|
|||
|
|||
# End of https://www.gitignore.io/api/latex |
|||
|
After Width: | Height: | Size: 79 KiB |
@ -0,0 +1,169 @@ |
|||
\NeedsTeXFormat{LaTeX2e} |
|||
\ProvidesPackage{MyPack2} |
|||
|
|||
%%%%%%%% INCLUSIONS GÉNÉRALES %%%%%%%%% |
|||
\RequirePackage{babel} |
|||
%\RequirePackage{titlesec} |
|||
\RequirePackage{color} |
|||
%\RequirePackage[a4paper]{geometry} |
|||
\RequirePackage[font=small,format=plain,labelfont=bf,up, |
|||
textfont=normal,up, |
|||
justification=justified, |
|||
singlelinecheck=false]{caption} |
|||
\RequirePackage[justification=centering]{caption} |
|||
\RequirePackage{xcolor} % Required for specifying custom colours |
|||
\definecolor{grey}{rgb}{0.9,0.9,0.9} % Colour of the box surrounding the title |
|||
\RequirePackage[utf8]{inputenc} % Required for inputting international characters |
|||
|
|||
\RequirePackage[T1]{fontenc} |
|||
% \RequirePackage[sfdefault]{ClearSans} % Use the Clear Sans font (sans serif) |
|||
\RequirePackage{placeins} |
|||
\RequirePackage{listings} |
|||
\RequirePackage{graphicx} |
|||
\RequirePackage{amsfonts} |
|||
|
|||
|
|||
\definecolor{defaultColor}{RGB}{0,100,143} |
|||
\definecolor{bleu}{RGB}{0,100,143} |
|||
\definecolor{gris}{RGB}{130,130,140} |
|||
\definecolor{grisBleu}{RGB}{65,115,141} |
|||
|
|||
|
|||
|
|||
%%%%%%%% MATH %%%%%%%%% |
|||
\RequirePackage{stmaryrd} |
|||
\newcommand*\intervalleEntier[2]{\intervalle{\llbracket}{#1}{#2}{\rrbracket}} |
|||
\newcommand*\intervalle[4]{\left#1 #2 \, ; #3 \right#4} |
|||
\newcommand*\intervalleOO[2]{\intervalle{]}{#1}{#2}{[}} |
|||
\newcommand*\intervalleFF[2]{\intervalle{[}{#1}{#2}{]}} |
|||
\newcommand*\intervalleOF[2]{\intervalle{]}{#1}{#2}{]}} |
|||
\newcommand*\intervalleFO[2]{\intervalle{[}{#1}{#2}{[}} |
|||
|
|||
\let\ensembleNombre\mathbb |
|||
\newcommand*\N{\ensembleNombre{N}} |
|||
\newcommand*\Z{\ensembleNombre{Z}} |
|||
\newcommand*\Q{\ensembleNombre{Q}} |
|||
\newcommand*\R{\ensembleNombre{R}} |
|||
\newcommand*\C{\ensembleNombre{C}} |
|||
|
|||
\newcommand*\enstq[2]{\left\{#1,\; #2\right\}} |
|||
|
|||
%\newcommand*\int[1]{\left\lfloor #1\right\rfloor} |
|||
%\newcommand*\norme[1]{\left\lVert#1\right\rVert} |
|||
%\newcommand*\abs[1]{\left\lvert#1\right\rvert} |
|||
|
|||
\let\vecteur\overrightarrow |
|||
|
|||
\newcommand*\Sys[1]{\left\{ \begin{aligned} #1 \end{aligned} \right. \kern-\nulldelimiterspace} |
|||
|
|||
\newcommand*\application[5]{ |
|||
#1 \colon |
|||
\begin{alignedat}{2}  &\to \\ |
|||
 &\mapsto  |
|||
\end{alignedat} |
|||
} |
|||
\newcommand*\applicationSigne[3]{ |
|||
#1 \colon #2 \to #3 |
|||
} |
|||
|
|||
\newtheorem{defi}{Définition}[section] |
|||
\newtheorem{theo}{Théorème}[section] |
|||
\newtheorem{prop}{Proposition}[section] |
|||
\newtheorem{ex}{Exemple}[section] |
|||
|
|||
|
|||
%%%%%%%% SECTIONNEMENT %%%%%%%%% |
|||
|
|||
%\renewcommand{\thesection}{\Roman{section}} |
|||
%\renewcommand{\thesubsection}{\arabic{subsection}} |
|||
|
|||
%\renewcommand{\@seccntformat}[1]{ |
|||
% \llap{ |
|||
% \textcolor{defaultColor}{\csname the#1\endcsname} |
|||
% \hspace{1em} |
|||
% } |
|||
%} |
|||
%\renewcommand{\section}{ |
|||
% \@startsection{section}{1}{0pt} |
|||
% {0pt} |
|||
% {0pt} |
|||
% {\normalfont\large\bfseries\llap} |
|||
%} |
|||
|
|||
|
|||
\newcommand*\emptyPage{\newpage\null\thispagestyle{empty}\addtocounter{page}{-1}\newpage} |
|||
|
|||
%%%%%%%% INTIALISATION DE LA PAGE %%%%%%%%% |
|||
\RequirePackage{fancyhdr} |
|||
\newcommand\initPage[3]{ |
|||
\pagestyle{fancy} |
|||
\fancyhead{#1} |
|||
\lhead{#2} |
|||
\rhead{#3} |
|||
\rfoot{} |
|||
\lfoot{\includegraphics[scale=0.2]{CSLogo}} |
|||
|
|||
%\titleformat*{\section}{\Large\bfseries\color{bleu}\Roman{section}} |
|||
%\titleformat*{\subsection}{\large\bfseries\color{grisBleu}} |
|||
%\titleformat*{\subsubsection}{\bfseries\color{gris}} |
|||
%\titlespacing*{\section}{-3em}{*1}{*1} |
|||
%\titlespacing*{\subsection}{-2em}{*1}{*1} |
|||
%\titlespacing*{\subsubsection}{-1em}{*1}{*1} |
|||
|
|||
} |
|||
|
|||
%%%%%%%% TITRE %%%%%%%%M |
|||
\renewcommand{\maketitle}{ |
|||
\begin{titlepage} % Suppresses displaying the page number on the title page and the subsequent page counts as page 1 |
|||
%------------------------------------------------ |
|||
% Grey title box |
|||
%------------------------------------------------ |
|||
\topskip0pt |
|||
\vspace*{5cm} |
|||
\colorbox{grey}{ |
|||
\parbox[t]{0.93\textwidth}{ % Outer full width box |
|||
\parbox[t]{0.91\textwidth}{ % Inner box for inner right text margin |
|||
\raggedleft % Right align the text |
|||
\fontsize{72pt}{80pt}\selectfont % Title font size, the first argument is the font size and the second is the line spacing, adjust depending on title length |
|||
\vspace{1cm} % Space between the start of the title and the top of the grey box |
|||
|
|||
\@title |
|||
|
|||
\vspace{1cm} % Space between the end of the title and the bottom of the grey box |
|||
} |
|||
} |
|||
} |
|||
|
|||
\vfill % Space between the title box and author information |
|||
|
|||
%------------------------------------------------ |
|||
% Author name and information |
|||
%------------------------------------------------ |
|||
|
|||
\parbox[t]{0.93\textwidth}{ % Box to inset this section slightly |
|||
\raggedleft % Right align the text |
|||
\large % Increase the font size |
|||
{\Large \@author}\\[4pt] % Extra space after name |
|||
|
|||
\hfill\rule{0.2\linewidth}{1pt}\\% Horizontal line, first argument width, second thickness |
|||
\@date |
|||
} |
|||
|
|||
\end{titlepage} |
|||
|
|||
\emptyPage |
|||
} |
|||
|
|||
|
|||
|
|||
%%%%%%%% FIN DU DOCUMENT %%%%%%%%% |
|||
|
|||
\newcommand{\roadMap}{ |
|||
\clearpage |
|||
\listoffigures |
|||
\clearpage |
|||
\listoftables |
|||
} |
|||
|
|||
% Fin du package |
|||
\endinput |
|||
Binary file not shown.
@ -0,0 +1,53 @@ |
|||
\include{macroTL} |
|||
\title{Génie logiciel \\ -- \\TD4 - Questions complémentaires} |
|||
\author{\bsc{Pietri} Yoann (A11)\\\bsc{Levy--Falk} Hugo (A11)} |
|||
\date{Mars 2018} |
|||
\usepackage{mathrsfs} |
|||
\usepackage{MyPack2} |
|||
\usepackage{pdftexcmds} |
|||
\usepackage{minted} |
|||
\begin{document} |
|||
\maketitle |
|||
\initPage{TL de Génie Logiciel}{\today}{\bsc{Pietri} Yoann, \bsc{Levy--Falk} Hugo} |
|||
\tableofcontents |
|||
\newpage |
|||
\section{lecture dans un fichier et transformation d'une chaîne de caractères} |
|||
Classe \mintinline{java}{Utilitaire} : |
|||
\inputminted{java}{questioncomplementaire/Utilitaire.java} |
|||
|
|||
\section{Codage complet des classes Morse et Cesar} |
|||
|
|||
\subsection{Classe \mintinline{java}{Cesar}} |
|||
\inputminted{java}{questioncomplementaire/Cesar.java} |
|||
|
|||
\subsection{Classe \mintinline{java}{Morse}} |
|||
\inputminted{java}{questioncomplementaire/Morse.java} |
|||
|
|||
|
|||
\section{Mesure des temps d'exécution} |
|||
|
|||
Classe \mintinline{java}{Comparateur} : |
|||
\inputminted{java}{questioncomplementaire/Comparateur.java} |
|||
|
|||
\section{Utilisation d'un patron pour ajouter un algorithme existant} |
|||
|
|||
Classe \mintinline{java}{CodageAClef} : |
|||
\inputminted{java}{questioncomplementaire/CodageAClef.java} |
|||
|
|||
\section{Codage d'Huffman} |
|||
|
|||
Classe \mintinline{java}{Huffman} : |
|||
\inputminted{java}{questioncomplementaire/Huffman.java} |
|||
|
|||
\section{Documentation} |
|||
\subsection{Classe \mintinline{java}{Noeud}} |
|||
\inputminted{java}{questioncomplementaire/Noeud.java} |
|||
\subsection{Classe \mintinline{java}{Arbre}} |
|||
\inputminted{java}{questioncomplementaire/Noeud.java} |
|||
\subsection{Classe \mintinline{java}{HuffmanCode}} |
|||
\inputminted{java}{questioncomplementaire/Noeud.java} |
|||
|
|||
\section{Sauvegarde des résultats} |
|||
Voir la classe \mintinline{java}{Comparateur} dans la section "Mesure des temps d'exécution". |
|||
|
|||
\end{document} |
|||
Binary file not shown.
@ -0,0 +1,60 @@ |
|||
\include{macroTL} |
|||
\title{Génie logiciel \\ -- \\TD4} |
|||
\author{\bsc{Pietri} Yoann (A11)\\\bsc{Levy--Falk} Hugo (A11)} |
|||
\date{Mars 2018} |
|||
\usepackage{mathrsfs} |
|||
\usepackage{MyPack2} |
|||
\usepackage{pdftexcmds} |
|||
\usepackage{minted} |
|||
\begin{document} |
|||
\maketitle |
|||
\initPage{TL de Génie Logiciel}{\today}{\bsc{Pietri} Yoann, \bsc{Levy--Falk} Hugo} |
|||
\tableofcontents |
|||
\newpage |
|||
\section{Lecture d'une chaîne de caractères dans un fichier} |
|||
Le mot clé \mintinline{java}{static} permet d'appeler la méthode \mintinline{java}{lireTexte} sans avoir besoin d'instancier d'objet de la classe \mintinline{java}{Utilitaire}. |
|||
|
|||
Code source de la classe Comparateur : |
|||
|
|||
\inputminted{java}{td4/question1/comparateur.java} |
|||
|
|||
\section{Implémentation de l'architecture logicielle} |
|||
|
|||
\subsection{Code source de la classe \mintinline{java}{Comparateur}} |
|||
\inputminted{java}{td4/question2/Comparateur.java} |
|||
|
|||
\subsection{Code source de la classe \mintinline{java}{AlgoCodage}} |
|||
\inputminted{java}{td4/question2/AlgoCodage.java} |
|||
|
|||
\subsection{Code source de la classe \mintinline{java}{Cesar}} |
|||
\inputminted{java}{td4/question2/Cesar.java} |
|||
|
|||
\section{Utilisation d'un patron pour ajouter un algorithme existant} |
|||
Les classe \mintinline{java}{EncodeurAClef} ne possède pas les méthodes \mintinline{java}{encode} et \mintinline{java}{décode}, mais possède des méthodes \mintinline{java}{chiffre} et \mintinline{java}{déchiffre}. De plus il n'hérite pas de \mintinline{java}{AlgoCodage}. La solution est d'utiliser le patron adaptateur. |
|||
|
|||
La figure \ref{fig:rationalrose} montre le diagramme \bsc{UML} de l'application. |
|||
|
|||
\begin{figure}[h!] |
|||
\centering |
|||
\includegraphics[width=0.7\linewidth]{td4/question3/rational_rose} |
|||
\caption{Diagramme UML} |
|||
\label{fig:rationalrose} |
|||
\end{figure} |
|||
|
|||
Le code à ajouter dans la classe comparateur est alors: |
|||
\begin{minted}{java} |
|||
algoAComparer.add(new AdapteEncodeurAClef("mon secret")); |
|||
algoAComparer.add(new AdapteEncodeurAClef("")); |
|||
\end{minted} |
|||
|
|||
\section{Tests unitaires pour codage d'Huffman} |
|||
Code source de la classe \mintinline{java}{ArbreTest} : |
|||
\inputminted{java}{td4/question4/ArbreTest.java} |
|||
|
|||
\section{Documentation} |
|||
Code source de la classe Feuille : |
|||
\inputminted{java}{td4/question5/Feuille.java} |
|||
|
|||
\clearpage |
|||
\listoffigures |
|||
\end{document} |
|||
@ -0,0 +1,40 @@ |
|||
%%% Macro TL |
|||
%% Documentclass |
|||
\documentclass[a4paper,titlepage]{article} |
|||
|
|||
%% Packages |
|||
|
|||
% Caractères et encodage |
|||
\usepackage[utf8]{inputenc} |
|||
\usepackage[francais]{babel} |
|||
\usepackage{amsmath,amsfonts,amssymb} |
|||
|
|||
% Tikz |
|||
\usepackage{tikz} |
|||
%\usepackage{tkz-tab} |
|||
|
|||
% Pour les circuits électriques |
|||
%\usepackage{circuitikz} |
|||
|
|||
% Pour les figures |
|||
\usepackage{float} |
|||
|
|||
% Pour les tableaux |
|||
\usepackage{tabularx} |
|||
|
|||
% Pour les unités |
|||
\usepackage{siunitx} |
|||
|
|||
% Geometrie |
|||
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry} |
|||
|
|||
% Pour le code |
|||
\usepackage{moreverb} |
|||
|
|||
% Pour les couleurs |
|||
\usepackage{colortbl} |
|||
|
|||
%% Commandes utiles |
|||
\usepackage{fancyhdr} |
|||
\pagestyle{fancy} |
|||
|
|||
@ -0,0 +1,19 @@ |
|||
package questioncomplementaire; |
|||
|
|||
public abstract class AlgoCodage { |
|||
|
|||
protected String nom; |
|||
|
|||
public abstract String encode(String s); |
|||
|
|||
public abstract String decode(String s); |
|||
|
|||
public String getNom() { |
|||
return nom; |
|||
} |
|||
|
|||
@Override |
|||
public abstract String toString(); |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,82 @@ |
|||
package questioncomplementaire; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.PriorityQueue; |
|||
|
|||
public abstract class Arbre implements Comparable<Arbre> { |
|||
final int frequence; |
|||
|
|||
/** |
|||
* @param frequence fréquence cumulée des feuilles de l'arbre |
|||
*/ |
|||
public Arbre(int frequence) { |
|||
this.frequence = frequence; |
|||
} |
|||
|
|||
/** |
|||
* @param s chaîne encodée dans l'arbre |
|||
* @return un arbre des fréquences d'occurence des lettres de la chaîne |
|||
*/ |
|||
public static Arbre buildTree(String s) { |
|||
// tableau de fréquence des caractères
|
|||
// indexé par le code du caractère
|
|||
// pour simplifier on fait l'hypothèse qu'aucun code n'est supérieur à 256
|
|||
int[] frequenceCaracteres = new int[256]; |
|||
|
|||
// parcourt la chaine génératrice et compte la fréquence de chaque caractère
|
|||
for (char c : s.toCharArray()) |
|||
frequenceCaracteres[c]++; |
|||
|
|||
// liste des éléments
|
|||
PriorityQueue<Arbre> lesElements = new PriorityQueue<Arbre>(); |
|||
|
|||
// au départ on a un ensemble d'arbres réduits chacun à feuille, une pour chaque caractère de la chaine génératrice, non reliés
|
|||
//for (int i = 0; i < frequenceCaracteres.length; i++)
|
|||
for (int i = 0; i < frequenceCaracteres.length ; i++) |
|||
if (frequenceCaracteres[i] > 0) |
|||
lesElements.offer(new Feuille(frequenceCaracteres[i], (char) i)); |
|||
|
|||
// on assemble les arbres petit à petit
|
|||
// on arrête d'itérer lorsqu'il n'y a plus d'une seule racine
|
|||
while (lesElements.size() > 1) { |
|||
// sélectionne les 2 arbres avec la fréquence la plus basse et les retire de la liste
|
|||
Arbre a = lesElements.poll(); |
|||
Arbre b = lesElements.poll(); |
|||
// assemble les 2 arbres retirés et place le nouvel arbre en queue
|
|||
lesElements.offer(new Noeud(a, b)); |
|||
} |
|||
return lesElements.poll(); |
|||
} |
|||
|
|||
// établit une relation d'ordre sur les arbres
|
|||
public int compareTo(Arbre tree) { |
|||
return frequence - tree.frequence; |
|||
} |
|||
|
|||
/** |
|||
* @param prefixe chaîne constituant le préfixe des codes |
|||
* @return la liste des codes de Huffman pour chacune des feuilles de l'arbre |
|||
*/ |
|||
public ArrayList<HuffmanCode> collectCodes(StringBuffer prefixe) { |
|||
ArrayList<HuffmanCode> lesCodes = new ArrayList<HuffmanCode>(); |
|||
|
|||
if (this instanceof Feuille) { |
|||
Feuille leaf = (Feuille) this; |
|||
lesCodes.add(new HuffmanCode(leaf.lettre, prefixe.toString())); |
|||
|
|||
} else if (this instanceof Noeud) { |
|||
Noeud node = (Noeud) this; |
|||
|
|||
// traverse le fils gauche
|
|||
prefixe.append('0'); |
|||
lesCodes.addAll(node.filsGauche.collectCodes(prefixe)); |
|||
prefixe.deleteCharAt(prefixe.length() - 1); |
|||
|
|||
// traverse le fils droit
|
|||
prefixe.append('1'); |
|||
lesCodes.addAll(node.filsDroit.collectCodes(prefixe)); |
|||
prefixe.deleteCharAt(prefixe.length() - 1); |
|||
} |
|||
return lesCodes; |
|||
} |
|||
} |
|||
@ -0,0 +1,38 @@ |
|||
package questioncomplementaire; |
|||
|
|||
public class Cesar extends AlgoCodage{ |
|||
private int decalage; |
|||
private String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; |
|||
|
|||
public Cesar(int decalage){ |
|||
this.nom = "César"; |
|||
this.decalage = decalage; |
|||
} |
|||
|
|||
@Override |
|||
public String toString() { |
|||
return "codage de César (décalage=" + decalage + ")"; |
|||
} |
|||
|
|||
@Override |
|||
public String encode(String s) { |
|||
String encode = ""; |
|||
for(int i=0;i<s.length();i++){ |
|||
encode += alphabet.charAt((decalage + |
|||
alphabet.indexOf(s.charAt(i)))%alphabet.length()); |
|||
} |
|||
return encode; |
|||
} |
|||
|
|||
@Override |
|||
public String decode(String s) { |
|||
String decode = ""; |
|||
int index; |
|||
for(int i=0; i<s.length(); i++) { |
|||
index = (alphabet.indexOf(s.charAt(i))-decalage) % alphabet.length(); |
|||
index += (index<0)?alphabet.length():0; |
|||
decode += alphabet.charAt(index); |
|||
} |
|||
return decode; |
|||
} |
|||
} |
|||
@ -0,0 +1,39 @@ |
|||
package questioncomplementaire; |
|||
|
|||
import chiffrement.EncodeurAClef; |
|||
|
|||
public class CodageAClef extends AlgoCodage { |
|||
|
|||
EncodeurAClef encodeur; |
|||
String clef; |
|||
|
|||
public CodageAClef(String clef) { |
|||
if(clef.equals("")) |
|||
this.clef = "clef par défaut"; |
|||
else |
|||
this.clef = clef; |
|||
|
|||
try { |
|||
encodeur = new EncodeurAClef(this.clef); |
|||
} catch (Exception e) { |
|||
System.out.println("Échec de la création de l'encodeur"); |
|||
e.printStackTrace(); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public String encode(String s) { |
|||
return encodeur.chiffre(s); |
|||
} |
|||
|
|||
@Override |
|||
public String decode(String s) { |
|||
return encodeur.dechiffre(s); |
|||
} |
|||
|
|||
@Override |
|||
public String toString() { |
|||
return "codage à clef (clef = \"" + clef + "\")"; |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,58 @@ |
|||
package questioncomplementaire; |
|||
|
|||
import java.io.FileNotFoundException; |
|||
import java.io.PrintWriter; |
|||
import java.util.ArrayList; |
|||
|
|||
public class Comparateur { |
|||
|
|||
public static void main(String[] arg) { |
|||
PrintWriter out; |
|||
try { |
|||
out = new PrintWriter("resultats.txt"); |
|||
} catch (FileNotFoundException e) { |
|||
System.out.println("Impossible d'ouvrpour les résultats."); |
|||
e.printStackTrace(); |
|||
return; |
|||
} |
|||
int TAILLE_EXTRAIT = 50; |
|||
String texteClair = Utilitaire.lireTexte("texte1.txt"); |
|||
out.println("début du texte original : " |
|||
+ texteClair.substring(0, Math.min(50, texteClair.length()))); |
|||
texteClair = Utilitaire.getLettres(texteClair); |
|||
out.println("texte après `getLettres` : " |
|||
+ texteClair.substring(0, Math.min(50, texteClair.length()))); |
|||
|
|||
ArrayList<AlgoCodage> algoAComparer = new ArrayList<AlgoCodage>(); |
|||
algoAComparer.add(new Cesar(3)); |
|||
algoAComparer.add(new Morse()); |
|||
algoAComparer.add(new Cesar(10)); |
|||
algoAComparer.add(new CodageAClef("mon secret")); |
|||
algoAComparer.add(new CodageAClef("")); |
|||
algoAComparer.add(new Huffman(texteClair)); |
|||
|
|||
String encodee = ""; |
|||
for (AlgoCodage algo : algoAComparer) { |
|||
out.println("algorithme : " + algo.toString()); |
|||
long avant = System.currentTimeMillis(); |
|||
encodee = algo.encode(texteClair); |
|||
long apres = System.currentTimeMillis(); |
|||
long duree = apres - avant; |
|||
out.println("\tencodage : " |
|||
+ "\t durée : " |
|||
+ duree |
|||
+ "\t résultat : " |
|||
+ encodee.substring(0, Math.min(50, encodee.length()))); |
|||
avant = System.currentTimeMillis(); |
|||
String decodee = algo.decode(encodee); |
|||
apres = System.currentTimeMillis(); |
|||
duree = apres - avant; |
|||
out.println("\tdécodage : " |
|||
+ "\t durée : " |
|||
+ duree |
|||
+ "\t résultat : " |
|||
+ decodee.substring(0, Math.min(50, decodee.length()))); |
|||
} |
|||
out.close(); |
|||
} |
|||
} |
|||
@ -0,0 +1,37 @@ |
|||
package questioncomplementaire; |
|||
|
|||
/** |
|||
* @author galtier |
|||
* |
|||
* Cette classe représente une feuille d'un arbre de Huffman. |
|||
* |
|||
*/ |
|||
|
|||
public class Feuille extends Arbre { |
|||
final char lettre; |
|||
|
|||
/** |
|||
* @param frequence nombre d'occurences de cette lettre dans le générateur |
|||
* @param lettre caractère dont on compte le nombre d'occurences |
|||
*/ |
|||
public Feuille(int frequence, char lettre) { |
|||
super(frequence); |
|||
this.lettre = lettre; |
|||
} |
|||
|
|||
@Override |
|||
public boolean equals(Object obj) { |
|||
if (this == obj) |
|||
return true; |
|||
if (obj == null) |
|||
return false; |
|||
if (getClass() != obj.getClass()) |
|||
return false; |
|||
Feuille other = (Feuille) obj; |
|||
if ((lettre != other.lettre) || (this.frequence != other.frequence)) |
|||
return false; |
|||
return true; |
|||
} |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,54 @@ |
|||
package questioncomplementaire; |
|||
|
|||
import java.util.ArrayList; |
|||
|
|||
public class Huffman extends AlgoCodage { |
|||
private String generatrice; |
|||
private ArrayList<HuffmanCode> codes; |
|||
private Arbre arbre; |
|||
|
|||
public Huffman(String generatrice) { |
|||
this.generatrice = generatrice; |
|||
arbre = Arbre.buildTree(generatrice); |
|||
codes = arbre.collectCodes(new StringBuffer("")); |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public String encode(String s) { |
|||
String encode = s; |
|||
for (HuffmanCode huffmanCode : codes) { |
|||
encode = encode.replaceAll( |
|||
String.valueOf(huffmanCode.lettre), huffmanCode.code); |
|||
} |
|||
return encode; |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public String decode(String s) { |
|||
String decode = ""; |
|||
Arbre current = arbre; |
|||
for (int i=0; i<s.length(); i++) { |
|||
if(current instanceof Feuille) { |
|||
decode += ((Feuille) current).lettre; |
|||
current = arbre; |
|||
} |
|||
if(current instanceof Noeud) { |
|||
if(s.charAt(i) == '0') |
|||
current = ((Noeud)current).filsGauche; |
|||
else |
|||
current = ((Noeud)current).filsDroit; |
|||
} |
|||
} |
|||
return decode; |
|||
} |
|||
|
|||
@Override |
|||
public String toString() { |
|||
return "Huffman (génératrice = " |
|||
+ generatrice.substring(0, Math.min(50, generatrice.length())) |
|||
+ ")"; |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,24 @@ |
|||
package questioncomplementaire; |
|||
|
|||
/** |
|||
* @author galtier |
|||
* |
|||
* cette classe représente un code de Huffman |
|||
*/ |
|||
public class HuffmanCode { |
|||
|
|||
char lettre; |
|||
String code; |
|||
|
|||
/** |
|||
* |
|||
* @param lettre caractère à encoder |
|||
* @param code code représentant le caractère donné |
|||
*/ |
|||
public HuffmanCode(char lettre, String code) { |
|||
super(); |
|||
this.lettre = lettre; |
|||
this.code = code; |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,51 @@ |
|||
package questioncomplementaire; |
|||
|
|||
import java.util.HashMap; |
|||
|
|||
public class Morse extends AlgoCodage{ |
|||
|
|||
private String[] alphabet; |
|||
private HashMap<String, String> decoder; |
|||
|
|||
public Morse(){ |
|||
this.nom = "Morse"; |
|||
alphabet = new String[] { |
|||
".-", "-...", "-.-.", "-..", ".", "..-.", |
|||
"--.", "....", "..", ".---", "-.-", ".-..", |
|||
"--", "-.", "---", ".--.", "--.-", ".-.", |
|||
"...", "-", "..-", "...-", ".--", "-..-", |
|||
"-.--", "--.." |
|||
}; |
|||
decoder = new HashMap<String, String>(); |
|||
int a = 65; |
|||
for (int i = 0; i < alphabet.length; i++) { |
|||
decoder.put(alphabet[i], String.valueOf((char)(a+i))); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public String toString() { |
|||
return "Morse"; |
|||
} |
|||
|
|||
@Override |
|||
public String encode(String s) { |
|||
String encode = ""; |
|||
int a = 65; // Code ASCII de A
|
|||
for (int i = 0; i < s.length(); i++) { |
|||
encode += alphabet[(int)s.charAt(i)-a] + "/"; |
|||
} |
|||
return encode; |
|||
} |
|||
|
|||
@Override |
|||
public String decode(String s) { |
|||
String decode = ""; |
|||
int a = 65; // Code ASCII de A
|
|||
String[] lettres = s.split("/"); |
|||
for (int i = 0; i < lettres.length; i++) { |
|||
decode += decoder.get(lettres[i]); |
|||
} |
|||
return decode; |
|||
} |
|||
} |
|||
@ -0,0 +1,22 @@ |
|||
package questioncomplementaire; |
|||
|
|||
/** |
|||
* @author galtier |
|||
* |
|||
* Cette classe représente un noeud d'un arbre de Huffman. |
|||
* |
|||
*/ |
|||
public class Noeud extends Arbre { |
|||
final Arbre filsGauche, filsDroit; |
|||
|
|||
/** |
|||
* |
|||
* @param filsGauche fils gauche du noeud |
|||
* @param filsDroit fils droit du noeud |
|||
*/ |
|||
public Noeud(Arbre filsGauche, Arbre filsDroit) { |
|||
super(filsGauche.frequence + filsDroit.frequence); |
|||
this.filsGauche = filsGauche; |
|||
this.filsDroit = filsDroit; |
|||
} |
|||
} |
|||
@ -0,0 +1,46 @@ |
|||
package questioncomplementaire; |
|||
|
|||
import java.io.BufferedReader; |
|||
import java.io.FileReader; |
|||
|
|||
/** |
|||
* @author galtier |
|||
* |
|||
*/ |
|||
public class Utilitaire { |
|||
|
|||
/** |
|||
* Lit un fichier texte et place les caractères lus dans une chaîne de |
|||
* caractères. |
|||
* |
|||
* @param nomFichier |
|||
* le nom complet du fichier à lire |
|||
* @return une chaine de caractères contenant le texte lu dans le fichier. |
|||
* Si le fichier n'existe pas ou ne peut pas être lu, retourne null. |
|||
* |
|||
*/ |
|||
public static String lireTexte(String nomFichier) { |
|||
try { |
|||
String texte = ""; |
|||
FileReader fr = new FileReader(nomFichier); |
|||
BufferedReader br = new BufferedReader(fr); |
|||
String ligne; |
|||
while ((ligne = br.readLine()) != null) |
|||
texte += ligne + "\n"; |
|||
return texte; |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
return null; |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* Supprime tous les caractères qui ne sont pas des lettres |
|||
* et met les autres en majuscules. |
|||
* @param input La chaîne à traîter. |
|||
* @return La chaîne de caractères traîtée. |
|||
*/ |
|||
public static String getLettres(String input) { |
|||
return input.replaceAll("[^a-zA-Z]*", "").toUpperCase(); |
|||
} |
|||
} |
|||
@ -0,0 +1,10 @@ |
|||
package question1; |
|||
|
|||
public class Comparateur { |
|||
|
|||
public static void main(String[] args) { |
|||
String nomFichier = "texte2.txt"; |
|||
String txt = Utilitaire.lireTexte(nomFichier); |
|||
System.out.println(txt); |
|||
} |
|||
} |
|||
@ -0,0 +1,16 @@ |
|||
package question2; |
|||
|
|||
public abstract class AlgoCodage { |
|||
|
|||
protected String nom; |
|||
|
|||
public abstract String encode(String s); |
|||
|
|||
public abstract String decode(String s); |
|||
|
|||
public String getNom() { |
|||
return nom; |
|||
} |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,30 @@ |
|||
package question2; |
|||
|
|||
public class Cesar extends AlgoCodage{ |
|||
|
|||
private int decalage; |
|||
private String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; |
|||
|
|||
public Cesar(int decalage){ |
|||
this.nom = "César"; |
|||
this.decalage = decalage; |
|||
} |
|||
|
|||
@Override |
|||
public String encode(String s) { |
|||
String encode = ""; |
|||
for(int i=0;i<s.length();i++){ |
|||
encode += alphabet.charAt((decalage + |
|||
alphabet.indexOf(s.charAt(i)))%alphabet.length()); |
|||
} |
|||
return encode; |
|||
} |
|||
|
|||
@Override |
|||
public String decode(String s) { |
|||
return "Fonctionnalité décodage de César pas encore implémenté"; |
|||
} |
|||
|
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,32 @@ |
|||
package question2; |
|||
|
|||
import java.util.ArrayList; |
|||
|
|||
public class Comparateur { |
|||
|
|||
public static void main(String[] arg) { |
|||
int TAILLE_EXTRAIT = 50; |
|||
String texteClair = Utilitaire.lireTexte("texte2.txt"); |
|||
System.out.println("début du texte original : " |
|||
+ texteClair.substring(0, Math.min(50, texteClair.length()))); |
|||
|
|||
ArrayList<AlgoCodage> algoAComparer = new ArrayList<AlgoCodage>(); |
|||
algoAComparer.add(new Cesar(3)); |
|||
algoAComparer.add(new Morse()); |
|||
algoAComparer.add(new Cesar(10)); |
|||
|
|||
String encodee = ""; |
|||
for (AlgoCodage algo : algoAComparer) { |
|||
System.out.println("algorithme : " + algo.getNom()); |
|||
encodee = algo.encode(texteClair); |
|||
System.out.println("\tencodage : " |
|||
+ "\t résultat : " |
|||
+ encodee.substring(0, Math.min(50, encodee.length()))); |
|||
|
|||
String decodee = algo.decode(encodee); |
|||
System.out.println("\tdécodage : " |
|||
+ "\t résultat : " |
|||
+ decodee.substring(0, Math.min(50, decodee.length()))); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,19 @@ |
|||
package question2; |
|||
|
|||
public class Morse extends AlgoCodage{ |
|||
|
|||
public Morse(){ |
|||
this.nom = "Morse"; |
|||
} |
|||
|
|||
@Override |
|||
public String encode(String s) { |
|||
return "Fonctionnalité encodage de Morse pas encore implémentée"; |
|||
} |
|||
|
|||
@Override |
|||
public String decode(String s) { |
|||
return "Fonctionnalité décodage de Morse pas encore implémentée"; |
|||
} |
|||
|
|||
} |
|||
|
After Width: | Height: | Size: 28 KiB |
@ -0,0 +1,41 @@ |
|||
package question4; |
|||
|
|||
import static org.junit.Assert.*; |
|||
|
|||
import org.junit.Before; |
|||
import org.junit.Test; |
|||
|
|||
public class ArbreTest { |
|||
|
|||
Arbre arbre1; |
|||
Arbre arbre2; |
|||
|
|||
@Before |
|||
public void setup() throws Exception{ |
|||
arbre1 = Arbre.buildTree("a"); |
|||
|
|||
arbre2 = Arbre.buildTree("baob"); |
|||
} |
|||
|
|||
@Test |
|||
public void testBuildTree() { |
|||
assertEquals("La lettre n'est pas dans une feuille simple", |
|||
((Feuille)arbre1).lettre, 'a'); |
|||
assertEquals("La fréquence est mauvaise dans une feuille simple", |
|||
((Feuille)arbre1).frequence, 1 ); |
|||
|
|||
assertEquals(arbre2.frequence, 4 ); |
|||
Feuille feuilleB = (Feuille)((Noeud)arbre2).filsGauche; |
|||
assertEquals(feuilleB.frequence, 2); |
|||
assertEquals(feuilleB.lettre, 'b'); |
|||
Noeud noeudDroit = (Noeud)((Noeud)arbre2).filsDroit; |
|||
assertEquals(noeudDroit.frequence, 2); |
|||
Feuille feuilleA = (Feuille)noeudDroit.filsGauche; |
|||
assertEquals(feuilleA.lettre, 'a'); |
|||
assertEquals(feuilleA.frequence, 1); |
|||
Feuille feuilleO = (Feuille)noeudDroit.filsDroit; |
|||
assertEquals(feuilleO.lettre, 'o'); |
|||
assertEquals(feuilleO.frequence, 1); |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,36 @@ |
|||
package question5; |
|||
|
|||
/** |
|||
* Cette classe représente une feuille d'un arbre de Huffman. |
|||
* @author galtier |
|||
* |
|||
*/ |
|||
public class Feuille extends Arbre { |
|||
final char lettre; |
|||
|
|||
/** |
|||
* |
|||
* @param frequence nombre d'occurrences de cette lettre dans le générateur |
|||
* @param lettre caractère dont on compte le nombre d'occurences |
|||
*/ |
|||
public Feuille(int frequence, char lettre) { |
|||
super(frequence); |
|||
this.lettre = lettre; |
|||
} |
|||
|
|||
@Override |
|||
public boolean equals(Object obj) { |
|||
if (this == obj) |
|||
return true; |
|||
if (obj == null) |
|||
return false; |
|||
if (getClass() != obj.getClass()) |
|||
return false; |
|||
Feuille other = (Feuille) obj; |
|||
if ((lettre != other.lettre) || (this.frequence != other.frequence)) |
|||
return false; |
|||
return true; |
|||
} |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,401 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<XMI xmlns:UML="http://schema.omg.org/spec/UML/1.4" xmi.version="1.2" verified="false" timestamp="2018-03-27T16:38:32"> |
|||
<XMI.header> |
|||
<XMI.documentation> |
|||
<XMI.exporter>umbrello uml modeller http://umbrello.kde.org</XMI.exporter> |
|||
<XMI.exporterVersion>1.6.12</XMI.exporterVersion> |
|||
<XMI.exporterEncoding>UnicodeUTF8</XMI.exporterEncoding> |
|||
</XMI.documentation> |
|||
<XMI.metamodel xmi.name="UML" xmi.version="1.4" href="UML.xml"/> |
|||
</XMI.header> |
|||
<XMI.content> |
|||
<UML:Model xmi.id="m1" name="UML Model" isAbstract="false" isRoot="false" isLeaf="false" isSpecification="false"> |
|||
<UML:Namespace.ownedElement> |
|||
<UML:Stereotype xmi.id="folder" isAbstract="false" name="folder" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="m1"/> |
|||
<UML:Model xmi.id="Logical_View" isAbstract="false" name="Logical View" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="m1"> |
|||
<UML:Namespace.ownedElement> |
|||
<UML:Package xmi.id="Datatypes" isAbstract="false" name="Datatypes" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" stereotype="folder" namespace="Logical_View"> |
|||
<UML:Namespace.ownedElement> |
|||
<UML:DataType xmi.id="uFoXLnwS24jDi" isAbstract="false" name="char" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Datatypes"/> |
|||
<UML:DataType xmi.id="uJF9r192gOBbm" isAbstract="false" name="int" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Datatypes"/> |
|||
<UML:DataType xmi.id="uQDSwZaqcgJwh" isAbstract="false" name="float" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Datatypes"/> |
|||
<UML:DataType xmi.id="uEAR962YASBC4" isAbstract="false" name="double" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Datatypes"/> |
|||
<UML:DataType xmi.id="uI3kPavEUajOu" isAbstract="false" name="bool" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Datatypes"/> |
|||
<UML:DataType xmi.id="uTpOs9d4v6FCt" isAbstract="false" name="string" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Datatypes"/> |
|||
<UML:DataType xmi.id="u96kSNPiru3S8" isAbstract="false" name="unsigned char" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Datatypes"/> |
|||
<UML:DataType xmi.id="u9QcuH0xi9dxZ" isAbstract="false" name="signed char" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Datatypes"/> |
|||
<UML:DataType xmi.id="u2t1Ut8oRJ7Uh" isAbstract="false" name="unsigned int" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Datatypes"/> |
|||
<UML:DataType xmi.id="ucbRbdzzcIO8T" isAbstract="false" name="signed int" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Datatypes"/> |
|||
<UML:DataType xmi.id="umccfrq4mjFuG" isAbstract="false" name="short int" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Datatypes"/> |
|||
<UML:DataType xmi.id="u2kQ5YxwxJJBc" isAbstract="false" name="unsigned short int" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Datatypes"/> |
|||
<UML:DataType xmi.id="uZJ5xk389pZqa" isAbstract="false" name="signed short int" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Datatypes"/> |
|||
<UML:DataType xmi.id="uZJHBCtkFabB5" isAbstract="false" name="long int" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Datatypes"/> |
|||
<UML:DataType xmi.id="u2oNEabiItOdr" isAbstract="false" name="signed long int" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Datatypes"/> |
|||
<UML:DataType xmi.id="uDc3WJvYH5r1s" isAbstract="false" name="unsigned long int" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Datatypes"/> |
|||
<UML:DataType xmi.id="umuAnT8iCCVRd" isAbstract="false" name="long double" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Datatypes"/> |
|||
<UML:DataType xmi.id="u19jzj9VZyllV" isAbstract="false" name="wchar_t" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Datatypes"/> |
|||
<UML:DataType xmi.id="uOFZB3YNmvpiU" isAbstract="false" name="Vector<ElementBase>" isRoot="false" visibility="public" elementReference="ukFumxgPIWZZS" isLeaf="false" isSpecification="false" namespace="Datatypes"/> |
|||
</UML:Namespace.ownedElement> |
|||
</UML:Package> |
|||
<UML:Class xmi.id="u0jMryxTfuAqC" isAbstract="false" name="LectureEcritureFichier" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Logical_View"> |
|||
<UML:Classifier.feature> |
|||
<UML:Operation isQuery="false" xmi.id="uisqlAN2DLOp4" isAbstract="false" name="ouvrirFichierBmp" isRoot="false" visibility="public" isLeaf="false" isSpecification="false"> |
|||
<UML:BehavioralFeature.parameter> |
|||
<UML:Parameter type="u78YzdJCnsDYg" xmi.id="uEoZVIml3y3tt" name="nomFichier" value="" visibility="private" isSpecification="false"/> |
|||
</UML:BehavioralFeature.parameter> |
|||
</UML:Operation> |
|||
<UML:Operation isQuery="false" xmi.id="uPfh1wb9duVq9" isAbstract="false" name="enregistrerArbre" isRoot="false" visibility="public" isLeaf="false" isSpecification="false"> |
|||
<UML:BehavioralFeature.parameter> |
|||
<UML:Parameter type="uTwdPw0wW0NlV" xmi.id="uHsuuxCf083Ur" name="arbre" value="" visibility="private" isSpecification="false"/> |
|||
<UML:Parameter type="u78YzdJCnsDYg" xmi.id="uth4DEbMLodOt" name="nomFichier" value="" visibility="private" isSpecification="false"/> |
|||
</UML:BehavioralFeature.parameter> |
|||
</UML:Operation> |
|||
<UML:Operation isQuery="false" xmi.id="u5i9fpdjsdYyB" isAbstract="false" name="lectureFichierCompresse" isRoot="false" visibility="public" isLeaf="false" isSpecification="false"> |
|||
<UML:BehavioralFeature.parameter> |
|||
<UML:Parameter type="u78YzdJCnsDYg" xmi.id="uMduxhTnaWCSd" name="nomFichier" value="" visibility="private" isSpecification="false"/> |
|||
<UML:Parameter type="u5fiRB2ya1wTa" xmi.id="urjkdaHcf7WQe" name="imgFichier" value="" visibility="private" isSpecification="false"/> |
|||
</UML:BehavioralFeature.parameter> |
|||
</UML:Operation> |
|||
</UML:Classifier.feature> |
|||
</UML:Class> |
|||
<UML:Class xmi.id="uhjGdAaO97O7I" isAbstract="false" name="QuadTree" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Logical_View"> |
|||
<UML:Classifier.feature> |
|||
<UML:Operation isQuery="false" xmi.id="uD20Jxn6U4MYO" ownerScope="classifier" isAbstract="false" name="main" isRoot="false" visibility="public" isLeaf="false" isSpecification="false"> |
|||
<UML:BehavioralFeature.parameter> |
|||
<UML:Parameter type="uy0q0G1pHWfPt" xmi.id="uNqpJMhM6gIZe" name="args" value="" visibility="private" isSpecification="false"/> |
|||
</UML:BehavioralFeature.parameter> |
|||
</UML:Operation> |
|||
<UML:Operation isQuery="false" xmi.id="uQ1uTFI0UxhQQ" isAbstract="false" name="calculInformationBloc" isRoot="false" visibility="public" isLeaf="false" isSpecification="false"> |
|||
<UML:BehavioralFeature.parameter> |
|||
<UML:Parameter type="uyI8NYpkKxiH3" xmi.id="uLpEo1KmY9b85" kind="return"/> |
|||
<UML:Parameter type="u5fiRB2ya1wTa" xmi.id="uvbHDGWK5n8Eg" name="img" value="" visibility="private" isSpecification="false"/> |
|||
<UML:Parameter type="uJF9r192gOBbm" xmi.id="uORXfQoEy6ncU" name="x0" value="" visibility="private" isSpecification="false"/> |
|||
<UML:Parameter type="uJF9r192gOBbm" xmi.id="uB07J4fKc1Teh" name="y0" value="" visibility="private" isSpecification="false"/> |
|||
<UML:Parameter type="uJF9r192gOBbm" xmi.id="uo3jTTDLLdAE7" name="x1" value="" visibility="private" isSpecification="false"/> |
|||
<UML:Parameter type="uJF9r192gOBbm" xmi.id="uXP1cR9rgZ8jU" name="y1" value="" visibility="private" isSpecification="false"/> |
|||
</UML:BehavioralFeature.parameter> |
|||
</UML:Operation> |
|||
<UML:Operation isQuery="false" xmi.id="uD6S6JIZLcvPC" isAbstract="false" name="construireArbreQuadTrees" isRoot="false" visibility="public" isLeaf="false" isSpecification="false"> |
|||
<UML:BehavioralFeature.parameter> |
|||
<UML:Parameter type="uTwdPw0wW0NlV" xmi.id="u6HNSNw2gKGiH" kind="return"/> |
|||
<UML:Parameter type="u5fiRB2ya1wTa" xmi.id="ueXJcmT5hQWd4" name="img" value="" visibility="private" isSpecification="false"/> |
|||
<UML:Parameter type="uJF9r192gOBbm" xmi.id="uBkTsrDiwGWkM" name="x0" value="" visibility="private" isSpecification="false"/> |
|||
<UML:Parameter type="uJF9r192gOBbm" xmi.id="uzvfSiXAHB5mr" name="y0" value="" visibility="private" isSpecification="false"/> |
|||
<UML:Parameter type="uJF9r192gOBbm" xmi.id="uTKCMTNHMAGwE" name="x1" value="" visibility="private" isSpecification="false"/> |
|||
<UML:Parameter type="uJF9r192gOBbm" xmi.id="u6ywldDLdHFoN" name="y1" value="" visibility="private" isSpecification="false"/> |
|||
<UML:Parameter type="uEAR962YASBC4" xmi.id="uZOoQwLr5KsOW" name="seuil" value="" visibility="private" isSpecification="false"/> |
|||
</UML:BehavioralFeature.parameter> |
|||
</UML:Operation> |
|||
</UML:Classifier.feature> |
|||
</UML:Class> |
|||
<UML:Class xmi.id="uyI8NYpkKxiH3" isAbstract="false" name="InformationBloc" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Logical_View"> |
|||
<UML:Classifier.feature> |
|||
<UML:Attribute type="ufaU7RB2MERga" xmi.id="ugXBVAwyoOBHg" name="rouge" visibility="private" isSpecification="false"/> |
|||
<UML:Attribute type="ufaU7RB2MERga" xmi.id="uBOfcYe8EZfb3" name="vert" visibility="private" isSpecification="false"/> |
|||
<UML:Attribute type="ufaU7RB2MERga" xmi.id="uuRymoZ6rLvpZ" name="bleu" visibility="private" isSpecification="false"/> |
|||
<UML:Attribute type="uEAR962YASBC4" xmi.id="u81qkHZ47pjoR" name="dispersion" visibility="private" isSpecification="false"/> |
|||
<UML:Operation isQuery="false" xmi.id="ukjoy0OKVhSfg" isAbstract="false" name="InformationBloc" isRoot="false" visibility="public" isLeaf="false" isSpecification="false"> |
|||
<UML:BehavioralFeature.parameter> |
|||
<UML:Parameter type="ufaU7RB2MERga" xmi.id="uzwjPz12h5okj" name="rouge" value="" visibility="private" isSpecification="false"/> |
|||
<UML:Parameter type="ufaU7RB2MERga" xmi.id="ufGlq9LQSbEQg" name="vert" value="" visibility="private" isSpecification="false"/> |
|||
<UML:Parameter type="ufaU7RB2MERga" xmi.id="uYtZVLCx9xX85" name="bleu" value="" visibility="private" isSpecification="false"/> |
|||
<UML:Parameter type="uEAR962YASBC4" xmi.id="uYknjVHEDxX3b" name="dispersion" value="" visibility="private" isSpecification="false"/> |
|||
</UML:BehavioralFeature.parameter> |
|||
</UML:Operation> |
|||
<UML:Operation isQuery="false" xmi.id="u2le4H9usYi21" isAbstract="false" name="getRouge" isRoot="false" visibility="public" isLeaf="false" isSpecification="false"> |
|||
<UML:BehavioralFeature.parameter> |
|||
<UML:Parameter type="ufaU7RB2MERga" xmi.id="uIMiMcZH1IsIN" kind="return"/> |
|||
</UML:BehavioralFeature.parameter> |
|||
</UML:Operation> |
|||
<UML:Operation isQuery="false" xmi.id="ucQ0JLeYTRvox" isAbstract="false" name="getVert" isRoot="false" visibility="public" isLeaf="false" isSpecification="false"> |
|||
<UML:BehavioralFeature.parameter> |
|||
<UML:Parameter type="ufaU7RB2MERga" xmi.id="uM3BWvi7UP2Ge" kind="return"/> |
|||
</UML:BehavioralFeature.parameter> |
|||
</UML:Operation> |
|||
<UML:Operation isQuery="false" xmi.id="uePlQDhKFoU4h" isAbstract="false" name="getBleu" isRoot="false" visibility="public" isLeaf="false" isSpecification="false"> |
|||
<UML:BehavioralFeature.parameter> |
|||
<UML:Parameter type="ufaU7RB2MERga" xmi.id="u3xspVBvXCiGN" kind="return"/> |
|||
</UML:BehavioralFeature.parameter> |
|||
</UML:Operation> |
|||
<UML:Operation isQuery="false" xmi.id="uq6f266XdgDHl" isAbstract="false" name="getDispersion" isRoot="false" visibility="public" isLeaf="false" isSpecification="false"> |
|||
<UML:BehavioralFeature.parameter> |
|||
<UML:Parameter type="uEAR962YASBC4" xmi.id="uTMTC7lLrcJts" kind="return"/> |
|||
</UML:BehavioralFeature.parameter> |
|||
</UML:Operation> |
|||
<UML:Operation isQuery="false" xmi.id="uCUzJ2JG0C3OA" isAbstract="false" name="toString" isRoot="false" visibility="public" isLeaf="false" isSpecification="false"> |
|||
<UML:BehavioralFeature.parameter> |
|||
<UML:Parameter type="u78YzdJCnsDYg" xmi.id="uuPVHeWrYxQDE" kind="return"/> |
|||
</UML:BehavioralFeature.parameter> |
|||
</UML:Operation> |
|||
</UML:Classifier.feature> |
|||
</UML:Class> |
|||
<UML:Class xmi.id="uTwdPw0wW0NlV" isAbstract="true" name="ElementBase" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Logical_View"> |
|||
<UML:Classifier.feature> |
|||
<UML:Operation isQuery="false" xmi.id="ukUBq4sQ09bxB" isAbstract="true" name="toString" isRoot="false" visibility="public" isLeaf="false" isSpecification="false"> |
|||
<UML:BehavioralFeature.parameter> |
|||
<UML:Parameter type="u78YzdJCnsDYg" xmi.id="uGyR0vsErmdv9" kind="return"/> |
|||
</UML:BehavioralFeature.parameter> |
|||
</UML:Operation> |
|||
<UML:Operation isQuery="false" xmi.id="uLDagKIKmbjPS" isAbstract="true" name="construireImage" isRoot="false" visibility="public" isLeaf="false" isSpecification="false"> |
|||
<UML:BehavioralFeature.parameter> |
|||
<UML:Parameter type="u5fiRB2ya1wTa" xmi.id="uVExJSI0eCCg2" name="img" value="" visibility="private" isSpecification="false"/> |
|||
</UML:BehavioralFeature.parameter> |
|||
</UML:Operation> |
|||
<UML:Operation isQuery="false" xmi.id="uanHayxjxsmRd" isAbstract="true" name="enregistrerElement" isRoot="false" visibility="public" isLeaf="false" isSpecification="false"> |
|||
<UML:BehavioralFeature.parameter> |
|||
<UML:Parameter type="udpxzEssyEMek" xmi.id="uUiiCV9NZxl68" name="flux" value="" visibility="private" isSpecification="false"/> |
|||
</UML:BehavioralFeature.parameter> |
|||
</UML:Operation> |
|||
</UML:Classifier.feature> |
|||
</UML:Class> |
|||
<UML:Class xmi.id="ukgKXvC3BIUbS" isAbstract="false" name="Noeud" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Logical_View"> |
|||
<UML:GeneralizableElement.generalization> |
|||
<UML:Generalization xmi.idref="uguBegpzVc7Zc"/> |
|||
<UML:Generalization xmi.idref="uoWn0J5nHEdEk"/> |
|||
</UML:GeneralizableElement.generalization> |
|||
<UML:Classifier.feature> |
|||
<UML:Operation isQuery="false" xmi.id="u8HZySGy9wr7a" isAbstract="false" name="Noeud" isRoot="false" visibility="public" isLeaf="false" isSpecification="false"/> |
|||
<UML:Operation isQuery="false" xmi.id="umcl4Sp7cImHi" isAbstract="false" name="ajouterNoeud" isRoot="false" visibility="public" isLeaf="false" isSpecification="false"> |
|||
<UML:BehavioralFeature.parameter> |
|||
<UML:Parameter type="uTwdPw0wW0NlV" xmi.id="uxY2SuWQ6TYFX" name="element" value="" visibility="private" isSpecification="false"/> |
|||
</UML:BehavioralFeature.parameter> |
|||
</UML:Operation> |
|||
<UML:Operation isQuery="false" xmi.id="uV5fYMHzF3vzD" isAbstract="false" name="toString" isRoot="false" visibility="public" isLeaf="false" isSpecification="false"> |
|||
<UML:BehavioralFeature.parameter> |
|||
<UML:Parameter type="u78YzdJCnsDYg" xmi.id="ux3zjgzVEqT7e" kind="return"/> |
|||
</UML:BehavioralFeature.parameter> |
|||
</UML:Operation> |
|||
<UML:Operation isQuery="false" xmi.id="u9c6JSpwIX9MM" isAbstract="false" name="construireImage" isRoot="false" visibility="public" isLeaf="false" isSpecification="false"> |
|||
<UML:BehavioralFeature.parameter> |
|||
<UML:Parameter type="u5fiRB2ya1wTa" xmi.id="uSGOTFzPk4h4j" name="img" value="" visibility="private" isSpecification="false"/> |
|||
</UML:BehavioralFeature.parameter> |
|||
</UML:Operation> |
|||
<UML:Operation isQuery="false" xmi.id="uhlDafR4rYNX1" isAbstract="false" name="enregistrerElement" isRoot="false" visibility="public" isLeaf="false" isSpecification="false"> |
|||
<UML:BehavioralFeature.parameter> |
|||
<UML:Parameter type="udpxzEssyEMek" xmi.id="u6S9y3mHP6Onj" name="flux" value="" visibility="private" isSpecification="false"/> |
|||
</UML:BehavioralFeature.parameter> |
|||
</UML:Operation> |
|||
</UML:Classifier.feature> |
|||
</UML:Class> |
|||
<UML:Class xmi.id="uaoOBugKTszvr" isAbstract="false" name="Feuille" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Logical_View"> |
|||
<UML:GeneralizableElement.generalization> |
|||
<UML:Generalization xmi.idref="uuIbOEuBwNqyk"/> |
|||
</UML:GeneralizableElement.generalization> |
|||
<UML:Classifier.feature> |
|||
<UML:Attribute type="uJF9r192gOBbm" xmi.id="uX1xn3oqIZ2D9" name="x0" visibility="private" isSpecification="false"/> |
|||
<UML:Attribute type="uJF9r192gOBbm" xmi.id="uNbp5jyEIsomp" name="x1" visibility="private" isSpecification="false"/> |
|||
<UML:Attribute type="uJF9r192gOBbm" xmi.id="ueqMp8bS6o1Ag" name="y0" visibility="private" isSpecification="false"/> |
|||
<UML:Attribute type="uJF9r192gOBbm" xmi.id="uepK86uhVodiF" name="y1" visibility="private" isSpecification="false"/> |
|||
<UML:Attribute type="ufaU7RB2MERga" xmi.id="u8VMXfD7kLHh8" name="rouge" visibility="private" isSpecification="false"/> |
|||
<UML:Attribute type="ufaU7RB2MERga" xmi.id="u031vmesHJOdH" name="vert" visibility="private" isSpecification="false"/> |
|||
<UML:Attribute type="ufaU7RB2MERga" xmi.id="u5GvJWY5uTI4X" name="bleu" visibility="private" isSpecification="false"/> |
|||
<UML:Attribute type="uEAR962YASBC4" xmi.id="ufGPN5OEZh8YA" name="dispersion" visibility="private" isSpecification="false"/> |
|||
<UML:Operation isQuery="false" xmi.id="ua9KPyIlDq4La" isAbstract="false" name="Feuille" isRoot="false" visibility="public" isLeaf="false" isSpecification="false"> |
|||
<UML:BehavioralFeature.parameter> |
|||
<UML:Parameter type="uJF9r192gOBbm" xmi.id="uds0d8hkz61Sx" name="x0" value="" visibility="private" isSpecification="false"/> |
|||
<UML:Parameter type="uJF9r192gOBbm" xmi.id="uALgXjLlzeVZo" name="y0" value="" visibility="private" isSpecification="false"/> |
|||
<UML:Parameter type="uJF9r192gOBbm" xmi.id="uR7cicSdXI5gF" name="x1" value="" visibility="private" isSpecification="false"/> |
|||
<UML:Parameter type="uJF9r192gOBbm" xmi.id="uwP1aDVhBNq8o" name="y1" value="" visibility="private" isSpecification="false"/> |
|||
<UML:Parameter type="uyI8NYpkKxiH3" xmi.id="ulTbuzGdiSd8Q" name="bloc" value="" visibility="private" isSpecification="false"/> |
|||
</UML:BehavioralFeature.parameter> |
|||
</UML:Operation> |
|||
<UML:Operation isQuery="false" xmi.id="ujd9j5SZ4n5hm" isAbstract="false" name="toString" isRoot="false" visibility="public" isLeaf="false" isSpecification="false"> |
|||
<UML:BehavioralFeature.parameter> |
|||
<UML:Parameter type="u78YzdJCnsDYg" xmi.id="u9t39Ldq0kWse" kind="return"/> |
|||
</UML:BehavioralFeature.parameter> |
|||
</UML:Operation> |
|||
<UML:Operation isQuery="false" xmi.id="uLv5ajf4m3DSt" isAbstract="false" name="construireImage" isRoot="false" visibility="public" isLeaf="false" isSpecification="false"> |
|||
<UML:BehavioralFeature.parameter> |
|||
<UML:Parameter type="u5fiRB2ya1wTa" xmi.id="uLmr5pMSPOnJn" name="img" value="" visibility="private" isSpecification="false"/> |
|||
</UML:BehavioralFeature.parameter> |
|||
</UML:Operation> |
|||
<UML:Operation isQuery="false" xmi.id="uqyivTFtKPPCZ" isAbstract="false" name="enregistrerElement" isRoot="false" visibility="public" isLeaf="false" isSpecification="false"> |
|||
<UML:BehavioralFeature.parameter> |
|||
<UML:Parameter type="udpxzEssyEMek" xmi.id="u0y3lARPv1wks" name="flux" value="" visibility="private" isSpecification="false"/> |
|||
</UML:BehavioralFeature.parameter> |
|||
</UML:Operation> |
|||
</UML:Classifier.feature> |
|||
</UML:Class> |
|||
<UML:Class xmi.id="u78YzdJCnsDYg" isAbstract="false" name="String" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Logical_View"/> |
|||
<UML:Class xmi.id="u5fiRB2ya1wTa" isAbstract="false" name="BufferedImage" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Logical_View"/> |
|||
<UML:Class xmi.id="uy0q0G1pHWfPt" isAbstract="false" name="String[]" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Logical_View"/> |
|||
<UML:Class xmi.id="ufaU7RB2MERga" isAbstract="false" name="byte" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Logical_View"/> |
|||
<UML:Class xmi.id="udpxzEssyEMek" isAbstract="false" name="DataOutputStream" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Logical_View"/> |
|||
<UML:Generalization discriminator="" xmi.id="uuIbOEuBwNqyk" name="" child="uaoOBugKTszvr" visibility="public" parent="uTwdPw0wW0NlV" isSpecification="false" namespace="Logical_View"/> |
|||
<UML:Generalization discriminator="" xmi.id="uguBegpzVc7Zc" name="" child="ukgKXvC3BIUbS" visibility="public" parent="uTwdPw0wW0NlV" isSpecification="false" namespace="Logical_View"/> |
|||
<UML:Class xmi.id="ukFumxgPIWZZS" isAbstract="false" name="Vector" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Logical_View"/> |
|||
<UML:Dependency xmi.id="uS2dhwk1L9OnA" client="uaoOBugKTszvr" name="" visibility="public" supplier="uTwdPw0wW0NlV" isSpecification="false" namespace="Logical_View"/> |
|||
<UML:Class xmi.id="uQ0FwW7wzaTrE" isAbstract="false" name="int x1" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="Logical_View"/> |
|||
<UML:Association xmi.id="uiFBjrfRJAUxN" name="" visibility="public" isSpecification="false" namespace="Logical_View"> |
|||
<UML:Association.connection> |
|||
<UML:AssociationEnd changeability="changeable" aggregation="aggregate" type="ukgKXvC3BIUbS" xmi.id="uognzmAogOisc" name="" visibility="public" isSpecification="false" isNavigable="true"/> |
|||
<UML:AssociationEnd changeability="changeable" aggregation="none" type="uTwdPw0wW0NlV" xmi.id="uAiRS34uY2Uda" name="" visibility="public" isSpecification="false" isNavigable="true"/> |
|||
</UML:Association.connection> |
|||
</UML:Association> |
|||
<UML:Generalization discriminator="" xmi.id="uoWn0J5nHEdEk" name="" child="ukgKXvC3BIUbS" visibility="public" parent="uTwdPw0wW0NlV" isSpecification="false" namespace="Logical_View"/> |
|||
<UML:Association xmi.id="u0FLbIv8KaWyD" name="" visibility="public" isSpecification="false" namespace="Logical_View"> |
|||
<UML:Association.connection> |
|||
<UML:AssociationEnd changeability="changeable" aggregation="none" type="ukgKXvC3BIUbS" xmi.id="uugYQ32POKj6h" name="" visibility="public" isSpecification="false" isNavigable="false"/> |
|||
<UML:AssociationEnd changeability="changeable" aggregation="none" type="ukgKXvC3BIUbS" xmi.id="u3IGsw1nO4QSH" name="" visibility="public" isSpecification="false" isNavigable="true"/> |
|||
</UML:Association.connection> |
|||
</UML:Association> |
|||
<UML:Association xmi.id="uCiXYqQcq7Z7c" name="" visibility="public" isSpecification="false" namespace="Logical_View"> |
|||
<UML:Association.connection> |
|||
<UML:AssociationEnd changeability="changeable" aggregation="aggregate" type="ukgKXvC3BIUbS" xmi.id="uSrd3scO0SctN" name="lesFils" visibility="private" multiplicity="0..4" isSpecification="false" isNavigable="true"/> |
|||
<UML:AssociationEnd changeability="changeable" aggregation="none" type="uTwdPw0wW0NlV" xmi.id="ucRSlj6SQTBUA" name="" visibility="private" isSpecification="false" isNavigable="true"/> |
|||
</UML:Association.connection> |
|||
</UML:Association> |
|||
</UML:Namespace.ownedElement> |
|||
<XMI.extension xmi.extender="umbrello"> |
|||
<diagrams resolution="96"> |
|||
<diagram type="1" backgroundcolor="#ffffff" showattsig="1" font="Ubuntu,11,-1,5,50,0,0,0,0,0" zoom="48,93249999999999" showscope="1" xmi.id="uJRKCw2ez17NB" fillcolor="#ffff00" showops="1" griddotcolor="#d3d3d3" showpubliconly="0" canvasheight="880.857" documentation="" showattribassocs="1" usefillcolor="1" showpackage="1" textcolor="#000000" snapgrid="0" linewidth="0" showopsig="1" showgrid="0" isopen="1" showatts="1" localid="-1" linecolor="#ff0000" snapcsgrid="0" snapy="25" canvaswidth="1456.74" showstereotype="1" snapx="25" name="class diagram"> |
|||
<widgets> |
|||
<classwidget usesdiagramusefillcolor="0" showattsigs="601" font="Ubuntu,11,-1,5,50,0,0,0,0,0" y="-679.71" showscope="1" showattributes="1" xmi.id="u0jMryxTfuAqC" showopsigs="601" fillcolor="#ffff00" showpubliconly="0" usesdiagramfillcolor="0" usefillcolor="1" isinstance="0" showpackage="1" textcolor="#000000" linewidth="0" height="76" localid="ua8pLhEvX8MUy" autoresize="1" width="520" linecolor="#ff0000" showoperations="1" x="-266.076" showstereotype="1"/> |
|||
<classwidget usesdiagramusefillcolor="0" showattsigs="601" font="Ubuntu,11,-1,5,50,0,0,0,0,0" y="-774.612" showscope="1" showattributes="1" xmi.id="uhjGdAaO97O7I" showopsigs="601" fillcolor="#ffff00" showpubliconly="0" usesdiagramfillcolor="0" usefillcolor="1" isinstance="0" showpackage="1" textcolor="#000000" linewidth="0" height="76" localid="ub7Fr0dhC5PYI" autoresize="1" width="759" linecolor="#ff0000" showoperations="1" x="25.0994" showstereotype="1"/> |
|||
<classwidget usesdiagramusefillcolor="0" showattsigs="601" font="Ubuntu,11,-1,5,50,0,0,0,0,0" y="-681.735" showscope="1" showattributes="1" xmi.id="uyI8NYpkKxiH3" showopsigs="601" fillcolor="#ffff00" showpubliconly="0" usesdiagramfillcolor="0" usefillcolor="1" isinstance="0" showpackage="1" textcolor="#000000" linewidth="0" height="187" localid="uRRXzRuzNOGPr" autoresize="1" width="513" linecolor="#ff0000" showoperations="1" x="277.139" showstereotype="1"/> |
|||
<classwidget usesdiagramusefillcolor="0" showattsigs="601" font="Ubuntu,11,-1,5,50,0,0,0,0,0" y="-591.147" showscope="1" showattributes="1" xmi.id="uTwdPw0wW0NlV" showopsigs="601" fillcolor="#ffff00" showpubliconly="0" usesdiagramfillcolor="0" usefillcolor="1" isinstance="0" showpackage="1" textcolor="#000000" drawascircle="0" linewidth="0" height="76" localid="ubuvSYfbQrNB9" autoresize="1" width="321" linecolor="#ff0000" showoperations="1" x="-70.9319" showstereotype="1"/> |
|||
<classwidget usesdiagramusefillcolor="0" showattsigs="601" font="Ubuntu,11,-1,5,50,0,0,0,0,0" y="-445.817" showscope="1" showattributes="1" xmi.id="ukgKXvC3BIUbS" showopsigs="601" fillcolor="#ffff00" showpubliconly="0" usesdiagramfillcolor="0" usefillcolor="1" isinstance="0" showpackage="1" textcolor="#000000" linewidth="0" height="110" localid="uJShAQ4ziDBs7" autoresize="1" width="332" linecolor="#ff0000" showoperations="1" x="107.354" showstereotype="1"/> |
|||
<classwidget usesdiagramusefillcolor="0" showattsigs="601" font="Ubuntu,11,-1,5,50,0,0,0,0,0" y="-441.351" showscope="1" showattributes="1" xmi.id="uaoOBugKTszvr" showopsigs="601" fillcolor="#ffff00" showpubliconly="0" usesdiagramfillcolor="0" usefillcolor="1" isinstance="0" showpackage="1" textcolor="#000000" linewidth="0" height="221" localid="uOLtQsnav2skw" autoresize="1" width="436" linecolor="#ff0000" showoperations="1" x="-353.101" showstereotype="1"/> |
|||
</widgets> |
|||
<messages/> |
|||
<associations> |
|||
<assocwidget type="500" usesdiagramusefillcolor="240" totalcountb="2" font="Ubuntu,11,-1,5,50,0,0,0,0,0" indexb="1" xmi.id="uuIbOEuBwNqyk" fillcolor="#ffff00" usesdiagramfillcolor="0" totalcounta="2" usefillcolor="1" widgetbid="uTwdPw0wW0NlV" textcolor="none" indexa="1" linewidth="0" autoresize="1" linecolor="#ff0000" seqnum="" widgetaid="uaoOBugKTszvr"> |
|||
<linepath layout="Polyline"> |
|||
<startpoint startx="-6.477" starty="-441.351"/> |
|||
<endpoint endy="-515.147" endx="-6.477"/> |
|||
</linepath> |
|||
</assocwidget> |
|||
<assocwidget type="500" usesdiagramusefillcolor="0" totalcountb="2" font="Ubuntu,11,-1,5,50,0,0,0,0,0" indexb="1" xmi.id="uoWn0J5nHEdEk" fillcolor="#ffff00" usesdiagramfillcolor="0" totalcounta="2" usefillcolor="1" widgetbid="uTwdPw0wW0NlV" textcolor="none" indexa="1" linewidth="0" autoresize="1" linecolor="#ff0000" seqnum="" widgetaid="ukgKXvC3BIUbS"> |
|||
<linepath layout="Polyline"> |
|||
<startpoint startx="107.354" starty="-445.817"/> |
|||
<endpoint endy="-515.147" endx="107.354"/> |
|||
</linepath> |
|||
</assocwidget> |
|||
<assocwidget type="501" usesdiagramusefillcolor="0" totalcountb="2" font="Ubuntu,11,-1,5,50,0,0,0,0,0" indexb="1" xmi.id="uCiXYqQcq7Z7c" fillcolor="#ffff00" usesdiagramfillcolor="0" totalcounta="2" usefillcolor="1" widgetbid="uTwdPw0wW0NlV" textcolor="#000000" indexa="1" linewidth="0" autoresize="1" linecolor="#ff0000" seqnum="" widgetaid="ukgKXvC3BIUbS"> |
|||
<linepath layout="Polyline"> |
|||
<startpoint startx="107.354" starty="-445.817"/> |
|||
<endpoint endy="-515.147" endx="107.354"/> |
|||
</linepath> |
|||
<floatingtext usesdiagramusefillcolor="1" pretext="" font="Ubuntu,11,-1,5,50,0,0,0,0,0" y="-468" xmi.id="uI9Mv01XWb14W" fillcolor="none" usesdiagramfillcolor="1" posttext="" usefillcolor="1" isinstance="0" role="701" textcolor="none" linewidth="0" height="21" localid="u67lb5uVnEh3m" text="0..4" autoresize="1" width="32" linecolor="#ff0000" x="109" showstereotype="1"/> |
|||
<floatingtext usesdiagramusefillcolor="1" pretext="-" font="Ubuntu,11,-1,5,50,0,0,0,0,0" y="-468.817" xmi.id="uIIeogZ6rCxEi" fillcolor="none" usesdiagramfillcolor="1" posttext="" usefillcolor="1" isinstance="0" role="709" textcolor="none" linewidth="0" height="21" localid="uR4GPLzN8gXnv" text="lesFils" autoresize="1" width="58" linecolor="#ff0000" x="49.2672" showstereotype="1"/> |
|||
</assocwidget> |
|||
</associations> |
|||
</diagram> |
|||
<diagram type="3" backgroundcolor="#ffffff" showattsig="1" font="Ubuntu,11,-1,5,50,0,0,0,0,0" zoom="100" showscope="1" xmi.id="uc6prlmvuc49Z" fillcolor="#ffff00" showops="1" griddotcolor="#d3d3d3" showpubliconly="0" canvasheight="0" documentation="" showattribassocs="1" usefillcolor="1" showpackage="1" textcolor="#000000" snapgrid="0" linewidth="0" showopsig="1" autoincrementsequence="0" showgrid="0" isopen="1" showatts="1" localid="-1" linecolor="#ff0000" snapcsgrid="0" snapy="25" canvaswidth="0" showstereotype="1" snapx="25" name="sequence diagram"> |
|||
<widgets/> |
|||
<messages/> |
|||
<associations/> |
|||
</diagram> |
|||
</diagrams> |
|||
</XMI.extension> |
|||
</UML:Model> |
|||
<UML:Model xmi.id="Use_Case_View" isAbstract="false" name="Use Case View" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="m1"> |
|||
<UML:Namespace.ownedElement/> |
|||
</UML:Model> |
|||
<UML:Model xmi.id="Component_View" isAbstract="false" name="Component View" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="m1"> |
|||
<UML:Namespace.ownedElement/> |
|||
</UML:Model> |
|||
<UML:Model xmi.id="Deployment_View" isAbstract="false" name="Deployment View" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="m1"> |
|||
<UML:Namespace.ownedElement/> |
|||
</UML:Model> |
|||
<UML:Model xmi.id="Entity_Relationship_Model" isAbstract="false" name="Entity Relationship Model" isRoot="false" visibility="public" isLeaf="false" isSpecification="false" namespace="m1"> |
|||
<UML:Namespace.ownedElement/> |
|||
</UML:Model> |
|||
</UML:Namespace.ownedElement> |
|||
</UML:Model> |
|||
</XMI.content> |
|||
<XMI.extensions xmi.extender="umbrello"> |
|||
<docsettings viewid="uJRKCw2ez17NB" documentation="" uniqueid="uc6prlmvuc49Z"/> |
|||
<listview> |
|||
<listitem type="800" open="1" id="Views"> |
|||
<listitem type="821" open="1" id="Component_View"/> |
|||
<listitem type="827" open="1" id="Deployment_View"/> |
|||
<listitem type="836" open="1" id="Entity_Relationship_Model"/> |
|||
<listitem type="801" open="1" id="Logical_View"> |
|||
<listitem type="813" open="1" id="u5fiRB2ya1wTa"/> |
|||
<listitem type="813" open="1" id="ufaU7RB2MERga"/> |
|||
<listitem type="807" open="0" id="uJRKCw2ez17NB" label="class diagram"/> |
|||
<listitem type="813" open="1" id="udpxzEssyEMek"/> |
|||
<listitem type="830" open="0" id="Datatypes"> |
|||
<listitem type="829" open="1" id="uI3kPavEUajOu"/> |
|||
<listitem type="829" open="1" id="uFoXLnwS24jDi"/> |
|||
<listitem type="829" open="1" id="uEAR962YASBC4"/> |
|||
<listitem type="829" open="1" id="uQDSwZaqcgJwh"/> |
|||
<listitem type="829" open="1" id="uJF9r192gOBbm"/> |
|||
<listitem type="829" open="1" id="umuAnT8iCCVRd"/> |
|||
<listitem type="829" open="1" id="uZJHBCtkFabB5"/> |
|||
<listitem type="829" open="1" id="umccfrq4mjFuG"/> |
|||
<listitem type="829" open="1" id="u9QcuH0xi9dxZ"/> |
|||
<listitem type="829" open="1" id="ucbRbdzzcIO8T"/> |
|||
<listitem type="829" open="1" id="u2oNEabiItOdr"/> |
|||
<listitem type="829" open="1" id="uZJ5xk389pZqa"/> |
|||
<listitem type="829" open="1" id="uTpOs9d4v6FCt"/> |
|||
<listitem type="829" open="1" id="u96kSNPiru3S8"/> |
|||
<listitem type="829" open="1" id="u2t1Ut8oRJ7Uh"/> |
|||
<listitem type="829" open="1" id="uDc3WJvYH5r1s"/> |
|||
<listitem type="829" open="1" id="u2kQ5YxwxJJBc"/> |
|||
<listitem type="829" open="1" id="uOFZB3YNmvpiU"/> |
|||
<listitem type="829" open="1" id="u19jzj9VZyllV"/> |
|||
</listitem> |
|||
<listitem type="813" open="0" id="uTwdPw0wW0NlV"> |
|||
<listitem type="815" open="0" id="uLDagKIKmbjPS"/> |
|||
<listitem type="815" open="0" id="uanHayxjxsmRd"/> |
|||
<listitem type="815" open="0" id="ukUBq4sQ09bxB"/> |
|||
</listitem> |
|||
<listitem type="813" open="0" id="uaoOBugKTszvr"> |
|||
<listitem type="814" open="0" id="u5GvJWY5uTI4X"/> |
|||
<listitem type="815" open="0" id="uLv5ajf4m3DSt"/> |
|||
<listitem type="814" open="0" id="ufGPN5OEZh8YA"/> |
|||
<listitem type="815" open="0" id="uqyivTFtKPPCZ"/> |
|||
<listitem type="815" open="0" id="ua9KPyIlDq4La"/> |
|||
<listitem type="814" open="0" id="u8VMXfD7kLHh8"/> |
|||
<listitem type="815" open="0" id="ujd9j5SZ4n5hm"/> |
|||
<listitem type="814" open="0" id="u031vmesHJOdH"/> |
|||
<listitem type="814" open="0" id="uX1xn3oqIZ2D9"/> |
|||
<listitem type="814" open="0" id="uNbp5jyEIsomp"/> |
|||
<listitem type="814" open="0" id="ueqMp8bS6o1Ag"/> |
|||
<listitem type="814" open="0" id="uepK86uhVodiF"/> |
|||
</listitem> |
|||
<listitem type="813" open="0" id="uyI8NYpkKxiH3"> |
|||
<listitem type="814" open="0" id="uuRymoZ6rLvpZ"/> |
|||
<listitem type="814" open="0" id="u81qkHZ47pjoR"/> |
|||
<listitem type="815" open="0" id="uePlQDhKFoU4h"/> |
|||
<listitem type="815" open="0" id="uq6f266XdgDHl"/> |
|||
<listitem type="815" open="0" id="u2le4H9usYi21"/> |
|||
<listitem type="815" open="0" id="ucQ0JLeYTRvox"/> |
|||
<listitem type="815" open="0" id="ukjoy0OKVhSfg"/> |
|||
<listitem type="814" open="0" id="ugXBVAwyoOBHg"/> |
|||
<listitem type="815" open="0" id="uCUzJ2JG0C3OA"/> |
|||
<listitem type="814" open="0" id="uBOfcYe8EZfb3"/> |
|||
</listitem> |
|||
<listitem type="813" open="1" id="uQ0FwW7wzaTrE"/> |
|||
<listitem type="813" open="0" id="u0jMryxTfuAqC"> |
|||
<listitem type="815" open="0" id="uPfh1wb9duVq9"/> |
|||
<listitem type="815" open="0" id="u5i9fpdjsdYyB"/> |
|||
<listitem type="815" open="0" id="uisqlAN2DLOp4"/> |
|||
</listitem> |
|||
<listitem type="813" open="1" id="ukgKXvC3BIUbS"> |
|||
<listitem type="815" open="0" id="umcl4Sp7cImHi"/> |
|||
<listitem type="815" open="0" id="u9c6JSpwIX9MM"/> |
|||
<listitem type="815" open="0" id="uhlDafR4rYNX1"/> |
|||
<listitem type="815" open="0" id="u8HZySGy9wr7a"/> |
|||
<listitem type="815" open="0" id="uV5fYMHzF3vzD"/> |
|||
</listitem> |
|||
<listitem type="813" open="1" id="uhjGdAaO97O7I"> |
|||
<listitem type="815" open="0" id="uQ1uTFI0UxhQQ"/> |
|||
<listitem type="815" open="0" id="uD6S6JIZLcvPC"/> |
|||
<listitem type="815" open="0" id="uD20Jxn6U4MYO"/> |
|||
</listitem> |
|||
<listitem type="810" open="0" id="uc6prlmvuc49Z" label="sequence diagram"/> |
|||
<listitem type="813" open="1" id="u78YzdJCnsDYg"/> |
|||
<listitem type="813" open="1" id="uy0q0G1pHWfPt"/> |
|||
<listitem type="813" open="1" id="ukFumxgPIWZZS"/> |
|||
</listitem> |
|||
<listitem type="802" open="1" id="Use_Case_View"/> |
|||
</listitem> |
|||
</listview> |
|||
<codegeneration> |
|||
<codegenerator language="C++"/> |
|||
</codegeneration> |
|||
</XMI.extensions> |
|||
</XMI> |
|||
Loading…
Reference in new issue