Ajoutd es fichiers
This commit is contained in:
commit
e7a9b1a7cf
28 changed files with 1610 additions and 0 deletions
233
.gitignore
vendored
Normal file
233
.gitignore
vendored
Normal file
|
@ -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
|
BIN
CSLogo.png
Normal file
BIN
CSLogo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 79 KiB |
169
MyPack2.sty
Normal file
169
MyPack2.sty
Normal file
|
@ -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
|
BIN
complementaire.pdf
Normal file
BIN
complementaire.pdf
Normal file
Binary file not shown.
53
complementaire.tex
Normal file
53
complementaire.tex
Normal file
|
@ -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}
|
BIN
compteRendu.pdf
Normal file
BIN
compteRendu.pdf
Normal file
Binary file not shown.
60
compteRendu.tex
Normal file
60
compteRendu.tex
Normal file
|
@ -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}
|
40
macroTL.tex
Normal file
40
macroTL.tex
Normal file
|
@ -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}
|
||||||
|
|
19
questioncomplementaire/AlgoCodage.java
Normal file
19
questioncomplementaire/AlgoCodage.java
Normal file
|
@ -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();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
82
questioncomplementaire/Arbre.java
Normal file
82
questioncomplementaire/Arbre.java
Normal file
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
38
questioncomplementaire/Cesar.java
Normal file
38
questioncomplementaire/Cesar.java
Normal file
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
39
questioncomplementaire/CodageAClef.java
Normal file
39
questioncomplementaire/CodageAClef.java
Normal file
|
@ -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 + "\")";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
58
questioncomplementaire/Comparateur.java
Normal file
58
questioncomplementaire/Comparateur.java
Normal file
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
37
questioncomplementaire/Feuille.java
Normal file
37
questioncomplementaire/Feuille.java
Normal file
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
54
questioncomplementaire/Huffman.java
Normal file
54
questioncomplementaire/Huffman.java
Normal file
|
@ -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()))
|
||||||
|
+ ")";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
24
questioncomplementaire/HuffmanCode.java
Normal file
24
questioncomplementaire/HuffmanCode.java
Normal file
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
51
questioncomplementaire/Morse.java
Normal file
51
questioncomplementaire/Morse.java
Normal file
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
22
questioncomplementaire/Noeud.java
Normal file
22
questioncomplementaire/Noeud.java
Normal file
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
46
questioncomplementaire/Utilitaire.java
Normal file
46
questioncomplementaire/Utilitaire.java
Normal file
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
10
td4/question1/comparateur.java
Normal file
10
td4/question1/comparateur.java
Normal file
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
16
td4/question2/AlgoCodage.java
Normal file
16
td4/question2/AlgoCodage.java
Normal file
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
30
td4/question2/Cesar.java
Normal file
30
td4/question2/Cesar.java
Normal file
|
@ -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é";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
32
td4/question2/Comparateur.java
Normal file
32
td4/question2/Comparateur.java
Normal file
|
@ -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())));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
19
td4/question2/Morse.java
Normal file
19
td4/question2/Morse.java
Normal file
|
@ -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";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
BIN
td4/question3/rational_rose.png
Normal file
BIN
td4/question3/rational_rose.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 28 KiB |
41
td4/question4/ArbreTest.java
Normal file
41
td4/question4/ArbreTest.java
Normal file
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
36
td4/question5/Feuille.java
Normal file
36
td4/question5/Feuille.java
Normal file
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
401
truc
Normal file
401
truc
Normal file
|
@ -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 a new issue