développement à base des composants

22
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

Upload: rose-dudley

Post on 02-Jan-2016

29 views

Category:

Documents


4 download

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 Presentation

TRANSCRIPT

Page 1: Développement à base des composants

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

Page 2: 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.

Page 3: Développement à base des composants

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.

Page 4: Développement à base des composants

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é

Page 5: Développement à base des composants

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é

Page 6: Développement à base des composants

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

Page 7: Développement à base des composants

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

Page 8: Développement à base des composants

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

Page 9: Développement à base des composants

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

Page 10: Développement à base des composants

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

Page 11: Développement à base des composants

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

Page 12: Développement à base des composants

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

Page 13: Développement à base des composants

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é

Page 14: Développement à base des composants

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

Page 15: Développement à base des composants

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

Page 16: Développement à base des composants

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

Page 17: Développement à base des 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)

Page 18: Développement à base des composants

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

Page 19: Développement à base des composants

B.Shishedjiev - Génie logiciel 19

Composition• Adaptateur

Data collector

addSensorremoveSensorstartSensor

stopSensortestSensor

listAllreportinitialise

sensorManagement

sensorData

Adaptersensor

start

getdata

stop

Page 20: Développement à base des composants

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

Page 21: Développement à base des composants

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é?

Page 22: Développement à base des composants

B.Shishedjiev - Génie logiciel 22

Composition

(a) Datacollection

(b)

Datamanagement

Reportgenerator

Datacollection Data base

Report

Report

Deux compostions alternatives