Outils De Dev Open Source 11

116
Khaled BEN DRISS Consultant/formateur Ingénieur de l'Ecole Centrale de Lyon Docteur de l’Université JIP'2006 Outils de développement et environnements libres Docteur de l’Université Paris VI (Pierre et Marie Curie) [email protected]

description

Outils dedéveloppementet environnementslibres

Transcript of Outils De Dev Open Source 11

Page 1: Outils De Dev Open Source 11

Khaled BEN DRISSConsultant/formateur

Ingénieur de l'Ecole Centrale de Lyon

Docteur de l’Université JIP'2006

Outils de développement et environnements

libres

Docteur de l’Université Paris VI (Pierre et Marie

Curie)

[email protected]

Page 2: Outils De Dev Open Source 11

NetProgress est une SSLL qui maîtrise la fourniture autour des progiciels libres : - Architecture- Services liés d’installation & paramétrage, - Formation,

Professional Open Source

[email protected] Outils de développement et environnements libres JIP'2006

- Formation, - Évolution & maintenance, - jusqu’à la réalisation de développements complémentaires sur mesure.

NetProgress est spécialisée dans les technologies J2EE

Page 3: Outils De Dev Open Source 11

Khaled BEN DRISSConsultant / Formateur J2EE

� Ingénieur de l'Ecole Centrale de Lyon

[email protected] Outils de développement et environnements libres JIP'2006

� Ingénieur de l'Ecole Centrale de Lyon� Docteur de l'Université Paris 6� Ancien Maître Assistant à l'EPT� Fondateur NetProgress�Architecte de Système d'Information

Page 4: Outils De Dev Open Source 11

Objectifs

•Présenter des outils de développement, issu du monde open source, qui

[email protected]

source, qui pourraient vous aider à augmenter votre productivité

Page 5: Outils De Dev Open Source 11

Outils & processus

� Les outils de développement doivent être inscrits dans le cadre d'un processus de développement

� Il ne s'agit pas seulement des outils de "traitement de code" et compilation

� Les outils servent à – pour produire des logiciels de meilleur qualité

[email protected] Outils de développement et environnements libres JIP'2006

– pour produire des logiciels de meilleur qualité– à maîtriser le processus de développement– à mieux communiquer au sein d'une équipe de

développement

Page 6: Outils De Dev Open Source 11

Besoin Nouveau système nouveauProcessus d'ingénierie

Un Processus ?

� Définit Qui fait Quoi, Quand le faire, et Commentatteindre un objectif.

[email protected] Outils de développement et environnements libres JIP'2006

Ou un changement ou mise à jour

Processus d'ingénierielogicielle

� Et aussi, un processus de développement doit préciser, – avec quoi ? (quel outil utiliser)

Page 7: Outils De Dev Open Source 11

"Axes à outiller"

Développement

Gestion de projet et

communication au sein de l'équipe

[email protected] Outils de développement et environnements libres JIP'2006

Test et suivi des bugs

Frameworks techniques

Environnement de développement

Page 8: Outils De Dev Open Source 11

� Tout logiciel dont le code source est disponible pour les utilisateurs, qui peuvent l'étudier, le modifier, l'exécuter et le redistribuer librement

� il s'agit de solutions logicielles génériques (au sens

Logiciel libre : une définition

simplifiée

[email protected] Outils de développement et environnements libres JIP'2006

� il s'agit de solutions logicielles génériques (au sens du terme utilisé dans le secteur médical)

� Rappel : Un Logiciel = Une licence– Pour le Libre : GPL, BSD, MPL,…

Page 9: Outils De Dev Open Source 11

Les logiciels libres = quatre principes

Le logiciel libre garantit 4 libertés

L'utilisateur peut L'utilisateur n'a L'utilisateur L'utilisateur peut

Liberté d' exécuterun programme pour

tous les usages (privés ou

commerciaux)

Liberté d' examiner le fonctionnement

interne du programme et de le modifier

Liberté de redistribuerdes copies du programme,

commercialement ou non

Liberté de modifie r le

programme et de redistribuer

[email protected] Outils de développement et environnements libres JIP'2006

L'utilisateur peut améliorer le

programme et en redistribuer une nouvelle version

L'utilisateur n'a pas de

permission à demander pour

utiliser le programme

L'utilisateur dispose du code source, et non pas seulement

d'un exécutable

L'utilisateur peut distribuer des copies

du programme gratuitement ou en

les faisant payer

En rupture avec les logiciels propriétaires

L'utilisateur n'est pas obligé de

payer une licence d'utilisation

Le code source n'est plus

confidentiel

La distribution non autorisée n'est plus

un délit

Le créateur d'un logiciel n'a pas le monopole de son

amélioration

Page 10: Outils De Dev Open Source 11

Axe : Développement

Développement

Gestion de projet et

communication au sein de l'équipe

[email protected] Outils de développement et environnements libres JIP'2006

Test, tuning et suivi des bugs

Frameworks techniques

Environnement de développement

Page 11: Outils De Dev Open Source 11

IDE : Integrated Development Environement

� Produire du code, déboguer, …� Le logiciel libre a consolidé sa

position dans ce domaine� Eclipse est le "Linux des IDE" un

concurrent de taille.

EclipseNetBeansJedit

[email protected] Outils de développement et environnements libres JIP'2006

concurrent de taille.� 2006 : Borland envisage

d'abandonner ses IDEs et cherche un repreneur pour jbuilder

� L'IDE d'IBM pour WebSphere est basé sur Eclipse (WSAD 5 basé sur Eclipse 2 et RAD 6 sur Eclipse 3)

Page 12: Outils De Dev Open Source 11

Exemple : Eclipse� Le Numéro 1 des IDE open source (code original de

chez IBM)

� Codage� Débugage� Refactoring� Packaging� Versioning

[email protected] Outils de développement et environnements libres JIP'2006

� Versioning� …

Page 13: Outils De Dev Open Source 11

Exemple : netBeans de Sun

� Le chalenger, IDE open source pour Java/J2EE de chez SUN

� Codage� Débugage� Refactoring

[email protected] Outils de développement et environnements libres JIP'2006

� Refactoring� Packaging� Versioning� Profiling� …

Page 14: Outils De Dev Open Source 11

Modélisation : Manipuler des digrammes UML

� Produire des diagrammes UML

� Important dans un process de développement !

Omondo EclipseUML argoUMLPoseidon FujabaUmbrello UML Modeller

[email protected] Outils de développement et environnements libres JIP'2006

Umbrello UML Modeller

Page 15: Outils De Dev Open Source 11

Exemple : Umbrello UML Modeller

� Pour Linux� KDE

[email protected] Outils de développement et environnements libres JIP'2006

Page 16: Outils De Dev Open Source 11

Exemple : Fujaba Tool Suite -UML

[email protected] Outils de développement et environnements libres JIP'2006

Page 17: Outils De Dev Open Source 11

Exemple : ArgoUML

[email protected] Outils de développement et environnements libres JIP'2006

Page 18: Outils De Dev Open Source 11

Manipulation de base de données

� Très utile pour découvrir les schémas des SGBD

� Manipuler les structures des SGBD

� Tester les requêtes SQL

SQuirreLEclipse pluginsTORA

[email protected] Outils de développement et environnements libres JIP'2006

� Tester les requêtes SQL

Page 19: Outils De Dev Open Source 11

TORA : Toolkit libre pour Oracle de chez Quest Software

http

://tora.so

urcefo

rge.n

et/

[email protected] Outils de développement et environnements libres JIP'2006

http

://tora.so

urcefo

rge.n

et/

Page 20: Outils De Dev Open Source 11

SQuirreL : manipuler schémas & Sql

[email protected] Outils de développement et environnements libres JIP'2006

Page 21: Outils De Dev Open Source 11

Manipulation de LDAP� Très utile pour découvrir les

données dans un LDAP LDAP Browser/Editor

[email protected] Outils de développement et environnements libres JIP'2006

Page 22: Outils De Dev Open Source 11

Besoin particulier web : Manipulation HTML

� Nvu est la refonte du module d'édition HTML de Mozilla, il utilise le langage d'interface utilisateur multi-plateformes XUL.

� Concurent sérieux de DreamWeaver

NVU

[email protected] Outils de développement et environnements libres JIP'2006

Page 23: Outils De Dev Open Source 11

Contrôle et Gestion de version� Suivre les versions des

codes sources, …� Organiser les contributions

des groupes sur un même projet

� Suivre plusieurs versions d'une même application :

CVS & CvsNTSubversionViewCVSWinCvsTortoiseCVS

[email protected] Outils de développement et environnements libres JIP'2006

d'une même application : – Exemple : version 1.0.3

installé chez le client et version 2.0.0 en bêta Test …

TortoiseCVS

Page 24: Outils De Dev Open Source 11

Exemple : CVS

� http://www.cvshome.org/� UN MUST� Disponible pour presque tous les OS.� Utilisé partout dans le monde.� Intégré dans la plupart des EDI

[email protected] Outils de développement et environnements libres JIP'2006

� Intégré dans la plupart des EDI� Version windows : cvsNT

� Si vous êtes nouveau : étudier l'apport du nouvel outil Subversion (le challenger), "on pense" qu'il va remplacer CVS …

Page 25: Outils De Dev Open Source 11

CVS & Eclipse : intégration parfaite

[email protected] Outils de développement et environnements libres JIP'2006

Page 26: Outils De Dev Open Source 11

CVS & Eclipse : intégration parfaite

[email protected] Outils de développement et environnements libres JIP'2006

Page 27: Outils De Dev Open Source 11

CVS & Eclipse : intégration parfaite

[email protected] Outils de développement et environnements libres JIP'2006

Page 28: Outils De Dev Open Source 11

ViewCVS

[email protected] Outils de développement et environnements libres JIP'2006

Page 29: Outils De Dev Open Source 11

WinCVS

Gérer vos fichiers dans CVS indépendamment de l'IDE

[email protected] Outils de développement et environnements libres JIP'2006

Page 30: Outils De Dev Open Source 11

Intégration continue & "Build"

� Automatiser les opérations de compilation, de packaging, de test de non régression, de déploiement , de

Ant (J2EE)Nant (.Net)Maven

Anthill

[email protected] Outils de développement et environnements libres JIP'2006

déploiement , de création d'installation,…

� Construction en continue

AnthillCruiseControlLuntbuildDraco.NET (.net)

Page 31: Outils De Dev Open Source 11

Exemple : Ant� Dans le monde Java, ANT est l’outil incontournable

pour automatiser des traitements répétitifs en modebatch : outil de build automatique.

� Il possède tous les atouts propres aux standards :– simple,– bâti sur des technologies ouvertes (Java et

XML), extensible,

[email protected] Outils de développement et environnements libres JIP'2006

– bâti sur des technologies ouvertes (Java etXML), extensible,

– et supporté par des acteurs stratégiques (dontIBM, SUN et BEA pour les sociétéscommerciales, mais aussi la grande majorité dela communauté Java OpenSource Eclipse …).

Page 32: Outils De Dev Open Source 11

Exemple : Ant

[email protected] Outils de développement et environnements libres JIP'2006

Page 33: Outils De Dev Open Source 11

Ant & Eclipse : intégration parfaite

[email protected] Outils de développement et environnements libres JIP'2006

Page 34: Outils De Dev Open Source 11

Ant & Eclipse : intégration parfaite

[email protected] Outils de développement et environnements libres JIP'2006

Page 35: Outils De Dev Open Source 11

Exemple : Maven

� Le challenger, l'outil qui avance …� "On parle" même du "remplacent de ANT"

[email protected] Outils de développement et environnements libres JIP'2006

Page 36: Outils De Dev Open Source 11

Exemple : CruiseControl� Outil d’intégration continue (chère aux adeptes d'XP).� Se base sur Ant. � une version pour .Net existe

[email protected] Outils de développement et environnements libres JIP'2006

Page 37: Outils De Dev Open Source 11

Génération de codes� Très utile pour automatiser

la génération de code usuel � Impose de fixer l'architecture

de l'application à développer et déterminer le code à générer

� La tendance : exploiter une

AndroMDAopenMDXJAGopenXavia

[email protected] Outils de développement et environnements libres JIP'2006

� La tendance : exploiter une approche basée sur MDA

� Visitez– http://www.codegeneration.net

openXaviaXdocletMiddlegenopenMDXJunoMDA (php)

Page 38: Outils De Dev Open Source 11

Exemple : AndroMDA

� Génération d'application à partir d'un modèle UML (principe de MDA)

� Les cartouches de génération

[email protected] Outils de développement et environnements libres JIP'2006

génération existantes sont dédiées à J2EE, d'autres type de code est possible

� Exploite Maven

Page 39: Outils De Dev Open Source 11

Exemple : JAG� Java Application Generator

[email protected] Outils de développement et environnements libres JIP'2006

Page 40: Outils De Dev Open Source 11

Outil de reporting

� Réaliser des rapports et les publier dans projets Web JasperReports

BIRT (eclipse)DatavisionJFreeReport

[email protected] Outils de développement et environnements libres JIP'2006

JFreeReportJFreeChart

Page 41: Outils De Dev Open Source 11

Exemple : JasperReports

� Outil de reporting Java : numéro 1

[email protected] Outils de développement et environnements libres JIP'2006

Page 42: Outils De Dev Open Source 11

Exemple : JFreeChart

� Génération de graphes

[email protected] Outils de développement et environnements libres JIP'2006

Page 43: Outils De Dev Open Source 11

Contrôle de qualité de code

� Fixer un standard de codage

� Automatiser les opérations contrôle et de revue de code …

CheckStylePMDHammurapi

[email protected] Outils de développement et environnements libres JIP'2006

et de revue de code …

Page 44: Outils De Dev Open Source 11

Exemple : CheckStyle dans Eclipse !!

[email protected] Outils de développement et environnements libres JIP'2006

Page 45: Outils De Dev Open Source 11

Exemple : CheckStyle dans Eclipse !!

[email protected] Outils de développement et environnements libres JIP'2006

Page 46: Outils De Dev Open Source 11

Exemple : CheckStyle dans Eclipse !!

[email protected] Outils de développement et environnements libres JIP'2006

Page 47: Outils De Dev Open Source 11

Installateurs� Créer une installation

automatisée � Assiste le processus

d'installation et désinstallation, ses outils n'existe pas par défaut dans les IDE JAVA

IzPack

Packlet

VAInstall

[email protected] Outils de développement et environnements libres JIP'2006

dans les IDE JAVA� Se base souvent sur un

script ANT …� Crée des Jar Exécutable

Page 48: Outils De Dev Open Source 11

Exemple : IzPack

[email protected] Outils de développement et environnements libres JIP'2006

Page 49: Outils De Dev Open Source 11

Axe : Test, tuning et suivi des bugs

Développement

Gestion de projet et

communication au sein de l'équipe

[email protected] Outils de développement et environnements libres JIP'2006

Test, tuning et suivi des bugs

Frameworks techniques

Environnement de développement

Page 50: Outils De Dev Open Source 11

JunitNunitCactus DBUnitTestNGWSunit

Tests unitaires Tests de recette

Test Unitaire

[email protected] Outils de développement et environnements libres JIP'2006

Tests unitaires Tests de recette

Ecrits par... Les développeurs Le client ou son représentant

Portent sur... Des méthodes unitaires

L'ensemble de l'application

Approche... Boîte blanche Boîte noire

Concernent le client

Non Oui

Page 51: Outils De Dev Open Source 11

Exemple : Junit

� Origine– framework de test écrit en Java par E. Gamma et

K. Beck (2 des Gof)– open source: www.junit.org

[email protected] Outils de développement et environnements libres JIP'2006

– open source: www.junit.org – version 3.8.1 (V4.0 pour Java 5 en mars 2006)

� Objectifs– test des applications Java– faciliter la création des tests– tests de non régression

Page 52: Outils De Dev Open Source 11

Exemple de code avec Junit

public class Jip2006Test extends TestCase {ClasseMetier classeAtester ;protected void setUp() {// préparer les ressources

//… }protected void tearDown() {// libèrer les ressources

// …. } Valeur calculé

[email protected] Outils de développement et environnements libres JIP'2006

} public testCalclul1() { /// les opérations de test

assertEquals( valeurAttendu1, classeAtester.calcul1()); }}

public testCalclul2() {/// les opérations de test /// les opérations de test

assertEquals( valeurAttendu2, classeAtester.calcul1()); }

}

Valeur calculé

Page 53: Outils De Dev Open Source 11

Junit & Eclipse : intégration parfaite

[email protected] Outils de développement et environnements libres JIP'2006

Page 54: Outils De Dev Open Source 11

Junit & Eclipse : intégration parfaite

[email protected] Outils de développement et environnements libres JIP'2006

Page 55: Outils De Dev Open Source 11

Junit & Eclipse : intégration parfaite

[email protected] Outils de développement et environnements libres JIP'2006

Page 56: Outils De Dev Open Source 11

Junit & Eclipse : intégration parfaite

[email protected] Outils de développement et environnements libres JIP'2006

� Le squelette de la classe de test est généré par Eclipse, – à vous d'écrire le code des tests

Page 57: Outils De Dev Open Source 11

Junit & Ant & Eclipse : intégration parfaite

[email protected] Outils de développement et environnements libres JIP'2006

Page 58: Outils De Dev Open Source 11

Junit : Exemple de résultat

[email protected] Outils de développement et environnements libres JIP'2006

Page 59: Outils De Dev Open Source 11

Junit : Exemple de résultat

[email protected] Outils de développement et environnements libres JIP'2006

Page 60: Outils De Dev Open Source 11

WSUnit - The Web Services Testing Tool

� Et oui, même les Web Services doivent être testés automatiquement

[email protected] Outils de développement et environnements libres JIP'2006

Page 61: Outils De Dev Open Source 11

Test de charge (Load testing)

� Tester la montée en charge d'une application, par simulation d'un nombre croissant d'utilisateurs simultanés

JMeterJWebUnitCI ToolsGrinderopenSTA

[email protected] Outils de développement et environnements libres JIP'2006

openSTAIDX-Tsunami Jcrawler

Page 62: Outils De Dev Open Source 11

Jmeter de Apache

[email protected] Outils de développement et environnements libres JIP'2006

Page 63: Outils De Dev Open Source 11

JCrawler

� Donner à cet outil un ensemble d'URLs, un objectif de charge (hits/sec) et il va se lancer

[email protected] Outils de développement et environnements libres JIP'2006

objectif de charge (hits/sec) et il va se lancer à la simulation d'un test de charge sur tous les liens qu'il trouve sur sa route …

� Pour vous s'assurer que votre site est capable de tenir la charge, c'est l'outil qu'il vous faut!

� À utiliser périodiquement

Page 64: Outils De Dev Open Source 11

Test de conformité du site � MaxQ enregistre votre utilisation d'un site web, il traduit les

liens et les entrées en un script Python, � Ce script est qui utilisable pour

– Vérifier que votre site web continue à fonctionner (test de non régression) .

– Vérifier que votre site produit un HTML valide

MAXQ

[email protected] Outils de développement et environnements libres JIP'2006

Page 65: Outils De Dev Open Source 11

Test d'intégration & Suivi des bugs

� Outil indispensable, mais souvent négligé

� Il est utilisable :– En cours de développement, par

l'équipe de test (interne) des

Bugzilla, itracker Scarab, JIRATrakcItissue-tracker

[email protected] Outils de développement et environnements libres JIP'2006

l'équipe de test (interne) des SSII

– Chez le client final , en phase de réception par l'équipe de test

– Chez les SSII qui offrent le service "béta testeur"

issue-tracker

Page 66: Outils De Dev Open Source 11

Exemple : BugZilla

� Le plus célèbre

[email protected] Outils de développement et environnements libres JIP'2006

� Cycle de vie d'un bug dans Bugzilla, est ce que c'est suffisant ?

http://www.bugzilla.org/docs/2.22/html/lifecycle.html

Page 67: Outils De Dev Open Source 11

Exemple : iTracker

� itracker est développé en J2EE

[email protected] Outils de développement et environnements libres JIP'2006

Page 68: Outils De Dev Open Source 11

� Instrumentation Bytecode ou utilisation de l'interface standard JVMPI, pour avoir des information sur l'utilisation mémoire et CPU d'une application

Eclipse ProfilerJMemProfCougaar ProfilerJTreeProfilerEclipse TPTP

Profiling

[email protected] Outils de développement et environnements libres JIP'2006

applicationEclipse TPTP

Page 69: Outils De Dev Open Source 11

Exemple : Eclipse Profiler

[email protected] Outils de développement et environnements libres JIP'2006

Page 70: Outils De Dev Open Source 11

Cougaar Profiler

[email protected] Outils de développement et environnements libres JIP'2006

Page 71: Outils De Dev Open Source 11

JMemProf

[email protected] Outils de développement et environnements libres JIP'2006

Page 72: Outils De Dev Open Source 11

Axe : Gestion de projet

Développement

Gestion de projet et

communication au sein de l'équipe

[email protected] Outils de développement et environnements libres JIP'2006

Test, tuning et suivi des bugs

Frameworks techniques

Environnement de développement

Page 73: Outils De Dev Open Source 11

Planning� Solutions de gestion de

planning – Définition des tâches et des

ressources.– Dépendances entre les

tâches.– Affichage du chemin

critique.

Gantt ProjectOpenWorkbench(Windows)

Imendio PlannerTaskjuggler (Linux)

[email protected] Outils de développement et environnements libres JIP'2006

critique.– Diagramme de Gantt.– Édition des calendriers :

global et par ressource.– Vue d'ensemble sur

l'utilisation des ressources.– Disponibilité des ressources

inutilisées..

Page 74: Outils De Dev Open Source 11

Planning� Solutions de gestion de

planning – Gantt Project: interface très

facile à utiliser avec les fonctionnalités de base.

– Open Workbench: solution solide avec le plus de fonctionnalités et de rapports.

Gantt ProjectOpenWorkbench(Windows)

Imendio PlannerTaskjuggler (Linux)

[email protected] Outils de développement et environnements libres JIP'2006

fonctionnalités et de rapports.

– Imendio Planner: interface très facile à utiliser avec les fonctionnalités de base.

– Taskjuggler: pour aller plus loin dans la gestion de projets, demande un effort initial pour maîtriser l'outil.

Page 75: Outils De Dev Open Source 11

Exemple : Gantt Project

� Gantt Project est une solution de gestion de projets très prometteuse. Développé en Java (donc multiplateformes), riche d'une très large communauté, ce logiciel offre les fonctionnalités de base requises pour la gestion de projets. Il s'agit d'une solution idéale pour la gestion de

[email protected] Outils de développement et environnements libres JIP'2006

� Il s'agit d'une solution idéale pour la gestion de projets de petites et moyennes entreprises (PME).

� Conçu avec une interface très simple et intuitive, il permet à un utilisateur peu expérimenté dans la gestion de projets de maîtriser rapidement l'outil et ses fonctionnalités.

Page 76: Outils De Dev Open Source 11

Exemple : Gantt Project

[email protected] Outils de développement et environnements libres JIP'2006

Page 77: Outils De Dev Open Source 11

Exemple : Open Workbench

� Open Workbench est une solution de gestion de projets visant à directement concurrencer Microsoft Project.

� Développé en C++ (Windows), il s'agit de la solution la plus solide et la plus complète en termes de fonctionnalités et de rapports.

[email protected] Outils de développement et environnements libres JIP'2006

solution la plus solide et la plus complète en termes de fonctionnalités et de rapports.

Page 78: Outils De Dev Open Source 11

� Solutions de suivi de projet – dotProject: bon outil pour la

coordination des équipes de développement.

– phpCollab: idéal pour intégrer l'équipe de développement du client avec les ressources de l'entreprise.

– Tiny ERP et Compiere:

Suivi des projets

dotProjectphpCollabXplannerTiny ERPCompiereWorkeffort

[email protected] Outils de développement et environnements libres JIP'2006

– Tiny ERP et Compiere: intégration GRC et PGI (CRM et ERP) dans la même solution.

– Xplanner : idéal pour les adéptesdu processus XP

WorkeffortJIRA

� Workeffort : facilite le suivi effective des durées des tâches par ressources (gestion des "TimeSheet")

Page 79: Outils De Dev Open Source 11

Exemple : Xplanner

[email protected] Outils de développement et environnements libres JIP'2006

Page 80: Outils De Dev Open Source 11

Exemple : Xplanner

[email protected] Outils de développement et environnements libres JIP'2006

Page 81: Outils De Dev Open Source 11

Communication entre les membres d'une équipe

� Des équipes de développement "distribuées"

� Le email bien sûre� L'Instant Messaging (IM)� Tous les outils peuvent être

sécurisé via SSL

Wiki (MoinMoin, …)E-List (MailMan, …)IM (Jabber, …)WebMail (SquirrelMail)

OpenGroupware.org

[email protected] Outils de développement et environnements libres JIP'2006

Tous les outils peuvent être sécurisé via SSL

� Wikis interface simple pour créer, éditer, commenter des contenus en mode group

� Des sites de download type sourceForge

Page 82: Outils De Dev Open Source 11

Wiki : pour créer la documentation en mode groups

[email protected] Outils de développement et environnements libres JIP'2006

Page 83: Outils De Dev Open Source 11

Wiki : les outils gèrent même les versions

[email protected] Outils de développement et environnements libres JIP'2006

Page 84: Outils De Dev Open Source 11

Axe : Frameworks techniques (en bref)

Développement

Gestion de projet et

communication au sein de l'équipe

[email protected] Outils de développement et environnements libres JIP'2006

Test, tuning et suivi des bugs

Frameworks techniques

Environnement de développement

Page 85: Outils De Dev Open Source 11

Framework : définition !!

• Un framework est un ensemble de classes et de collaborations entre les instances de ces classes.

• Charpente d'une application

[email protected] Outils de développement et environnements libres JIP'2006

• Charpente d'une application

Page 86: Outils De Dev Open Source 11

Framework Web

� MVC� Struts : Numéro 1 (pas du

point de vue technique, mais en open source, le volet technique n'est pas le seul )

Struts

WebWork

Barracuda

SpringMVC

Tapestry

[email protected] Outils de développement et environnements libres JIP'2006

volet technique n'est pas le seul )

� SpringMVC le ChallengerTapestry

Page 87: Outils De Dev Open Source 11

Framework de persitance

� Mapping Objet/relationnel� Numéro 1 : Hibernate

(pierre angulaire de la plate-forme Jboss)

� Utiliser SpringDAO pour

Hibernate

SpringJDBC

Batik

Castor JDO

Apache OJB

[email protected] Outils de développement et environnements libres JIP'2006

� Utiliser SpringDAO pour inverser le control et rester indépendant du choix du framework

Apache OJB

Page 88: Outils De Dev Open Source 11

Framework de sécurité

� Simplifier la sécurisation d'application Web

� Numéro 1 : Acegi (sous projet Spring)

� Autorisation &

Acegi for Spring

Seraph

Jguard

WebAuth

ClickStream

[email protected] Outils de développement et environnements libres JIP'2006

� Autorisation & Authentification

� Intégration avec SSL

ClickStream

Page 89: Outils De Dev Open Source 11

Axe : Environnement libres

Développement

Gestion de projet et

communication au sein de l'équipe

[email protected] Outils de développement et environnements libres JIP'2006

Test, tuning et suivi des bugs

Frameworks techniques

Environnement de développement

Page 90: Outils De Dev Open Source 11

Systèmes d’exploitation libres

Systèmes dérivés d’Unix BSD

NetBSD OpenBSD FreeBSD Noyau Apple OSX

Exemple: GNU/Linux

[email protected] Outils de développement et environnements libres JIP'2006

Systèmes GNUHURD Linux

� Licence : GPL� Nombre d’utilisateurs estimé : 8 000 000� Nombre de développeurs permanents : 500 � Sociétés impliquées : IBM, HP, Oracle, Red-

Hat, Connectiva, etc.� Évolution parts de marché 2002: + 212 %� Domaines : serveurs (web, messagerie, DNS,

annuaires, etc.), bases de données, calculs scientifique, traitement images, systèmes haute disponibilités, etc.

Page 91: Outils De Dev Open Source 11

Service réseau: web

Le serveur Apache� Evolution du serveur web originel (a patchy server)� Serveur web le plus utilisé� Architecture modulaire� Supporté par de nombreuses plate-formes: Unix (Linux, *BSD,

Solaris, etc), NT, etc.� Support de nombreux langages serveur side: PHP, TCL, Java, C# /

ASP.NET, SSI, etc.

[email protected] Outils de développement et environnements libres JIP'2006

ASP.NET, SSI, etc. � Sécurisation basée sur OpenSSL (Apache-ssl, mod_ssl)� Base fondatrice de nombreux projets: Jakarta, Coccon, Ant, etc.

Page 92: Outils De Dev Open Source 11

Service réseau: Messagerie

Les serveurs de messagerie

Postfix� Licence : IBM Public Licence� Caractéristiques: légèreté, facilité de configuration� Part de marché estimée : 4 %� Sociétés impliquées : IBM.

[email protected] Outils de développement et environnements libres JIP'2006

Sendmail� Licence: Sendmail� Caractéristiques: Serveur de messagerie le plus utilisé, grande puiss ance de

traitement� Plate-formes: Linux, *BSD, AIX, HP-UX, Solaris, NT, etc.� Part de marché estimée: ~70 %� Sociétés dirigeant les développements: Sendmail Inc.

Page 93: Outils De Dev Open Source 11

Service réseau : LDAP

OpenLDAP

� Fonctionnalités d’annuaire, gestion hiérarchisées des habilitations� Support des standards LDAP v2 et v3� Possibilité de couplage avec de nombreux services: web,

messagerie, transferts de fichiers, comptes d’accès, forums usenet, etc.

[email protected] Outils de développement et environnements libres JIP'2006

etc.� Sécurisation (TLS) via OpenSSL� Base pour solutions PKI ou SSO� Licence: OpenLDAP Public Licence� Caractéristiques: rapidité, simplicité d’implémentation, � Plate-formes: Linux, *BSD, AIX, HP-UX, Solaris, etc.� Sociétés dirigeant les développements: OpenLDAP Foundation

Page 94: Outils De Dev Open Source 11

Les serveurs d’application Java EE

JBoss� Licence : LGPL� Caractéristiques: Plate-forme EJB implémentant 100% des spécifications J2EE� Développement dirigés par : JBoss Inc.

Tomcat� Licence : Apache� Caractéristiques: projet Jakarta, moteur de servlets� Développements conduits par: Apache Foundation� Sociétés impliquées : IBM.

[email protected] Outils de développement et environnements libres JIP'2006

� Développement dirigés par : JBoss Inc.JOnAS� Licence : LGPL� Caractéristiques: Implémentation opensource des spécifications

J2EE � Développement dirigés par : ObjectWeb

Nouveau

Page 95: Outils De Dev Open Source 11

Autres types de Serveurs d’application

dotGNU� Licence : GPL� Caractéristiques: Compatibilité avec le framework .Net, support des

Zope� Licence : GPL� Caractéristiques: Serveur d’application python� Développement conduit par: Zope Corp.

[email protected] Outils de développement et environnements libres JIP'2006

� Caractéristiques: Compatibilité avec le framework .Net, support des langages C#, Java, python, perl et PHP.

� Développement dirigés par : GNU / FSF

Mono� Licence : LGPL� Caractéristiques: Framework .NET et module pour Apache 2

(ASP.NET, VB.NET, C#, ADO.NET)� Développement dirigés par : Ximian Inc.

Page 96: Outils De Dev Open Source 11

Sécurité: SSL/TLS

OpenSSL

� Bibliothèque de chiffrement� Base de nombreux services ou outils: Apache-SSL, OpenSSH, OpenLDAP,

Mozilla, etc.� Implémente les protocoles SSL (v2 et v3) et TLS (v1)� Implémentes (entre autres) les algorithmes de chiffrement blowfish, des, aes,

idea, rc4, rc5, dsa, rsa, les fonctions de hachage md5, sha et permet la gestion des certificats X509v3

[email protected] Outils de développement et environnements libres JIP'2006

OpenSSL� Licence : type Apache� Support et contributeur : Linux4biz et Levitte Programming

GNU TLS� Licence : GPL� Caractéristiques: Implémentation des protocoles SSL v3 et TLS v1, supporte

les certificats X509v3 et les clés OpenPGP et les algorithmes Rijndael (aes) et Twofish

� Développement dirigés par : GNU / FSF

Page 97: Outils De Dev Open Source 11

Sécurité : PKIIDX-PKI

� Implémentation d’une infrastructure à clé publique conforme aux recommandations PKIX de l’IETF

� Génération de certificats et de clefs pour navigateurs, jetons de sécurité (cartes à puce, dongle USB, etc.), services réseaux (VPN IPSec, serveurs HTTP/S, etc.)

� Authorité de certification: gestion des certificats (demandes de

[email protected] Outils de développement et environnements libres JIP'2006

� Authorité de certification: gestion des certificats (demandes de certificat, révocations, extensions de droits, ré-attribution, etc.

� API HTTP: API standardisée grâce à laquelle les applications requièrent les services de la PKI

� En production au CEA, à l’INSERM, DGI, GAN Partimoine, Auchan, etc.

� Licence : GPL2� Développements dirigés par : IDEALX

Page 98: Outils De Dev Open Source 11

Bases de données

MySQL

PostgreSQL� Base de données Open Source la plus accomplie. Représente 15 années de

développement� Support de bases très importante. Concurrence de DB2 ou Oracle� Très grande qualité du SQL, complet en terme de fonctionnalités

[email protected] Outils de développement et environnements libres JIP'2006

MySQL� Base de données libre la plus utilisée dans le monde� Extrêmement rapide, facile d’administration et de configuration� Manque de fonctionnalités (encours de développement) : support transactionnel, clefs

étrangères, vues, procédures stockés, triggers, etc.

SAP DB� Coeur du logiciel SAP� Base de données très peu connue� Outils d’administration très complet (Database Manager, SQL Studio, Db Loader, etc.)

Page 99: Outils De Dev Open Source 11

Portail J2EE � Liferay� Jetspeed� uPortal

� Cocoon Portal� eXo

� Pour le développent de Portlet � Environnement de déploiement complet� Privilégier les portail compatible JSR 168

[email protected] Outils de développement et environnements libres JIP'2006

� Privilégier les portail compatible JSR 168

SPIP, OpenCMS, Typo3, Claroline, ATutor ...

CMS Site Web : Blog Site Web : CMS Site Web : E-learning Site Web : Forums Site Web : Galerie Site Web : Groupware Site Web : SPIP Site Web : Wiki

et les autres

Page 100: Outils De Dev Open Source 11

Liferay

•le numéro 1 des portails J2EE compatible JSR168

[email protected] Outils de développement et environnements libres JIP'2006

Page 101: Outils De Dev Open Source 11

Cocoon Portal

[email protected] Outils de développement et environnements libres JIP'2006

Page 102: Outils De Dev Open Source 11

Clusters

OpenMosix� Extension du noyau Linux ajoutant des fonctionnalités de clustering (type

load balancing)� Co-développé par L’université de Tel Aviv, Intel, AMD, Myrinet et la NASA� Cluster de calcul, système de fichiers distribué, etc.

Beowulf� Clusters de type HPC (High Performance Computing)

[email protected] Outils de développement et environnements libres JIP'2006

� Clusters de type HPC (High Performance Computing)� Co-développé avec AMD, HP, LANL, etc.� Une dizaine de clusters Beowulf figurent parmis le Top200 des

supercalculateurs� Utilisé intensément par l’industrie cinamétographique

Linux-HA� Cluster et outils pour haute disponibilité (cluster type Fail-Over)� Co-développé avec IBM, Intel, Connectiva, SGI, etc.� Collaboration possible avec Linux Virtual Server (Load Balancer)

Page 103: Outils De Dev Open Source 11

Systèmes embarqués et temps réels

� L’utilisation de composants OpenSource se généralise dans le monde des systèmes embarques et des systèmes temps réels

� Distributions GNU/Linux spécialisés (Montavista, FSM Lab RTLinux, etc.)

� Utilisation de Linux dans les PDA (Sharp avec le Zaurus) et les équipements AudioVisuels de dernière génération (Sony, Panasonic, TiVo, etc.) : enregistrements sur disques durs,

[email protected] Outils de développement et environnements libres JIP'2006

Panasonic, TiVo, etc.) : enregistrements sur disques durs, connections réseau, équipement Wi-Fi, etc.

� Utilisation de Linux comme système d’exploitation de l’ensemble des nouveaux téléphones portables Motorala (logiciels écrit en Java, en collaboration avec MontaVista)

Page 104: Outils De Dev Open Source 11

Autres outils Libres à utiliser dans un processus

de développement

[email protected] Outils de développement et environnements libres JIP'2006

Page 105: Outils De Dev Open Source 11

Les logiciels dédiés au poste de travail

BUREAUTIQUETraitement de texte

TableurPublication HTMLBase de données

INTERNETNavigateur

Gestionnaire de courrierAnti-virus

[email protected] Outils de développement et environnements libres JIP'2006

GRAPHISME & MEDIARetouche d’image

Montage vidéoEncodage et lecture audio

Schémas techniques

UTILITAIRESDocuments PDF

VisionneusesGestion de fichiers

Page 106: Outils De Dev Open Source 11

Logiciel libre : Rédiger vos spécifications fonctionelles avec openOffice!

[email protected] Outils de développement et environnements libres JIP'2006

Page 107: Outils De Dev Open Source 11

[email protected] Outils de développement et environnements libres JIP'2006

Page 108: Outils De Dev Open Source 11

[email protected] Outils de développement et environnements libres JIP'2006

Page 109: Outils De Dev Open Source 11

OpenOffice.org 2.0

� un traitement de texte (Writer)� un tableur (Calc)� un logiciel de présentation (Impress)� un logiciel de dessin vectoriel et de PAO (Draw) � un éditeur de pages web� un module de création et de gestion des bases de

données

[email protected] Outils de développement et environnements libres JIP'2006

données

� Disponible pour Windows, Linux, Macintosh…� Compatible en lecture et en modification avec les fichiers issus de

Microsoft Office version XP (et des versions antérieures 2000, 97...). � Format de fichier ouvert et basé sur le XML = garantie de pérennité,

d’indépendance, d’interopérabilité et d’accès à l’information pour tous les utilisateurs.

Page 110: Outils De Dev Open Source 11

[email protected] Outils de développement et environnements libres JIP'2006

Page 111: Outils De Dev Open Source 11

Gestion du courrier électronique

� Thunderbird : mailer de Mozilla Firefox

[email protected] Outils de développement et environnements libres JIP'2006

Un comparatif :http://www.arobase.org/softs/choisir.htm

Pensez à relever vos mails en mode web

Page 112: Outils De Dev Open Source 11

Retouche d’images The GIMP

[email protected] Outils de développement et environnements libres JIP'2006

http://www.01net.com/telecharger/windows/Multimedia /creation_graphique/fiches/5245.html

Page 113: Outils De Dev Open Source 11

Retouche d’image PhotoFiltre

Simple

Léger (moins de 2 Mo)

Rapide

L’essentiel des besoins

[email protected] Outils de développement et environnements libres JIP'2006

L’essentiel des besoins courants

http://www.01net.com/telecharger/windows/Multimedia /photo_numerique/fiches/21756.html

Page 114: Outils De Dev Open Source 11

conclusion

� Beaucoup d'outils,� Manque d'intégration (pour le moment)� L'utilisation d'un outil doit être inscrite dans un

processus (penser CMM)� Le future des IDEs

[email protected] Outils de développement et environnements libres JIP'2006

� Le future des IDEs – C'est le PLM– Eclipse est sur la route

Page 115: Outils De Dev Open Source 11

Les annuaires de logiciels libres

3 annuaires incontournables

•http://helioss.logiciellibre.net/

[email protected] Outils de développement et environnements libres JIP'2006

•http://sourceforge.net/

•http://www.framasoft.net/

Page 116: Outils De Dev Open Source 11

Khaled BEN DRISSArchitecte de Système d'InformationNetProgressGSM : (216) 98 33 46 17Tél : (216) 71 72 49 05

Merci

[email protected] Outils de développement et environnements libres JIP'2006

Tél : (216) 71 72 49 05

[email protected]