Spelling suggestions: "subject:"[een] DESIGN PROBLEMS"" "subject:"[enn] DESIGN PROBLEMS""
11 |
Développement logiciel par transformation de modèlesEl boussaidi, Ghizlane 07 1900 (has links)
La recherche en génie logiciel a depuis longtemps tenté de mieux comprendre le processus de développement logiciel, minimalement, pour en reproduire les bonnes pratiques, et idéalement, pour pouvoir le mécaniser. On peut identifier deux approches majeures pour caractériser le processus. La première approche, dite transformationnelle, perçoit le processus comme une séquence de transformations préservant certaines propriétés des données à l’entrée. Cette idée a été récemment reprise par l’architecture dirigée par les modèles de l’OMG. La deuxième approche consiste à répertorier et à codifier des solutions éprouvées à des problèmes récurrents. Les recherches sur les styles architecturaux, les patrons de conception, ou les cadres d’applications s’inscrivent dans cette approche. Notre travail de recherche reconnaît la complémentarité des deux approches, notamment pour l’étape de conception: dans le cadre du développement dirigé par les modèles, nous percevons l’étape de conception comme l’application de patrons de solutions aux modèles reçus en entrée.
Il est coutume de définir l’étape de conception en termes de conception architecturale, et conception détaillée. La conception architecturale se préoccupe d’organiser un logiciel en composants répondant à un ensemble d’exigences non-fonctionnelles, alors que la conception détaillée se préoccupe, en quelque sorte, du contenu de ces composants. La conception architecturale s’appuie sur des styles architecturaux qui sont des principes d’organisation permettant d’optimiser certaines qualités, alors que la conception détaillée s’appuie sur des patrons de conception pour attribuer les responsabilités aux classes. Les styles architecturaux et les patrons de conception sont des artefacts qui codifient des solutions éprouvées à des problèmes récurrents de conception. Alors que ces artefacts sont bien documentés, la décision de les appliquer reste essentiellement manuelle. De plus, les outils proposés n’offrent pas un support adéquat pour les appliquer à des modèles existants.
Dans cette thèse, nous nous attaquons à la conception détaillée, et plus particulièrement, à la transformation de modèles par application de patrons de conception, en partie parce que les patrons de conception sont moins complexes, et en partie parce que l’implémentation des styles architecturaux passe souvent par les patrons de conception. Ainsi, nous proposons une approche pour représenter et appliquer les patrons de conception. Notre approche se base sur la représentation explicite des problèmes résolus par ces patrons. En effet, la représentation explicite du problème résolu par un patron permet : (1) de mieux comprendre le patron, (2) de reconnaître l’opportunité d’appliquer le patron en détectant une instance de la représentation du problème dans les modèles du système considéré, et (3) d’automatiser l’application du patron en la représentant, de façon déclarative, par une transformation d’une instance du problème en une instance de la solution.
Pour vérifier et valider notre approche, nous l’avons utilisée pour représenter et appliquer différents patrons de conception et nous avons effectué des tests pratiques sur des modèles générés à partir de logiciels libres. / Software engineering researchers have long tried to understand the software process development to mechanize it or at least to codify its good practices. We identify two major approaches to characterize the process. The first approach—known as transformational—sees the process as a sequence of property-preserving transformations. This idea was recently adopted by the OMG’s model-driven architecture (MDA). The second approach consists in identifying and codifying proven solutions to recurring problems. Research on architectural styles, frameworks and design patterns are part of this approach. Our research recognizes the complementarity of these two approaches, in particular in the design step. Indeed within the model-driven development context, we view software design as the process of applying codified solution patterns to input models.
Software design is typically defined in terms of architectural design and detailed design. Architectural design aims at organizing the software in modules or components that meet a set of non-functional requirements while detailed design is—in some way—concerned by the contents of the identified components. Architectural design relies on architectural styles which are principles of organization to optimize certain quality requirements, whereas detailed design relies on design patterns to assign responsibilities to classes. Both architectural styles and design patterns are design artifacts that encode proven solutions to recurring design problems. While these design artifacts are documented, the decision to apply them remains essentially manual. Besides, once a decision has been made to use a design artifact, there is no adequate support to apply it to existing models.
As design patterns present an ‘‘easier’’ problem to solve, and because architectural styles implementation relies on design patterns, our strategy for addressing these issues was to try to solve the problem for design patterns first, and then tackle architectural styles. Hence, in this thesis, we propose an approach for representing and applying design patterns. Our approach is based on an explicit representation of the problems solved by design patterns. Indeed, and explicit representation of the problem solved by a pattern enables to: 1) better understand the pattern, 2) recognize the opportunity of applying the pattern by matching the representation of the problem against the models of the considered system, and 3) specify declaratively the application of the pattern as a transformation of an instance of the problem into an instance of the solution.
To verify and validate the proposed approach, we used it to represent and apply several design patterns. We also conducted practical tests on models generated from open source systems.
|
12 |
[en] IDENTIFICATION AND REFACTORING OF DESIGN PROBLEMS IN SOFTWARE SYSTEMS / [pt] IDENTIFICAÇÃO E REFATORAÇÃO DE PROBLEMAS DE PROJETO EM SISTEMAS DE SOFTWAREWILLIAN NALEPA OIZUMI 27 October 2022 (has links)
[pt] Sistemas impactados por Problemas de Projeto (PPs) podem se tornar
difíceis de manter e evoluir. A identificação de PPs pode ocorrer por
meio de múltiplos sintomas, tais como code smells. Após tal identificação,
pode-se remover os PPs por meio de refatorações. No entanto, decidir onde
e como refatorar é uma tarefa desafiadora. Assim, técnicas de recomendação
de refatoração têm sido propostas. Apesar disso, ainda há pouco consenso
sobre quais requisitos devem ser atendidos por elas. Nesta tese, estamos
propondo quatro requisitos empiricamente identificados que tais técnicas
devem seguir. Primeiro, cada PP geralmente está relacionado a vários tipos
de sintomas no código-fonte e eles devem ser considerados juntos para gerar
recomendações. Além disso, uma técnica de recomendação deve permitir a
seleção de contextos específicos para refatoração. Quarto, também deve-se
considerar as funcionalidades modificadas para criar recomendações úteis.
Finalmente, os desenvolvedores nem sempre conduzem as refatorações mais
eficazes na prática, muitas vezes inconscientemente, resultando na remoção
incompleta de PPs. Assim, eles precisam de assistência para remover
os PPs. Existem apenas técnicas que atendem parcialmente aos requisitos
mencionados. Sendo assim, nós propomos a técnica OrganicRef. OrganicRef
destina-se a ajudar os desenvolvedores na remoção de PPs em seus contextos
de interesse. OrganicRef encontra as funcionalidades dos elementos
de código usando um algoritmo de modelagem de tópicos. Em seguida, ele
coleta múltiplos tipos de sintomas que afetam os elementos do código. Para
recomendar refatorações, OrganicRef combina heurísticas baseadas em regras
e baseadas em funcionalidades. OrganicRef também aplica otimização
baseada em busca para derivar várias recomendações possíveis. Para avaliar
o OrganicRef, realizamos um estudo experimental com seis projetos de
software. Os resultados mostraram que as recomendações do OrganicRef
melhoram significativamente a qualidade dos elementos refatorados. / [en] Software projects impacted by Design Problems (DPs) may become difficult to maintain and evolve. The identification of DPs may occur through symptoms such as code smells. After such identification, developers can remove the DPs through refactorings. However, deciding where and how to refactor is a challenging task. Thus, several refactoring recommendation techniques have been proposed. Nevertheless, there is still little consensus on which requirements must be satisfied by them. In this thesis, we are proposing four empirically identified requirements that any DP removal technique should follow. First, each single DP is usually related with multiple types of symptoms in the source code and they should be considered altogether for generating recommendations. Second, a recommendation technique should
allow the selection of possible candidate contexts for refactoring. Fourth, the technique should consider the features of undergoing changes to create useful recommendations. Finally, developers do not always conduct the most effective refactorings in practice, quite often unconsciously, resulting in the incomplete removal of DPs. Thus, they need assistance to remove DPs. There are techniques partially fulfilling the aforementioned requirements, though none satisfactorily meets them all. Thus, we propose the
OrganicRef technique. OrganicRef is intended to help developers in removing DPs in their contexts of interest. OrganicRef finds the contexts by capturing the features affecting relevant code elements using a topic modeling algorithm. Then, it collects multiple symptom types affecting the code elements. To recommend effective refactorings, OrganicRef combines rulebased and feature-driven heuristics. It also uses search-based optimization to derive multiple possible recommendations. To evaluate OrganicRef, we
conducted an empirical study with six open source projects. Results showed that OrganicRef recommendations significantly improves the design of refactored elements.
|
13 |
Design Of Innovative Mechanisms For Contemporary Game Theoretic Problems In Electronic CommerceGarg, Dinesh 06 1900 (has links)
Game theory and mechanism design have emerged as an important tool to model, analyze,and solve decentralized design problems involving multiple agents that interact strategically in a rational and intelligent way. Some examples of these design problems include: auctions and markets in electronic commerce; network economics; dynamic pricing; routing protocols in wireless networks; resource allocation in computational grids; algorithms for selfish agents;etc.
The motivation for this doctoral work springs from the high level of current interest indesigning innovative mechanisms for solving emerging game theoretic problems in the area of electronic commerce. In this thesis, we focus on three such problems and advance the current art in mechanism design while developing new, innovative mechanisms to solve the problems.
The first problem we explore is the highly strategic problem of forming a high value E-business supply chain by choosing the best mix of supply chain partners. In our research, we formulate the supply chain formation problem as a mechanism design problem in a generic wayand show that the well known VCG (Vickrey-Clarke-Groves) mechanisms provide an apt frame-work for solving this problem. We provide a compelling example of a three stage
automotive distribution network to illustrate the power and e±cacy of the proposed methodology.
The second problem we model and solve is that of designing a revenue maximizing sponsored search auction. This is a problem that is faced by every Internet search engine, such as Google,MSN, and Yahoo!, whenever it receives a search query. In our research, we take a comprehensivelook at existing auction mechanisms for this problem. Our work leads to an innovative new auction mechanism, which we call OPT (optimal mechanism), that exhibits a
superior level ofperformance. The proposed mechanism extends, in a non-trivial way, the well known Myersonoptimal auction to the specific setting of sponsored search auctions. The proposed mechanism maximizes the revenue to the search engine and also satisfies two crucial properties,
Bayesian incentive compatibility and interim individual rationality.
The third contribution is in respect of Stackelberg problems, which are game theoretic problems that involve hierarchical and sequential decision making. By focusing attention on an important subclass of these problems, namely the Single-Leader-Rest-Followers (SLRF) problems, we extend all relevant aspects of classical mechanism design theory to the case of SLRF problems. We derive many important results in respect of procurement auctions with reserve prices using the developed theory.
The research carried out as part of this doctoral work, we believe, advances the current art in mechanism design while developing innovative mechanisms to solve those problems.
|
Page generated in 0.0268 seconds