2. 2
Sommaire
• Présentation d’Air France
– IT AF/KLM
– Centre de compétence tests
• Présentation de Squale
– Objectifs
– Fonctionnalités
– Statistiques
– Caractéristiques
• Architecture
– Fonctionnelle
– Données
– Technique
• Passage en open source
3. 3
Présentation du Groupe Air France / KLM
• Air France KLM : 1er groupe aérien en PKT(1)
– 1 groupe, 2 compagnies, 3 métiers
– Membre de l’alliance SkyTeam
– 21,4 Md€ de chiffre d'affaires
– 70 millions de passagers
– 561 avions exploités
– 102 000 salariés dans le groupe
– 107 destinations long-courriers
• L’informatique AF est une entité dédiée
– 1400 agents
– La majorité des applications métiers sont conçues et
développés en interne (principalement en Java / C++)
• un millier de projets dont plus de la moitié en phase de
maintenance
– Peu d’outsourcing
– Localisé sur plusieurs sites (France + Pays Bas)
– Fournisseur de solutions logicielles et d’hébergement pour
• D’autres compagnies aériennes
• Autorités aéroportuaires
(1) Passager Kilomètre Transporté
4. 4
Présentation du centre de compétence tests
Une équipe d’experts
multi-sites
Support aux
activités de tests
Salles de tests
Jeux de données
Middleware
Tierce recette applicative
Administration /
Support aux outils /
Réalisation des tests
Accompagnement
Infrastructures
Nos clients :
AMO
MOE
Formation
Tests unitaires
Qualimétrie
Tests de charge
Tests de non régression
Tests de validation
5. 5
Objectifs de Squale
• Retours sur les audits manuels
– Positifs
– Mise en place de plans d’actions priorisés
– Beaucoup de demandes non satisfaites
• manque de disponibilité
• délais importants
– Coût non négligeable
– Consommateur de temps
• Passer d’une démarche d’audit manuel à des audits pro-actifs
avec mesure de l’évolution de la qualité
– Automatisation des audits
– Consolidation des résultats à travers un « portail » de Qualimétrie à
destination des
• Développeurs
• Managers
– Basé sur le principe du volontariat : portail en libre-service
• Création d’un référentiel qualité
• Abstraction de la notion d’outils
– analyse statique complète et automatique des projets
• code source
• modèles UML
6. 6
Fonctionnalités de Squale
• Outil de
– Notation des résultats
– Reporting avancé
• Graphiques
• Textuels
• Agrégés
• Détaillés
– Génération de plans d'actions
• Visualisation des résultats suivant plusieurs axes
– Démarche qualité : Facteur / critère / pratique Qualité
– Technique par composants
– Tops
– Temporel
• S’appuie sur les outils du marché
– open source
– commerciaux
• Ordonnancement
– Revue de code décidée par le projet
• fréquence prédéfinie
• Pose de label (milestone)
7. 7
Quelques statistiques au début d’août 2007
• 44+ applications utilisatrices (majoritairement Java /
J2EE)
• Plus 4 700 000 lignes de codes sous contrôle de Squale
• Plus de 600 audits automatiques réalisés
8. 8
Caractéristiques de SQUALE
• Architecture ouverte
– Portabilité facilitée via l’utilisation de Java + Jython
– Ajout de connecteurs sur d’autres outils relativement aisée
– Fortes possibilités de paramétrage
• Tout en clair en base de donnée
• Chargement via des fichiers XML avec Schémas disponibles
• Capable de fonctionner en environnement clusterisé
• Utilisation privilégiée de l’open source
• Implémente par défaut une démarche normalisée basée
sur l’ISO 9126 et GQM
9. 9
Architecture générale de Squale
Profil des
applications
Grilles
Qualité
Paramétrage
outils
Custom°
IHM + i18n
+ PDF
Tout est
stocké en
Base de
donnée
Squalix
SqualeWeb
Extensions en cours
10. 10
Squale : Dynamique
Extraction
du codeDéveloppeur
Application
des outils
Enregistre
une version
dans le référentiel
ClearCase
Agrégation des
résultats en utilisant
le modèle qualité
Calcul des
notes
Consulte le
rapport final
Équipe projet
Profil des
applications
Grilles
Qualité
Paramétrage
outils
Custom°
IHM + i18n
+ PDF
11. 11
Configuration des profils
• Liste d’outils et paramètres fonction des technologies
utilisées
– Langages (C++, Java, JSP, etc.)
– Architectures des projets (clients légers, riches, etc.)
Profils
applis
params
outils
12. 12
Grilles Qualité : Notation des composants
• Notation des composants (classe / méthode / etc.)
– Note du Composant n NCn = fonction(métriques)
• Continue : + difficile d’approche mais notation plus fine
• Discrète : compréhension facilitée mais soucis de
pertinence sur le long terme
– f(métrique) ⊂ [0;3]
• Exemple de formule pour la pratique « Couplage afférent »
Grilles
Qualité
13. 13
Grilles Qualité : Notation des pratiques
• Notation des pratiques
– Fonction de pondération p : donner plus d’importance aux
composants mal notés
– Détecter plus rapidement les composants problématiques
Fonction de pondération
0,32
0
0,5
1
1,5
2
2,5
3
0 0,5 1 1,5 2 2,5 3
Espace de notation
Espacedepondération
( )
= ∑=
−
N
n
nNCP
N
Note P 1
1 1
Grilles
Qualité
15. 15
Modèle de données simplifié
ANALYSIS_TASK
Task that launch a qualimetric tool
(ouput measure)
AUDITBO
Audit description (date, type,
status...)
AUDITGRIDBO
Quality grid (set of factors, criteria
and practices)
COMPONENT
Components tree:
. application
. project
. package
. class
. method
FORMULA
Formula to compute
factor's results.
MARK
Note of each (concerned) components for
a given practice.
MEASURE
Measure computed by a tool for a
component (set of metrics)
METRIC
Unit named metric (string, boolean or
number)
PROJECTPARAMETER
Porject parameters, could be list, map
or scalaie
QUALITYGRID
Quality grid that contain the set of
quality rule to apply for project.
QUALITYRULE
Rule to be applied on a quality grid to
compute quality results.
RULECHECKINGTRANSGRESSIONITEM
Transgression found by rule checking
tools
TASKS_USER
Used profile and source management for
each project
QUALITYRESULT
Note of a quality result for each qualty
rule (i.e. factors, criteria, practice) for
compoent of project type.
16. 16
Intégration de Squale au SI d’Air France
Clearcase ClearcaseClearcase Clearcase
Serveurs de développement répartis sur les différents sites AF/KLM
Serveur de production
• mutualisé
• clusterisé
Postes Utilisateurs
• Développeurs
• Responsables/décideurs
Paris Toulouse Valbonne 1 Valbonne 2
Squalix
Batchs nocturnes
Consultation
asynchrone via
client léger
Commit d’une
nouvelle version
17. 17
Squale : Un portail Qualité en open source
• Étude pour passer Squale en open source
– Squale n’est pas un « outil différenciant » pour l’activité AF
– Le passage en « open source » permettra de limiter les coûts
de maintenance
• Planning
– Nécessite une « remise à niveau » du code
– Basculement prévu d’ici fin 2007
• Problématiques en cours d’instruction
– Choix d’une Licence pour le code source libéré
– Choix d’un « réceptacle » / organisme
– Gouvernance du projet
– Choix de la version initiale
18. 18
Instruction du passage en open source
• Choix d’une licence
– Briques logicielles utilisées ont des licences d’horizon variés
• GPL, LGPL, Apache, propriétaires, etc.
– Incompatibilité de certaines licences utilisées
– Choix de la LGPL semble se dessiner
• Minimise les conflits
• Choix d’une forge d’accueil
• Gouvernance
– Mise en place de comités d’architecture et de règles de
décisions et de votes
• Version initiale
– Prochaine version de maintenance 3.3 sera celle qui sera
ouverte
26. 26
Squale reporting example : version comparison
• Comparison by
– Quality practices first
– Components first
• Available filters on
– Improved components
– Degraded
components
– Components notation
– Quality practices