Académique Documents
Professionnel Documents
Culture Documents
Page 2
L’architecture de la salle usine logiciel :
Page 3
L’architecture de la salle usine logiciel :
L’architecture de la salle usine logiciel :
L’architecture de la salle usine logiciel :
L’architecture de la salle usine logiciel :
L’architecture de la salle usine logiciel :
Architecture
Page 9
Présentation :
Définition.
Architecture d’entreprise.
C’est quoi une application.
Evolution des architectures.
Page 10
Définition :
Page 11
Définition :
L’architecture métier :
Définit la stratégie métier, la gouvernance, l’organisation et les processus
métier clés.
L’architecture applicative :
Définit le parc applicatif de l’entreprise, les interactions entre applications et
la couverture fonctionnelle des applications.
L’architecture de données :
Décrit la structure et l’organisation des données au niveau logique et
physique, les référentiels de données ainsi que la manière avec laquelle ces
données sont gérées.
L’architecture technique (ou technologique) :
Décrit l’infrastructure logicielle, matérielle et réseau, nécessaire au
déploiement des données et des applications.
Page 12
Introduction à l’Architecture d’Entreprise :
Eléments de
l’architecture Eléments de
métier: l’architecture
•Chaine de valeur données:
•Ressources •Modèle conceptuel
•Donnée •ZonesSujet
•Processus •Entités
•Produits et services •Eléments
•Organisation •Relations
Eléments de
l’architecture Eléments de
applicative: l’architecture
•Framework technique:
•Interfaces •Plateformes
•Propriétés d’exploitation
•Composants •Plateformes
technologies
•Composants réseau
Page 13
Plateforme
Page 14
Usine logicielle :
L’usine logicielle :
Une structure organisationnelle qui se spécialise dans la production de
logiciels ou des composants de logiciels spécifiques selon les besoins et les
exigences de l'utilisateur par le biais d'un processus d'assemblage.
Applique les techniques de fabrication et des principes de développement de
logiciels pour simuler les avantages de l'industrie manufacturière
traditionnelle.
Sensée couvrir toutes les étapes du développement d’un logiciel de l’analyse
du besoin à la mise en production. Toutes ces étapes doivent bien entendu
être accomplies de manière cyclique.
Page 15
Usine logicielle :
L’intégration continue.
La gestion des versions.
La génération de la documentation.
La compilation.
Le déploiement.
Les tests unitaires.
La gestion de la qualité du code.
Statique.
Dynamique : code profiling.
Le suivi des bugs.
Page 16
Usine logicielle :
Page 17
Usine logicielle :
Atelier de
développement Atelier de SCM
Atelier de
Besoin build
fonctionnel
Version
Atelier d’intégration du
continue produit
Atelier Atelier de
d’analyse suivi de bug
de code
Page 18
Architecture de l’usine logicielle :
Système de
suivi de bugs
Consultation Serveur de
8 déploiement
Bugs
Envoi d’email 5 6
Déploiement
4
Résultats de
build
4
Commit Système de Serveur Serveur de build
gestion de d’intégration
versions continue
Développeur
Données
7
Consultation
8 Serveur de Page 19
qualité du code
Page 20
Atelier de développement :
Acteurs :
Développeurs.
Les tâches :
Développer des modules répondants aux besoins du client.
Faire les builds complets contenants les tests unitaires en local.
Check out avant de faire le commit périodiquement.
Reporter une demande(issue) en cas de recevoir d’un email notifiant l’échec de
build.
Consulter les rapport de d’analyse de code.
Check out
Dépôt de
Check in versions
Besoins de client
Page 21
Framework de test :
Objectif :
Assurer une meilleure qualité et fiabilité du code.
S’assurer que le code répond toujours au besoin même après d'éventuelles
modifications.
Séparer les traitements représentés dans le code de leur test.
Page 22
Outils de test :
Base se données
Performance
Coté serveur
Web apps
Couverture
Objet mock
Page 23
Page 24
Atelier de gestion de code source :
Page 25
Page 26
Plateforme d’intégration continue :
Page 27
L’intégration continue : Démarche
Page 28
Serveur d’intégration continue :
Fonctionnalités de base :
Faire du polling depuis un SCM (Source Code Management) pour détecter les
mises à jour faites au niveau du code source
Réaliser un build du code source récupéré dans le SCM soit dès qu'un
changement est détecté au niveau des sources (Nouveau Commit effectué) soit
à intervalles réguliers sans se soucier de la présence de nouveaux commits ou
non.
Alerter un contact unique et/ou les committers concernés dans le cas d'un
build instable ou incorrect.
Mise à disposition du résultat des builds corrects pour utilisation (Notion
d'artifact) .
Page 29
Atelier d’intégration continue :
Acteur :
Administrateur.
Tâches :
Création et gestion des utilisateurs.
Scruter l’outil de gestion de code pour voir si il y a des modifications.
Lancer un build périodiquement utilisant l’outil maven 2.
Mise à jour de la base de données des bugs.
Mise à jour de la base de données du serveur de qualité de code.
Page 30
Page 31
Page 32
Système de suivi de bugs :
Fonctionnalités de base :
Fournir une base de données regroupant les bugs et leurs caractéristiques.
Degré d’urgence.
Fréquence d’apparition.
Personne reporter.
…
Suivi de cycle de vie d’un bug jusqu’à sa résolution.
Administration et droits sur les bugs.
Génération de rapports de productivité.
Wiki.
Page 33
Page 34
Serveur de qualité du code :
But :
Fournir des statistiques sur les projets et évaluer la qualité du code.
Fonctionnalités de base :
Tableau de bord des différents projets suivis
Mesures quantitatives : nombre de classes, duplication de code, etc...
Mesures qualitatives : couverture et taux de réussite des tests, complexité du
code, respect des règles de codage...
Historiques des statistiques
Gestion de profils pour les règles de codage.
Comparaison des versions d’un même projet
Page 35
Analyse dynamique du code :
Page 36
Framework
Page 37
Le socle technique :
Le socle technique :
Un ensemble de conventions, d'outils et de procédures qui structurent les
développeurs et leurs développements.
Considérer comme un environnement complet pour le développement
d'applications.
Son rôle est de faciliter, d'accélérer et d'homogénéiser le développement des
applications.
Un cadre de développement qui propose un ensemble de modules
techniques et fonctionnels permettant de répondre à des problématiques
récurrentes.
Définit une architecture de référence, édicte des normes de conception et
développement et propose un ensemble de bonnes pratiques.
Il limite le choix des outils de développement, des frameworks et des
bibliothèques.
Favorise la réutilisation de code et standardise le cycle de vie du
développement logiciel, la maintenance et l'évolution sont facilitées aussi.
Page 38
Les apports du socle technique :
Page 39
Les apports du socle technique :
Page 40
Les services techniques :
Page 41
Références :
Page 42
ENSAO – Département Génie Informatique
tbouchentouf@gmail.com
jberrich@gmail.com Page 43
T. BOUCHENTOUF / J.BERRICH