Développement à base des composants B.Shishedjiev - Génie logiciel
Origine et définitions 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
Origine et 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
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
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
Interface de composants Provides int er face Requires int Component Defines the services from the component’s environment that it uses that are provided by the component to other components Exemple Requires int er face Provides int er face addSensor removeSensor sensorManagement star tSensor Data collector stopSensor sensorData testSensor initialise repor t listAll B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel 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
B.Shishedjiev - Génie logiciel 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
B.Shishedjiev - Génie logiciel Eléments du modèle Component model Inter faces Usage information Deployment and use face definition Specific inter Composition Naming convention Meta-data access Customisation P ackag ing Documentation Evolution suppor t B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel 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
B.Shishedjiev - Génie logiciel Middleware de support Services du modèle Platform services Addressing Inter face definition Component communications Exception management Horizontal services Security T ransaction Concurrency P ersistence Resource B.Shishedjiev - Génie logiciel
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
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
Le processus de développement Identify candidate components Outline system r equir ements Modify accor ding to discovered Ar chitectur al design Compose components to create system B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel 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
B.Shishedjiev - Génie logiciel 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
B.Shishedjiev - Génie logiciel La composition Types de composition Composition séquentielle Composition hiérarchique Composition additive B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel La composition Incompatibilité des interfaces Incompatibilité des paramètres Incompatibilité des opérations Incomplétude des opérations Adaptateur qui sépare le post code de location string B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel Composition Adaptateur B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel 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» On a besoin d’un langage qui décrit la sémantique – OCL (Object design langage B.Shishedjiev - Génie logiciel
B.Shishedjiev - Génie logiciel 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
B.Shishedjiev - Génie logiciel Composition Deux compostions alternatives (a) Data collection (b) management Repor t generator Data base B.Shishedjiev - Génie logiciel