Vous êtes sur la page 1sur 43

Usine Logicielle

ENSAO – Département Génie Informatique


tbouchentouf@gmail.com
jberrich@gmail.com Page 1
T. BOUCHENTOUF / J.BERRICH
Structure

Page 2
L’architecture de la salle usine logiciel :

 Zone station serveur :


 Contient 6 stations de travail puissantes qui seront utilisés comme des
serveurs de développements.
 Zone serveur :
 Contient 2 serveur qui seront utilisés comme des serveurs de productions
avec des adresses ip réels.
 Zone développeur :
 Contient 6 équipes responsables du développement et du gestion de projet.
Chaque équipe aura accès à son propre serveur de développement.
 Zone Pilotage :
 Contient les outils nécessaires pour le formateurs pour assurés le démarrage
de la formation de manière professionnel.

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 :

 L’architecture est la manière avec laquelle on structure des éléments pour


fonctionner ensembles et servir un objectif.
 L'architecture cherche à établir une combinaison harmonieuse et équilibrée
de trois principes contradictoires :
 La beauté,
 La solidité,
 L'utilité.
 Chercher à établir un équilibre parfait entre :
 Fonction,
 Structure,
 Forme.
 Correspondance avec le standard international pour l'évaluation de la
qualité logiciel, ISO 9126 :
 L'utilité correspond alors aux caractéristiques functionality et usability,
 La solidité aux caractéristiques reliability et efficiency,
 La beauté aux caractéristiques maintainability et portability.

Page 11
Définition :

 Les cadres, ou référentiels d’architecture permettent de structurer le travail


d’architecture en définissant différentes vues ou niveaux.
 Pour les différents vues, l’architecte doit cartographier l’existant, définir la
cible et tracer le plan de migration.

 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’usine logicielle offre les services suivantes :

 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 :

 L’usine logicielle est composée de 6 ateliers logiciels, chaque


atelier logiciel doit assurer des fonctionnalités particulières.

 Chaque atelier logiciel utilise des outils particuliers.


 Atelier 1: Atelier de développement.
 Atelier 2: Atelier de gestion de code source.
 Atelier 3: Atelier d’intégration continue .
 Atelier 4: Atelier de gestion de projet.
 Atelier 5: Atelier d’analyse du code.
 Atelier 6: Atelier de suivi de bugs.

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

Développeur Commit Build


1 Update 3
2

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 :

 La gestion du code source :


 Une activité qui consiste à maintenir l‘ensemble des versions d'un logiciel.
 Un logiciel de gestion de versions :
 Agit sur une arborescence de fichiers afin de conserver toutes les versions des
fichiers, ainsi que les différences entre les fichiers.

Page 25
Page 26
Plateforme d’intégration continue :

 Pourquoi l’intégration continue?


 Le coût de l’intégration des modules développés par plusieurs personnes est
très élevé.
 Découverte tardive des écarts entre les besoins du client et le produit
développé.
 Avantages:
 Les bugs sont détectés et réparés de façon continue, évitant les problèmes de
dernière minute.
 Une version est toujours disponible pour test, démonstration ou distribution.
 Test immédiat des unités modifiées.
 Amélioration de la communication entre les membres de l’équipe.

Page 27
L’intégration continue : Démarche

 Les développeurs commit fréquemment (au moins quotidiennement) leurs


modifications.
 Le serveur IC check out la dernière version de code source du projet.
 Le serveur IC lance un build complet (compilation ,test…).
 Une version de projet est déployée.
 Notification automatique en cas d’échec du build.
 Mise à jour de la base de données des bugs.
 Mise à jour de la base de données du système de qualité de code.
 Les développeurs suivent l’état du projet, et des bugs reportés.

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 :

 L'analyse dynamique du code :


 Utilise des ensembles de données de test pour exécuter un logiciel afin
d'observer son comportement et produire des rapports de couverture de test.
 L’analyseur dynamique (profiler) :
 Un outil qui permet d’avoir une vue générale sur les aspects mesurables du
système durant l'exécution d’un programme.
 Un analyseur dynamique permet de :
 Connaître la consommation des ressources systèmes (la mémoire, le
processeur).
 Avoir des statistiques instantanées sur le temps d’exécution (par package, par
classe, par méthode, etc.…).
 Détecter les goulots d’étranglement, les sources du blocage et identifier les
fuites de mémoire.
 Afficher les résultats sous différents formats pour une meilleure exploitation.

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 :

 Un ensemble d’outils prêts à l’emploi :


 Le socle offre une liste d’outils de développement pour chaque couche de
l’application.
 Ces outils sont bien choisis, installés et configurés pour dispenser le
développeur ou l’administrateur de l’ensemble de ces opérations et aussi
leurs permettre de se concentrer sur leurs objectifs.
 L’utilisation de ces outils est très facile, ce qui rend la tâche de plus en plus
facile pour le développeur.
 Des structures de projets identiques :
 Ceci a pour but de rendre facile la maintenance, et aussi permet aux
développeurs de se familiariser avec cette architecture et de pouvoir s’entre-
aider pour résoudre les problèmes communs.
 L’automatisation des tâches :
 Le socle technique traite l’ensemble des opérations transverses à l’ensemble
des applications web, tels que : la sécurité et la gestion des transactions, et
comporte les outils nécessaires pour l’exécution de ces tâches.

Page 39
Les apports du socle technique :

 Une gestion automatique des librairies :


 Le développeur n’a pas à se soucier du téléchargement des librairies
nécessaires pour le projet.
 La gestion est réalisée d’une façon automatique grâce à la méthode de
développement choisie et aussi les outils dont le socle dispose.
 L’intégration avec l’usine logicielle :
 Permet au développeur de profiter directement de l’ensemble des services
offerts par l’usine logicielle en termes d’intégration continue du code et de
gestion de versions sans oublier les autres fonctionnalités indispensable au
développement.
 Etablir une atmosphère de développement agile :
 Le respect des standards impliqué par le socle technique permet d’effectuer
des changements sur le code sans avoir des régressions et assure un
développement en toute rapidité.
 Le socle technique assure la liaison avec l’usine logicielle via des extensions
(plugins) installés et configurés dans l’environnement de développement.

Page 40
Les services techniques :

 Le socle technique offre une multitude de services techniques qui répondent


à des besoins techniques récurrents lors du développement :
 La gestion de la sécurité.
 La gestion des traces.
 La génération des états.
 L’accès à la base de données.
 La gestion des transactions.
 La gestion des exceptions.

 La mise en œuvre du socle technique


 Consiste à l’identification des frameworks open source qui assurent 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

Vous aimerez peut-être aussi