Developpement D'une Applicatio - EL FALLAQY Youssef - 3565
Developpement D'une Applicatio - EL FALLAQY Youssef - 3565
Developpement D'une Applicatio - EL FALLAQY Youssef - 3565
D
Dvveellooppppeem meenntt dduunnee aapppplliiccaattiioonn w
weebb JJaavvaa E
EE E ppoouurr
llee ccaallccuull ddee H
Heeaaddrroooomm dduunnee ccoom mbbiinnaaiissoonn
En premier lieu nos parents qui nous ont soutenus moralement et matriellement tout au
long de notre vie. Nous esprons avant tout que nous serons toujours votre fiert. Que
DIEU vous bnisse.
Enfin, toutes personnes qui ont contribu et collabor de prs ou de loin la ralisation de
ce modeste travail.
1|Page
Table des matires
Rsum.8
Abstract.9
Introduction gnrale..10
Chapitre I. Prsentation gnrale....11
I. Organisme daccueil12
1. YAZAKI..12
1.1. Historique du groupe YAZAKI.12
1.2. Activits de YAZAKI13
1.3. Processus de dlocalisation....13
2. YAZAKI Maroc...14
2.1. Cration de YAZAKI Maroc.....14
2.2. Activit de YAZAKI Maroc..15
2.3. Organigramme gnral..15
II. Prsentation du projet.16
1. Problmatique..16
2. Cahier de charge..17
3. Solution propose18
Chapitre II. Analyse des besoins et conception..19
I. Mthodologie du dveloppement....20
1. Langage de modlisation.20
1.1. Dfinition...20
2. Mthodologie adopte.21
2.1. Dfinition...21
2.2. Itratif et incrmental.22
2.3. Phases du RUP...22
II. Analyse...23
1. Identification des besoins23
2|Page
1.1. Besoins fonctionnels..23
1.2. Besoins non fonctionnels...24
2. Acteurs du systme..25
3. Messages mis et reu par le systme..26
3.1. Messages envoys par lAdministrateur ..26
3.2. Messages envoys par lEmploy 27
4. Cas dutilisation par acteur..28
4.1. Diagramme associ lAdministrateur ...28
4.2. Diagramme associ lEmploy .29
5. Description textuelle des cas dutilisation...30
5.1. Description textuelle des cas dutilisation de lAdministrateur ...30
5.2. Description textuelle des cas dutilisation de lEmploy 32
III. Conception....33
1. Diagramme de classes modle statique .33
2. Diagrammes de squences modle dynamique .35
2.1. Diagramme de squence calculer le Headroom ...35
2.2. Diagramme de squence modifier une combinaison ...36
2.3. Diagramme de squence crer un compte ...37
2.4. Diagramme de squence modifier un compte .38
3. La base de donnes de lapplication39
Chapitre III. Mise en place de lapplication...40
I. Langages et technologies de dveloppement..41
1. Plate-forme Java EE....41
1.1. Dfinition...41
1.2. Pourquoi Java EE...42
2. Framework JSF....43
3. HTML..43
4. CSS..43
5. JavaScript.44
6. JQuery..44
7. MySQL....44
II. Environnement de ralisation.45
3|Page
1. Environnement matriel...45
2. Environnement logiciel....45
2.1. Apache TomEE..45
2.2. NetBeans IDE46
2.3. Entreprise Architect...46
III. Prsentation de lapplication.46
1. Prototype de linterface Authentification ..46
2. Prototype de linterface calculer le Headroom ..48
3. Prototype de linterface gestion des combinaisons 48
4. Prototype de linterface crer un compte ...51
5. Prototype de linterface gestion des comptes 52
6. Prototype de linterface gestion des machines ...52
7. Prototype de linterface contacter un utilisateur 53
8. Prototype de linterface contacter ladministrateur ...53
Conclusion gnrale54
Annexes..55
Bibliographie..59
Webographie...59
4|Page
Liste des figures
5|Page
Figure 20 : interface edit combination .50
6|Page
Liste des tableaux
7|Page
Rsum
Nous avons effectu notre stage de fin d'tudes au sein de YAZAKI Morocco qui est une
Socit de cblage dautomobile appartenant au groupe YAZAKI installe la zone franche
de Tanger.
Ce stage tait destin la ralisation dune application web en Java EE pour le calcul de
Headroom dune combinaison. Nous avons ralis lapplication avec la plate-forme Java
EE (Java Entreprise Edition) en utilisant MySQL comme un SGBD (Systme Gestion de
Base de Donnes).
8|Page
Abstract
This training was intended for the realization of a Java EE web application to calculate the
Headroom for a combination. We realized the application with the Java EE platform (Java
Enterprise Edition) using MySQL as a DBMS (Database Management System).
9|Page
Introduction gnrale
Au terme de nos tudes la facult des Sciences et Techniques Fs, et dans le cadre de
lobtention de la licence Science et Technique - Gnie Informatique, nous sommes amens
effectuer un stage de fin d'tudes de deux mois afin de parfaire nos connaissances
acquises tout au long de cette anne et de les mettre en application dans le milieu
professionnel.
Ce rapport est le fruit dun stage qui sest droul au sein de la multinationale japonaise
YAZAKI Tanger de la priode du 04 Avril au 04 Juin 2016. Notre travail au cours du
stage porte sur la ralisation dune application en Java EE et utilisant MySQL comme
systme de gestion de base de donnes. Lapplication a pour but de calculer lindicateur
Headroom pour une combinaison donne.
Le troisime chapitre dcrit lenvironnement technique du projet, les outils et les langages
de programmation et de modlisation utiliss pour la ralisation et la prsentation de
lapplication.
10 | P a g e
Chapitre I.
Prsentation gnrale
11 | P a g e
Chapitre 1
Prsentation gnrale
Introduction
Ce chapitre a pour objectif de situer le projet dans son contexte gnral. Pour ce faire, nous
prsentons dans un premier lieu lorganisme daccueil, ensuite, nous dcrivons
minutieusement le projet en dgagent les problmes en vue de prciser les objectifs.
I. Organisme daccueil
1. YAZAKI
YAZAKI [1] est lun des plus grands producteurs du monde de cblage automobile et un
joueur dans la fabrication des systmes de la distribution lectrique et lectroniques,
linstrumentation lectronique et les composants pour les voitures. La date de succs de
YAZAKI tait en 1929, quand SADAMI YAZAKI a commenc vendre les cblages pour
les automobiles. En 1939, laffaire pourrait tre tendue et en 1941, YAZAKI Fil
Electrique Industriel Co. Ltd a t tabli avec approximativement 70 employs.
12 | P a g e
1.2. Activits de YAZAKI
Le groupe japonais [1] dont le sige est bas Tokyo, son activit principale est le cblage,
la fabrication de composants lectriques pour automobiles et instruments.
Ses autres activits sont la fabrication des fils et cbles lectriques, la fabrication des
produits de gaz et la climatisation.
173 socits.
478 units rparties entre usines de production et centres de service au client
et centres de Recherche & Dveloppement.
284 200 demploys.
13 | P a g e
2. YAZAKI Maroc
En 2001, le Maroc a t le premier pays africain auquel Mr. YAZAKI a fait honneur, par
linauguration de son site oprationnel YAZAKI MAROC (YMO) pour la production des
cbles automobile, en prsence de SM le ROI MOHAMMED VI. Ce nest quen mai 2003
quelle acquiert son indpendance et devient YAZAKI MOROCCO. Avec un capital de 88
millions de DH, elle a accumul un investissement de plus de 253 millions de DH.
YAZAKI MOROCCO a ralis un chiffre daffaires de 150 millions deuros en 2010 pour
un total demplois suprieur 4900 postes. [2]
14 | P a g e
2.2. Activit de YAZAKI Maroc
Lactivit de YAZAKI Maroc est la conception des cbles lectriques qui servent
connecter des diffrents lments dans un systme lectromcanique et de fournir
de lnergie lectrique et des signaux lectronique diffrents priphriques du systme.
15 | P a g e
II. Prsentation du projet
1. Problmatique
chaque lancement de nouveau projet ou bien en relation avec les changements techniques
des projets en cours, le service Crimping Process de chaque usine de YAZAKI Europe
(19 usines) est toujours amen faire un test de validation pour les nouvelles combinaisons
par le calcul de leur indicateur Headroom.
Pour faire le calcul, les employs du service Crimping Process ont besoin de tlcharger la
dernire version du fichier YEL-CE-S-211 de E-Matrix et vrifier si la combinaison est
dj disponible dans le fichier (le Headroom de cette combinaison est dj calcul dans
une autre usine) les employs prennent seulement les rsultats de calcul, sinon ils calculent
le Headroom et enregistrent la combinaison avec ses rsultats dans le mme fichier.
Le fichier YEL-CE-S-211 est une application VBA (Visual Basic for Applications) faite
en Excel.
16 | P a g e
Les employs ont envisag plusieurs problmes utilisant ce fichier pour le calcul et pour
lenregistrement des combinaisons et leurs informations :
Chaque jour lemploy doit tlcharger le fichier, faire les calculs et le charger, ce
qui prend beaucoup de temps.
Excel devient trs lent avec lajout des centaines des combinaisons chaque jour.
Lemploy doit vrifier la liste des combinaison enregistres dans le fichier avant
le calcul de Headroom de chaque combinaison.
Les informations enregistres dans le fichier sont confidentielles et doivent tre
scurises, ce qui nest pas le cas avec cette mthode.
2. Cahier de charge
Il peut en plus consulter tous combinaisons enregistres dans base de systme, ainsi la
gnration de rapport dune combinaison (sous forme PDF ou Excel), comme il peut
modifier et supprimer les combinaisons quil a enregistr lui-mme.
En plus, il gre les machines (Press, CFM, Applicateurs ...) et les paramtres de
combinaison (Wire Size et Strands).
17 | P a g e
3. Solution propose
Nous avons propos une application web Java EE en utilisant MySQL comme systme de
gestion de base de donnes.
18 | P a g e
Chapitre II.
Analyse des besoins
et conception
19 | P a g e
Chapitre 2
Analyse des besoins et conception
Introduction
Dans ce chapitre nous allons prsenter l'tude technique de notre projet. L'analyse des
donnes sera prsente en premier lieu suivie d'une conception, vu que ltape de la
ralisation nest quun fruit dune bonne analyse et conception, ceux-ci savrent donc
primordiaux et fondamentaux dans la totalit du travail du projet.
I. Mthodologie du dveloppement
1. Langage de modlisation
Nous avons choisi comme langage de modlisation UML (Unified Modeling Language).
1.1. Dfinition
UML est utilise pour spcifier un logiciel et/ou pour concevoir un logiciel. Dans la
spcification, le modle dcrit les classes et les cas dutilisation vus de lutilisateur final du
logiciel. Le modle produit par une conception oriente objet est en gnral une extension
du modle issu de la spcification. Il enrichit ce dernier de classes, dites techniques, qui
nintressent pas lutilisateur final du logiciel mais seulement ses concepteurs. Il comprend
20 | P a g e
les modles des classes, des tats et dinteraction. UML est galement utilise dans les
phases terminales du dveloppement avec les modles de ralisation et de dploiement.
2. Mthodologie adopte
Parmi les mthodologies du dveloppement qui existent et en coordination avec notre
projet, nous avons trouv que le RUP est la mthodologie de travail qui peut nous orienter
tout au long du projet.
2.1. Dfinition
21 | P a g e
2.2. Itratif et incrmental
Notre projet a t dcoup en itrations de courte dure qui nous ont aid mieux suivre
lavancement de projet. la fin de chaque itration une partie excutable du systme final
est produit de faon incrmentale.
22 | P a g e
II. Analyse
Les besoins fonctionnels sont dfinis comme tant des services attendus par lutilisateur de
produit. Ils doivent constituer un ensemble complet et cohrent. Dans ce qui suit, nous
allons prsenter les besoins fonctionnels bauchs durant la proposition de la solution.
23 | P a g e
Gestion de paramtres de combinaison : ladministrateur systme a la possibilit
dajouter des nouveaux paramtres de combinaison (Wire Size et Strands) ainsi
que la suppression des paramtres existants.
Communication entre les utilisateurs : les utilisateurs peuvent communiquer
entre eux travers lapplication.
Contacter ladministrateur : les utilisateurs peuvent envoyer un email
ladministrateur travers lapplication.
Les besoins non fonctionnels se basent sur le respect des normes de lergonomie et des
interactions homme/machine quon fournit lapplication. Notre application doit
ncessairement assurer ces besoins :
24 | P a g e
La portabilit : il sagit de minimiser leffort pour se faire transporter dans un autre
environnement matriel et/ou logiciel.
La scurit : le systme doit traiter les failles de scurit do le besoin dun login
et dun mot de passe pour accder au systme. Les messages derreurs doivent
identifier tous les cas derreurs de saisie et leur source.
2. Acteurs du systme
Nous parvenons une tape cl du processus. Cest elle qui grce ltude ralise dans
la partie prcdente mettra en valeur le rle de chaque acteur du systme ainsi que les
fonctionnalits prsentes plus haut.
Dans cette partie nous allons numrer les diffrents acteurs susceptibles dinteragir avec
le systme.
Sauthentifier
Crer un compte
Modifier un compte
Supprimer un compte
Activer/dsactiver un compte
Consulter compte
Ajouter une machine
Supprimer une machine
25 | P a g e
Ajouter un paramtre de combinaison
Supprimer un paramtre de combinaison
Contacter un utilisateur
Employ : (Process Owner) ces rles sont rsums comme dcrit ci-dessous :
Sauthentifier
Calculer le Headroom dune combinaison
Modifier une combinaison
Supprimer une combinaison
Consulter une combinaison
Gnrer le rapport dune combinaison
Contacter un utilisateur
Contacter ladministrateur
26 | P a g e
Supprimer un compte - Confirmation de suppression
Consulter un compte - Liste des comptes utilisateurs
Activer/dsactiver un compte - Pas de message
- Message succs
Ajouter une machine
- Message derreur
Supprimer une machine - Confirmation de suppression
- Message succs
Ajouter un paramtre de combinaison
- Message derreur
Supprimer un paramtre de combinaison - Confirmation de suppression
Contacter un utilisateur - Pas de message
27 | P a g e
4. Cas dutilisation par acteur
Les diagrammes de cas d'utilisation sont des diagrammes UML utiliss pour donner une
vision globale du comportement fonctionnel du systme logiciel.
28 | P a g e
4.2. Diagramme associ lEmploy
29 | P a g e
5. Description textuelle des cas dutilisation
La description textuelle de cas dutilisation [4] consiste recenser toutes les interactions
entre le systme et les acteurs de faon textuelle. Le cas dutilisation doit avoir un dbut et
une fin clairement identifis. Il doit prciser quand ont lieu les interactions entre acteurs et
systme, et quels sont les messages changs. Il faut galement prciser les variantes
possibles, telles que les diffrents cas nominaux, les cas alternatifs, les cas derreurs, tout
en essayant dordonner squentiellement les descriptions, afin damliorer leur lisibilit.
Chaque unit de description de squences dactions est appele enchanement. Un scnario
reprsente une succession particulire denchanements, qui sexcute du dbut la fin du
cas dutilisation.
Dans cette partie nous allons limiter aux cas dutilisation importantes.
Titre Authentification
Objectif tre connue par le systme
Acteur Administrateur / Employ
Pr-condition Post-condition
Lutilisateur doit tre connu par le systme Lutilisateur avoir laccs son espace priv
Scnario nominal
1. Ladministrateur/lemploy lance lapplication
2. Le systme affiche un formulaire de connexion
3. Ladministrateur/lemploy saisie le E-Mail et le Password
4. Ladministrateur/lemploy demande la connexion
5. Le systme vrifie les donnes saisies
6. Le systme valide les donnes et permet laccs
30 | P a g e
Description textuelle : crer un compte
31 | P a g e
Description textuelle : contacter un utilisateur (Administrateur, Employ)
32 | P a g e
Description textuelle : modifier une combinaison
III. Conception
La conception est une tape primordiale pour la ralisation dun produit informatique. Nous
allons utiliser le diagramme de classes et le diagramme de squence en vue de prsenter le
comportement statique et dynamique de notre modle : le diagramme de classes exprime
dune manire gnrale la structure statique dun systme, en termes de classes et de
relation entre classes et le diagramme de squence illustre dune manire dynamique le
scnario de ralisation des fonctions du systme.
33 | P a g e
Tableau 11 : diagramme de classes
34 | P a g e
2. Diagrammes de squences modle dynamique
Les diagrammes de squences [5] servent illustrer les cas d utilisation, ils permettent de
reprsenter les interactions dans le temps entre les objets du systme.
35 | P a g e
2.2. Diagramme de squence Modifier une combinaison
36 | P a g e
2.3. Diagramme de squence Crer un compte
37 | P a g e
2.4. Diagramme de squence Modifier un compte
38 | P a g e
3. La base de donnes de lapplication
Conclusion :
Dans ce chapitre nous avons dtaill les diffrentes vues conceptuelles de lapplication
raliser travers les modles UML ncessaires. Cette conception est essentielle pour la
phase de ralisation qui constitue lobjet du chapitre suivant.
39 | P a g e
Chapitre III.
Mise en place de lapplication
40 | P a g e
Chapitre 3
Mise en place de lapplication
Introduction :
Dans ce chapitre, nous aborderons la partie ralisation du projet. Plus prcisment nous
parleront des outils et des langages de dveloppement, puis nous allons entamer les tapes
de la ralisation et quelques captures dcran pour expliquer de fonctionnement du systme.
1. Plate-forme Java EE
1.1. Dfinition
Sun (le concepteur de Java) a donc mis en place un ensemble de technologies pour raliser
des applications Web. Ces technologies sont regroupes sous le nom J2EE (Java 2
Entreprise Edition), dsormais Java EE.
41 | P a g e
1.2. Pourquoi Java EE
Cest pour cela que larchitecture Java EE est intressante car tous les lments
fondamentaux sont dj en place. Pas besoin de concevoir une architecture, des librairies
et des outils spcialement adapts. Cela ncessiterait un temps et un investissement
considrables.
Enfin, la plateforme Java EE est base sur des spcifications, ce qui signifie que les projets
sont portables sur nimporte quel serveur dapplications conforme (Tomcat, JBoss,
WebSphere...) ces spcifications. Cette implmentation est gratuite et permet de
bnficier de la totalit de lAPI sans investissement. La plateforme Java EE est la plus
riche des plates-formes Java et offre un environnement standard de dveloppement et
dexcution dapplications dentreprise multi-tiers. [6]
42 | P a g e
2. Framework JSF
JSF [7] (Java Server Faces) est une technologie dont le
but est de proposer un framework qui facilite et
standardise le dveloppement d'applications web avec
Java. Son dveloppement a tenu compte des diffrentes
expriences acquises lors de l'utilisation des technologies standard pour le dveloppement
d'applications web (servlet, JSP, JSTL) et de diffrents frameworks (Struts, ...).
3. HTML
HTML [8] L'Hypertext Markup Language, gnralement abrg HTML, est
le format de donnes conu pour reprsenter les pages web. C'est un
langage de balisage qui permet d'crire de l'hypertexte, do son nom.
Langage de balisagehypertexte Permet de structurer et de mettre en forme
le contenu des pages, dinclure des ressources multimdias dont des images, des
formulaires de saisie, et des lments programmables.
4. CSS
Le terme CSS [9] est l'acronyme anglais de Cascading Style
Sheets qui peut se traduire par feuilles de style en cascade . Le CSS
est un langage informatique utilis sur l'internet pour mettre en forme les
fichiers HTML ou XML. Ainsi, les feuilles de style, aussi appel les
fichiers CSS, comprennent du code qui permet de grer le design d'une page en HTML.
43 | P a g e
5. JavaScript
JavaScript [10], souvent abrg en JS, est le langage de script dvelopp
par Netscape utilis dans des millions de pages web et d'applications
serveur dans le monde entier. Le JavaScript de Netscape est une extension
du langage de script standard ECMA-262 Edition 3 (ECMAScript), ne
diffrant que lgrement des standards publis. JavaScript est un langage
lger, interprt, orient objet (les fonctions tant des objets part entire).
6. JQuery
JQuery [11] est une bibliothque JavaScript libre qui porte sur
l'interaction entre JavaScript (comprenant Ajax) et HTML, et a pour
but de simplifier des commandes communes de JavaScript. La
premire version date de janvier 2006.
7. MySQL
MySQL [12] est un Systme de Gestion de Base de Donnes (SGBD) parmi les
plus populaires au monde, Cest est un serveur de base de donnes relationnelles
SQL qui fonctionne sur de nombreux systmes dexploitation
(dont Linux, Mac OS X, Windows, Solaris, FreeBSD) et
qui est accessible en criture par de nombreux langages de programmation, incluant
notamment PHP, Java, Ruby, C, C++, .NET, Python
44 | P a g e
II. Environnement de ralisation
Dans cette partie avons prsents lenvironnement matriel et logiciel de la ralisation de
notre projet.
1. Environnement matriel
Lapplication a t dveloppe sur un ordinateur portable avec les caractristiques
suivantes :
2. Environnement logiciel
Lors de dveloppement de notre application, nous avons exploit plusieurs logiciels, a ce
quon va prsenter dans cette partie.
45 | P a g e
2.2. NetBeans IDE
46 | P a g e
III. Prsentation de lapplication
47 | P a g e
2. Prototype de linterface Calculer le Headroom
L'application permet l'Employ de calculer le Headroom dune combinaison en
saisissant des informations correspondant celle-ci
48 | P a g e
Figure 19 : interface my combinations
49 | P a g e
Figure 21 : interface all combinations
50 | P a g e
4. Prototype de linterface Crer un compte
Pour crer des comptes utilisateurs il est ncessaire lAdministrateur de passer
linterface de cration des comptes comme illustre la figure suivante :
51 | P a g e
5. Prototype de linterface Gestion des comptes
Pour consulter, modifier ou supprimer des comptes utilisateurs, il est ncessaire
lAdministrateur de passer linterface de gestion des comptes comme illustre la figure
suivante :
52 | P a g e
7. Prototype de linterface Contacter un utilisateur
Lapplication permet la communication entre ses utilisateurs
53 | P a g e
Conclusion gnrale
Ce projet nous a donn lopportunit de s'initier la vie professionnelle dans un milieu rel
et avoir au dbut d'exprience significative et il nous a appris comment ds le matin on
peut prendre le parti de la gaiet, comment russir de bonnes relations pour assurer un
travail du groupe, comment compter sur soi pour rsoudre les problmes au cas o ils se
prsentent, comment tre attentives aux indications de nos suprieurs.
Au cours de la ralisation de notre projet, nous avons taient astreints par quelques limites
notamment, la contrainte de temps qui tait relativement un obstacle devant l'ajout de
certaines autres fonctionnalits.
54 | P a g e
Annexes
public Hasher() {
salt = BCrypt.gensalt();
}
55 | P a g e
try {
if(keyFactory != null)
{
secret = keyFactory.generateSecret(keySpec);
}
} catch (InvalidKeySpecException e) {
System.out.println("Could NOT generate secret key");
}
if(secret != null)
{
byte[] rawHash = secret.getEncoded();
byte[] hashBase64 = Base64.getEncoder().encode(rawHash);
return new String(hashBase64);
}
return null;
}
56 | P a g e
String hash = encode(password, this.DEFAULT_ITERATIONS);
return hash.equals(hashedPassword);
}
mimeMessage.setFrom(new InternetAddress(FROM));
mimeMessage.setSender(new InternetAddress(FROM));
mimeMessage.setSubject(subject);
mimeMessage.setContent(message, "text/plain");
mimeMessage.addRecipient(Message.RecipientType.TO, new
InternetAddress(recipient));
57 | P a g e
transport = mailSession.getTransport("smtp");
transport.connect(HOST, PORT, USER, PASSWORD);
transport.sendMessage(mimeMessage, mimeMessage.getRecipients(
Message.RecipientType.TO ));
transport.close();
} catch (MessagingException ex) {
Logger.getLogger(Email.class.getName()).log(Level.SEVERE, null, ex);
} finally {
if(transport != null && transport.isConnected()) try {
transport.close();
} catch (MessagingException ex) {
Logger.getLogger(Email.class.getName()).log(Level.SEVERE, null, ex);
}
}
58 | P a g e
Bibliographie
[3] : Unified Modeling Language (UML). Bruno BOUZY
[4] : UML en action de lanalyse des besoins la conception en Java. Pascal ROQUES
Webographie
[1] : http:// www.yazaki-europe.com
[2] : http://docslide.fr/documents/rapport-de-stage-qualite.html
[7] : http://www.jmdoudoux.fr/java/dej/chap-jsf.htm
[8] : http://slideplayer.fr/slide/4345759
[9] : http://glossaire.infowebmaster.fr/css
[10] : https://developer.mozilla.org/fr/docs/Web/JavaScript/A_propos
[11] : http://distilleri.es/javascript/jquery
[12] : http://sql.sh/sgbd/mysql
[13] : https://netbeans.org/index_fr.html
[14] : http://republic.pink/enterprise-architect_1439556.html
59 | P a g e