Stage portabilité HSLV2. 2 Plan Présentation de SII SII en France SII à Rennes Mon...

34
Stage portabilité HSLV2

Transcript of Stage portabilité HSLV2. 2 Plan Présentation de SII SII en France SII à Rennes Mon...

Page 1: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

Stage portabilitéHSLV2

Page 2: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

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

Page 3: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

Présentation de SII

SII en FranceSII à Rennes

Mon environnement

Page 4: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

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

Page 5: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

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

Page 6: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

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

Page 7: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

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

Page 8: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

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

Page 9: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

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

Page 10: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

Présentation du stage

ObjectifsProblématiques de portabilité

Hot Spot Locator V2

Page 11: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

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

Page 12: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

Problématiques de portabilité

Stage portabilité HSLV2 - Jonathan Courtois 12Lundi 14 septembre 2009

Langages et interfaces graphiques portables

Environnements de développement

Page 13: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

Problématiques de portabilité

Stage portabilité HSLV2 - Jonathan Courtois 13Lundi 14 septembre 2009

Outils de compilation

Page 14: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

Problématiques de portabilité

Stage portabilité HSLV2 - Jonathan Courtois 14Lundi 14 septembre 2009

Réaliser le plus de code en commun possible -> Sinon OSAL

Page 15: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

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é)

Page 16: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

Hot Spot Locator V2

Stage portabilité HSLV2 - Jonathan Courtois 16Lundi 14 septembre 2009

Recherche d’une adresse et liste des hot spots Orange à proximité

Page 17: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

Hot Spot Locator V2

Stage portabilité HSLV2 - Jonathan Courtois 17Lundi 14 septembre 2009

Affichage des hots spots Orange sur une carte

Page 18: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

Déroulement du stage

DocumentationChoix de développementAperçu du Framework Qt

Intégration continueDéveloppement

Page 19: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

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

Page 20: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

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

Page 21: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

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

Page 22: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

Intégration continue

Stage portabilité HSLV2 - Jonathan Courtois 22Lundi 14 septembre 2009

Principe

Page 23: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

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

Page 24: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

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

Page 25: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

Retour d’expériences

Design architecturalInterface graphique

Avantage de QtDéploiementQt Creator

Page 26: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

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

Page 27: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

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

Page 28: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

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

Page 29: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

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

Page 30: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

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, …

Page 31: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

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

Page 32: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

Conclusion

Page 33: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

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)

Page 34: Stage portabilité HSLV2. 2 Plan  Présentation de SII  SII en France  SII à Rennes  Mon environnement  Présentation du stage  Objectifs  Problématiques.

Questions