• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 20
  • 7
  • 3
  • 2
  • 1
  • 1
  • Tagged with
  • 39
  • 24
  • 19
  • 13
  • 10
  • 10
  • 10
  • 9
  • 8
  • 8
  • 8
  • 6
  • 6
  • 5
  • 5
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
31

Anomalias na camada de apresentação de aplicativos android / Anomalies in the presentation layer of android applications

Suelen Goularte Carvalho 19 January 2018 (has links)
Bons códigos importam, mas como saber quando a qualidade está baixa? Maus cheiros de código, ou anomalias, auxiliam desenvolvedores na identificação de trechos de código problemáticos, porém a maioria dos maus cheiros catalogados são voltados para práticas e tecnologias tradicionais, criadas entre as décadas de 70 a 90, como orientação a objetos e Java. Ainda há dúvidas sobre maus cheiros em tecnologias que surgiram na última década, como o Android, principal plataforma móvel em 2017 com mais de 86% de participação de mercado. Alguns pesquisadores derivaram maus cheiros Android relacionados à eficiência e à usabilidade. Outros notaram que maus cheiros específicos ao Android são muito mais frequentes nos aplicativos do que maus cheiros tradicionais. Diversas pesquisas concluíram que os componentes Android mais afetados por maus cheiros tradicionais são Activities e Adapters, que pertencem à camada de apresentação. Notou-se também que em alguns aplicativos, códigos da camada de apresentação representam a maior parte do código do projeto. Vale ressaltar que a camada de apresentação Android também é composta por arquivos XML, chamados de recursos, usados na construção da interface do usuário (User Interface - UI), porém nenhuma das pesquisas citadas os considerou em suas análises. Nesta dissertação, investigamos a existência de maus cheiros relacionados à camada de apresentação Android considerando inclusive os recursos. Fizemos isso através de dois questionários e um experimento de código online, totalizando a participação de 316 desenvolvedores. Nossos resultados mostram a existência de uma percepção comum entre desenvolvedores sobre más práticas no desenvolvimento da camada de apresentação Android. Nossas principais contribuições são um catálogo com 20 maus cheiros da camada de apresentação Android e uma análise estatística da percepção de desenvolvedores sobre os 7 principais maus cheiros catalogados. Nossas contribuições servirão a pesquisadores como ponto de partida para a definição de heurísticas e implementação de ferramentas automatizadas e a desenvolvedores como auxílio na identificação de códigos problemáticos, ainda que de forma manual. / We are aware that good code matters, but how to know when quality is low? Code smells, or anomalies, help us identify problematic code snippets, but most of the code smells cataloged are based on traditional practices and technologies, created from the 70s through the 90s, such as object oriented programming and Java. There are still doubts about code smells in technologies that have emerged in the last decade, such as Android, the main mobile platform in 2017 with more than 86% market share. Some researchers have defined code smells related to Android efficiency and usability. Other research concludes that the components most affected by traditional code smells are related to the front-end components, such as Activities and Adapters. Also noticed in some applications, front-end code represent the larger part of the projects code. It is worth mentioning that the Android presentation layer is also composed of XML files, called resources, used to build the user interface (UI), but none of the cited research considered them in their analyzes. In this dissertation, we investigate the existence of code smells related to the Android front-end, including application resources. We performed two online surveys and one online code experiment, summing 316 developers. Our results show that there is a common perception among Android developers about bad practices on Android front-end. Our main contributions are a catalog of 20 code smells related to the Android front-end and a statistical analysis of the perceptions of developers about the 7 main code smells cataloged. Our contributions will provide to researchers a starting point for the definition of heuristics and implementation of automated tools and to developers as an aid in identifying problematic codes.
32

Análise de correlação entre métricas de evolução e qualidade de design de software. / Correlation analysis between evolution metrics and software design quality.

ASSIS, Pablo Oliveira Antonino de. 16 August 2018 (has links)
Submitted by Johnny Rodrigues (johnnyrodrigues@ufcg.edu.br) on 2018-08-16T14:17:44Z No. of bitstreams: 1 PABLO OLIVEIRA ANTONINO DE ASSIS - DISSERTAÇÃO PPGCC 2009..pdf: 1244760 bytes, checksum: 30e75bebed5cedb9f7f2d0eb80097c6f (MD5) / Made available in DSpace on 2018-08-16T14:17:44Z (GMT). No. of bitstreams: 1 PABLO OLIVEIRA ANTONINO DE ASSIS - DISSERTAÇÃO PPGCC 2009..pdf: 1244760 bytes, checksum: 30e75bebed5cedb9f7f2d0eb80097c6f (MD5) Previous issue date: 2009-03-13 / Capes / Nós investigamos a evolução de oito softwares open source e cinco proprietários, a fim de verificar a existência de correlações estatísticas entre complexidade e medidas de qualidade em termos de bad smells e bugs. Em todos os projetos, encontramos fortes correlações estatísticas entre medidas de complexidade (WMC) e qualidade. Todos os softwares proprietários e cinco open source apresentaram índices de correlação muito forte (r > 0.9). Surpreendentemente, em três dos softwares open source, a correlação encontrada foi forte, porém negativa. Isto é atribuído ao fato de que, nestes projetos, os bad smells foram removidos intencionalmente. Este resultado sugere que, apesar da correlação, não existe necessariamente relação de causa-efeito entre métricas de complexidade e de qualidade. Dessa maneira, concluímos que apenas eliminar bad smells não é uma boa estratégia a ser seguida se o objetivo for reduzir a complexidade do design e melhorar a qualidade nos termos associados à redução da complexidade. / We have studied the evolution of eight open source projects and five proprietary ones, looking for statistical correlations between complexity and quality measures in terms of bad smells and bugs detected. In all projects, we found strong statistical correlations between complexity (WMC) and quality measures. In all the legacies softwares and five of open sources, the correlation can be considered very strong (r > 0.9). Surprisingly, in three of the open source, the correlation is strong, but negative. This has been attributed to the fact that, in these projects, designers have intentionally controlled the quality measures under study, by applying refactoring strategies. These results suggest that, despite the correlation, there is no necessary cause-effect relation between complexity and quality measures. We conclude that just eliminate bad smells is not a good strategy to be followed if the desired objective is to reduce software design complexity. Then also does not improve software quality in terms associated to software complexity reduction.
33

Hvad dunst ur din aska : Om 1700-talets lukter i Fredmans epistlar

Svenningsson, Susann January 2020 (has links)
This study examines how smells were perceived in 18th century Stockholm by analyzing odor references in the poetry collection Fredman’s Epistles (1790) (Sw. Fredmans epistlar) by Carl Michael Bellman (1740–1795). Using a specific form of contextualizing, the purpose of the study is to show how the meaning of smells in 18th century Stockholm appears when the smelling objects in the epistles are put in a relevant context. By extension, the investigation will show how the smell sensations in the epistles reveal attitudes towards life, death and certain social and cultural phenomena. I argue that the inhabitants of Stockholm in the 18th century, depending on their social and cultural belonging, shared many of the attitudes towards places, people and phenomena that are reproduced in the epistles. I also argue that 18th century Stockholm was not as dominated by foul smells as has been claimed by previous research. This study sheds new light on how different smells were perceived, described and understood in 18th century Stockholm.
34

Developing a Framework to measure Enterprise Architecture Debts / Utveckling av ramverk för mätning av företagsarkitekturskuld

Saha, Parumita January 2020 (has links)
Technical debt is used to describe the changing or to maintain a system due to expedient shortcuts done during its development. In the context of the software development industry, technical debt is regarded as a critical issue in terms of the negative consequences such as increased software development cost, low product quality, decreased maintainability, and slowed progress to the long-term success of developing software. Code Smells are well informed in the domain of Technical Debt. They indicate to the common bad practices that may impair the future quality of the software system. By identifying those Code Smells, it is possible to give an improved solution or make the developers aware of a possible deficiency. I explore the premise that technical debt within the enterprise should be viewed as a tool. Extensible and Appropriate tools can check the Code Smells automatically and improve the quality assessment accordingly. However, in the field of Enterprise Architecture(EA), common bad habits in EA can be called EA Smells. EA Smells itself can be a component of EA Debt. Enterprise Architecture Debt can be defined as such a metric that depicts the deviation of the currently present state of an enterprise from a hypothetical ideal state.In this thesis, we introduce SmellCull as an extensible tool for capturing, tracking and managing Enterprise Architecture debt in the EA field. SmellCull allows measuring different kinds of Enterprise Architecture debts for EA Model. SmellCull is extensible since different types of Model can be integrated as input into the tool environment and provides developers with a lightweight tool to capture EA debt and make it easier to understand them indicating corresponding parts in the implementation. The tool is used to create propagation paths for the EA debt. This allows for an up-to-date and accurate presentation of EA debt to be upheld, which enables developer conducted implementation-level micromanagement as well as higher-level debt management.Since the tool is sophisticated enough, automated detection supports the design process and ongoing change of EAS(Enterprise Architecture System). This includes the strategic development of EAS with the corresponding roadmaps, as well as design assurance and performance monitoring to assess the quality of data in EA repositories and the compliance with certain standards defined by EA Smells. Due to the limited scope of master thesis, the tool will identify a few number of EA debt. At the end, some future work suggestions in the context of identifying more salable Enterprise Architecture Debts with this tool are given. / Teknisk skuld dvs dålig eller kortsiktig programutveckling som belastning på IT-system måste förr eller senare återbetalas. I industrin betraktas teknisk skuld som en kritisk fråga när det gäller de negativa konsekvenserna som ökad mjukvaruutvecklingskostnad, låg produktkvalitet, minska underhåll och långsammare framsteg till den långsiktiga framgången med att utveckla programvara. Dålig kodkvalitet “code smell” är vanligt förekommande teknisk skuld. Det uppkommer i vanliga dåliga metoder “anti-patterns” som försämrar programvarans framtida kvalitet. För att kunna identifiera bristande kodkvalitet är det möjligt att skapa en förbättrad lösning eller göra utvecklare medvetna om de möjliga bristerna. Jag undersöker förutsättningarna att en sådan teknisk skuld i företag bör undersökas med en programvara. Utbyggbara och ändamålsenliga programvaror kan analysera källkod och hitta var kvaliteten behöver förbättras. Företagens tekniska skuld kan definieras som ett mått som visar avvikelsen från ett hypotetiskt idealtillstånd genom att jämföra det aktuella tillståndet med praktiska rekommendationer “best practice”. I detta examensarbete introducerar jag SmellCull som ett utbyggbart verktyg för att hitta, spåra och hantera bristfällig kodkvalitet inom företagsarkitektur (EA). SmellCull tillåter mätning av olika typer av tekiska skulder för EA modellen. SmellCull är utbyggbart genom att olika typer av datamodeller kan integreras som indata i miljön, och det ger utveck-lare ett lätt verktyg för att hantera teknisk skuld i programmeringsprojekt och hjälpa projektdeltagarna i programmeringsprojekt att förstå vad orsakar brister i kodkvalitet.  Eftersom verktyget är tillräckligt sofistikerat finns det automatiserad spårning, designprocess och kontinuerlig förbättring av EAS (Enterprise Architecture System). Detta inkluderar strategisk utveckling av EAS med motsvarande färdplan, samt konstruktionssäkerhet och prestandäovervakning för att bedöma kvaliteten på data i EA förvar och efterlevnaden av vissa standarder som definieras av EA code smell detection. På grund av den begränsade omfattningen av examensarbetet kommer verktyget att  identifiera några få EA skuld. I slutet, några framtida arbetsförslag i samband med identifiering mer säljbara företagsarkitekturskulder med detta verktyg ges.
35

Konzeption, Implementation und quantitative Evaluation einer statischen Clean-Code-Bewertungsapplikation

Eichenseer, Maurice 14 March 2024 (has links)
Refactoring wird angewandt, wenn eine Software-Inspektion Defekte im Programmcode feststellt. Code-Smells sind Beispiele solcher Defekte im Programmcode. Clean-Code ist ein neuerer Ansatz, der genauso wie das Code-Smell-Konzept festlegt, wann Defekte im Programmcode vorliegen. Für Code-Smells gibt es bereits zahlreiche Code-Analyse-Tools, die die automatische Erkennung solcher Defekte ermöglicht. Die vorliegende Arbeit implementiert ein Clean-Code-Analyse-Tool für Programmcode mithilfe von statischer Code-Analyse, das Refactoring-Hinweise ausgibt. Für diesen Zweck werden ein Lexer und ein Parser zur syntaktischen Analyse eines Subsets der Programmiersprache C++ implementiert. Die Evaluation durch quantitative Datenanalyse zeigt, wie nützlich die automatische Erkennung von Clean-Code mithilfe eines statischen Code-Analyse-Tools bei der Erstellung von Programmcode mit höherer Lesbarkeit für Entwicklerinnen und Entwickler ist.:Inhaltsverzeichnis 6 Abbildungsverzeichnis 9 Tabellenverzeichnis 10 Akronyme 13 1. Einleitung 14 2. Theoretische Grundlagen 17 2.1. Wichtige Begriffe und Definitionen 17 2.1.1. Software-Inspektion 17 2.1.2. Fagan-Inspektion 18 2.1.3. Checklistenbasiertes Code-Review 19 2.1.4. Statische vs. dynamische Code-Analyse-Tools 21 2.1.5. Refactoring 24 2.1.6. Code-Smells 24 2.1.7. Clean-Code 25 2.2. Code-Smell-Heuristiken im Detail 27 2.3. Einführung in den Compilerbau 32 2.3.1. Kurze Einführung in die Sprachtheorie 32 2.3.2. Die lexikalische Analyse 34 2.3.3. Die syntaktische Analyse 35 3. Forschungsstand 38 3.1. Code-Smell-Analyse-Tools auf Grundlage von Strukturinformationen 42 3.2. Code-Smell-Analyse durch maschinelles Lernen 50 3.3. Code-Smell-Suche mithilfe von Änderungsdaten 52 3.4. Code-Smell-Erkennung durch Textanalyse 54 4. Forschungsfragen und Konzeptentwicklung 56 4.1. Clean-Code: Welche Teile sind messbar? - Die Konzeptionalisierung hin zu einem maschinenlesbaren Ansatz 56 4.1.1. Größe von Entitäten im Clean-Code 57 4.1.2. Clean-Code und Zugriffsmodifikatoren 59 4.1.3. Bezeichner von Entitäten im Clean-Code 60 4.1.4. Formatierungskonventionen des Clean-Codes 62 4.1.5. Funktionsparameterübergabe im Clean-Code-Konzept 63 4.1.6. Clean-Code-Kommentare 65 4.1.7. Clean-Code — Was nicht geht 66 4.1.8. Platzierung von Entitäten im Clean-Code 67 4.2. Forschungsfragen und Hypothesen 69 5. Methodik 71 5.1. Implementierung des statischen Clean-Code-Analyse-Tools 71 5.1.1. Abhängigkeiten 72 5.1.2. Umsetzung des statischen Clean-Code-Analyse-Tools 72 5.1.3. Abhängige Variablen 78 5.2. Checklistenbasiertes Code-Review 80 5.2.1. Begründung der Methodenauswahl 80 5.2.2. Fragebogen 81 5.2.3. Unabhängige Variablen 85 5.2.4. Ablauf der Studie 86 6. Ergebnisse 87 6.1. Populationsbeschreibung 88 6.2. Deskriptive Werte der Evaluationsitems aus der Lesbarkeitsstudie 88 6.3. Deskriptive Werte der Evaluation des statischen Clean-Code-Analyse-Tools 90 6.4. Inferenzstatistik 91 7. Diskussion 96 7.1. Beantwortung der Forschungsfrage 96 7.2. Bedrohungen der Validität 97 7.3. Ausblick und Vergleich mit ähnlichen Code-Analyse-Tools 98 8. Fazit 100 Literaturverzeichnis 102 A. Anhang 112 A.1. Tabellen 112 A.2. Clean-Code Analyse-Tool Ein- und Ausgabe 124 A.3. Lesbarkeitsstudie 135 A.4. Regressionsergebnisse 144 B. CD 148 C. Selbstständigkeitserklärung 148
36

Le théâtre de la mémoire olfactive : le pouvoir des odeurs à modeler notre perception spatiotemporelle de l'environnement

Bouchard, Natalie 01 1900 (has links)
pour plus d'informations concernant l'auteure et sa recherche veuillez consulter le http://www.natalieb.ca / L'environnement n'est pas un espace physique précis et stable. Sa géométrie est statique mais il est sans cesse inondé par différentes ambiances qui elles sont dynamiques. De plus sa réalité est modelée par le terrain mouvant de notre mémoire qui encode nos expériences, nos rencontres et autres complexes associations vécues à différents moments. Les ambiances olfactives plus particulièrement participent à la définition d'un espace urbain de plusieurs façons. Produites et modelées par l'environnement géographique, les conditions climatiques, les activités économiques et l'activité humaine, les odeurs appellent des repères spatio-temporels précis car se référant à des événements que l'on a personnellement vécus. Bref, les multiples flux odorants qui façonnent dans la ville un paysage olfactif mouvant sont autant de possibilités de restructurer le réel du citadin. Aussi pour permettre d'élaborer des moyens mettant en oeuvre les odeurs dans l'espace public, nous avons examiné dans quelle mesure les signaux olfactifs influencent notre perception de l'environnement en provoquant l'apparition de paysages temporels. / The smellscape participates in the definition of the environment in different ways. First, determined by the geographic environment, climate conditions, economic activities, and human activity, the reality of olfactory ambiances are also shaped by our memory. This is because odours are associated with precise spatiotemporal markers that refer to events that someone has personally experienced. Therefore, the multiple fluxes of odorants creating a mobile topography of smells in the city may become a strategic intervention tool in planning. And, with the goal of arriving at a representation of the temporal patterns provoked by odours, we have examined the influence of olfactory memory in urban space.
37

Context-based code quality assessment / Avaliação de qualidade de código baseada em contexto

Aniche, Mauricio Finavaro 15 July 2016 (has links)
Two tasks that software engineers constantly perform are writing code that is easy to evolve and maintain, and detecting poorly written pieces of code. For the former, software engineers commonly rely on well-known software architecture styles, such as Model-View-Controller (MVC). To the latter, they rely on code metrics and code smell detection approaches. However, up to now, these code metrics and code smell approaches do not take into account underlying architectureall classes are assessed as if they were the same. In practice, software developers know that classes differ in terms of responsibilities and implementation, and thus, we expect these classes to present different levels of coupling, cohesion, and complexity. As an example, in an MVC system, Controllers are responsible for the flow between the Model and the View, and Models are responsible for representing the systems business concepts. Thus, in this thesis, we evaluate the impact of architectural roles within a system architecture on code metrics and code smells. We performed an empirical analysis in 120 open source systems, and interviewed and surveyed more than 50 software developers. Our findings show that each architectural role has a different code metric values distribution, which is a likely consequence of their specific responsibilities. Thus, we propose SATT, an approach that provides specific thresholds for architectural roles that are significantly different from others in terms of code smells. We also show that classes that play a specific architectural role contain specific code smells, which developers perceive as problems, and can impact class\' change- and defect-proneness. Based on our findings, we suggest that developers understand the responsibilities of each architectural role in their system architecture, so that code metrics and code smells techniques can provide more accurate feedback. / Duas tarefas que desenvolvedores de software constantemente fazem são escrever código fácil de ser mantido e evoluído, e detectar pedaços de código problemáticos. Para a primeira tarefa, desenvolvedores comumente fazem uso de conhecidos padrões arquiteturais, como Model-View-Controller (MVC). Para a segunda tarefa, desenvolvedores fazem uso de métricas de código e estratégias de detecção de maus cheiros de código (code smells). No entanto, até o momento, métricas de código e estratégias de detecção de maus cheiros de código não levam em conta a arquitetura do software em análise. Isso significa que todas classes são avaliadas como se umas fossem iguais às outras. Na prática, sabemos que classes são diferentes em suas responsibilidades e implementação, e portanto, esperamos que elas variem em termos de acoplamento, coesão e complexidade. Por exemplo, em um sistema MVC, Controladores são responsáveis pelo fluxo entre a camada de Modelo e a camada de Visão, e Modelos representam a visão de negócios do sistema. Nesta tese, nós avaliamos o impacto dos papéis arquiteturais em técnicas de medição de métricas de código e de detecção de maus cheiros de código. Nós realizamos um estudo empírico em 120 sistemas de código aberto, e entrevistamos e realizamos questionários com mais de 50 desenvolvedores. Nossos resultados mostram que cada papel arquitetural possui distribuições diferentes de valores de métrica de código, consequência das diferentes responsabilidades de cada papel. Como consequência, propomos SATT, uma abordagem que provê thresholds específicos para papéis arquiteturais que são significantemente diferentes de outros em termos de métricas de código. Mostramos também que classes que cumprem um papel arquitetural específico também contêm maus cheiros de código específicos. Esses maus cheiros são percebidos por desenvolvedores como problemas reais e podem fazer com que essas classes sejam mais modificadas e apresentem mais defeitos do que classes limpas. Sugerimos então que desenvolvedores entendam a arquitetura dos seus sistemas, bem como as responsabilidades de cada papel arquitetural que as classes desempenham, para que tanto métricas de código quanto estratégias de detecção de maus cheiros de código possam prover um melhor retorno.
38

Le théâtre de la mémoire olfactive : le pouvoir des odeurs à modeler notre perception spatiotemporelle de l'environnement

Bouchard, Natalie 01 1900 (has links)
L'environnement n'est pas un espace physique précis et stable. Sa géométrie est statique mais il est sans cesse inondé par différentes ambiances qui elles sont dynamiques. De plus sa réalité est modelée par le terrain mouvant de notre mémoire qui encode nos expériences, nos rencontres et autres complexes associations vécues à différents moments. Les ambiances olfactives plus particulièrement participent à la définition d'un espace urbain de plusieurs façons. Produites et modelées par l'environnement géographique, les conditions climatiques, les activités économiques et l'activité humaine, les odeurs appellent des repères spatio-temporels précis car se référant à des événements que l'on a personnellement vécus. Bref, les multiples flux odorants qui façonnent dans la ville un paysage olfactif mouvant sont autant de possibilités de restructurer le réel du citadin. Aussi pour permettre d'élaborer des moyens mettant en oeuvre les odeurs dans l'espace public, nous avons examiné dans quelle mesure les signaux olfactifs influencent notre perception de l'environnement en provoquant l'apparition de paysages temporels. / The smellscape participates in the definition of the environment in different ways. First, determined by the geographic environment, climate conditions, economic activities, and human activity, the reality of olfactory ambiances are also shaped by our memory. This is because odours are associated with precise spatiotemporal markers that refer to events that someone has personally experienced. Therefore, the multiple fluxes of odorants creating a mobile topography of smells in the city may become a strategic intervention tool in planning. And, with the goal of arriving at a representation of the temporal patterns provoked by odours, we have examined the influence of olfactory memory in urban space. / pour plus d'informations concernant l'auteure et sa recherche veuillez consulter le http://www.natalieb.ca
39

Context-based code quality assessment / Avaliação de qualidade de código baseada em contexto

Mauricio Finavaro Aniche 15 July 2016 (has links)
Two tasks that software engineers constantly perform are writing code that is easy to evolve and maintain, and detecting poorly written pieces of code. For the former, software engineers commonly rely on well-known software architecture styles, such as Model-View-Controller (MVC). To the latter, they rely on code metrics and code smell detection approaches. However, up to now, these code metrics and code smell approaches do not take into account underlying architectureall classes are assessed as if they were the same. In practice, software developers know that classes differ in terms of responsibilities and implementation, and thus, we expect these classes to present different levels of coupling, cohesion, and complexity. As an example, in an MVC system, Controllers are responsible for the flow between the Model and the View, and Models are responsible for representing the systems business concepts. Thus, in this thesis, we evaluate the impact of architectural roles within a system architecture on code metrics and code smells. We performed an empirical analysis in 120 open source systems, and interviewed and surveyed more than 50 software developers. Our findings show that each architectural role has a different code metric values distribution, which is a likely consequence of their specific responsibilities. Thus, we propose SATT, an approach that provides specific thresholds for architectural roles that are significantly different from others in terms of code smells. We also show that classes that play a specific architectural role contain specific code smells, which developers perceive as problems, and can impact class\' change- and defect-proneness. Based on our findings, we suggest that developers understand the responsibilities of each architectural role in their system architecture, so that code metrics and code smells techniques can provide more accurate feedback. / Duas tarefas que desenvolvedores de software constantemente fazem são escrever código fácil de ser mantido e evoluído, e detectar pedaços de código problemáticos. Para a primeira tarefa, desenvolvedores comumente fazem uso de conhecidos padrões arquiteturais, como Model-View-Controller (MVC). Para a segunda tarefa, desenvolvedores fazem uso de métricas de código e estratégias de detecção de maus cheiros de código (code smells). No entanto, até o momento, métricas de código e estratégias de detecção de maus cheiros de código não levam em conta a arquitetura do software em análise. Isso significa que todas classes são avaliadas como se umas fossem iguais às outras. Na prática, sabemos que classes são diferentes em suas responsibilidades e implementação, e portanto, esperamos que elas variem em termos de acoplamento, coesão e complexidade. Por exemplo, em um sistema MVC, Controladores são responsáveis pelo fluxo entre a camada de Modelo e a camada de Visão, e Modelos representam a visão de negócios do sistema. Nesta tese, nós avaliamos o impacto dos papéis arquiteturais em técnicas de medição de métricas de código e de detecção de maus cheiros de código. Nós realizamos um estudo empírico em 120 sistemas de código aberto, e entrevistamos e realizamos questionários com mais de 50 desenvolvedores. Nossos resultados mostram que cada papel arquitetural possui distribuições diferentes de valores de métrica de código, consequência das diferentes responsabilidades de cada papel. Como consequência, propomos SATT, uma abordagem que provê thresholds específicos para papéis arquiteturais que são significantemente diferentes de outros em termos de métricas de código. Mostramos também que classes que cumprem um papel arquitetural específico também contêm maus cheiros de código específicos. Esses maus cheiros são percebidos por desenvolvedores como problemas reais e podem fazer com que essas classes sejam mais modificadas e apresentem mais defeitos do que classes limpas. Sugerimos então que desenvolvedores entendam a arquitetura dos seus sistemas, bem como as responsabilidades de cada papel arquitetural que as classes desempenham, para que tanto métricas de código quanto estratégias de detecção de maus cheiros de código possam prover um melhor retorno.

Page generated in 0.052 seconds