85 research outputs found
Performance assessment of an architecture with adaptative interfaces for people with special needs
People in industrial societies carry more and more portable electronic devices (e.g., smartphone or console) with some kind of wireles connectivity support. Interaction with auto-discovered target devices present in the environment (e.g., the air conditioning of a hotel) is not so easy since devices may provide inaccessible user interfaces
(e.g., in a foreign language that the user cannot
understand). Scalability for multiple concurrent users and response times are still problems in this domain. In this paper, we assess an interoperable architecture, which enables interaction between people with some kind of special need and their environment. The assessment, based on performance patterns and antipatterns, tries to detect
performance issues and also tries to enhance the architecture design for improving system performance. As a result of the assessment, the initial design changed substantially. We refactorized the design according to the Fast Path pattern and The Ramp antipattern. Moreover,
resources were correctly allocated. Finally, the required response time was fulfilled in all system scenarios. For a specific scenario, response time was reduced from 60 seconds to less than 6 seconds
Software Perfomance Assessment at Architectural Level: A Methodology and its Application
Las arquitecturas software son una valiosa herramienta para la evaluación de las propiedades cualitativas y cuantitativas de los sistemas en sus primeras fases de desarrollo. Conseguir el diseño adecuado es crítico para asegurar la bondad de dichas propiedades. Tomar decisiones tempranas equivocadas puede implicar considerables y costosos cambios en un futuro. Dichas decisiones afectarían a muchas propiedades del sistema, tales como su rendimiento, seguridad, fiabilidad o facilidad de mantenimiento. Desde el punto de vista del rendimiento software, la ingeniería del rendimiento del software (SPE) es una disciplina de investigación madura y comúnmente aceptada que propone una evaluación basada en modelos en las primeras fases del ciclo de vida de desarrollo software. Un problema en este campo de investigación es que las metodologías hasta ahora propuestas no ofrecen una interpretación de los resultados obtenidos durante el análisis del rendimiento, ni utilizan dichos resultados para proponer alternativas para la mejora de la propia arquitectura software. Hasta la fecha, esta interpretación y mejora requiere de la experiencia y pericia de los ingenieros software, en especial de expertos en ingeniería de prestaciones. Además, a pesar del gran número de propuestas para evaluar el rendimiento de sistemas software, muy pocos de estos estudios teóricos son posteriormente aplicados a sistemas software reales. El objetivo de esta tesis es presentar una metodología para el asesoramiento de decisiones arquitecturales para la mejora, desde el punto de vista de las prestaciones, de las sistemas software. La metodología hace uso del Lenguaje Unificado de Modelado (UML) para representar las arquitecturas software y de métodos formales, concretamente redes de Petri, como modelo de prestaciones. El asesoramiento, basado en patrones y antipatrones, intenta detectar los principales problemas que afectan a las prestaciones del sistema y propone posibles mejoras para mejoras dichas prestaciones. Como primer paso, estudiamos y analizamos los resultados del rendimiento de diferentes estilos arquitectónicos. A continuación, sistematizamos los conocimientos previamente obtenidos para proponer una metodología y comprobamos su aplicabilidad asesorando un caso de estudio real, una arquitectura de interoperabilidad para adaptar interfaces a personas con discapacidad conforme a sus capacidades y preferencias. Finalmente, se presenta una herramienta para la evaluación del rendimiento como un producto derivado del propio ciclo de vida software
Understanding the Correlation between Code Smells And Software Bugs
https://deepblue.lib.umich.edu/bitstream/2027.42/147342/1/CodeSmellsBugs.pd
Detailed Overview of Software Smells
This document provides an overview of literature concerning software smells covering various dimensions of smells along with their corresponding references
An Empirical Study of the Correlation between Code Smells And Software Bugs
Bug predictions helps software quality assurance team to determine the effort required to test the software application. Anti-patterns and code smells can greatly influence the quality of the code. Refactoring can be a solution to remove the negative impact of these anti-patterns. In this paper, we explored the influence of code smells on the code and severity of bugs reported on multiple versions of the projects such as BIRT, Aspect J and SWT. We evaluated the correlation between the different code smells and severity of the bugs reported on these classes. This can help the quality assurance specialists and project managers assess the testing effort required based on the code smells detected. This can prove beneficial to the developers to restructure or refactor before deploying the code in the test environment. On the other hand, the testing team can concentrate on the bug prediction models, testing plan and assess the number of resources needed to perform testing. The empirical validation of our work found a strong correlation between several types of code smells and software bugs based on three large open source projects.Master of ScienceSoftware Engineering, College of Engineering & Computer ScienceUniversity of Michigan-Dearbornhttps://deepblue.lib.umich.edu/bitstream/2027.42/147432/1/Dec 19- Thesis Report_GANESAN GAYATHRI_4pm_FontsEmbedded.pdfDescription of Dec 19- Thesis Report_GANESAN GAYATHRI_4pm_FontsEmbedded.pdf : Thesi
To Do or Not to Do: Semantics and Patterns for Do Activities in UML PSSM State Machines
State machines are used ubiquitously in engineering software-intensive
systems. UML State Machines extend simple finite state machines with powerful
constructs. Among the many extensions, there is one seemingly simple and
innocent language construct that fundamentally changes state machines' reactive
model of computation: doActivity behaviors. DoActivity behaviors describe
behavior that is executed independently from the state machine once entered in
a given state, typically modeling complex computation or communication as
background tasks. However, the UML specification or textbooks are vague about
how the doActivity behavior construct should be appropriately used. This lack
of guidance is a severe issue as, when improperly used, doActivities can cause
concurrent, non-deterministic bugs that are especially challenging to find and
could ruin a seemingly correct software design. The Precise Semantics of UML
State Machines (PSSM) specification introduced detailed operational semantics
for state machines. To the best of our knowledge, there is no rigorous review
yet of doActivity's semantics as specified in PSSM. We analyzed the semantics
by collecting evidence from cross-checking the text of the specification, its
semantic model and executable test cases, and the simulators supporting PSSM.
We synthesized insights about subtle details and emergent behaviors relevant to
tool developers and advanced modelers. We reported inconsistencies and missing
clarifications in more than 20 issues to the standardization committee. Based
on these insights, we studied 11 patterns for doActivities detailing the
consequences of using a doActivity in a given situation and discussing
countermeasures or alternative design choices. We hope that our analysis of the
semantics and the patterns help vendors develop conformant simulators or
verification tools and engineers design better state machine models
- …