Spelling suggestions: "subject:"cmpirical 5oftware engineering"" "subject:"cmpirical 5oftware ingineering""
41 |
[en] MAINTAINABILITY AND REUSABILITY OF ASPECT-ORIENTED SOFTWARE: AN ASSESSMENT FRAMEWORK / [pt] MANUTENIBILIDADE E REUSABILIDADE DE SOFTWARE ORIENTADO A ASPECTOS: UM FRAMEWORK DE AVALIAÇÃOCLAUDIO NOGUEIRA SANTANNA 13 September 2004 (has links)
[pt] O desenvolvimento de software orientado a aspectos (DSOA)
vem obtendo
maior atenção tanto da academia quanto da indústria.
Sistemas orientados a
aspectos compreendem novas abstrações de engenharia de
software e tratam de
diferentes dimensões de complexidade. Conseqüentemente, o
DSOA traz novos
problemas para a engenharia de software experimental. Novos
mecanismos de
avaliação são necessários para medir os graus de
manutenibilidade e reusabilidade
de sistemas orientados a aspectos. Esta dissertação
apresenta um framework de
avaliação para o DSOA composto por dois elementos: um
conjunto de métricas e
um modelo de qualidade. No intuito de evitar a reinvenção
de soluções já testadas,
esses elementos são baseados em princípios bem conhecidos
da engenharia de
software e métricas já existentes. O framework proposto foi
avaliado no contexto
de dois estudos empíricos de domínios distintos, com
características, níveis de
controle e níveis de complexidade diferentes. O primeiro
estudo empírico
comparou uma abordagem orientada a objetos com uma
abordagem orientada a
aspectos para o projeto e implementação de um sistema multi-
agentes. O segundo
estudo envolveu a aplicação do framework proposto para
avaliar as
implementações em Java e AspectJ dos padrões de projeto da
GoF. / [en] Aspect-oriented software development (AOSD) is gaining wide
attention
both in research environments and in industry. Aspect-
oriented systems
encompass new software engineering abstractions and
different complexity
dimensions. As a consequence, AOSD poses new problems to
empirical software
engineering. It requires new assessment mechanisms to
measure the
maintainability and reusability degrees of aspect-oriented
systems. This
dissertation presents an assessment framework for AOSD,
which is composed of
two components: a suite of metrics and a quality model.
These components are
based on well-known principles and existing metrics in
order to avoid the reinvention
of well-tested solutions. The proposed framework has been
evaluated in
the context of two different empirical studies with
different characteristics, diverse
domains, varying control levels and different complexity
degrees. The first study
compared an object-oriented approach and an aspect-oriented
approach to the
design and implementation of a multi-agent system. The
second study involved
the application of the proposed framework to evaluate Java
and AspectJ
implementations of the GoF design patterns.
|
42 |
Productivity of agile teams: an empirical evaluation of factors and monitoring processes / Produtividade de times ágeis: uma avaliação experimental de fatores e processos de monitoramento.Claudia de Oliveira Melo 09 May 2013 (has links)
Lower cost and shorter time-to-market expectations are the major drivers of software productivity improvements. To manage productivity effectively, it is important to identify the most relevant difficulties and develop strategies to cope with them. Agile methods, including Extreme Programming and Scrum, have evolved as approaches to simplify software development process, potentially leading to better productivity. They aim to shorten development time and handle the inevitable changes resulting from market dynamics. Although the industry has extensively adopted agile methods, little research has empirically examined the software development agility construct regarding its dimensions, determinants, and effects on software development performance. Understanding this construct could help determine where to concentrate management efforts (and related financial resources) from a practical standpoint and where to focus research efforts from an academic perspective. Considerable research has been directed at identifying factors that have a significant impact on software development productivity. In general, the studied productivity factors were related to product, personnel, project, process, or organizational issues. Continuously evaluating productivity factors is important, as factors may change under new software engineering practices. However, little research has investigated the major factors influencing agile team productivity. ]The goal of this thesis was to explore productivity definitions, factors, and monitoring in agile teams and to improve the practice based on the collected evidence and gained knowledge. This thesis presents five novel contributions: C1 - Empirical verification of the importance of productivity for companies adopting agile methods and its perceived benefits; C2 - Rationale for the definition of productivity in the context of agile methods; C3 - Empirical verification of agile team productivity factors; C4 - A conceptual framework for agile team productivity factors and their impact; C5 - A team productivity monitoring process considering adaptability and an evaluation of the usefulness of agile team productivity metrics. / Menor custo e expectativa de menor time-to-market são os principais motivadores para melhorias de produtividade de software. Para gerir eficazmente a produtividade, é importante identificar as dificuldades mais relevantes e desenvolver estratégias para lidar com elas. Os métodos ágeis, incluindo Programação Extrema e Scrum, evoluíram como abordagens para simplificar o processo de desenvolvimento de software, potencialmente levando a uma melhor produtividade. Eles visam reduzir o tempo de desenvolvimento e lidar com as mudanças inevitáveis decorrentes da dinâmica do mercado. Embora a indústria tenha adotado amplamente métodos ágeis, há pouco entendimento científico do construto agilidade em desenvolvimento de software em relação às suas dimensões, determinantes e efeitos sobre o desempenho no desenvolvimento de software. Compreender esse construto poderia ajudar a determinar onde concentrar os esforços de gestão (e recursos financeiros relacionados) de um ponto de vista prático, assim como onde concentrar os esforços de investigação de uma perspectiva científica. Pesquisa considerável tem sido direcionada para identificar os fatores com impacto significativo na produtividade de desenvolvimento de software. Em geral, os fatores de produtividade estudados foram relacionadas ao produto, pessoas, projeto, processo ou questões organizacionais. Avaliar fatores de produtividade continuamente é importante, pois os fatores podem mudar quando novas práticas de engenharia de software são adotadas. No entanto, poucos estudos investigaram fatores influenciando a produtividade de times ágeis. O objetivo desta tese é explorar definições, fatores e monitoramento de produtividade em times ágeis e melhorar a prática baseada em evidência. Esta tese apresenta cinco novas contribuições: C1 - Verificação empírica da importância de produtividade para as empresas que adotam métodos ágeis e seus benefícios percebidos; C2 - Justificativa para a definição da produtividade no contexto de métodos ágeis; C3 - A verificação empírica de fatores de produtividade em times ágeis; C4 - Um arcabouço conceitual de fatores de produtividade em times ágeis e seu impacto; C5 - Um processo de acompanhamento de produtividade de times ágeis, considerando adaptabilidade e uma avaliação da utilidade de métricas de produtividade para esses times.
|
43 |
Variability Modeling in the Real: An Empirical Journey from Software Product Lines to Software EcosystemsBerger, Thorsten 16 April 2013 (has links)
Variability modeling is one of the key disciplines to cope with complex variability in large software product lines. It aims at creating, evolving, and configuring variability models, which describe the common and variable characteristics, also known as features, of products in a product line. Since the introduction of feature models more than twenty years ago, many variability modeling languages and notations have been proposed both in academia and industry, followed by hundreds of publications on variability modeling techniques that have built upon these theoretical foundations.
Surprisingly, there are relatively few empirical studies that aim at understanding the use of such languages. What variability modeling concepts are actually used in practice? Do variability models applied in real-world look similar to those published in literature? In what technical and organizational contexts are variability models applicable?
We present an empirical study that addresses this research gap. Our goals are i) to verify existing theoretical research, and ii) to explore real-world variability modeling languages and models expressed in them. We study concepts and semantics of variability modeling languages conceived by practitioners, and the usage of these concepts in real, large-scale models. Our aim is to support variability modeling research by providing empirical data about the use of its core modeling concepts, by identifying and characterizing further concepts that have not been as widely addressed, and by providing realistic assumptions about scale, structure, content, and complexity of real-world variability models. We believe that our findings are of relevance to variability modeling researchers and tool designers, for example, those working on interactive product configurators or feature dependency checkers. Our extracted models provide realistic benchmarks that can be used to evaluate new techniques.
Recognizing the recent trend in software engineering to open up software platforms to facilitate inter-organizational reuse of software, we extend our empirical discourse to the emerging field of software ecosystems. As natural successors of successful product lines, ecosystems manage huge variability among and within their software assets, thus, represent a highly interesting class of systems to study variability modeling concepts and mechanisms. Our studied systems comprise eleven highly configurable software systems, two ecosystems with closed platforms, and three ecosystems relying on open platforms. Some of our subjects are among the largest successful systems in existence today. Results from a survey on industrial variability modeling complement these subjects.
Our overall results provide empirical evidence that the well-researched concepts of feature modeling are used in practice, but also that more advanced concepts are needed. We observe that assumptions about variability models in the literature do not hold. Our study also reveals that variability models work best in centralized variability management scenarios, and that they are fragile and have to be controlled by a small team. We also identify a particular type of dependencies that is increasingly used in open platforms and helps sustain the growth of ecosystems. Interestingly, while enabling distributed variability, these dependencies rely on a centralized and stable vocabulary. Finally, we formulate new hypotheses and research questions that provide direction for future research.
|
44 |
[en] TO COLLABORATE OR NOT TO COLLABORATE?: IMPROVING THE IDENTIFICATION OF CODE SMELLS / [pt] COLABORAR OU NÃO COLABORAR?: MELHORANDO A IDENTIFICAÇÃO DE ANOMALIAS DE CÓDIGOROBERTO FELICIO DE OLIVEIRA 17 January 2018 (has links)
[pt] Anomalias de código são estruturas anômalas de código que podem indicar
problemas de manutenção. A identificação de anomalias é necessária para
revelar elementos de código mal estruturados, tais como classes e métodos.
Porém, a identificação individual de anomalias, realizada por um único desenvolvedor,
pode ser ineficaz. Estudos reportam limitações da identificação
individual de anomalias. Por exemplo, a identificação de anomalias requer
uma compreensão profunda de múltiplos elementos de um programa, e
cada elemento é melhor entendido por um desenvolvedor diferente. Logo,
um desenvolvedor isolado frequentemente tem dificuldades para encontrar,
confirmar e refutar uma suspeita de anomalia. Identificação colaborativa
de anomalias, que é realizada em conjunto por dois ou mais colaboradores,
tem o potencial para resolver esse problema. Porém, há pouca evidência
empírica sobre a eficácia da identificação colaborativa de anomalias. Nesta
tese, nós conduzimos estudos empíricos para entender a eficácia da identificação
individual e colaborativa de anomalias. Computamos e comparamos
a eficácia de colaboradores e desenvolvedores isolados com base no número
de anomalias identificadas corretamente. Conduzimos tais estudos em empresas
e laboratórios de pesquisa, totalizando 67 desenvolvedores, incluindo
desenvolvedores novatos e experientes. Também definimos alguns fatores de
influência sobre a eficácia da identificação colaborativa de anomalias, tais
como a granularidade da anomalia. Revelamos e caracterizamos algumas
atividades colaborativas que melhoram a eficácia dos desenvolvedores na
identificação de anomalias. Finalmente, identificamos oportunidades para
melhorar certas atividades colaborativas. Nossos resultados sugerem que
colaboradores são significativamente mais eficazes que desenvolvedores
isolados, tanto desevolvedores novatos quanto experientes. Concluímos que
colaborar é vantajoso para melhorar a identificação de uma vasta gama de
tipos de anomalia. / [en] Code smells are anomalous code structures which often indicate maintenance
problems in software systems. The identification of code smells is
required to reveal code elements, such as classes and methods, that are
poorly structured. Some examples of code smell types perceived as critical
by developers include God Classes and Feature Envy. However, the individual
smell identification, which is performed by a single developer, may
be ineffective. Several studies have reported limitations of individual smell
identification. For instance, the smell identification usually requires an indepth
understanding of multiple elements scattered in a program, and each
of these elements is better understood by a different developer. As a consequence,
a single developer often struggles and to find to confirm or refute
a code smell suspect. Collaborative smell identification, which is performed
together by two or more collaborators, has the potential to address this
problem. However, there is little empirical evidence on the effectiveness of
collaborative smell identification. In this thesis, we addressed the aforementioned
limitations as follows. First, we conducted empirical studies aimed at
understanding the effectiveness of both collaborative and individual smell
identification. We computed and compared the effectiveness of collaborators
and single developers based on the number of correctly identified code
smells. We conducted these studies in both industry’s companies and research
laboratories with 67 developers, including novice and professional
developers. Second, we defined some influential factors on the effectiveness
of collaborative smell identification, such as the smell granularity. Third, we
revealed and characterized some collaborative activities which improve the
developers effectiveness for identifying code smells. Fourth, we also characterized
opportunities for further improving the effectiveness of certain
collaborative activities. Our results suggest that collaborators are more effective
than single developers in: (i) both professional and academic settings,
and (ii) identifying a wide range of code smell types.
|
45 |
An Empirical Evaluation & Comparison of Effectiveness & Efficiency of Fault Detection Testing TechniquesNatraj, Shailendra January 2013 (has links)
Context: The thesis is the analysis work of the replication of software experiment conducted by Natalia and Sira at Technical University of Madrid, SPAIN. The empirical study was conducted for the verification and validation of experimental data, and to evaluate the effectiveness and efficiency of the testing techniques. The analysis blocks, considered for the analysis were observable fault, failure visibility and observed faults. The statistical data analysis involved the ANOVA and Classification package of SPSS. Objective: To evaluate and compare the result obtained from the statistical data analysis. To establish the verification and validation of effectiveness and efficiency of testing techniques by using ANOVA and Classification tree analysis for percentage subject, percentage defect-subject and values (Yes / No) for each of the blocks. RQ1: Empirical evaluation of effectiveness of fault detection testing technique, using data analysis (ANOVA and Classification tree package). For the blocks (observable fault, failure visibility and observed faults) using ANOVA and Classification tree. RQ2: Empirical evaluation of efficiency of fault detection technique, based on time and number of test cases using ANOVA. RQ3: Comparison and inference of the obtained results for both effectiveness and efficiency. Method:The research will be focused on the statistical data analysis to empirically evaluate the effectiveness and efficiency of the fault detection technique for the experimental data collected at UPM (Technical university of Madrid, SPAIN). Empirical Strategy Used: Software Experiment. Results: Based on the planned research work. The analysis result obtained for the observable fault types were standardized (Ch5). Within the observable fault block, both the techniques, functional and structural were equally effective. In the failure visibility block, the results were partially standardized. The program types nametbl and ntree were equally effective in fault detection than cmdline. The result for observed fault block was partially standardized and diverse. The list for significant factors in this blocks were program types, fault types and techniques. In the efficiency block, the subject took less time in isolating the fault in the program type cmdline. Also the efficiency in fault detection was seen in cmdline with the help of generated test cases. Conclusion:This research will help the practitioners in the industry and academic in understanding the factors influencing the effectiveness and efficiency of testing techniques.This work also presents a comprehensive analysis and comparison of results of the blocks observable fault, failure visibility and observed faults. We discuss the factors influencing the efficiency of the fault detection techniques. / shailendra.natraj@gmail.com +4917671952062
|
46 |
Understanding First-time User Experiences in an Educational Crowdsourcing PlatformAkash Ravi (11878004) 18 April 2023 (has links)
<p>User onboarding for Graphical User Interface (GUI) applications usually involve walkthrough tutorials explaining various UI elements, functions, and navigation screens. These First-time User Experiences (FTUEs) are crucial in determining any subsequent user interaction. The purpose of this study has been explored by eliciting answers to two research questions in specific. The study primarily investigates a user's perception of a tailored onboarding experience. Following this, the impact of these tutorials on the user's performance has also been used as a way to verify their effectiveness.</p>
<p><br></p>
<p>The emergence of educational crowdsourcing platforms has revolutionized traditional models of teaching and learning by engaging students in collaborative, real-world problem-solving activities. However, the success of crowdsourcing platforms in education largely depends on their ability to provide a positive and engaging user experience, particularly for first-time users. As a part of another ongoing study, the need for an engaging onboarding tutorial to educate users on the concept of worked-out examples and peer evaluations was evident. Thus, the interventions developed in this study are built upon a crowdsourcing platform designed to collect worked-out examples from university students. </p>
<p><br></p>
<p>Through a combination of qualitative and quantitative research methods, this study seeks to provide insights into the design of effective onboarding tutorials in the context of crowdsourcing educational resources. There have been numerous attempts to devise effective onboarding strategies. For instance, the interplay of narration and animation has been utilized as a way to gamify and design engaging FTUEs. The design choices for tailoring the experience were hence determined through Rapid Iterative Testing and Evaluation (RITE) methods. Analysis of the experimental data shows that there is a statistically significant improvement in the FTUE when users are presented with a tailored onboarding tutorial. Their usage patterns also tend to improve post their interactions with the tutorials. These results hope to contribute to a better understanding of user engagement in FTUEs, thus paving the way for furthering product adoption and value metrics on a broad scale.</p>
|
47 |
Impacts and Detection of Design SmellsMaiga, Abdou 08 1900 (has links)
Les changements sont faits de façon continue dans le code source des logiciels pour prendre en compte les besoins des clients et corriger les fautes. Les changements continus peuvent conduire aux défauts de code et de conception. Les défauts de conception sont des mauvaises solutions à des problèmes récurrents de conception ou d’implémentation, généralement dans le développement orienté objet. Au cours des activités de compréhension et de changement et en raison du temps d’accès au marché, du manque de compréhension, et de leur expérience, les développeurs ne peuvent pas toujours suivre les normes de conception et les techniques de codage comme les patrons de conception. Par conséquent, ils introduisent des défauts de conception dans leurs systèmes. Dans la littérature, plusieurs auteurs ont fait valoir que les défauts de conception rendent les systèmes orientés objet plus difficile à comprendre, plus sujets aux fautes, et plus difficiles à changer que les systèmes sans les défauts de conception. Pourtant, seulement quelques-uns de ces auteurs ont fait une étude empirique sur l’impact des défauts de conception sur la compréhension et aucun d’entre eux n’a étudié l’impact des défauts de conception sur l’effort des développeurs pour corriger les fautes.
Dans cette thèse, nous proposons trois principales contributions. La première contribution est une étude empirique pour apporter des preuves de l’impact des défauts de conception sur la compréhension et le changement. Nous concevons et effectuons deux expériences avec 59 sujets, afin d’évaluer l’impact de la composition de deux occurrences de Blob ou deux occurrences de spaghetti code sur la performance des développeurs effectuant des tâches de compréhension et de changement. Nous mesurons la performance des développeurs en utilisant: (1) l’indice de charge de travail de la NASA pour leurs efforts, (2) le temps qu’ils ont passé dans l’accomplissement de leurs tâches, et (3) les pourcentages de bonnes réponses. Les résultats des deux expériences ont montré que deux occurrences de Blob ou de spaghetti code sont un obstacle significatif pour la performance des développeurs lors de tâches de compréhension et de changement. Les résultats obtenus justifient les recherches antérieures sur la spécification et la détection des défauts de conception. Les équipes de développement de logiciels doivent mettre en garde les développeurs contre le nombre élevé d’occurrences de défauts de conception et recommander des refactorisations à chaque étape du processus de développement pour supprimer ces défauts de conception quand c’est possible.
Dans la deuxième contribution, nous étudions la relation entre les défauts de conception et les fautes. Nous étudions l’impact de la présence des défauts de conception sur l’effort nécessaire pour corriger les fautes. Nous mesurons l’effort pour corriger les fautes à l’aide de trois indicateurs: (1) la durée de la période de correction, (2) le nombre de champs et méthodes touchés par la correction des fautes et (3) l’entropie des corrections de fautes dans le code-source. Nous menons une étude empirique avec 12 défauts de conception détectés dans 54 versions de quatre systèmes: ArgoUML, Eclipse, Mylyn, et Rhino. Nos résultats ont montré que la durée de la période de correction est plus longue pour les fautes impliquant des classes avec des défauts de conception. En outre, la correction des fautes dans les classes avec des défauts de conception fait changer plus de fichiers, plus les champs et des méthodes. Nous avons également observé que, après la correction d’une faute, le nombre d’occurrences de défauts de conception dans les classes impliquées dans la correction de la faute diminue. Comprendre l’impact des défauts de conception sur l’effort des développeurs pour corriger les fautes est important afin d’aider les équipes de développement pour mieux évaluer et prévoir l’impact de leurs décisions de conception et donc canaliser leurs efforts pour améliorer la qualité de leurs systèmes. Les équipes de développement doivent contrôler et supprimer les défauts de conception de leurs systèmes car ils sont susceptibles d’augmenter les efforts de changement.
La troisième contribution concerne la détection des défauts de conception. Pendant les activités de maintenance, il est important de disposer d’un outil capable de détecter les défauts de conception de façon incrémentale et itérative. Ce processus de détection incrémentale et itérative pourrait réduire les coûts, les efforts et les ressources en permettant aux praticiens d’identifier et de prendre en compte les occurrences de défauts de conception comme ils les trouvent lors de la compréhension et des changements. Les chercheurs ont proposé des approches pour détecter les occurrences de défauts de conception, mais ces approches ont actuellement quatre limites: (1) elles nécessitent une connaissance approfondie des défauts de conception, (2) elles ont une précision et un rappel limités, (3) elles ne sont pas itératives et incrémentales et (4) elles ne peuvent pas être appliquées sur des sous-ensembles de systèmes. Pour surmonter ces limitations, nous introduisons SMURF, une nouvelle approche pour détecter les défauts de conception, basé sur une technique d’apprentissage automatique — machines à vecteur de support — et prenant en compte les retours des praticiens. Grâce à une étude empirique portant sur trois systèmes et quatre défauts de conception, nous avons montré que la précision et le rappel de SMURF sont supérieurs à ceux de DETEX et BDTEX lors de la détection des occurrences de défauts de conception. Nous avons également montré que SMURF peut être appliqué à la fois dans les configurations intra-système et inter-système. Enfin, nous avons montré que la précision et le rappel de SMURF sont améliorés quand on prend en compte les retours des praticiens. / Changes are continuously made in the source code to take into account the needs of the customers and fix the faults. Continuous change can lead to antipatterns and code smells, collectively called “design smells” to occur in the source code. Design smells are poor solutions to recurring design or implementation problems, typically in object-oriented development. During comprehension and changes activities and due to the time-to-market, lack of understanding, and the developers’ experience, developers cannot always follow standard designing and coding techniques, i.e., design patterns. Consequently, they introduce design smells in their systems. In the literature, several authors claimed that design smells make object-oriented software systems more difficult to understand, more fault-prone, and harder to change than systems without such design smells. Yet, few of these authors empirically investigate the impact of design smells on software understandability and none of them authors studied the impact of design smells on developers’ effort.
In this thesis, we propose three principal contributions. The first contribution is an empirical study to bring evidence of the impact of design smells on comprehension and change. We design and conduct two experiments with 59 subjects, to assess the impact of the composition of two Blob or two Spaghetti Code on the performance of developers performing comprehension and change tasks. We measure developers’ performance using: (1) the NASA task load index for their effort; (2) the time that they spent performing their tasks; and, (3) their percentages of correct answers. The results of the two experiments showed that two occurrences of Blob or Spaghetti Code design smells impedes significantly developers performance during comprehension and change tasks. The obtained results justify a posteriori previous researches on the specification and detection of design smells. Software development teams should warn developers against high number of occurrences of design smells and recommend refactorings at each step of the development to remove them when possible.
In the second contribution, we investigate the relation between design smells and faults in classes from the point of view of developers who must fix faults. We study the impact of the presence of design smells on the effort required to fix faults, which we measure using three metrics: (1) the duration of the fixing period; (2) the number of fields and methods impacted by fault-fixes; and, (3) the entropy of the fault-fixes in the source code. We conduct an empirical study with 12 design smells detected in 54 releases of four systems: ArgoUML, Eclipse, Mylyn, and Rhino. Our results showed that the duration of the fixing period is longer for faults involving classes with design smells. Also, fixing faults in classes with design smells impacts more files, more fields, and more methods. We also observed that after a fault is fixed, the number of occurrences of design smells in the classes involved in the fault decreases. Understanding the impact of design smells on development effort is important to help development teams better assess and forecast the impact of their design decisions and therefore lead their effort to improve the quality of their software systems. Development teams should monitor and remove design smells from their software systems because they are likely to increase the change efforts.
The third contribution concerns design smells detection. During maintenance and evolution tasks, it is important to have a tool able to detect design smells incrementally and iteratively. This incremental and iterative detection process could reduce costs, effort, and resources by allowing practitioners to identify and take into account occurrences of design smells as they find them during comprehension and change. Researchers have proposed approaches to detect occurrences of design smells but these approaches have currently four limitations: (1) they require extensive knowledge of design smells; (2) they have limited precision and recall; (3) they are not incremental; and (4) they cannot be applied on subsets of systems. To overcome these limitations, we introduce SMURF, a novel approach to detect design smells, based on a machine learning technique—support vector machines—and taking into account practitioners’ feedback. Through an empirical study involving three systems and four design smells, we showed that the accuracy of SMURF is greater than that of DETEX and BDTEX when detecting design smells occurrences. We also showed that SMURF can be applied in both intra-system and inter-system configurations. Finally, we reported that SMURF accuracy improves when using practitioners’ feedback.
|
48 |
Impacts and Detection of Design SmellsMaiga, Abdou 08 1900 (has links)
No description available.
|
49 |
TraceME: Traceability-based Method for Conceptual Model EvolutionRuiz Carmona, Luz Marcela 23 May 2016 (has links)
[EN] Renewing software systems is one of the most cost-effective ways to protect software investment, which saves time, money and ensures uninterrupted access to technical support and product upgrades. There are several motivations to promote investment and scientific effort for specifying systems by means of conceptual models and supporting its evolution. In order to contribute to the requirements engineering field with automated software production methods, we design TraceME to cover the spectrum of activities from requirements to code focusing on organisational evolution. In this sense, the spectrum of activities involves various information system perspectives of analysis that need to be integrated. In this complex setting, traceability and conceptual models are key concepts. Mechanisms to trace software specifications from requirements to code are important to justify evolution processes; versions of information systems should be traced in order to get the connection between old and new specifications. Moreover, it is necessary to find mechanisms to facilitate change specifications, measurement, and interpretation.
To design this thesis we follow Design Science by Roel Wieringa. Design Science gives us the hints on how to conduct the research, be rigorous, and put in practice scientific rules. Besides Design Science has been a key factor for structuring our research, we acknowledge the application of this framework since it has helps us to report clearly our findings.
We build TraceME by making a method engineering effort, which shapes its fragmented nature in chunks. The architecture of TraceME opens a wide window of opportunities for its application in real world situations. To facilitate industrial adoption, we develop open source tools to support the implementation of the TraceME chunks. For example, one case study and one action-research protocols have been executed in two different organisations in Spain.
The validation of TraceME has taken place in laboratory demonstrations, controlled experiments, action research and case study experiences in industry. Thanks to the validations various lessons learnt have been gathered and greatly influenced the maturity of the method. For example: the importance to consider end-users' perceptions for discovering needs to mitigate, and the significance to get knowledge from the application of TraceME in different contexts. The evidences from the validations demonstrate that TraceME is feasible to be applied to support evolution projects. In addition, future research is needed for promoting the implementation of TraceME. We envision short term and future-term work that motivate us to tackle the challenge to support evolution projects. / [ES] La evolución de sistemas software es una de las actividades mas importantes que permiten minimizar el tiempo de puesta en producción de actualizaciones y nuevos desarrollos, reducir los costos que implica desarrollar una aplicación desde cero, y además asegura el acceso ininterrumpido de servicios.
Existen variadas motivaciones para promover la investigación y desarrollo de soluciones para especificar y evolucionar sistemas de información mediante modelos conceptuales. Para contribuir al campo de la ingeniería de requisitos con métodos automáticos de producción de software, hemos diseñado el método TraceME para cubrir el espectro de actividades desde requisitos a código con un enfoque de evolución organizacional. De este modo, el espectro de actividades involucra diferentes perspectivas de análisis de sistemas de información que necesitan ser integradas. En este escenario tan complejo, la trazabilidad y los modelos conceptuales son conceptos clave. Es necesario disponer de mecanismos para trazar especificaciones de software desde requisitos a código con el fin de justificar procesos de evolución. Las versiones de los sistemas de información deben ser trazables con el fin de establecer la conexión entre especificaciones obsoletas y actuales. Adicionalmente, es necesario encontrar mecanismos para facilitar la especificación del cambio, su medición e interpretación.
Para diseñar esta tesis hemos seguido el marco de Design Science de Roel Wieringa. Design Science nos ha proporcionado las claves para conducir esta investigación, ser rigurosos y poner en práctica reglas científicas. Además de que Design Science ha sido un factor clave para estructurar nuestra investigación, reconocemos que la aplicación de este marco nos ha ayudado a reportar claramente nuestros hallazgos.
Hemos aplicado ingeniería de métodos para diseñar y construir TraceME. Gracias a esto, la naturaleza de TraceME es conformada mediante fragmentos de método. La arquitectura de TraceME abre una amplia ventana de oportunidades para su aplicación en situaciones de la vida real. Para facilitar la adopción industrial de TraceME, hemos desarrollado herramientas de software libre para dar soporte a los fragmentos de TraceME. Por ejemplo, un caso de estudio y una experiencia de action research han sido ejecutadas en dos organizaciones en España.
La validación de TraceME ha sido llevada a cabo mediante demostraciones de laboratorio, experimentos controlados, un caso de estudio y una experiencia de action research en industria. Como resultado, TraceME ha sido mejorado considerablemente; además hemos descubierto investigaciones a realizar a corto, mediano y largo plazo con el fin de implementar TraceME en la industria. Las evidencias obtenidas como resultado de las validaciones demuestra la factibilidad de TraceME para ser aplicado en proyectos de evolución organizacional. El trabajo futuro nos motiva a afrontar los retos que conlleva el soporte de proyectos de evolución de sistemas de información. / [CA] L'evolució dels sistemes programari és una de les activitats més importants que permeten minimitzar el temps de posada en producció d'actualitzacions i nous desenvolupaments, reduir els costos que involucra desenvolupar una aplicació des de cero, a més d' assegurar l'accés ininterromput de serveis.
Existixen diverses motivacions per promoure la investigació i desenvolupament de solucions per a especificar i evolucionar sistemes de informació mitjançant models conceptuals. Per tal de contribuir al camp de l'enginyeria de requisits amb mètodes automàtics de producció de programari, hem dissenyat el mètode TraceME per cobrir l'espectre d'activitats des de requisits a codi en un enfocament d'evolució organitzacional. Així, l'espectre d'activitats involucra diferents perspectives d'anàlisi de sistemes d'informació que necessiten ser integrades. En aquest escenari tan complex, la traçabilitat i els models conceptuals són conceptes clau. És necessari disposar de mecanismes per traçar especificacions de programari des de requisits a codi amb la fi de justificar processos d'evolució. Les versions dels sistemes d'informació deuen ser traçables amb la fi d'establir la connexió entre especificacions obsoletes i actuals. Addicionalment, és necessari trobar mecanismes per facilitar l'especificació del canvi, la seua mesura i interpretació.
Per tal de dissenyar aquesta tesi, hem seguit el marc de Design Science de Roel Wieringa. Design Science ens ha proporcionat les claus per conduir aquesta investigació, ser rigorosos i posar en pràctica regles científiques. A més a més, Design Science ha sigut un factor clau per estructurar la nostra investigació, reconeixem que l'aplicació de aquest marc ens a ajudat a reportar clarament els nostres resultats.
Hem aplicat enginyeria de mètodes per dissenyar i construir TraceME. Gràcies a açò, la natura de TraceME es conforma mitjançant fragments de mètodes. L'arquitectura de TraceME obri una ampla finestra d'oportunitats per a la seua aplicació en situacions de la vida real. Per facilitar l'adopció industrial de TraceME, hem desenvolupat ferramentes de programari lliure per tal de donar suport als fragments de TraceME. Per exemple, un cas d'estudi i una experiència de action research han sigut executades en dos organitzacions a Espanya.
La validació de TraceME ha sigut portada a cap mitjançant demostracions de laboratori, experiments controlats , un cas d'estudi i una experiència de action research en l'industria. Com a resultat, TraceME ha sigut millorada considerablement; a més a més, hem descobert investigacions a realitzar a curt, mig i llarg termini amb la fi d'implementar TraceME a l'industria. Les evidències obtingudes com a resultat de les validacions, demostren la factibilitat de TraceME per ser aplicat en projectes d'evolució organitzacional. El treball futur presenta nous reptes que ens motiven a afrontar el suport de projectes d'evolució de sistemes d'informació. / Ruiz Carmona, LM. (2016). TraceME: Traceability-based Method for Conceptual Model Evolution [Tesis doctoral]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/64553
|
Page generated in 0.0932 seconds