RÉUTILISABILITÉ DE COMPOSANTS WEB AU TRAVERS DUNE APPROCHE BASÉE SUR JSR 168

66 212 0
RÉUTILISABILITÉ DE COMPOSANTS WEB AU TRAVERS DUNE APPROCHE BASÉE SUR JSR 168

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

INSTITUT DE LA FRANCOPHONIE POUR EUROPEAN SCHOOLNET L’INFORMATIQUE RAPPORT DE STAGE DE FIN D’ÉTUDES RÉUTILISABILITÉ DE COMPOSANTS WEB AU TRAVERS D'UNE APPROCHE BASÉE SUR JSR-168 NGUYEN TRONG KHANH (A) PROMOTION: 12 Lieu du stage: EUN - European Schoolnet Responsable: PhD Jean Noël Colin Période du stage: du 10 Avril 2008 au 10 Octobre 2008 BRUXELLES, BELGIQUE 2008 Table des matières TABLE DES MATIERES I LISTE DES FIGURES III ABREVIATION IV REMERCIEMENTS V RESUME VI ABSTRACT VII INTRODUCTION 1.1 PROBLEMATIQUE 1.2 MOTIVATION 1.3 OBJECTIFS 1.4 ENVIRONNEMENT DE STAGE 1.5 CONTRIBUTION 1.6 STRUCTURE DU RAPPORT ÉTAT DE L’ART 2.1 GENERAL DE LA REUTILISATION DU LOGICIEL 2.1.1 Avantages et obstacles de la réutilisation 2.1.1.1 2.1.1.2 2.1.2 Taxonomie et niveaux de réutilisation 2.1.2.1 2.1.2.2 2.1.3 2.1.4 Avantages Obstacles Logiciel AVEC la réutilisation Logiciel POUR la réutilisation 10 Modèle d’organisation pour réutilisation 13 Processus de réutilisation des logiciels .15 2.1.4.1 2.1.4.2 Processus POUR la réutilisation 16 Processus AVEC la réutilisation 18 2.1.5 Evaluation de la réutilisation .20 2.2 COMPOSANTS ET REUTILISABILITE 22 2.2.1 Composants 22 2.2.2 Caractéristique du composant réutilisable 23 2.2.3 Réutilisation du composant dans le contexte de développement du web .24 TECHNOLOGIE ET ENVIRONNEMENT D’EXPERIMENTATION .26 3.1 PORTLET ET JSR 168 26 3.1.1 Portlet 26 3.1.2 Caractéristique et contenu de la JSR 168 27 3.2 CONTENEUR DU PORTLET 28 3.2.1 Liferay (lportal) 30 3.3 3.4 JAVA SERVER FACES (JSF) 30 ICEFACES 32 3.5 JAVA ARCHITECTURE FOR XML BINDDING – JAXB 33 IMPLEMENTATION 35 4.1 INTRODUCTION 35 4.1.1 Project du portail eSkills 35 4.1.2 Sous-projet Survey .36 4.1.3 Sous-projet LOM-Recherche 36 4.2 PORTLET SURVEY 37 4.2.1 Général des fonctions fournies du portlet 37 4.2.2 Structure Survey 39 i 4.2.3 Réutilisation de la couche du service de Liferay 41 4.2.4 Développement des composants réutilisables 44 4.2.5 Réutilisabilité du portlet et des composants .44 4.3 PORTLET LOM-RECHERCHE 47 4.3.1 Structure et implémentation du portlet 47 4.3.2 Réutilisation dans le projet 49 4.3.3 Réutilisabilité du portlet .49 4.4 ANALYSE 49 4.4.1 Analyse de portlet d’implémentation 49 4.4.2 Recommandation du développement des composants réutilisables .52 CONCLUSION 56 ii Liste des figures Figure 2-1 Modèle d’organisation Ad-hoc 13 Figure 2-2 Modèle d’organisation basée sur le dépôt de la réutilisation 14 Figure 2-3 Modèle d’organisation de centralisation de réutilisation 14 Figure 2-4 Modèle d’organisation de la réutilisation basé sur le domaine 15 Figure 2-5 Processus du développement des composants réutilisables .16 Figure 2-6 Étape de réingénierie dans le processus développement des composants REBOOT 17 Figure 2-7 Le processus de développement du logiciel avec réutilisation 18 Figure 3-1Modèle des couches d’un portail contenir des portlets 27 Figure 3-2 La cycle de vie d’un portlet 28 Figure 3-3 La structure interne du conteneur de portlet .29 Figure 3-4 La position de JSF avec JSP et Java Servlet .31 Figure 3-5 La structure d’activité de JSF 31 Figure 3-6 L’architecture d’activité d’Icefaces 32 Figure 3-7 L’architecture d’activité de JAXB .33 Figure 4-1 La structure du portail eSkills et la position du portlet Survey 36 Figure 4-2 Des questions fournis par le portlet Survey 39 Figure 4-3 Structure des couches du portlet Survey 39 Figure 4-4 Modèle des questions dans Survey .40 Figure 4-5 Processus de la réutilisation de la couche du service de Liferay 41 Figure 4-6 Une partie du fichier service.xml dans la couche du service réutilisable 42 Figure 4-7 Modèle d’objet généré par Liferay 43 Figure 4-8 Modèle de la couche du service généré par Liferay 43 Figure 4-9 Structure du composant réutilisable du Survey 44 Figure 4-10 Une partie code et l’interface correspondante du composant réutilisable 45 Figure 4-11 L’architecture du portlet LOM-Recherche 47 Figure 4-12 L’interface de recherche dans portlet LOM-Recherche 48 Figure 4-13 Résultat de recherche du portlet LOM-Recherche 48 Figure 4-14 La position du projet pour réutilisation 52 Figure 4-15 Cycle de vie du développement 54 iii Abréviation EUN JSF JSP XML JSR European Schoolnet Java Server Faces Java Server Page Extensible Markup Language Java Portlet Specification WSRP LOM Web Services for Remote Portlets Learning Object Metadata LRE JAXB GPL REBOOT FORM PECOS IBM SSI CSI Learning Resource Exchange Java Architecture for XML Binding GNU General Public Licence Reuse Based on Object-Oriented Techniques Méthode de réutilisation orientée caractéristique (feature-oriented reuse method) Pervasive Component Systems International Business Machines Corporation Shipped source instruction Changed source instruction RSI SIRBO Reused source instruction Source instructions reused by others LOC PDR RCA SCA DCA RVA ADC J2EE Line of code Pourcentage de réutilisation Coût de réduction de la réutilisation Coût de réduction du service Coûte du développement Valeur ajoutée de la réutilisation Valeur ajoutée du développement Java Platform Enterprise Edition URL HTML Uniform Resource Locator HyperText Markup Language API AOS AOWS CAS LDAP Application Programming Interface Architecture Orientée Service Architecture Orientée WebService Système d'authentification unique Lightweight Directory Access Protocol MVC2 IOC Modèle Vue Contrôleur Inversion of Control LAAS DES Laboratory for Analysis and Architecture of Systems Data Encryption Standard MD5 RSA Message-Digest Algorithm Rivest Shamir Adleman - Algorithme asymétrique de cryptographie clé publique Ajax DOM SAX JAXP XVD Asynchronous JavaScript and XML Document Object Model Simple API for XML Java API for XML processing Exchange of Vocabulary Definition Specification iv Remerciements Je tiens en premier lieu remercier tout particulièrement celui qui m’a dirigé pour mon mémoire de fin d’études, Monsieur Jean Noël Colin, pour ses commentaires éclairés et sles judicieux conseils J’adresse un grand merci Jose Fernandez et Benedicte Clouet pour leurs opinions et la correction du français de ce rapport Je tiens remercier Monsieur Alain Pirotte et Monsieur David Massart qui m’ont aidé et accueilli en Belgique pour ce stage Je remercie également tous les membres de European Schoolnet, qui font d’EUN un environnement idéal de travail Enfin, j’exprime mon entière reconnaissance ma famille et mes amis pour leur soutien et leurs encouragements v Résumé La réutilisation de composant du logiciel devient de jour en jour plus importante dans le génie logiciel La construction et réutilisation des composants du web est encore un nouveau problème quand la plupart du logiciel est transmis l’environnement du web Dans le cadre du stage de master de recherche effectué dans l’organisation European Schoolnet, nous avons abordé des problèmes concernant la réutilisation du logiciel, le composant réutilisable et notamment le composant réutilisable du web et la réutilisation de ces composants travers une approche basée sur JSR168 L’objectif de ce travail fut de rassembler des expériences travers l’étude de la réutilisation des technologies par la construction d’applications sous la forme portlet, le développement des composants réutilisables partir de ces applications et enfin la proposition de recommandations sur la réutilisabilité et le processus de développement des composants réutilisables du web Deux applications, que nous construisons ici, sont SurveyPortlet et LOMRecherche intégrées dans le portail eSkills Elles sont construites par réutilisation de composants réutilisables Nous créons aussi des composants réutilisables Survey partir de SurveyPortlet pour les réutiliser dans d’autres projets dans le futur Des recommandations proposées contribuent l’orientation du développement des composants du web plus favorablement Mots clés : réutilisation, composant du web, composant réutilisable, réutilisation dans le portlet, processus de développement du composant réutilisable vi Abstract Reusing of software components is becoming more and more important in the software engineering Building and re-using the web component is still a new problem when the most of software is transformed to the web environment This report of master of research is carried out in the European Schoolnet partnership We deal with a problem of relative software re-use, and reusable component, especially reusable web component and reuse of this component via an approach based JSR168 Purpose of this work is to draw more thought in the study of reuse and technology by building the applications in the form of portlet, the development of reusable components in these applications It also proposes best-practices on reusability and the process development of reusable web components Two applications were built for SurveyPortlet and LOMRecherche which are integrated into the portal eSkills They are built by reusing the reusable components and we create also reusable components Survey from SurveyPortlet for reuse in other project in the future These best-practices contribute to the developmental orientation of web components more favorably Keywords: software reuse, web component, reuse component, portlet reuse, process development of the reuse web component vii Introduction 1.1 Problématique Aujourd’hui, le logiciel est rarement créé partir de zéro Le logiciel devient de jour en jour plus complexe, le cycle de vie d’un logiciel est plus court, le logiciel demande être développé plus rapidement Donc, la réutilisation des produits du logiciel est nécessaire La réutilisation du logiciel est le processus de création d’un logiciel partir d’éléments réutilisables existants Avant, la réutilisation était réalisée par copier-coller du code des algorithmes Ensuite, on a parqué des fonctions dans la bibliothèque du langage de programmation pour les réutiliser Et aujourd’hui, la réutilisation du logiciel est apparue sous plusieurs formes différentes, ad-hoc ou symétrique, codes simples ou structures complexes, de la boîte noire la boîte blanche Il y a beaucoup de produits réutilisables comme le code, la conception, le document, etc La réutilisation du composant est devenue plus importante dans divers aspects du génie logiciel Le composant est développé, maintenu et réutilisé dans plusieurs logiciels différents Le composant a beaucoup d’avantages Il est facile de le distribuer différents ingénieurs qui le développeront parallèlement Il est facile de maintenir le composant quand ils ont une bonne conception d’interface car les modifications dans la région locale n’influent pas le système Il est facile de replacer un composant pour mettre niveau le système Le composant a une grande influence, tant sur la structure du logiciel, que sur le processus de développement du logiciel Mais actuellement il y a encore des problèmes qui demandent des réponses Quel est le composant réutilisable ? Quelles sont les caractéristiques de la réutilisabilité du composant ? Le processus de développement du composant et l’évaluation de réutilisation ? Dans le monde, la plupart des logiciels a été transmis l’environnement du web pour fournir des services en ligne Donc, le composant dans cet environnement a aussi introduit des changements sur les exigences, les caractéristiques et le processus du développement Donc les problèmes ci-dessous deviennent plus complexes Ils demandent des études et expériences de développement dans ce domaine-ci 1.2 Motivation La réutilisation dans l’environnement du web est partir de l’utilisation des liens dans la page pour se connecter d’autres pages Il joue un rôle important dans la réutilisation des parties du web et son contenu L’apparition du composant du web produit un changement dans la réutilisation dans le web Il est utilisé dans l’application complexe remplaçant des pages simples Le portail est en cela un perfectionnement pour construire des applications dans le domaine du web Le portail fournit en effet un environnement personnalisable pour que des applications du web puissent s’exécuter Le portlet est une application dans le portail, comparable une mini-application web avec une interface GUI propre Mais, parce que le portlet est indépendant par rapport au portail, il peut être réutilisé dans un autre portail Et en tant qu’application, il peut donc réutiliser des composants réutilisables Comment construit-on des composants réutilisables du web? Comment peut-on réutiliser des composants du web pour construire des portlets ? Quelle est la réutilisabilité du portlet ? Ce sont des problèmes sur lesquelles nous voulons étudier avec le titre : «La réutilisabilité de composants web au travers d’une approche basée sur JSR168 » Cependant, la recherche est très vaste Dans la situation réelle, nous n’avons pas la prétention de rechercher et proposer un processus de développement ou une nouvelle approche Nous nous limiterons donc poser des recommandations quand nous réalisons les projets du portail sous la direction de la réutilisation des composants du web et développement des composants réutilisables 1.3 Objectifs Dans ce rapport, nous allons résoudre les problèmes suivants : - Étude des caractéristiques du composant réutilisable, particulièrement dans l’environnement du web et dans l’environnement du portlet Étude de la technologie de réutilisation du logiciel dans l’entreprise, des avantages et obstacles - Avec le développement de plusieurs modules réutilisables : des composants du Web réutilisable, des portlets réutilisables Dans ce cas-là, nous devons construire des applications complètes sous la forme de portlet Les composants développés dans ces applications deviennent des composants réutilisables - Proposition de recommandations, l’usage de la construction de composants réutilisables 1.4 Environnement de stage European Schoolnet est une organisation internationale but non lucratif, composée de vingt-huit ministères de l’éducation en Europe Fondé en 1997, European Schoolnet fournit des solutions pour l’enseignement, l’étude et la collaboration dans le domaine de l’éducation travers la construction de portails L’objectif est d’apporter le changement dans les écoles par l’utilisation des nouvelles technologies 4.2.4 Développement des composants réutilisables À partir de portlet Survey, nous avons développé des composants réutilisables La technique de développement des composants est basée sur des composants de l’Icefaces et JSF, avec l’objectif que l’utilisateur puisse réutiliser seulement par quelques lignes du code plusieurs niveaux de réutilisation différents La structure des composants réutilisables : TagLibrary HtmlComposant SurveyÉléments Figure 4-9 Structure du composant réutilisable du Survey Le composant comprend trois parties Les éléments faisant partie du portlet Survey Nous développons encore deux parties Tag Library et HtmlComposants pour la compatibilité avec les composants du JSF TagLibrary est l’ensemble des tags permettant d’utiliser les composants dans le fichier JSP en compagnie des composants de JSF et Icefaces HtmlComposant comprend des classes qui lient des tags dans JSP au des éléments dans la partie au-dessous 4.2.5 Réutilisabilité du portlet et des composants Comment peut-on réutiliser ce composant ? Le portlet Survey est un grand composant, il contient beaucoup de petits composants : composant de présentation, composant de gestion des données, traitement des données… Dans cette partie nous allons examiner quels composants nous pouvons réutiliser - Réutilisation du portlet Nous pouvons réutiliser ce portlet dans d’autres portails Nous allons examiner deux cas: un portail qui utilise la technologie de Liferay et un projet qui n’utilise pas la technologie de Liferay Avec le portail utilisant la technologie de Liferay, nous n’avons besoin d’aucune modification Copier le paquet du portlet dans le répertoire de déploiement du Liferay Le portail le déploiera automatiquement au répertoire du web Le portlet est prêt marcher Lorsque le portail n’utilise pas la technologie Liferay, on doit replacer la couche de service On doit construire une nouvelle couche de service pour se connecter la base 44 de données Dans ce cas-là, nous avons aussi besoin de modifier quelques fonctions pour l’adapter ce nouvel environnement comme : Le mécanisme de récupération des informations d’environnement pour changer la langue suive la langue du portail, les informations sur l’utilisateur connecté Cependant, les portlets peuvent marcher sans ces paramètres - Réutilisation des composants de Survey Pour développer un programme réutilisant les composants de Survey Il y a trois niveaux de réutilisation : - Réutilisation des composants au niveau d’interface Les composants du Liferay sont développés dans la bibliothèque du tag Le développeur peut élaborer directement des questions dans le fichier jspx pour afficher dans le site Toutes les informations des options sont fournies dans les tags Et le résultat de question peut-être obtenu en liant une valeur dans le JavaBean avec les paramètres Deux composants peuvent être réutilisés ici : composant du Survey, composants de la question et composant pour élaborer la question Figure 4-10 Une partie code et l’interface correspondante du composant réutilisable 45 - Réutilisation des composants au niveau demi-interface C’est dire, les composants sont fixés dans la page du web, mais le détail du composant est défini dans le programme Création d’un sondage et lier une variable dans JavaBean Création d’une question et lier une variable dans JavaBean Création de la forme pour entrer des informations en détail et lier une variable dans JavaBean Avec le type de réutilisation La question est fixée dans l’interface d’utilisateur, mais le contenu de la question peut-être changé au ‘run-time’ La valeur survey, question, questionedit dans JavaBean sont créées automatiquement quand le site est affiché - Création dynamiquement dans le programme Des composants sont développés sur la base des composants d’Icefaces Donc, on peut créer dynamiquement un élément et ajouter dans la page du web Ensuite, on rappelle une méthode de cet élément pour afficher le contenu QuestionBase ques=new SingleAnswerQuestion(); ques.Render() : Afficher le contenu pour que l’utilisateur réponde ques.RenderEdit : Afficher l’interface pour l’administrateur modifie cette question Cette méthode est utilisée dans le cas ou nous voulons organiser l’interface dynamique Ce type est souvent utilisé dans un sondage ou les questions dépendent de la base de données Dans tous les cas, on peut mélanger ces types dans un programme pour les adapter aux divers objectifs 46 4.3 Portlet LOM-Recherche 4.3.1 Structure et implémentation du portlet LOM-Recherche est un portlet qui utilise aussi la technologie Iceface pour l’interface Cependant, la base de données est stockée dans le disque en forme de XML donc il n’utilise pas la couche du service du Liferay Il utilise JAXB pour accéder aux données et les traiter Interface Workflow Thesaurus LOM Préprocesseur XVD Parser Thésaurus descripteur Métadonnées LOM Figure 4-11 L’architecture du portlet LOM-Recherche Thésaurus descripteur et Métadonnées LOM LOM Recherche travaille sur deux bases de données LOM pour recherche et Thésaurus de descripteur pour que l’utilisateur puisse choisir des contraintes de recherche LOM (Learning Object Metadata) est un modèle de métadonnées habituellement codé en forme XML Il décrit des objets d’étude et ressources numériques pour soutenir l’éducation L’objectif des métadonnées est de soutenir la réutilisabilité et de faciliter l’exploration des ressources Thésaurus descripteur est une sorte de dictionnaire hiérarchisé qui stocke des indexations des thèmes de ressources sous la forme du thesaurus Il comprend des termes et des relations Ces termes sont liés aux éléments de la base de données LOM Thésaurus est une base de données multi-langue XVD Parser Cette partie traite des données dans la base de données Thésaurus Descripteur Elle transforme ces données en forme XML des objets que notre programme utilise Nous utilisons la technologie de l’Architecture de Java pour bindding XML (JAXB) Elle 47 transforme des éléments structurés aux objets en langage Java Elle a un rôle similaire la couche du service du Liferay dans le portlet Survey Thésaurus Cette partie stocke des données de thésaurus pour les utiliser dans le portlet Elle obtient des objets de XVDParser et maintient l’existence des données en seule instance dans la mémoire pour servir toutes les sessions Elles sont des sujets pour chercher dans les métadonnées LOM Préprocesseur LOM Préprocesseur LOM est un moteur de recherche Il est un composant réutilisé Préprocesseur LOM utilise la technologie Lucene pour chercher des données dans la base de données Il reçoit des requêtes de la couche workflow, prétraite les requêtes avant d’utiliser Lucene pour la recherche Il retourne les résultats remplissant des conditions requises sous la forme XML Workflow et Interfaces Workflow gère des informations des utilisateurs, estime et traite les contraintes de recherche entrée par l’utilisateur et les transmet au préprocesseur LOM Figure 4-12 L’interface de recherche dans portlet LOM-Recherche Figure 4-13 Résultat de recherche du portlet LOM-Recherche 48 4.3.2 Réutilisation dans le projet Dans le LOM Recherche, il y a trois parties réutilisées LOM Préprocesseur et deux paquets générés par JAXB, une pour traiter les données du thésaurus et une pour traiter des résultats reçus Préprocesseur LOM est un composant parqué, il peut être inclus et utilisé directement dans le programme LOM fournit deux fonctions principales : - La fonction : LuceneSearcher.lre2lucene(lreQuery) transformé une requête de la forme de langage LRE la forme de Lucene - La fonction : LuceneSearcher.searchCMRObject(luceneQuery)recherché des résultats dans la base de données 4.3.3 Réutilisabilité du portlet Ce portlet est construit partir de technologies Java, il n’utilise pas les services du Liferay, donc, il est portable La réutilisation du portlet dans un autre conteneur est complètement libre Il a besoin seulement de reconfigurer les fichiers XML pour s’adapter chaque exigence d’environnement du conteneur 4.4 Analyse 4.4.1 Analyse de portlet d’implémentation Dans la partie précédente, nous avons présenté les portlets dans le projet eSkills Il comprend deux l’application Survey et LOMRecherche On voit que : - Les portlets sont développés avec réutilisation Survey réutilise la couche de service du Liferay Dans ce cas-là, toute la couche du Liferay est un composant réutilisable Il est la boîte blanche Nous nous intéressons aux fonctions exportées du composant pour se connecter la base de données Nous pouvons connaître tout le contenu du composant, et ajouter les fonctions nécessaires Avec ce composant, la technique de réutilisation est la génération Les codes sont générés partir d’un fichier de configuration Dans le LOMRecherche Nous avons réutilisé trois parties Un composant LOMPréprocesseur traite des requêtes entrées La transformation des requêtes en forme de Lucene et utilisant Lucene pour chercher des résultats dans la base de données On réutilise ce composant travers son interface On n’a pas besoin de savoir le contenu du composant et des activités internes Donc, il peut être considéré comme boîte noire La technique de réutilisation est la composition 49 Deux parties du code sont générées par JAXB On peut les considérer comme des composants réutilisables avec la technologie de réutilisation est la génération et le type du composant est boîte transparente, parce qu’on peut voir leurs contenus, mais la connaissance des codes n’est pas nécessaire Maintenant, nous allons évaluer la réutilisation par la méthode présentée précédemment À cause de la limité de ce projet, les observations sont insuffisantes et nous ne pouvons donc pas évaluer tous les facteurs que nous avons présentés Ici, nous n’évaluons que le taux de réutilisation dans deux applications D’autres facteurs, comme le prix et le nombre de personnes ne sont pas disponibles actuellement L’application Survey : PDR= RSI / (RSI+SSI)= 14459 / 20496 = 70% Dans l’application LOMRecherche, on ne peut pas trouver cette valeur parce que le composant LOMPréprocesseur est la boîte noire, il est parqué en binaire, nous ne savons pas le nombre de lignes du code Ce sont des chiffres qui parlent de l’état de la réutilisation Cependant, nous pouvons voir que le nombre de lignes du code du composant réutilisable est grand Tous les codes ne sont donc pas réutilisables parce que quelques fonctions sont superflues Il n’est pas utilisé dans notre programme Dans les deux applications, on peut aussi évaluer le taux de la partie réutilisable Survey : nombre de parties réutilisables/ total de partie = 2/7 = 29% LOMRecherche : parties réutilisables / parties = 60% Ces chiffres ici sont seulement titre informatif, on n’a pas examiné leur niveau d’importance dans le projet Quelques parties réutilisent un grand nombre de lignes du code qui peuvent être remplacées par un module plus petit, ce moment-là, le taux de réutilisation va être changé - Les portlets sont développés pour la réutilisation EUN développe des applications soutenant l’éducation par l’utilisation de portails Le portail n’est que le moyen de transfert des applications aux utilisateurs L’exigence de l’application est d’avoir la capacité d’être réutilisée plusieurs fois Le portlet est la solution suffisante dans cette situation Le portlet est une application web portable, il peut être réutilisé dans n’importe quel conteneur suivant la norme Nos portlets suivent la norme JSR168 qui est la norme universelle pour le portail La plupart des grands portails aujourd’hui supportent cette norme Donc, les portlets peuvent être réutilisés dans plusieurs portails différents comme JBoss, uPortal… 50 Nos portlets sont des composants de type boîte blanche Des portails demandent des portlets devant avoir des configurations différentes pour s’adapter l’environnement Donc, la structure du portlet est ouverte au programmeur Avec le portlet Survey, le programmeur doit savoir les structures des questions, la survey pour installer la base de données et construire la couche du service dans le cas nécessaire L’évaluation du bénéfice de développement pour la réutilisation ne pourra être réalisé que dans l’avenir - Des composants réutilisables du Survey À partir de Survey, nous avons développé des composants du web réutilisables Ces composants peuvent être parqués en bibliothèque pour être réutilisés dans d’autres applications du web qui demandent des fonctions comme le sondage On voit que ces composants ont des caractéristiques de la réutilisabilité : Quand on crée un composant dans le programme, le composant gère ses variables et traite les activités internes suivant les opérations de l’utilisateur Le composant est réutilisé sans inclure d’autres composants si le projet est développé avec la technologie Icefaces Alors, les composants Survey sont autonomes Des composants sont parqués dans la librairie (.jar) avec les tags et des classes exportées Ils sont l’identification Des composants ont des fonctions précises Ils sont utilisés pour construire des applications du sondage Ils comprennent des questions et un survey contenant des questions Ils sont des fonctionnalités Pour utiliser des composants, on utilise des tags exportés Ils sont l’interface du composant En plus, nous avons des niveaux de réutilisation du composant Ils sont des états de la réutilisation du composant Alors, les composants Survey ont des caractéristiques du composant réutilisable présenté précédemment Pour réutiliser ces composants On doit comprendre le contenu du composant et le principe d’activité de chaque composant Alors, des composants sont de type «boîte transparente» Cependant, la frontière entre les types de boîte n’est pas claire, elle dépend du niveau de la réutilisation de l’utilisateur Si l’utilisateur ajoute le composant pour élaborer des tags dans l’interface, c’est la boîte noire Si l’utilisateur étend la fonction pour enregistrer automatiquement la base de données pour hériter des questions et implémenter des interfaces, on doit comprendre le contenu du composant C’est la boîte blanche 51 Des avantages et inconvénients du composant réutilisable de Survey Avantages Il est facile réutiliser dans d’autres projets Au niveau du portlet, on peut facilement construire une programmation réutilisant les composants Au niveau de l’interface, on peut facilement élaborer un site web réutilisant ces composants par quelques tags comme des composants de JSF En plus, les composants de Survey utilisent la technologie Icefaces Il support donc l’Ajax Inconvénients Parce qu’il y a beaucoup de types de question avec diverses valeurs du résultat, la gestion des paramètres de la question est un peu difficile Tous les types de questions sont parqués dans un même composant Il est facile de gérer les questions, mais il est difficile de gérer les résultats de chaque question, ce qui exige des programmeurs de connaître les composants en détails pour tirer le meilleur parti du composant 4.4.2 Recommandation du développement des composants réutilisables Projet pour réutilisation Avant de développer un projet qui comprend des composants réutilisables, on doit s’imaginer le projet et la position du projet par rapport d’autres projets utilisant des composants réutilisables Projet pour réutilisation n’est pas l’intersection, ni la réunion entre des projets Normalement, le projet pour la réutilisation contient des parties communes qui sont réutilisées par d’autres projets et formulées sous des composants Ce projet est donc plus grand que l’intersection des projets Sa frontière est déterminée par la partie qu’elle réutilise partir de d’autres projets avec des parties qui assurent les caractéristiques de réutilisabilité du composant Projet P3 PR Projet P1 Projet Projet pour réutilisation P2 Figure 4-14 La position du projet pour réutilisation PR ⊃ P1 ∩ P2 ∩…∩Pn 52 Où : PR est le projet qui est développé pour l’utilisation et P1…Pn sont des projets qui réutilisent des composants PR La détermination de la frontière du projet et leurs fonctions lors qu’on ne sait pas tous les projets P1 Pn est difficile donc on doit prévoir des fonctions et déterminer le rôle du projet Spécification - Développement d’un projet pour réutilisation basée sur un projet existant On ne développe pas un projet quand il n’y a pas de besoins de l’utiliser Donc ordinairement, un projet pour la réutilisation se fait partir d’un projet dont qu’il réutilise - Imagination d’un grand projet qui réutilise tous les composants et toutes les caractéristiques de ce projet Ceci nous aide apercevoir le rôle des composants, la situation d’utilisation de chaque fonction - Proposition d’exigences rigoureuses pour toutes les fonctions du composant Un composant est réutilisé dans plusieurs applications différentes donc l’exigence du composant est la réunion de l’ensemble des exigences de tous les projets - Dans le portlet, on devrait séparer les exigences de la fonction des exigences du portail Un portlet contient des fonctions pour résoudre des problèmes spécifiques et des fonctions pour intégrer au portlet comme l’interface ou l’interconnexion La séparation nous aide construire un portlet indépendant du portail et le portlet peut être réutilisé facilement et s’adapter d’autres conteneurs Conception - Faire plus que besoin Des besoins sont générés par les projets existants, mais le composant peut être réutilisé pour des projets inconnus Les fonctions d’un composant ne sont pas superflues, elles peuvent être utiles avec des projets futurs Donc on devrait construire des composants orientés objet ou agent avec des fonctions possibles - Construction d’un composant complet et pas superflu Un composant complet satisfait toutes les exigences concernant le composant Un composant avec des fonctions superflues rend la réutilisation inextricable - De petits composants plutôt qu’un grand composant Des petits composants sont plus portables et faciles intégrer d’autres projets - Détermination des interfaces d’interconnexion et documentation de toutes les interfaces - Diminution des dépendances du projet d’autres Dans le cas de dépendance d’autres, on doit indiquer clairement ces dépendances et comment on peut intégrer ces 53 dépendances dans un autre projet On devrait faire des fonctions simples pour diminuer les dépendances - Dans le cas ou le portlet dépend du portail, on devrait construire une interface pour une interconnexion entre-deux, afin que le portlet puisse marcher sans implémentation de ces interfaces Par exemple, le portlet accepte de changer la langue en fonction de la langue du portail, mais si le portail ne supporte pas cette caractéristique, le portail peut toujours fonctionner convenablement - Construction des composants avec plusieurs niveaux de réutilisation différents Cela facilite et augmente la réutilisation Des niveaux de réutilisation peuvent être classifiés du simple au complexe, etc - Nous pouvons résumer le processus de développement dans le schéma ci-dessous : Capture des besoins fonctionnels Branche fonctionnelle Branche technique Capture des technologies, dépendances Spécification des techniques, dépendances Spécification des fonctions Analyser des techniques, dépendances Analyser des fonctions Conception Phase de Implémentation réalisation Tester Documenter Stocker dans le dépôt Figure 4-15 Cycle de vie du développement Avant de réaliser un projet, on examine deux branches parallèlement pour déterminer les caractéristiques du projet et les composants développés sur le domaine de besoin, fonction et le domaine technique et dépendant d’autres composants Codage - Utilisation d’un modèle du code Un modèle général rend le codage plus clair Un autre programmeur peut le modifier ou le réutiliser facilement dans un autre projet 54 - Traitement exhaustif de tous les cas d’erreurs possibles Un composant est désigné pour diverses applications donc tous les cas d’utilisation peuvent être réutilisé Le traitement exhaustif de tous les cas possibles est une solution pour éviter les erreurs - Transfert de toutes les erreurs la couche supérieure Il fait élastiquement le traitement des erreurs dans des applications qui réutilisent ce composant - Quelques remarques dans le portlet : - Utiliser toujours des API réécrits URL pour le contenu dans le portlet Utilise renderResponse.encodeURL(renderRequest.getContextPath()+ …) au lieu de renderRequest.getContextPath()+ … - N’ajouter pas le chemin après encodeURL parce qu’il va mener une URL différente encodeURL(…+chemin) au lieu de encodeURL()+chemin - Déclarer que le contenu de portlet est obligatoire response.setContentType("text/html") sinon le portail ne traite pas le portlet - N’utiliser pas de cookie dans le portlet Le cookie peut ne pas marcher On doit trouver d’autres façons pour le remplacer Test Un composant réutilisable demande plus de test que d’autres composants Un composant a seulement besoin de fonctionner dans un projet particulier, mais un composant réutilisable exige de fonctionner dans toutes les situations d’utilisation La possibilité d’erreur est plus grande donc les tests doivent être nombreux Toutes les recommandations au-dessus que nous avons obtenues dans le processus de développement des portlets présentés peuvent être insuffisantes et ce n’est pas juste parce qu’elles sont des jugements subjectifs Elles ont besoin de commentaires des personnes qui les utilisent 55 Conclusion Dans le cadre du stage, nous avons condensé des connaissances élémentaires sur le domaine de réutilisation du logiciel, et présentation des nouvelles technologies qui sont utilisées pour construire des composants et des applications du web Nous avons proposé des recommandations dans le processus de création des composants du web Au travers des recherches sur les réutilisations, nous nous sommes aperçus que les études sur la réutilisation sont encore limitées particulièrement sur la branche du web Il n’y a pas de normes de réutilisation du logiciel, de modèles d’entreprise avec/pour réutilisation et plus spécialement d’organisations de dépôts qui stockent des composants réutilisables La réutilisation n’est pas uniforme dans les entreprises, ce qui rend difficile la réutilisabilité et le partage des composants dans des entreprises différentes particulièrement dans le monde du logiciel open-source Ce rapport se limite proposer quelques recommandations sur la production des composants du web réutilisables dans le contexte de construction de portlets Elles sont le fruit des remarques des producteurs, mais elles ne sont pas des règles, ni des normes que les ingénieurs doivent observer L’étude de la réutilisation est encore ouverte surtout dans certains domaines potentiels comme la construction de règles d’organisation des dépôts de composants réutilisables du logiciel source ouverte, ou la proposition de processus de production de composants ou de perfectionnement des normes API du portlet Tous ces champs sont encore incomplets 56 Références [Johan 1997] Johannes Sametinger, Software engineering with reusable components, Springer, 1997 [Poulin 1993] J S Poulin, J M Caruso, D R Hancock The business case for software reuse Source, IBM Systems Journal archive Volume 32 , Issue (October 1993) Pages: 567 594 [Marcus.] Marcus A Rothenberger, Kevin J Dooley, Uday R Kulkarni Characteristics of Software Reuse Strategies: Taxonomy of Implementations Patterns [Karl 1995] Guttorm Sindre, Reidar Conradi, Even-André Karlsson The REBOOT Approach to Software Reuse Journal of Systems and Software, 1995 [IEEE 1517] Software Reuse Processes IEEE Std 1517 [Poulin 2007].Jeffrey S., Component Reuse in Software Engineering (C.R.u.i.S.E.), Almeida, et al., Recife Center for Advanced Studies and Systems (C.E.S.A.R.), Recife, Brazil, 2007 [Poulin 1994] Poulin, Jeffrey S., “Measuring Software Reusability,” Third International Conference on Software Reuse, Rio de Janeiro, Brazil, 1-4 November 1994, pp 126-138 [Poulin et Caruso 1993] (Poulin & Caruso, 1993) Poulin, J.; Caruso, J A Reuse Metrics and Return on Investment Model In: Proceedings of the 2nd IEEE Workshop on Software Reuse (WSR): Advances in Software Reusability, Lucca, Italy, 1993, pp 152-156 [Devanbu et al., 1996] Devanbu, P T.; Karstu, S.; Melo, W L.; Thomas, W Analytical and Empirical Evaluation of Software Reuse Metrics In: Proceedings of the 18th International Conference on Software Engineering (ICSE), Berlin, Germany, pp 189-199, 1996 [Deepak 2007] Deepak Gothe Understanding the Portlet Container 1.0 Beta Software and Deploying Portlets May 4, 2007 http://java.sun.com/developer/technicalArticles/J2EE/sdk_portletcontainer [Neighbors, 1980] Neighbors, J.M Software Construction Using Components, PhD Thesis, University of California, Irvine Department of Information and Computer Science USA, 1980, p 75 [Kang et al., 1998] Kang, K.C.; Kim, S.; Lee, J.; Kim, K.; Shin, E.; Huh, M FORM: A FeatureOriented Reuse Method with domain-specific reference architectures, In: Annals of Software Engineering Notes, Vol 05, 1998, pp.143-168 [Bodoff] Stephanie Bodoff Web Components http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/WebComponents.html [Bhakti, 2003] Ed Ort and Bhakti Mehta, Java Architecture for XML Binding (JAXB) March 2003 http://java.sun.com/developer/technicalArticles/WebServices/jaxb/ [Fei et Jian 2004] Fei Yui-Ku, Wang Zhi-Jian A Concept Model of Web Components Proceedings of the 2004 IEEE International Conference on Services Computing (SCC’04) [Díaz et Rodríguez, 2004] Oscar Díaz , Juan J Rodríguez Portlets as Web Components: an Introduction Journal of Universal Computer Science, vol 10, no (2004), 454-472 57 [Abdelnur et Hepper, 2003] Slejabdro Abdelnur, Stefan Hepper JavaTM Portlet Specification October 7, 2003 [FanChao, 2006] Meng FanChao A Design Method of Reusable Components Based on Feature Matching IJCSNS International Journal of Computer Science and Network Security, VOL.6 No.5A, May 2006 [Baker, 2006] Mark,Baker Rahim,Lakhoo Application Reuse Through Portal Frameworks Proceedings of the UK e-Science All Hands Conference 2006 website: http://www.allhands.org.uk/2006/ 58 [...]... 2-4 Modèle d’organisation de la réutilisation basé sur le domaine Tous les modèles au dessus ont des avantages et des inconvénients Le modèle simple est adapté aux petites organisations, le modèle complexe aux grandes organisations, il demande beaucoup de ressources humaines et de connaissances sur la réutilisation 2.1.4 Processus de réutilisation des logiciels Les processus de développement dans les... contient des travaux : ajouter des fonctions ou supprimer des fonctions pas nécessaires, ou générer des codes pour réutiliser dans le nouveau système o Intégration On a obtenu des parties réutilisables, qu’il faut intégrer et tester dans le nouveau système Normalement, peu de systèmes sont construits seulement avec des composants réutilisables La plupart des systèmes se composent de deux types de composants. .. render est suivi la méthode processAction dans la chaîne de méthode de cycle de vie du portlet Elles affichent des informations du résultat en l’interface La méthode Destroy est rappelée quand le conteneur ferme le portlet JSR 168 définit aussi les modes du portlet et les états de la fenêtre dans le portail comme la taille de la fenêtre Des modes du portlet sont VIEW, EDIT et HELP VIEW pour afficher des... basé sur des composants et quelques composants peuvent être réutilisés La spécification des composants dans le système C.-à-d, le concepteur doit avoir des connaissances sur les composants et la réutilisation Il détermine quels composants sont nouveaux et quels composants peuvent être réutilisés Il indique aussi les caractéristiques des composants Les concepteurs sont des personnes dans le groupe de. .. type d approche, le programmeur construit des logiciels en se basant sur des composants atomiques Ces composants peuvent s’obtenir dans les bibliothèques Des composants sont parqués avec des fonctions claires Normalement, les composants sont considérés comme des boîtes noires On n’a pas besoin de savoir le contenu et les activités dedans, on n’a besoin que des interfaces de connexion avec d’autres composants. .. délibérer avant de les réutiliser Autre situation, si on utilise deux composants avec des licences différentes, la réutilisation peut être impossible s’il y a des articles contradictoires entre eux 2.1.2 Taxonomie et niveaux de réutilisation Il y a beaucoup de méthodes de classification des réutilisations Nous allons aborder quelques types de taxonomie, ensuite, nous allons présenter les niveaux de réutilisation,... composants Ensuite, on mélange ces candidatures pour former des composants réutilisables REBOOT utilise la technique «cluster» pour trouver des éléments Cette methode consiste à mesurer de la distance entre les données propres d’éléments La distance peut-être calculée en se basant sur des flux de données, des références et des branches de flux de contrôle Analyse Objet Cluster des données Cluster des... réutilisation des produits réutilisés, des composants et des caractéristiques de la réutilisabilité de composant, de composant du web La Section 3 présente des technologies d’expérimentation que nous avons utilisées pour construire les applications : la norme JSR 168, le portail Liferay Des composants réutilisables dans l’environnement du web : Java Server Faces (JSF) et Icefaces La technologie de traitement... composant pour web - Étude du portlet et portail, de la réutilisation du portlet, et de la norme JSR 168 Deuxième étape Dans cette étape, nous nous sommes concentrés sur l’implémentation des portlets Pour ma part, il s’agissait des portlets Survey et LOMRecherche - Installation du portail Liferay pour exécuter des portlets Compiler l’environnement étendu de Liferay - Étude de l’installation et de la réutilisation... (le code pour réutiliser par autres) * le coût de nouveau code Alors, dans cette partie, nous ont présenté des facteurs pour évaluer la réutilisation de tous les deux côté : le producteur et le consommateur du logiciel réutilisable Ces valeurs dépendent des informations détail de chaque projet, le temps de réutilisation et aussi les organisations différentes 2.2 Composants et réutilisabilité 2.2.1 Composants

Ngày đăng: 27/10/2016, 23:01

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan