développement à base des composants
DESCRIPTION
Développement à base des composants. Origine et définitions. Origine De programmation objet-orienté Différences Les objets sont plus détaillés et spécifiques Les composants sont plus abstraits et indépendants. Ils peuvent être examiné comme des fournisseurs autonomes de services. - PowerPoint PPT PresentationTRANSCRIPT
Le contenu est basé aux transparents du 7ème édition
de «Software Engineering» de Ian Sommerville
B.Shishedjiev - Génie logiciel 1
Développement à base des composants
B.Shishedjiev - Génie logiciel 2
Origine et définitions
• Origine– De programmation objet-orienté– Différences
• Les objets sont plus détaillés et spécifiques
• Les composants sont plus abstraits et indépendants. Ils peuvent être examiné comme des fournisseurs autonomes de services.
B.Shishedjiev - Génie logiciel 3
Origine et définitions• Définitions
– Councill et Heinmann:• A software component is a software element that conforms to
a component model and can be independently deployed and composed without modification according to a composition standard
• Le composant de logiciel est un élément de logiciel qui est en conformité avec le modèle des composants et intégré sans modification selon la procédure standard de composition
– Szyperski:• A software component is a unit of composition with
contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third-parties.
• C’est une unité de composition avec interface spécifié par contrat et ses dépendances ne sont que de contexte et explicites. Il peut être déployé de façon indépendante et est soumis à la composition par des tiers.
B.Shishedjiev - Génie logiciel 4
Origine et définitions• Principes
– Indépendants– Implémentation cachée– Communication fait par des interfaces bien spécifiés– Plateformes partagées
• Essentiels de génie logiciel basé aux composants– Composants indépendants spécifiés par leurs
interfaces– Standard pour faciliter l’intégration– Middleware qui support l’interopérabilité – Processus de développement approprié
B.Shishedjiev - Génie logiciel 5
Origine et définitions• Problèmes
– Fiabilité – comment l’utilisateur va croire que le composants ne va pas échouer
– Certification – qui va certifié le composant– Les propriétés intégrales – comment les prévoir– Compromis des besoins – comment faire le compromis entre les
besoins assurés des différents composants
• Caractéristiques– Standardisé– Indépendant– Composable– Déployable– Documenté
B.Shishedjiev - Génie logiciel 6
Interface de composants
• ExempleProvides interfaceRequires interface
Data collector
addSensorremoveSensorstar tSensorstopSensortestSensor
listAllrepor tinitialise
sensorManagement
sensorData
Provides interfaceRequires interface
ComponentDefines the services
from the component’senvironment that it
uses
Defines the servicesthat are providedby the componentto other components
B.Shishedjiev - Génie logiciel 7
Composants et objets
• Les composants sont déployables• Les composants ne définirent pas des types• L’implémentation des composants est opaque• Les composants sont indépendant de langage• Les composants sont standardisés
B.Shishedjiev - Génie logiciel 8
Modèles
• Définition– Le modèle de composants c’est la définition des
standard pour implémentation, documentation et déploiement du composant
• Exemples– EJB– .NET (COM+)– Corba Component Model
B.Shishedjiev - Génie logiciel 9
Eléments du modèle
Component model
InterfacesUsage
informationDeployment
and use
Interfacedefinition
Specificinterfaces
Composition
Namingconvention
Meta-dataaccess
Customisation
Packaging
Documentation
Evolutionsupport
B.Shishedjiev - Génie logiciel 10
Middleware de support
• Le modèle est la base de middleware qui assure l’exécution des composants
• Middleware services– Services de plateforme – pour communication entre le
composants– Services horizontaux – services partagés pour être
utilisés par plusieurs composants
• Déploiement en conteneur – il contient tous les interfaces nécessaires pour accéder les services de support
B.Shishedjiev - Génie logiciel 11
Middleware de support• Services du modèle
Platform services
AddressingInterface
definitionComponent
communicationsException
management
Horizontal services
Security
Transactionmanagement
Concurrency
Componentmanagement
Persistence
Resourcemanagement
B.Shishedjiev - Génie logiciel 12
Réutilisation des composants• Besoins
– Plus générales– Liés au domaines abstraites et stables (ex. hôpital)– Cachent les présentations d’états– Une large indépendance – Exception doivent être publiées par l’interface du
composant
• Compromis– entre réutilisabilité et utilisabilité– entre généralité et efficacité– Entre les hauts frais de développement et les bas
frais de réutilisation
B.Shishedjiev - Génie logiciel 13
Réutilisation des composants• Changes qui doivent être faits
– En généralisant autres composants• Supprimer les méthodes spécifiques de l’application• Faire les noms plus générales• Ajouter des méthodes pour élargir la couverture• Assurez la gestion des exceptions cohérente• Ajouter un interface de configuration qui fait le composant
plus adaptable• Intégrer des composants afin de minimiser la dépendance
– Quand on adapte un système hérité• Répaqueter les fonctions utile comme un composant• Ecrire une composant enveloppe qui implémente l’interface
et permit l’accès au système hérité
B.Shishedjiev - Génie logiciel 14
Componentselection
Componentsearch
Componentvalidation
Le processus de développement
Identify candidatecomponents
Outlinesystem
requirements
Modifyrequirements
according to discoveredcomponents
Identify candidatecomponents
Architecturaldesign
Composecomponents tocreate system
B.Shishedjiev - Génie logiciel 15
Le processus• La spécification des besoins
– Plus schématique– Si les besoins ne sont pas couverts par les
composant trouvés on peut discuter la modification des besoins.
• Identification des composants– Confiance– Les besoins – Validation
• La spécification peut de ne pas être assez détaillée pour concevoir des bon tests
• Le composant peut avoir une fonctionnalité peu désirée
B.Shishedjiev - Génie logiciel 16
La composition
• Définition– Le processus d’intégration– C’est normal d’écrire un code qui «colle» les
composants
B.Shishedjiev - Génie logiciel 17
La composition
• Types de composition a) Composition séquentielle
b) Composition hiérarchique
c) Composition additive
(a)
A A
B B
A B
(b) (c)
B.Shishedjiev - Génie logiciel 18
La composition• Incompatibilité des interfaces
– Incompatibilité des paramètres– Incompatibilité des opérations– Incomplétude des opérations
addressFinder
phoneDatabase (string command)string location(string pn)
string owner (string pn)
string propertyType (string pn)
mapper
mapDB (string command)displayMap (string postCode, scale)
printMap (string postCode, scale)
Adaptateur qui sépare le post code de location string
B.Shishedjiev - Génie logiciel 19
Composition• Adaptateur
Data collector
addSensorremoveSensorstartSensor
stopSensortestSensor
listAllreportinitialise
sensorManagement
sensorData
Adaptersensor
start
getdata
stop
B.Shishedjiev - Génie logiciel 20
Composition• Sémantique de l’interface
«This method adds a photograph to the library and associates the photograph identifier and catalogue descriptor with the photograph»
PhotoLibrary
adaptorImage
Manager
getImage
UserInterface
getCatalogEntry
addItem
retrieve
catEntry
On a besoin d’un langage qui décrit la sémantique – OCL (Object design langage
B.Shishedjiev - Génie logiciel 21
Composition
• Les compromis de la composition– Conflits
• Entre besoins non-foncionnels et besoins fonctionnels
• Entre la délivrance rapide et l’évolution
– Décisions• Laquelle des compositions est effective pour l’accomplir
la fonctionnalité désirée?
• Laquelle vous permis des changements futures?
• Quelles seront les propriétés intégrales du système composé?
B.Shishedjiev - Génie logiciel 22
Composition
(a) Datacollection
(b)
Datamanagement
Reportgenerator
Datacollection Data base
Report
Report
Deux compostions alternatives