Notes de Cours
Matière : Ingénierie logicielle
Cours 1
Méthodes de génie logiciel
Symphony: une démarche de développement à base de
composant
Présenté par
Khelifa N
2020/2021
Intégration des composants dans les
méthodes développement
Un composant: est une unité autonome remplaçable dans le système
◦ Peut être spécifié et développé indépendamment
◦ Offre un ensemble d’interface spécifiant les services fournis et les services attendus par d’autre composant
◦ Peut être assemblé a d’autre composant
Connaissances
Applications du domaines
existantes
Cahier des
charges
Infrastructure application
Design for de
reuse
réutilisation
Design by reuse
Application
Caractéristiques de Symphony
Cyclede vie en Y
Démarche itérative
Démarche pilotée par les cas d’utilisation
Démarche orientée composant
Le modèle de cycle de vie en Y s’articule sur
trois branches:
Cycle de vie en Y
1. La branche fonctionnelle: Cahier des
Sp es b
tiv re
éc eso
ica tu
modélise les fonctions attendu de l’application pour charges
e
pl ec
ifi
ap chit
ca ins
répondre aux besoins
tio
Ar
n
Le résultat ne dépend d’aucune technologie Etape1: formalisation des
particulière exigences métier
Etape 2: Formalisation des
iq ure
hn ect
processus métier
An
ue
tec hit
La branche technique (architecture applicative
aly
2.
c
Ar
Etape1: Analyse
se
et technique) structurelle
Etape 2: Analyse
Recensement des contraintes et des choix technique dynamique
nécessaire de la conception du système tel que la
conception
sécurité, la montée en charge, l ’intégration de
l’existant Composant Composant
métier technique
Architecture applicative: spécifie les composants
techniques et les Framework technique a mettre en implémentation
place pour exécution des composant métier
Architecture technique: décrit l’architecture
Intégration
matériel et réseau du système en production
PM: processus
métier
PI: processus
informatisé
Démarche orientée composant
L’application est vue comme, tant au niveau conceptuel que logiciel ;
comme un assemblage de composant métier indépendant et interconnecté
La démarche est basé sur un modèle de composant métier qui permet des
la phase de formalisation des exigences métier, l’identification des
composants métier et de leurs responsabilités dans le système
d’information cible.
Spécification
des besoins
Analyse : modèle conceptuel des composants
métiers
◦ Classe interface
◦ Classe maitre
◦ Classe partie
◦ Classe rôle
Organisation des composants
Spécification des besoins
Comprendre la finalité attendue par chaque acteur : pour qui ? Pourquoi ? Dans
quelle condition ? Comment et quels résultats ?
Techniquement :
Définition des cas d’utilisation
Affectation des cas d’utilisation aux composants
(la technique est d’appliquer analyse syntaxique sur le nom des cas d’utilisation, en choisissant le
complément de verbe comme nom du composant)
On peut Ajouter
le diagramme d’activité pour identifier les cas d’utilisation à informatiser
Diagramme de séquence pour exprimer les<<composant
demandes
métier>> de service entre composants
Nom_comosant_M1
CU1
<<include>>
CU1 <<composant métier>>
Nom_comosant_M2
Acteur
CU2 Acteur
<<include>>
CU2
Définition des cas d’utilisation Affectation des cas d’utilisation aux
composants
Analyse : modèle conceptuel des
composants métiers
L’architecture des CM est inspirer des CRC (Classe Responsabilité
collaboration)
Un CM est modélisé par un paquetage composé en trois parties:
1. Une partie contrant extérieur (ce que je sais faire)
2. Une partie structurelle (ce que je suis)
3. Une partie collaboratrice (ce que j’utilise)
<<métier>>
N_Composant métier
<<interface>> <<maitre>>
Class_maitre <<Role>>
service Class_Role
<<Partie>>
Class_Partie
<<interface>>
service
Operation1()
Operation2()
Operation3()
Une partie structurelle (1) : Classe
maitre
<<maitre>>
Class_maitre
attr1
attr2
Operation1()
Une partie structurelle (2) :
Classe partie
C’est une classe complémentaire de la classe
maitre ayant un intérêt dans son contexte
Classe partie est reliée avec la classe maitre
par la relation de composition.
<<partie>>
Class_Partie
attr1
attr2
Operation1()
Une partie collaboratrice:
Classe rôle
Une classe rôle représente un fournisseur de service auprès du
composant client.
Un fournisseur est un autre composant qui rend un ou plusieurs services
Ces services sont appelés chez le client au travers de la classe rôle
En UML :
1. les dépendance sont représentées par une dépendance stéréotypée utilisation
2. Les attributs importés dans le rôle sont représentés par la notation attribut
dérivé <</>>
3. Les attributs proposés à la classe rôle n’ont de pertinence effectif que dans le
cadre du CM
<<Role>>
Class_Role
Organisation des composants
<<Metier>>
N_CM1
<<Metier>>
N_CM2
<<maitre>> <<Maitre>>
Class_Maitre1 Class_Maitre2
Organisation des composants (2)
3. La relation d’héritage d’interface
Permet de préciser qu’une classe maitre d’un
4. La relation de spécialisation de classe
CM s’engage a proposer les opérations publiées de composant
par un autre CM • La relation permet de préciser qu’une classe
Le CM fournissant son interface est souvent une maitre d’un composant est une spécialisation
abstraction représentant une structure générique d’une classe maitre d’un autre CM
<<Metier>>
<<Metier>>
N_CM1
N_CM1
<<interface>>
<<Maitre>>
Clas_service1
Class_Maitre1
<<Metier>>
<<Metier>>
N_CM2
N_CM2
<<maitre>>
Class_maitre
<<Role>>
0..* Class_Role
<<interface>>
service
0..* <<Role>>
0..*
<<Partie>>
0..* Class_Role
<<Partie>>
Class_Partie Class_Partie
Modele Process
Entité
Mappingl
control
Donnée
Process
View
Client
Mapping O_R Données
Présentation Processus Entreprise
Architecture multicouche préconisé par
Symphony
Couche présentation : définit les composants permettant de gérer
la présentation et l’interaction avec les couches inferieurs(exemple
JEE elle est basé sur MVC en utilisant les servlet, JSP,JavaBean)
Couche processus: réalisé par les classes encapsulant logique
applicative (processus administrative, gestion des dossier… )
Couche entreprise: représente l’ensemble de des composants
métiers entités et données de références
Couche projection objet relationnel: permet de transformer les
objets en requêtes SQL
Couche Données: les données sauvegardées
Etablissement de la cartographie des
composants techniques
Cette activité permet de:
◦ Définir la cartographie des composants technique à mettre en
place en convergence avec les besoins fonctionnels
Quelque catégories recensés dans le cadre d’une application
de gestion:
◦ Composant de Framework de présentation (STRUTS, JSF)
◦ Composant de projection objet relationnel (Lido, TopLink, ... etc)
◦ Composant d’authentification (JAAS…)
◦ Composant de notification (JavaMail,NetSize…)
◦ Composant d'édition(FOP,Cocon,….)
◦ Composant de recherche
◦ Composant de gestion de Pool de connexion
Description des composants et des
classes techniques
Cette étapes consiste a détailler les composants
techniques :
◦ Interface
◦ Les classes spécialisables
◦ Fonctionnement interne
Description des règles de
transformation
Spécifier et ou identifier les règles de
conception applicable dans la conception de
l’application ces règles doivent permettre:
◦ Transformer le modèle d’analyse en modèle de
conception
◦ Générer les interfaces des composants
distribués(IDL)
◦ Générer des classes de composant (inutile si la
génération est réalisé par un outil)
◦ Traduire les modèles d’état
Symphony : aspect conception
ComposantProcFactory
<<interface>>
<<utilisation>>
service -composantFactory:ComposantProcFactory
+OpeComposant() +newInstance()
+CréercomposantProcess()
+RechercheComposantprocess()
+ComposantProcFactory()
<<Implement>>
<<maitre>>
<<utilisation>>
ComosantProcesImpl
+OpeComposant()
Conception des composants (1)
patron de conception des CM (approche JAVA)(2)
Entity Impl
Les composants entités et données de
ComposantEntityFactory
références sont implémentés sous
<<interface>> composantFactory:Composant
forme d’un paquetage JAVA contenant: CompEntity <<utilisation>> EntityFactory
ComposantEntityDAO()
<<partie>> <<Role>>
partie Role
Conception de la persistance
L’objectif
de cette étapes est de transformer le
diagramme de classe de chaque composant en un
modèle de table:
◦ Définir les tables métier et spécifier les types des champs
◦ Décrire les relations traduisant les classes et celles des
associations
◦ Traduire l’héritage en utilisant les techniques de
propagation
◦ Décrire les clé primaire et les clé étrangère
◦ Définir les règles stockées
◦ Déterminer les accélérateur (index spécifique)
Merci de votre attention
Démarch
e itérative