5 resultados para goal-oriented requirements engineering

em Université de Montréal, Canada


Relevância:

30.00% 30.00%

Publicador:

Resumo:

Lors de ces dix dernières années, le coût de la maintenance des systèmes orientés objets s'est accru jusqu' à compter pour plus de 70% du coût total des systèmes. Cette situation est due à plusieurs facteurs, parmi lesquels les plus importants sont: l'imprécision des spécifications des utilisateurs, l'environnement d'exécution changeant rapidement et la mauvaise qualité interne des systèmes. Parmi tous ces facteurs, le seul sur lequel nous ayons un réel contrôle est la qualité interne des systèmes. De nombreux modèles de qualité ont été proposés dans la littérature pour contribuer à contrôler la qualité. Cependant, la plupart de ces modèles utilisent des métriques de classes (nombre de méthodes d'une classe par exemple) ou des métriques de relations entre classes (couplage entre deux classes par exemple) pour mesurer les attributs internes des systèmes. Pourtant, la qualité des systèmes par objets ne dépend pas uniquement de la structure de leurs classes et que mesurent les métriques, mais aussi de la façon dont celles-ci sont organisées, c'est-à-dire de leur conception, qui se manifeste généralement à travers les patrons de conception et les anti-patrons. Dans cette thèse nous proposons la méthode DEQUALITE, qui permet de construire systématiquement des modèles de qualité prenant en compte non seulement les attributs internes des systèmes (grâce aux métriques), mais aussi leur conception (grâce aux patrons de conception et anti-patrons). Cette méthode utilise une approche par apprentissage basée sur les réseaux bayésiens et s'appuie sur les résultats d'une série d'expériences portant sur l'évaluation de l'impact des patrons de conception et des anti-patrons sur la qualité des systèmes. Ces expériences réalisées sur 9 grands systèmes libres orientés objet nous permettent de formuler les conclusions suivantes: • Contre l'intuition, les patrons de conception n'améliorent pas toujours la qualité des systèmes; les implantations très couplées de patrons de conception par exemple affectent la structure des classes et ont un impact négatif sur leur propension aux changements et aux fautes. • Les classes participantes dans des anti-atrons sont beaucoup plus susceptibles de changer et d'être impliquées dans des corrections de fautes que les autres classes d'un système. • Un pourcentage non négligeable de classes sont impliquées simultanément dans des patrons de conception et dans des anti-patrons. Les patrons de conception ont un effet positif en ce sens qu'ils atténuent les anti-patrons. Nous appliquons et validons notre méthode sur trois systèmes libres orientés objet afin de démontrer l'apport de la conception des systèmes dans l'évaluation de la qualité.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Un système, décrit avec un grand nombre d'éléments fortement interdépendants, est complexe, difficile à comprendre et à maintenir. Ainsi, une application orientée objet est souvent complexe, car elle contient des centaines de classes avec de nombreuses dépendances plus ou moins explicites. Une même application, utilisant le paradigme composant, contiendrait un plus petit nombre d'éléments, faiblement couplés entre eux et avec des interdépendances clairement définies. Ceci est dû au fait que le paradigme composant fournit une bonne représentation de haut niveau des systèmes complexes. Ainsi, ce paradigme peut être utilisé comme "espace de projection" des systèmes orientés objets. Une telle projection peut faciliter l'étape de compréhension d'un système, un pré-requis nécessaire avant toute activité de maintenance et/ou d'évolution. De plus, il est possible d'utiliser cette représentation, comme un modèle pour effectuer une restructuration complète d'une application orientée objets opérationnelle vers une application équivalente à base de composants tout aussi opérationnelle. Ainsi, La nouvelle application bénéficiant ainsi, de toutes les bonnes propriétés associées au paradigme composants. L'objectif de ma thèse est de proposer une méthode semi-automatique pour identifier une architecture à base de composants dans une application orientée objets. Cette architecture doit, non seulement aider à la compréhension de l'application originale, mais aussi simplifier la projection de cette dernière dans un modèle concret de composant. L'identification d'une architecture à base de composants est réalisée en trois grandes étapes: i) obtention des données nécessaires au processus d'identification. Elles correspondent aux dépendances entre les classes et sont obtenues avec une analyse dynamique de l'application cible. ii) identification des composants. Trois méthodes ont été explorées. La première utilise un treillis de Galois, la seconde deux méta-heuristiques et la dernière une méta-heuristique multi-objective. iii) identification de l'architecture à base de composants de l'application cible. Cela est fait en identifiant les interfaces requises et fournis pour chaque composant. Afin de valider ce processus d'identification, ainsi que les différents choix faits durant son développement, j'ai réalisé différentes études de cas. Enfin, je montre la faisabilité de la projection de l'architecture à base de composants identifiée vers un modèle concret de composants.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Un objectif principal du génie logiciel est de pouvoir produire des logiciels complexes, de grande taille et fiables en un temps raisonnable. La technologie orientée objet (OO) a fourni de bons concepts et des techniques de modélisation et de programmation qui ont permis de développer des applications complexes tant dans le monde académique que dans le monde industriel. Cette expérience a cependant permis de découvrir les faiblesses du paradigme objet (par exemples, la dispersion de code et le problème de traçabilité). La programmation orientée aspect (OA) apporte une solution simple aux limitations de la programmation OO, telle que le problème des préoccupations transversales. Ces préoccupations transversales se traduisent par la dispersion du même code dans plusieurs modules du système ou l’emmêlement de plusieurs morceaux de code dans un même module. Cette nouvelle méthode de programmer permet d’implémenter chaque problématique indépendamment des autres, puis de les assembler selon des règles bien définies. La programmation OA promet donc une meilleure productivité, une meilleure réutilisation du code et une meilleure adaptation du code aux changements. Très vite, cette nouvelle façon de faire s’est vue s’étendre sur tout le processus de développement de logiciel en ayant pour but de préserver la modularité et la traçabilité, qui sont deux propriétés importantes des logiciels de bonne qualité. Cependant, la technologie OA présente de nombreux défis. Le raisonnement, la spécification, et la vérification des programmes OA présentent des difficultés d’autant plus que ces programmes évoluent dans le temps. Par conséquent, le raisonnement modulaire de ces programmes est requis sinon ils nécessiteraient d’être réexaminés au complet chaque fois qu’un composant est changé ou ajouté. Il est cependant bien connu dans la littérature que le raisonnement modulaire sur les programmes OA est difficile vu que les aspects appliqués changent souvent le comportement de leurs composantes de base [47]. Ces mêmes difficultés sont présentes au niveau des phases de spécification et de vérification du processus de développement des logiciels. Au meilleur de nos connaissances, la spécification modulaire et la vérification modulaire sont faiblement couvertes et constituent un champ de recherche très intéressant. De même, les interactions entre aspects est un sérieux problème dans la communauté des aspects. Pour faire face à ces problèmes, nous avons choisi d’utiliser la théorie des catégories et les techniques des spécifications algébriques. Pour apporter une solution aux problèmes ci-dessus cités, nous avons utilisé les travaux de Wiels [110] et d’autres contributions telles que celles décrites dans le livre [25]. Nous supposons que le système en développement est déjà décomposé en aspects et classes. La première contribution de notre thèse est l’extension des techniques des spécifications algébriques à la notion d’aspect. Deuxièmement, nous avons défini une logique, LA , qui est utilisée dans le corps des spécifications pour décrire le comportement de ces composantes. La troisième contribution consiste en la définition de l’opérateur de tissage qui correspond à la relation d’interconnexion entre les modules d’aspect et les modules de classe. La quatrième contribution concerne le développement d’un mécanisme de prévention qui permet de prévenir les interactions indésirables dans les systèmes orientés aspect.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

La production biologique d'hydrogène (H2) représente une technologie possible pour la production à grande échelle durable de H2 nécessaire pour l'économie future de l'hydrogène. Cependant, l'obstacle majeur à l'élaboration d'un processus pratique a été la faiblesse des rendements qui sont obtenus, généralement autour de 25%, bien en sous des rendements pouvant être atteints pour la production de biocarburants à partir d'autres processus. L'objectif de cette thèse était de tenter d'améliorer la production d'H2 par la manipulation physiologique et le génie métabolique. Une hypothèse qui a été étudiée était que la production d'H2 pourrait être améliorée et rendue plus économique en utilisant un procédé de fermentation microaérobie sombre car cela pourrait fournir la puissance supplémentaire nécessaire pour une conversion plus complète du substrat et donc une production plus grande d'H2 sans l'aide de l'énergie lumineuse. Les concentrations optimales d’O2 pour la production de H2 microaérobie ont été examinées ainsi que l'impact des sources de carbone et d'azote sur le processus. La recherche présentée ici a démontré la capacité de Rhodobacter capsulatus JP91 hup- (un mutant déficient d’absorption-hydrogénase) de produire de l'H2 sous condition microaérobie sombre avec une limitation dans des quantités d’O2 et d'azote fixé. D'autres travaux devraient être entrepris pour augmenter les rendements d'H2 en utilisant cette technologie. De plus, un processus de photofermentation a été créé pour améliorer le rendement d’H2 à partir du glucose à l'aide de R. capsulatus JP91 hup- soit en mode non renouvelé (batch) et / ou en conditions de culture en continu. Certains défis techniques ont été surmontés en mettant en place des conditions adéquates de fonctionnement pour un rendement accru d'H2. Un rendement maximal de 3,3 mols de H2/ mol de glucose a été trouvé pour les cultures en batch tandis que pour les cultures en continu, il était de 10,3 mols H2/ mol de glucose, beaucoup plus élevé que celui rapporté antérieurement et proche de la valeur maximale théorique de 12 mols H2/ mol de glucose. Dans les cultures en batch l'efficacité maximale de conversion d’énergie lumineuse était de 0,7% alors qu'elle était de 1,34% dans les cultures en continu avec un rendement de conversion maximum de la valeur de chauffage du glucose de 91,14%. Diverses autres approches pour l'augmentation des rendements des processus de photofermentation sont proposées. Les résultats globaux indiquent qu'un processus photofermentatif efficace de production d'H2 à partir du glucose en une seule étape avec des cultures en continu dans des photobioréacteurs pourrait être développé ce qui serait un processus beaucoup plus prometteur que les processus en deux étapes ou avec les co-cultures étudiés antérieurément. En outre, l'expression hétérologue d’hydrogenase a été utilisée comme une stratégie d'ingénierie métabolique afin d'améliorer la production d'H2 par fermentation. La capacité d'exprimer une hydrogénase d'une espèce avec des gènes de maturation d'une autre espèce a été examinée. Une stratégie a démontré que la protéine HydA orpheline de R. rubrum est fonctionnelle et active lorsque co-exprimée chez Escherichia coli avec HydE, HydF et HydG provenant d'organisme différent. La co-expression des gènes [FeFe]-hydrogénase structurels et de maturation dans des micro-organismes qui n'ont pas une [FeFe]-hydrogénase indigène peut entraîner le succès dans l'assemblage et la biosynthèse d'hydrogénase active. Toutefois, d'autres facteurs peuvent être nécessaires pour obtenir des rendements considérablement augmentés en protéines ainsi que l'activité spécifique des hydrogénases recombinantes. Une autre stratégie a consisté à surexprimer une [FeFe]-hydrogénase très active dans une souche hôte de E. coli. L'expression d'une hydrogénase qui peut interagir directement avec le NADPH est souhaitable car cela, plutôt que de la ferrédoxine réduite, est naturellement produit par le métabolisme. Toutefois, la maturation de ce type d'hydrogénase chez E. coli n'a pas été rapportée auparavant. L'opéron hnd (hndA, B, C, D) de Desulfovibrio fructosovorans code pour une [FeFe]-hydrogénase NADP-dépendante, a été exprimé dans différentes souches d’E. coli avec les gènes de maturation hydE, hydF et hydG de Clostridium acetobutylicum. L'activité de l'hydrogénase a été détectée in vitro, donc une NADP-dépendante [FeFe]-hydrogénase multimérique active a été exprimée avec succès chez E. coli pour la première fois. Les recherches futures pourraient conduire à l'expression de cette enzyme chez les souches de E. coli qui produisent plus de NADPH, ouvrant la voie à une augmentation des rendements d'hydrogène via la voie des pentoses phosphates.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Les logiciels sont en constante évolution, nécessitant une maintenance et un développement continus. Ils subissent des changements tout au long de leur vie, que ce soit pendant l'ajout de nouvelles fonctionnalités ou la correction de bogues. Lorsque les logiciels évoluent, leurs architectures ont tendance à se dégrader et deviennent moins adaptables aux nouvelles spécifications des utilisateurs. En effet, les architectures de ces logiciels deviennent plus complexes et plus difficiles à maintenir à cause des nombreuses dépendances entre les artefacts. Par conséquent, les développeurs doivent comprendre les dépendances entre les artefacts des logiciels pour prendre des mesures proactives qui facilitent les futurs changements et ralentissent la dégradation des architectures des logiciels. D'une part, le maintien d'un logiciel sans la compréhension des les dépendances entre ses artefacts peut conduire à l'introduction de défauts. D'autre part, lorsque les développeurs manquent de connaissances sur l'impact de leurs activités de maintenance, ils peuvent introduire des défauts de conception, qui ont un impact négatif sur l'évolution du logiciel. Ainsi, les développeurs ont besoin de mécanismes pour comprendre comment le changement d'un artefact impacte le reste du logiciel. Dans cette thèse, nous proposons trois contributions principales : La spécification de deux nouveaux patrons de changement et leurs utilisations pour fournir aux développeurs des informations utiles concernant les dépendances de co-changement. La spécification de la relation entre les patrons d'évolutions des artefacts et les fautes. La découverte de la relation entre les dépendances des anti-patrons et la prédisposition des différentes composantes d'un logiciel aux fautes.