Spelling suggestions: "subject:"[een] SOFTWARE QUALITY"" "subject:"[enn] SOFTWARE QUALITY""
111 |
Towards Measuring & Improving Source Code QualityIftikhar, Umar January 2024 (has links)
Context: Software quality has a multi-faceted description encompassing several quality attributes. Central to our efforts to enhance software quality is to improve the quality of the source code. Poor source code quality impacts the quality of the delivered product. Empirical studies have investigated how to improve source code quality and how to quantify the source code improvement. However, the reported evidence linking internal code structure information and quality attributes observed by users is varied and, at times, conflicting. Furthermore, there is a further need for research to improve source code quality by understanding trends in feedback from code review comments. Objective: This thesis contributes towards improving source code quality and synthesizes metrics to measure improvement in source code quality. Hence, our objectives are 1) To synthesize evidence of links between source code metrics and external quality attributes, & identify source code metrics, and 2) To identify areas to improve source code quality by identifying recurring code quality issues using the analysis of code review comments. Method: We conducted a tertiary study to achieve the first objective, an archival analysis and a case study to investigate the latter two objectives. Results: To quantify source code quality improvement, we reported a comprehensive catalog of source code metrics and a small set of source code metrics consistently linked with maintainability, reliability, and security. To improve source code quality using analysis of code review comments, our explored methodology improves the state-of-the-art with interesting results. Conclusions: The thesis provides a promising way to analyze themes in code review comments. Researchers can use the source code metrics provided to estimate these quality attributes reliably. In future work, we aim to derive a software improvement checklist based on the analysis of trends in code review comments.
|
112 |
Measuring What Matters : Software Engineering and its Role in Scientific Software SuccessHansson, Tobias, Thand, Samuel January 2024 (has links)
Scientific software is vital for research across domains and can be reused when it is open-source. To promote this reuse, it is generally beneficial to adopt software engineering best practices to improve accessibility and popularity. However, given the distinct properties of scientific software, there is no consensus on how these practices are being or should be used in scientific software. Since previous evidence on this topic is primarily anecdotal or qualitative, this study used repository mining to quantitatively examine best practices and their relationship with popularity in 90 software engineering artifacts, which are examples of scientific software. The data varied significantly but showed that the studied artifacts generally did not prioritize software engineering best practices, and no significant relationships were found between these aspects and popularity. The results may suggest that scientific software developers prioritize scientific quality over software quality and that traditional software quality measures may not be suitable quality benchmarks in scientific software. However, accessibility issues were identified, highlighting potential societal concerns. Based on these findings, we offer practical advice for quality improvements from a software engineering perspective. Further research is needed to obtain more conclusive and general results.
|
113 |
Dependability as a computational quality attributeHouchin, Charles Andrew 01 October 2002 (has links)
No description available.
|
114 |
Enhancing Software Refactoring in the Sri Lankan Software Development Industry through Machine Learning Techniques:Challenges, and Intentions.Muthuhetti Gamage, Shalika Udeshini January 2024 (has links)
Software refactoring is a crucial approach in both development and maintenance to improve the efficiency, maintainability, and structure of software systems. However, a number of challenges remain in the way of the effective implementation of software refactoring techniques within Sri Lanka's software development industry. This thesis investigates the challenger in software refactoring process in Sri Lanka software development companies and examine the intentions of developers, software test automation engineer and project managers on the usage on the machine learning techniques for software refactoring and the study uses the Unified Theory of Acceptance and usage of Technology 2 (UTAUT2) extended model. The study demonstrates that professional in software development Industry have positive intentions toward the usage of machine learning techniques, motivated by benefits they perceive, such as increased productivity, maintenance, and improved code quality. This study advances our understanding of software refactoring and theadoption of new ML technologies and offers insightful information to researchers, practitioners, and decision- makers in the Sri Lankan IT sector and beyond.
|
115 |
[en] A MECHANISM BASED ON LOGS WITH META-INFORMATION FOR THE VERIFICATION OF CONTRACTS IN DISTRIBUTED SYSTEMS / [pt] UM MECANISMO BASEADO EM LOGS COM META-INFORMAÇÕES PARA A VERIFICAÇÃO DE CONTRATOS EM SISTEMAS DISTRIBUÍDOSPEDRO DE GOES CARNAVAL ROCHA 19 March 2015 (has links)
[pt] Contratos de software podem ser escritos como expressões lógicas capazes
de identificar falhas que ocorrem durante a utilização de um software. É possível
implementar a verificação de um contrato em um software através de assertivas
executáveis. No entanto, a forma como assertivas convencionais são
implementadas não é diretamente aplicável a sistemas distribuídos, uma vez que
apresentam dificuldades para avaliar expressões temporais, tampouco as
expressões podem envolver propriedades de diferentes processos. Este trabalho
propõe um mecanismo baseado em logs com meta-informações para a verificação
de contratos em sistemas distribuídos. Uma gramática para redigir contratos
possibilita operações temporais, ou seja, permite a especificação de condições
entre eventos, em diferentes instantes de tempo, ou mesmo garante uma sequência
de eventos, durante um período de tempo. O fluxo de eventos gerado é avaliado
assincronamente em relação à utilização do sistema, pela comparação com
contratos, previamente escritos de acordo com a gramática, que representam as
expectativas sobre o comportamento normal do sistema. / [en] Software contracts can be written as assertions that identify failures
observed while using the software. Software contracts can be implemented
through executable assertions. However, conventional assertions are not directly
applicable in distributed systems, as they present difficulties to evaluate temporal
expressions, as well as expressions involving properties of different processes.
This work proposes a mechanism based on logs with meta-information to evaluate
contracts in distributed systems. A grammar to write contracts enable temporal
operations, e.g., allows specifying conditions between events at different
timestamps, or even guaranteeing a sequence of events over a period of time. The
flow of events is evaluated asynchronously in relation to the system execution, by
comparison with contracts, previously written according to the grammar,
representing the expectations on the behavior of the system.
|
116 |
Gestion autonomique d'applications dynamiques sûres et résilientes / Autonomic Management of Reliable and Resilient Dynamic ApplicationsCalmant, Thomas 19 October 2015 (has links)
Les architectures orientées services (SOA) sont considérées comme le moyen le plus avancé pour réaliser et intégrer rapidement des applications modulaires et flexibles.Dans ce domaine, les plates-formes SOA à disposition des développeurs et des architectes de produits logiciels sont multiples; les deux plus évoluées d'entre elles étant SCA et OSGi.Une application s'appuyant sur l'une de ces plates-formes peut ainsi être assemblée avec le minimum de composants nécessaires à la réalisation de ses tâches, afin de réduire sa consommation de ressources et d'augmenter sa maintenabilité.De plus, ces plates-formes autorisent l'ajout de composants greffons qui n'étaient pas connus lors des phases initiales de la réalisation du produit.Elles permettent ainsi de mettre à jour, d'étendre et d'adapter continuellement les fonctionnalités du produit de base ou des services techniques nécessaires à sa mise en production, sans interruption de service.Ces capacités sont notamment utilisées dans le cadre du paradigme DevOps et, plus généralement, pour mettre en œuvre le déploiement continu d'artefacts.Cependant, l'extensibilité offerte par ces plates-formes peut diminuer la fiabilité globale du système: une tendance forte pour développer un produit est l'assemblage de composants provenant de tierces-parties. De tels composants peuvent être d'une qualité inconnue voire douteuse.En cas d'erreur, de détérioration des performances, etc., il est difficile de diagnostiquer les composants ou combinaisons de composants incriminés.Il devient indispensable pour le producteur d'un logiciel de déterminer la responsabilité des différents composants impliqués dans un dysfonctionnement.Cette thèse a pour objectif de fournir une plate-forme, Cohorte, permettant de concevoir et d'exécuter des produits logiciels extensibles et résilients aux dysfonctionnements d'extensions non qualifiées.Les composants de tels produits pourront être développés dans différents langages de programmation et être déployés (ajout, mise à jour et retrait) en continu et sans interruption de service.Notre proposition adopte pour principe d'isoler les composants considérés comme instables ou peu sûrs.Le choix des composants à isoler peut être décidé par l'équipe de développement et l'équipe opérationnelle, à partir de leur expertise, ou bien déterminé à partir d'une combinaison d'indicateurs.Ces derniers évoluent au cours du temps pour refléter la fiabilité des composants.Par exemple, des composants peuvent être considérés fiables après une période de quarantaine; une mise à jour peut entraîner la dégradation de leur stabilité, etc..Par conséquent, il est indispensable de remettre en cause les choix initiaux dans l'isolation des composants afin, dans le premier cas, de limiter le coup des communications entre composants et, dans le deuxième cas, de maintenir le niveau de fiabilité du noyau critique du produit. / Service-Oriented architectures (SOA) are considered the most advanced way to develop and integrate modular and flexible applications.There are many SOA platforms available for software developers and architects; the most evolved of them being SCA and OSGi.An application based on one of these platforms can be assembled with only the components required for the execution of its tasks, which helps decreasing its resource consumption and increasing its maintainability.Furthermore, those platforms allow adding plug-ins at runtime, even if they were not known during the early stages of the development of the application.Thus, they allow updating, extending and adapting the features of the base product or of the technical services required for its execution, continuously and without outage.Those capabilities are applied in the DevOps paradigm and, more generally, to implement the continuous deployment of artifacts.However, the extensibility provided by those platforms can decrease the overall reliability of the system: a strong tendency in software development is the assembly of third-parties components.Such components may be of unknown or even questionable quality.In case of error, deterioration of performance, ... it is difficult to identify the implicated components or combinations of components.It becomes essential for the software producer to determine the responsibility of the various components involved in a malfunction.This thesis aims to provide a platform, Cohorte, to design and implement scalable software products, resilient to malfunctions of unqualified extensions.The components of such products may be developed in various programming languages and be deployed continuously (adding, updating and withdrawal) and without interruption of service.Our proposal adopts the principle of isolating the components considered unstable or insecure.The choice of the components to be isolated may be decided by the development team and the operational team, from their expertise, or determined from a combination of indicators.The latters evolve over time to reflect the reliability of components.For example, components can be considered reliable after a quarantine period; an update may result in deterioration of stability, ...Therefore, it is essential to question the initial choices in isolating components to limit, in the first case, the scope of communications between components and, in the second case, to maintain the reliability of the critical core of the product.
|
117 |
Avaliação de qualidade em aplicativos educacionais móveis / Quality evaluation of mobile learning applicationsSoad, Gustavo Willians 21 June 2017 (has links)
Estudos indicam que a utilização de aplicativos educacionais móveis vêm crescendo continuamente, possibilitando a alunos e professores maior flexibilidade e comodidade na execução de atividades e práticas educacionais. Embora várias instituições já tenham aderido à modalidade de aprendizagem móvel (m-learning), sua adoção ainda traz problemas e desafios organizacionais, culturais e tecnológicos. Um destes problemas consiste em como avaliar adequadamente a qualidade dos aplicativos educacionais desenvolvidos. De fato, os métodos existentes para avaliação da qualidade de software ainda são muito genéricos, não contemplando aspectos específicos aos contextos pedagógico e móvel. Nesse cenário, o presente trabalho apresenta o método MoLEva, desenvolvido para avaliar a qualidade de aplicativos educacionais móveis. O método tem como base a norma ISO/IEC 25000, sendo composto por: (i) modelo de qualidade; (ii) métricas; e (iii) critérios de julgamento. Para validar o método, foram realizados dois estudos de caso; o primeiro consistiu na aplicação do MoLEva para avaliar o aplicativo do ENEM; o segundo consistiu na aplicação do método para avaliação de aplicativos para o ensino de idiomas. A partir dos resultados obtidos, foi possível identificar problemas e pontos de melhoria nos aplicativos avaliados. Além disso, os estudos de caso conduzidos forneceram bons indicativos a respeito da viabilidade de uso do método MoLEva na avaliação de aplicativos educacionais móveis. / Studies indicate that the use of mobile learning applications has grown continuously, allowing students and teachers greater flexibility and convenience in the execution of educational activities and practices. Although several institutions have already adhered to the mobile learning (m-learning) modality, their adoption still brings organizational, cultural and technological problems and challenges. One of these problems is how to adequately evaluated the quality of the mobile learning applications developed. In fact, existing methods for evaluating software quality are still very generic, not considering aspects specific to the pedagogical and mobile contexts. In this scenario, the present work presents the MoLEva method, developed to evaluate the quality of mobile learning applications. The method is based on the ISO / IEC 25000 standard, being composed of: (i) quality model; (ii) metrics; and (iii) criteria of judgment. To validate the method, two case studies were performed; the first consisted of applying MoLEva to evaluate the ENEM application; the second consisted of applying the method for evaluating applications for language teaching. From the obtained results, it was possible to identify problems and improvement points in the evaluated applications. In addition, the case studies conducted provided good indications regarding the feasibility of using the MoLEva method in evaluating mobile learning applications.
|
118 |
The UX-Frontend Development Boundary : Bridging the Gap with WYSIWYG ToolsEnryd, Isabella January 2019 (has links)
There is currently a clear boundary between web UX design and frontend development and thispaper explores the possibility of bridging said gap with the help of WYSIWYG (What You See IsWhat You Get) tools. In such a situation, WYSIWYG tools would generate markup code fromprototypes created by UX designers that could be directly handed over to frontend developers –saving time and decreasing misunderstandings between the two roles. However, despite thesetools dating back more than two decades, the tools are not actually commonly used for thispurpose. The aim of this paper is therefore to find out why, as well as explore what is necessaryfor these tools to bridge the web UX design-frontend gap. In order to do so, two studies wereconducted – first an evaluation study in which two WYSIWYG tools were methodically testedusing a software quality framework, whereas the second study consisted of two interviews withUX designers and web developers. It was ultimately discovered that the tools – apart fromconstraining its users within the tools’ own technical limitations – produced markup code thatwas neither human-readable, semantically correct nor easy to maintain. Thus, it was concludedthat a reformation was necessary for the web UX design and frontend development gap to bebridged with the help of these tools. The paper also theorises on the possibilities of using artificialintelligence to solve some of the tools’ most critical issues.
|
119 |
Quality Evaluation Model for Crisis and Emergency Management Systems-of-Systems / Modelo de Avaliação de Qualidade para Sistemas-de-Sistemas de Gerenciamento de Crises e EmergênciaSantos, Daniel Soares 13 March 2017 (has links)
Systems-of-Systems (SoS) have performed an important and even essential role to the whole society and refer to complex softwareintensive systems, resulted from interoperability of independent constituent systems that work together to achieve more complex missions. SoS have emerged specially in critical application domains and, therefore, high level of quality must be assured during their development and evolution. However, dealing with quality of SoS still presents great challenges, as SoS present a set of unique characteristics that can directly affect the quality of such systems. Moreover, there are not comprehensive models that can support the quality evaluation of SoS. Motivated by this scenario, the main contribution of this Masters project is to present a SoS Evaluation Model, more specifically, addressing the crisis/emergency management domain, built in the context of a large international research project. The proposed model covers important evaluation activities and considers all SoS characteristics and challenges not usually addressed by other models. This model was applied to evaluate a crisis/emergency management SoS and our results have shown it viability to the effective management of the SoS quality. / Sistemas-de-Sistemas (SoS, do inglês Systems-of-Systems) realizam um importante e até essencial papel na sociedade. Referem-se a complexos sistemas intensivos em software, resultado da interoperabilidade de sistemas constituintes independentes que trabalham juntos para realizar missões mais complexas. SoS têm emergido especialmente em domínios de aplicação crítica, portanto, um alto nível de qualidade deve ser garantido durante seu desenvolvimento e evolução. Entretanto, lidar com qualidade em SoS ainda apresenta grandes desafios, uma vez que possuem um conjunto de características únicas que podem diretamente afetar a qualidade desses sistemas. Além disso, não existem modelos abrangentes para o suporte à avaliação de qualidade de SoS. Motivado por este cenário, a principal contribuição deste projeto de mestrado é apresentar um modelo de avaliação para SoS, especialmente destinado ao domínio de gerenciamento de crises e emergências. Este modelo foi construído no contexto de um grande projeto de pesquisa internacional, e cobre as mais importantes atividades de avaliação, considerando as principais características e desafios de SoS geralmente não abordados por outros modelos. Este modelo foi aplicado na avaliação de um SoS de gerenciamento de crises e emergência, e nossos resultados têm mostrado sua viabilidade para o efetivo gerenciamento da qualidade de SoS.
|
120 |
Os processos de desenvolvimento de software: uma investigação sobre a qualidade / The processes of software development: an investigation about qualitySegoria, Angelita Moutin 06 August 2001 (has links)
As realizações e atividades desenvolvidas pelo homem em qualquer segmento produtivo são geradas pela percepção de suas necessidades, pelo acompanhamento da evolução tecnológica e pela adequação aos cenários e aos comportamentos da sociedade, seguindo uma abordagem global. Questões relacionadas aos programas de melhoria da qualidade na indústria do software, hoje caracterizadas como competências qualificadoras para a competitividade, tornar-se-ão um conjunto de exigências básicas para a sobrevivência de longo prazo no mercado internacional. Esta realidade faz parte das empresas do mundo todo, principalmente da empresa brasileira, dada a meta de desenvolvimento e melhoria da qualidade de vida estabelecida para a sociedade. Neste contexto, o mercado em que atuam as empresas de pequeno porte é extremamente competitivo. Em se tratando de melhoria de desenvolvimento de software, o CMM (Capability Maturity Model), desenvolvido pelo Instituto de Engenharia de Software, da Universidade de Carnegie Mellon, por solicitação do Departamento de Defesa Norte Americano, tem como objetivos: avaliar o nível de maturidade das empresas desenvolvedoras de software e propor melhorias para seus processos. Este modelo apresenta cinco níveis crescentes de maturidade: inicial, repetível, definido, gerenciado e em otimização. O objetivo desta dissertação é apresentar uma contribuição às empresas desenvolvedoras de software, em especial às de pequeno porte, que desejam aumentar a qualidade de sues processos de desenvolvimento, utilizando um modelo o qual fora desenvolvido originalmente para grandes empresas e projetos. A investigação exploratória sobre a qualidade nos processos de desenvolvimento de software será enriquecida através de uma aplicação, a qual será realizada em uma empresa desenvolvedora de soluções de software localizada no município de São Carlos, interior de São Paulo. / As technology developments becomes more integrated with everyday business activities, the search for quality has become more important than ever in today\'s organizations. For Brazilian companies that develop software, the quality of the final product is directly related to the quality of its development process. Related to the software quality, the CMM (Capabllity Maturity Model) developed by the Software Engineering Institute of Carnegie Mellon University, is a mo dei that assist companies in the evaluation of its current software development process and enables improvements for this process. This model presents five growing levels of maturity: initial, repeatable, defined, managed and in optimizing. The main goal of this work is to extend through an investigation the state of art of software quality engineering, and to apply the principies and practices of the Second Level of the CMM in a small Brazilian company.
|
Page generated in 0.0649 seconds