stage portabilité hslv2. 2 plan présentation de sii sii en france sii à rennes mon...
TRANSCRIPT
Stage portabilitéHSLV2
2
Plan
Présentation de SII SII en France SII à Rennes Mon environnement
Présentation du stage Objectifs Problématiques de portabilité Hot Spot Locator V2
Déroulement du stage Documentation Choix de développement Aperçu du Framework Qt Intégration continue Développement
Stage portabilité HSLV2 - Jonathan CourtoisLundi 14 septembre 2009
Retour d’expérience Design architectural Interface graphique Avantage de Qt Déploiement Qt Creator
Conclusion Questions
Présentation de SII
SII en FranceSII à Rennes
Mon environnement
SII en France
Société de conseil et d’ingénierie informatique
Forte indépendance de chaque agence
Création : 1 avril 1979
Capital : 40 million d’euros
Chiffre d’affaires :175 200 000€ (+18%) au 31 mars 2009
Répartition : 10 agences et 10 bureaux en France
Effectifs : 2200 employés
Stage portabilité HSLV2 - Jonathan Courtois 4Lundi 14 septembre 2009
Présentation de SII
SII en France
Depuis 1991, SII a mis en place un système d’assurance qualité.
Dans les 5 premières sociétés de servicesfrançaises à être certifiée ISO 9001
La 2ème à faire certifier son activitéd’assistance technique, dès 1992.
Lundi 14 septembre 2009 Stage portabilité HSLV2 - Jonathan Courtois 5
L’engagement qualité
La gestion des processus est basée sur le modèle CMMi (5 niveaux)
Aix en Provence, Nantes, Rennes, Toulouse : niveau 3
Sophia Antipolis : niveau 2
SII à Rennes
Création : 1997
Effectifs 2009 : 450 collaborateurs
Clients : France Télécom, Thalès, Thomson, Alcatel, Ouest-France, …
Stage portabilité HSLV2 - Jonathan Courtois 6Lundi 14 septembre 2009
L’agence de Rennes
Les pôles de compétences
L’ingénierie industrielle et l’électronique
L’ingénierie logicielle et système d’information
Les réseauxLes télécoms
SII à Rennes
L’assistance technique
Mode d’intervention souple et de mise en service rapide (chez le client).
Le forfait
Mode d’intervention généralement externalisé (dans les locaux de SII).
Stage portabilité HSLV2 - Jonathan Courtois 7Lundi 14 septembre 2009
Les différentes prestations
La répartition
Types de prestations Secteurs d’activités
Mon environnement
Personnes dédiées à l’encadrement des projets 1 Directeur technique forfait, 4 Directeurs de projets, 10 Chefs de projets,
2 Administrateurs systèmes et réseaux Moyens
Plateformes : 820 M² Dédiés à Rennes Locaux à Brest, Lannion, Caen et Le Mans Locaux : Sécurisés Suivi des faits techniques, bugs : Bug Tracker, Mantis, Bugzilla, … Gestionnaires de Configuration : CVS, Sourcesafe, SubVersion, … Licences : Visual Studio, Rational Rose, Caliber RM, CVI, ... Systèmes : Windows, Linux, Solaris, Mac
Qualité ISO 9001 v2000 CMMi niveau 3
Stage portabilité HSLV2 - Jonathan Courtois 8Lundi 14 septembre 2009
Le plateau forfait
Mon environnement
Client principal : France Télécom
Applications autour de la connexion Internet Home Software Suite (particuliers) Business Everywhere Software Suite (entreprises)
Effectifs: 29 personnes en 2 équipes Front office (7)
Travaillent directement chez le client Une partie développement d’anticipation
Back office (22) Travaillent à l’agence SII Rennes Point de vue production des applications Equipes de 4-5 personnes
Stage portabilité HSLV2 - Jonathan Courtois 9Lundi 14 septembre 2009
Le pôle CIM
Présentation du stage
ObjectifsProblématiques de portabilité
Hot Spot Locator V2
Objectifs
Analyse sur les problématiques de portabilité avec réalisation d'un document
Migration d’un projet existant (HSLV2) Framework MFC (Windows) -> Application portable Mise à jour des documents existants
Mise en place d’un serveur pour la plateforme d'intégration continue Hudson
Réalisation de tests sur Windows et Mac OS X
Déploiement sur les différents systèmes d’exploitation
Etude de portabilité incluant les difficultés rencontrés et un retour d’expérience
Stage portabilité HSLV2 - Jonathan Courtois 11Lundi 14 septembre 2009
Missions
Problématiques de portabilité
Stage portabilité HSLV2 - Jonathan Courtois 12Lundi 14 septembre 2009
Langages et interfaces graphiques portables
Environnements de développement
Problématiques de portabilité
Stage portabilité HSLV2 - Jonathan Courtois 13Lundi 14 septembre 2009
Outils de compilation
Problématiques de portabilité
Stage portabilité HSLV2 - Jonathan Courtois 14Lundi 14 septembre 2009
Réaliser le plus de code en commun possible -> Sinon OSAL
Problématiques de portabilité
Variables d’environnements
Dépendance de librairies
Dynamique ou statique
Installeurs
Stage portabilité HSLV2 - Jonathan Courtois 15Lundi 14 septembre 2009
Problématique de débogage
Problématique de déploiement
Certaines règles de codage à respecter (cf. Analyse portabilité)
Hot Spot Locator V2
Stage portabilité HSLV2 - Jonathan Courtois 16Lundi 14 septembre 2009
Recherche d’une adresse et liste des hot spots Orange à proximité
Hot Spot Locator V2
Stage portabilité HSLV2 - Jonathan Courtois 17Lundi 14 septembre 2009
Affichage des hots spots Orange sur une carte
Déroulement du stage
DocumentationChoix de développementAperçu du Framework Qt
Intégration continueDéveloppement
Documentation
Analyse de portabilité Etude sur le développement multiplateforme
Langages, GUI, IDE, outils de compilation Développement d’une application multiplateforme Problèmes lors du portage d’une application non portable Guide de règles de codage C++ (portable)
Rédaction d’une étude complète Synthèse des problèmes rencontrés au cours du développement
du plugin de HSLV2 Réflexion sur les problématiques de portabilités Retour d’expérience sur un nouvel IDE: Qt Creator
Stage portabilité HSLV2 - Jonathan Courtois 19Lundi 14 septembre 2009
2 documents à réaliser
Choix de développement
Langage : C++
Framework et interface graphique : Qt
Environnement de développement : Qt Creator
Outil de compilation : Qmake
Compilateurs Windows: Visual C++ 2005 Mac OS X: Gcc
Stage portabilité HSLV2 - Jonathan Courtois 20Lundi 14 septembre 2009
Langage et outils utilisés
Aperçu du Framework Qt
1ère version : 1995
Librairie : C++
Bindings : Java, Python, Ruby, Ada, C#, Pascal, Perl, PHP, Haskell, Lua, Dao, Tcl, Common Lisp, D
IDE : Qt Creator - Plugins: Visual Studio, Eclipse
Plateformes :
Lundi 14 septembre 2009 Stage portabilité HSLV2 - Jonathan Courtois 21
Présentation
Développement rapide
Nouveau support : Symbian
Support : Windows 7, Mac OS X 10.6
Support étendu pour UNIX : Solaris 10, HP-UX and AIX 6
Amélioration des performances et ajout de fonctionnalités
License LGPL
Qt 4.6
Intégration continue
Stage portabilité HSLV2 - Jonathan Courtois 22Lundi 14 septembre 2009
Principe
Intégration continue
Serveur dédié à la compilation
Un job par sous projets
Un état des compilations et une récupération facile des binaires
Le résultat des tests unitaires automatisés
Beaucoup d’autres outils non étudiés
Stage portabilité HSLV2 - Jonathan Courtois 23Lundi 14 septembre 2009
Hudson
Développement
Module de gestion de requêtes Envoi de requêtes Téléchargement de fichiers
Partie géocodage Géo codage d’une adresse postale Calcul de distance entre 2 adresses Calcul d’une zone de proximité autour d’une adresse
Partie cartographie Affichage d’une carte Gestion des marqueurs Gestion des déplacements et du zoom
Partie sauvegarde des cartes Sauvegarde en local de plusieurs images Affichage des cartes sauvegardées Gestion des déplacements et du zoom
Stage portabilité HSLV2 - Jonathan Courtois 24Lundi 14 septembre 2009
4 parties dans le projet
Retour d’expériences
Design architecturalInterface graphique
Avantage de QtDéploiementQt Creator
Design architectural
Respect des couches
Pas de difficultés pour HSLV2
Interfaces indépendantes d’un framework (Qt)
Stage portabilité HSLV2 - Jonathan Courtois 26Lundi 14 septembre 2009
Architecture en couches
Design pattern factory
OSAL
Le framework Qt fait office de couche d’abstraction
Interface graphique
Lundi 14 septembre 2009 Stage portabilité HSLV2 - Jonathan Courtois 27
Difficultés d’une interface commune
Différences d’affichage
Textes (Polices, tailles, …)
Positions
Philosophie des utilisateurs Mac OS différente de celle de Windows
Interface graphique
Lundi 14 septembre 2009 Stage portabilité HSLV2 - Jonathan Courtois 28
Couche présentation
Idéalement une interface graphique pour chaque OS
Permet de respecter la philosophie des différentes plateformes
Avantage de Qt
Module d’envoi de requêtes : QNetwork
Lecture des fichiers de configuration : QSettings
Gestion de threads : QThread
Chargement des librairies dynamiques : QLibrary
Mini navigateur web : QWebKit
Lundi 14 septembre 2009 Stage portabilité HSLV2 - Jonathan Courtois 29
Développement rapide grâce aux classes de Qt
Déploiement
Librairies dynamiques
Installeur NSIS
Lundi 14 septembre 2009 Stage portabilité HSLV2 - Jonathan Courtois 30
Windows
Mac OS X
Utilisation d’outils Mac OS otool install_name_tool
Installation par Drag & Drop
Autres installeurs Iceberg, …
Qt Creator
Lundi 14 septembre 2009 Stage portabilité HSLV2 - Jonathan Courtois 31
Avantages
Inconvénients
Encore jeune (sortie en mars 2009)
Fonctionnalités restreintes
Multi-OS
Fichiers de projets Combinaison des fichiers projets et Cmake Utilisation possible de macros spécifiques
Designer intégré
Debugger pour GCC et Visual
Gestion de configurations (SVN, Git, …)
Interface très intuitive
Conclusion
Conclusion
Lundi 14 septembre 2009 Stage portabilité HSLV2 - Jonathan Courtois 33
Technique
Stage
Compétences scolaires : C++, UML, Qt
Phases de développement rapide
Compétences acquises : Intégration continue, tests unitaires, développement sous Mac OS X, problématiques de portabilité
Intégration au sein d’une grande équipe dans une société de service
Contact avec différents acteurs : architectes, développeurs, intégrateurs, …
Pensée une application multi-OS en amont
Architecture en couche primordiale (cas de plusieurs IHM)
Risques limités grâce à l’utilisation de Qt, Qmake et plusieurs compilateurs (gcc et visual compiler)
Questions