• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 27
  • 9
  • 2
  • 1
  • Tagged with
  • 48
  • 48
  • 48
  • 18
  • 13
  • 9
  • 9
  • 8
  • 8
  • 7
  • 7
  • 7
  • 6
  • 6
  • 6
  • 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

Um framework para avaliação sistemática de técnicas de teste no contexto de programação concorrente / A Framework for systematic testing techniques evaluation applied to concurrent programming

Silvana Morita Melo 04 April 2018 (has links)
Contexto: Embora diversas técnicas de teste de software tenham sido propostas para o contexto da programação concorrente, as informações sobre elas encontram-se de dispersas na literatura, não oferecendo uma caracterização apropriada e dados relevantes que possam auxiliar a compreensão e consequente aplicação efetiva dessas técnicas, dificultando o processo de transferência de conhecimento entre a academia e a comunidade interessada. Objetivo: Nesse contexto, o principal objetivo deste trabalho é oferecer subsídios, na forma de um framework, que seja capaz de apoiar a caracterização e seleção sistemática de técnicas de teste de software concorrente. Metodologia: Para atender esse objetivo, foi construído um corpo de conhecimento que reúne de maneira integrada informações relevantes ao processo de tomada de decisão sobre qual técnica de teste aplicar a um determinado projeto de software. Um design de experimentos é definido, funcionando como guia para condução de estudos empíricos que podem ser usados para a realimentação, atualização e evolução do corpo de conhecimento. Buscando sistematizar o processo de seleção de técnicas de teste, é definido um esquema de caracterização que considera as principais características da programação concorrente que influenciam a atividade de teste de software e calcula a adequação desses atributos aos atributos do projeto em desenvolvimento. Resultados e Conclusões: A fim de permitir que a comunidade interaja com o framework proposto, foi disponibilizada uma infraestrutura computacional que permite o acesso ao corpo de conhecimento e automatiza o processo de seleção de técnicas de teste de software concorrente. O estudo experimental conduzido para avaliação da proposta, mostrou que a abordagem contribui de maneira efetiva para caracterizar, comparar e quantificar a adequabilidade baseada em atributos, melhorando consideravelmente o processo de seleção de técnicas de teste para software concorrente segundo as expectativas dos usuários. / Background: Although a variety of concurrent software testing techniques have been proposed for the concurrent programming context, the information about them are scattered in the literature, not offering an appropriate characterization and relevant data that can aid the understanding and consequently the effective application of these techniques, hindering the process of knowledge transfer between the academia and the interested community. Objective: In this context, the main objective of this work is to provide subsidies in form of a framework which will be able to support the characterization and systematic selection of concurrent software testing techniques. Methodology: In order to meet this objective, a body of knowledge has been built that brings together, in an integrated way, information relevant for the decision-making process about what testing technique should be applied in a specific software project. A design of experiments is defined as a guide for conducting empirical studies that can be used for feedback, updating, and evolution of the body of knowledge. With the objective of systematizing the process of testing techniques selection is defined a characterization scheme that considers the main characteristics of the concurrent programming that influence the testing activity and calculates the adequacy for these attributes in comparison with the software project in development. Results and Conclusions: In order to allow the community interaction with the proposed framework was provided a computational infrastructure that allows access to the body of knowledge and the automation of the selection process. The empirical study conducted to evaluate the proposal showed that the approach effectively contributes to characterize, compare and quantify the adequacy based on the attributes, improving the selection process of concurrent software testing techniques according to the users expectations.
32

Testing-Based Conceptual Schema Validation in a Model-Driven Environment

Granda Juca, María Fernanda 13 October 2017 (has links)
Despite much scepticism and problems for its adoption, the Model-Driven Development (MDD) is being used and improved to provide many inherent benefits for industry. One of its greatest benefits is the ability to handle the complexity of software development by raising the abstraction level. Models are expressed using concepts that are not related to a specific implementation technology (e.g. Unified Modelling Language -UML, Object Constraint Language -OCL, Action Language for Foundational UML -ALF), which means that the models can be easier to specify, maintain and document. As in Model-Driven Engineering (MDE), the primary artefacts are the conceptual models, efforts are focused on their creation, testing and evolution at different levels of abstraction through transformations because if a conceptual schema has defects, these are passed on to the following stages, including coding. Thus, one of the challenges for researchers and developers in Model-Driven Development is being able to identify defects early on, at the conceptual schema level, as this helps reduce development costs and improve software quality. Over the last decade, little research work has been performed in this area. Some of the causes of this are the high theoretical complexity of testing conceptual schemas and the lack of adequate software support. This research area thus admits new methods and techniques, facing challenges such as generation of test cases using information external to the conceptual schemas (i.e. requirements), the measurement of possible automation, selection and prioritization of test cases, the need for an efficient support tool using standard semantics, the opportune feedback to support the software quality assurance process and facilitate making decisions based on the analysis and interpretation of the results. The aim of this thesis is to mitigate some of the problems that affect conceptual schema validation by providing a novel testing-based validation framework based on Model-Driven Development. The use of MDD improves abstraction, automation and reuse, which allows us to alleviate the complexity of our validation framework. Furthermore, by leveraging MDD techniques (such as metamodeling, model transformations, and models at runtime), our framework supports four phases of the testing process: test design, test case generation, test case execution and the evaluation of the results. In order to provide software support for our proposal, we developed the CoSTest ALF-based testing environment. To ensure that CoSTest offers the necessary functionality, we first identified a set of functional requirements. Then, after these requirements were identified, we defined the architecture and testing environment of the validation framework, and finally we implemented the architecture in the Eclipse context. CoSTest has been developed to test several properties on the executable model, such as syntactic correctness (i.e. all the elements in the model conform to the syntax of the language in which it is described), consistency between the structural and behavioural parts (its integrity constraints) and completeness (i.e. all possible changes on the system state can be performed through the execution of the operations defined in the executable model). For defective models, the CoSTest report returns a meaningful feedback that helps locate and repair any defects detected. / A pesar del escepticismo y dificultades en su adopción, el Desarrollo Orientado por Modelos (MDD, por sus siglas en inglés) está siendo usado y mejorado para proveer muchos beneficios inherentes a la industria. Uno de sus mayores beneficios es la capacidad de manejar la complejidad del desarrollo de software elevando el nivel de abstracción. Los modelos se expresan utilizando conceptos que no están relacionados con una tecnología de implementación específica (por ejemplo, Lenguaje de Modelado Unificado -UML, Lenguaje de Restricción de Objetos -OCL, Lenguaje de Acción para el Foundational UML - ALF), lo que significa que los modelos pueden ser más fáciles de especificar, mantener y documentar. Debido a que en una Ingeniería dirigida por modelos (MDE), los artefactos primarios son los modelos conceptuales, los esfuerzos se centran en su creación, prueba y evolución a diferentes niveles de abstracción a través de transformaciones, porque si un esquema conceptual tiene defectos, éstos se pasan a las siguientes etapas, incluida la codificación. Por lo tanto, uno de los retos para los investigadores y desarrolladores in MDD es poder identificar los defectos temprano, a nivel de esquemas conceptuales, ya que esto ayudaría a reducir los costos de desarrollo y mejorar la calidad del software. Durante la última década, pocos trabajos de investigación se han realizado en esta área. Algunas de las causas de esta realidad son la alta complejidad teórica de probar esquemas conceptuales y la falta de soporte de software adecuado. Por lo tanto, este área de investigación admite nuevos métodos y técnicas, enfrentando retos como la generación de casos de prueba utilizando información externa a los esquemas conceptuales (es decir, los requisitos), la medición de una posible automatización, selección y priorización de casos de prueba, la necesidad de una herramienta de soporte eficiente que utilice una semántica estándar, la retroalimentación oportuna para apoyar el proceso de aseguramiento de la calidad del software y facilitar la toma de decisiones basadas en el análisis y la interpretación de los resultados. El objetivo de esta tesis es mitigar algunos de los problemas que afectan la validación de los esquemas conceptuales, proporcionando un nuevo marco de validación basado en pruebas que fue construido usando un desarrollo dirigido por modelos. El uso de MDD permite un aumento en la abstracción, automatización y reutilización que nos permite aliviar la complejidad de nuestro marco de validación. Además, al aprovechar las técnicas MDD (como el metamodelado, las transformaciones de modelos y los modelos en tiempo de ejecución), nuestro marco soporta cuatro fases del proceso de prueba: diseño de pruebas, generación de casos de prueba, ejecución de casos de prueba y la evaluación de los resultados. Con el fin de proporcionar soporte de software para nuestra propuesta, hemos desarrollado CoSTest, un entorno de pruebas basado en el lenguaje ALF. Para asegurar que CoSTest ofrece la funcionalidad necesaria, primero identificamos un conjunto de requisitos funcionales. Luego, después de identificar estos requisitos, definimos la arquitectura y el ambiente de pruebas de nuestro marco de validación y, finalmente, implementamos la arquitectura en el contexto de Eclipse. CoSTest ha sido desarrollado para probar varias propiedades sobre el modelo ejecutable como la corrección sintáctica (es decir, todos los elementos del modelo se ajustan a la sintaxis del lenguaje en el que se describe), consistencia entre la parte estructural y el comportamiento (sus restricciones de integridad) y completitud (es decir, todos los cambios posibles en el estado del sistema se pueden realizar a través de la ejecución de las operaciones definidas en el modelo ejecutable). Para los modelos defectuosos, el informe de CoSTest devuelve una retroalimentación significativa que ayuda a localizar y reparar los defectos detec / A pesar de l'escepticisme i les dificultats en la seua adopció, el Desenvolupament Orientat per Models (MDD, segons les sigles en anglès) està sent usat i millorat per tal de proveir molts beneficis potencials inherents a l' indústria. Un dels majors beneficis és la capacitat de manejar la complexitat del desenvolupament del programari elevant el nivell d'abstracció. Els models s'expressen mitjançant conceptes que no estan relacionats amb una tecnologia d'implementació específica (per exemple, el Llenguatge de Modelat Unificat - UML, Llenguatge de Restricció d'Objectes -OCL, Llenguatge d'Acció per al Foundational UML - ALF), el que significa que els models poder ser més fàcils d'especificar, mantindre i documentar. A causa de que en una Enginyeria dirigida per models (MDE), els artefactes primaris són els models conceptuals, els esforços es centren en la seua creació, prova i evolució a diferents nivells d'abstracció mitjançant transformacions, perquè si un esquema conceptual té defectes, aquestos es passen a les següents etapes, inclosa la codificació. Per tant, un del reptes per als investigadors i desenvolupadors en MDD és poder identificar els defectes des del principi, a nivell de esquemes conceptuals, perquè açò ajudaria a reduir els costos de desenvolupament i millora de la qualitat del programari. Durant l'última dècada, pocs treballs d'investigació s'han fet en aquesta àrea. Algunes de les causes d'aquesta realitat són l'alta complexitat teòrica de provar esquemes conceptuals i la falta de suport de programari adequat. Per tant, aquesta àrea d'investigació admet nous mètodes i tècniques, enfrontant reptes com la generació de casos de prova mitjançant informació externa als esquemes conceptuals (es a dir, requisits), la medició de una possible automatització, selecció i priorització de casos de prova, la necessitat de una ferramenta de suport rentable que utilitze una semàntica estàndard, la retroalimentació oportuna per suportar el procés d'assegurament de la qualitat del programari i la facilitat per a prendre decisions basades en l'anàlisi i la interpretació dels resultats. En aquesta tesi intentem mitigar alguns dels problemes que afecten a la validació dels esquemes conceptuals, proporcionant un nou marc de validació basat en proves que va ser construït mitjançant un desenvolupament dirigit per models. L'ús de MDD permet un augment en l'abstracció, automatització i reutilització que ens permet alleujar la complexitat del nostre marc de validació. A més a més, al aprofitar les tècniques MDD (com el metamodelat, les transformacions de models i els models en temps d'execució), el nostre marc suporta quatre fases del procés de prova: disseny, generació i execució de casos de prova, així com l'avaluació de resultats del procés de prova. Amb la finalitat de proporcionar suport de programari per a la nostra proposta, hem desenvolupat un entorn de proves basat en el llenguatge ALF que s'anomena CoSTest. Per tal d'assegurar que CoSTest ofereix la funcionalitat necessària, identifiquem un conjunt de requisits funcionals abans de desenvolupar la ferramenta. Després d'identificar aquestos requisits, definim l'arquitectura i l'ambient de proves del nostre marc de validació, i finalment, implementem l'arquitectura en el context Eclipse. CoSTest ha sigut desenvolupat per provar diverses propietats sobre el model executable com la correcció sintàctica (és a dir, tots els elements del model s'ajusten a la sintaxi del llenguatge en el que es descriu), consistència antre la part estructural i el comportament (les seues restriccions d'integritat) i completitud (és a dir, tots els canvis possibles en l'estat del sistema es poden realitzar mitjançant l'execució de les operacions definides en el model executable). Per als models defectuosos, l'informe de CoSTest retorna una retroalimentació significativa que ajuda a localitzar i reparar els defectes dete / Granda Juca, MF. (2017). Testing-Based Conceptual Schema Validation in a Model-Driven Environment [Tesis doctoral no publicada]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/89091 / TESIS
33

Analysis and Improvement of a Software Production Process based on the Combination of Model Driven Development and Software Product Lines

Echeverría Ochoa, Jorge 10 September 2018 (has links)
La reutilización es un factor clave para reducir los costos y mejorar la calidad de las propiedades de productos software como la seguridad, fiabilidad o rendimiento. Siguiendo este factor surge la aproximación para el desarrollo de software de Líneas de Productos Software; esta aproximación promete, entre otras cosas, acortar el tiempo del desarrollo de los sistemas software y reducir significativamente los costes de desarrollo y mantenimiento. Por otro lado, el Desarrollo Dirigido por Modelos es un enfoque para el desarrollo de software que propone el uso de modelos en varios niveles de abstracción y transformaciones de modelo como artefactos principales. El uso de modelos como los principales artefactos en el desarrollo de software ofrece muchas ventajas a los desarrolladores, por ejemplo, las transformaciones de modelo permiten la conversión de un modelo fuente en otro modelo objetivo, el aumento del nivel de abstracción permite a los desarrolladores centrarse en el problema a resolver y restar importancia a los detalles de implementación. Ambos paradigmas, en la búsqueda de optimizar el tiempo de producción y calidad en el software generado, pueden reunir importantes ventajas en el proceso de producción de software. La combinación de Desarrollo Dirigido por Modelos y Líneas de Producto Software para producir productos software requiere la identificación de nuevos retos y necesidades de los stakeholders involucrados. La investigación presentada en esta tesis tiene el objetivo, apoyada en varios estudios empíricos realizados en entornos industriales, de aumentar el conocimiento y realizar una serie de propuestas de mejora del proceso de desarrollo software fundamentado en la combinación de Desarrollo Dirigido por Modelos y Líneas de Producto Software. Para alcanzar este objetivo se han estudiado cuatro dimensiones: procesado de requisitos, usabilidad, comprensión (en la configuración de productos) y gestión de errores. Cada una de estas dimensiones ha sido abordada en un estudio empírico, estudios presentados en trabajos de investigación y que forman la parte nuclear de esta tesis. Como resultado del trabajo realizado en esta tesis se han elaborado una serie de propuestas para mejorar el proceso de desarrollo software basado en la combinación de Desarrollo Dirigido por Modelos y Líneas de Producto Software y se han generado siete trabajos de investigación. Cinco de estos trabajos han sido presentados en conferencias de relevancia en el ámbito de la Ingeniería del Software: CAiSEForum'15, CAiSE'16, ESEM'16, ISD'17 y ESEM'17. Estos resultados de investigación han sido aplicados en el proceso de desarrollo de software de placas de inducción de la división de electrodomésticos de BSH (Bosch, Siemens, Gaggenau, Neff y Balay) y están siendo utilizados para su aplicación en la actual implantación para el desarrollo de software del PLC que controla los trenes en la empresa Construcciones y Auxiliar de Ferrocarriles. / Software reuse is a key factor in reducing costs and improving the quality of software product properties such as security, reliability, or performance. Taking this factor in account, the Software Product Line approach appears for software development. This approach promises to decrease the time spent in developing software systems and to significantly reduce the costs for development and maintenance of software systems, among other things. In addition, Model Driven Development is an approach for software development that proposes the use of models at various levels of abstraction and model transformations as main artifacts. The use of models as the main artifacts in software development offers many advantages for developers. For instance, model transformations allow the conversion of a source model into another target model. The increase in the level of abstraction allows the developers to focus on the problem to solve, subtracting importance to the implementation details. Both paradigms search to optimize the production time and quality of the generated software, and can result in important advantages in the software production process. However, the combination of Model Driven Development and Software Product Lines to develop software products requires the identification of the challenges and needs of the involved stakeholders. The research presented in this dissertation, supported by several empirical studies carried out in industrial environments, aims to increase the knowledge in the field and to do a set of proposals to improve the software development process based on the combination of Model Driven Development and Software Product Lines. To achieve this objective, four dimensions have been studied: requirements processing, usability, comprehension (configuring software products), and error management. The dimensions have been addressed through empirical studies, presented in research papers. These papers conform the core of this dissertation. As result of the work carried out for this dissertation, a set of proposals to improve the software development process based on the combination of Model Driven Development and Software Product Lines have been generated. Furthermore, seven research papers have been published. Five of these works have been presented at relevant conferences in the Software Engineering field: CAiSE Forum'15, CAiSE'16, ESEM'16, ISD'17 and ESEM'17. These research results have been applied in the software development process of the induction hobs from the electrical appliances division of BSH (under the brands Bosch, Siemens, Gaggenau, Neff, and Balay), and are also being used in the current implementation of the PLC that controls the trains manufactured by the Construcciones y Auxiliar de Ferrocarriles company. / La reutilització és un factor clau per a reduir els costos i millorar la qualitat de les propietats de productes programari com la seguretat, fiabilitat o rendiment. Seguint aquest factor sorgeix l'aproximació per al desenvolupament de programari utilitzant Línies de Productes Programari; aquesta aproximació promet, entre altres coses, escurçar el temps del desenvolupament dels sistemes programari i reduir significativament els costos de desenvolupament i manteniment. D'altra banda, el Desenvolupament Dirigit per Models és un enfocament per al desenvolupament de programari que proposa l'ús de models en diversos nivells d'abstracció i transformacions de model com artefactes principals. L'ús de models com els principals artefactes en el desenvolupament de programari ofereix molts avantatges als desenvolupadors, per exemple, les transformacions de model permeten la conversió d'un model font en un altre model objectiu, l'augment del nivell d'abstracció permet als desenvolupadors centrar-se en el problema a resoldre i restar importància als detalls d'implementació. Tots dos paradigmes, en la cerca d'optimitzar el temps de producció i qualitat en el programari generat, poden reunir importants avantatges en el procés de producció de programari.La combinació de Desenvolupament Dirigit per Models i Línies de Producte Programari per a produir productes programari requereix la identificació de nous reptes i necessitats dels \ingles{stakeholders} involucrats. La recerca presentada en aquesta tesi té l'objectiu, recolzada en diversos estudis empírics realitzats en entorns industrials, d'augmentar el coneixement i realitzar una sèrie de propostes de millora del procés de desenvolupament de programari fonamentat en la combinació de Desenvolupament Dirigit per Models i Línies de Producte Programari. Per a aconseguir aquest objectiu s'han estudiat quatre dimensions: processament de requisits, usabilitat, comprensió (en la configuració de productes) i gestió d'errors. Cadascuna d'aquestes dimensions ha sigut abordada en un estudi empíric, estudis presentats en treballs de recerca i que formen la part nuclear d'aquesta tesi. Com a resultat del treball realitzat en aquesta tesi s'han elaborat una sèrie de propostes per a millorar el procés de desenvolupament programari basat en la combinació de Desenvolupament Dirigit per Models i Línies de Producte Programari i s'han generat set treballs de recerca. Cinc d'aquests treballs han sigut presentats en conferències de rellevància en l'àmbit de l'Enginyeria del Programari: CAiSEForum'15, CAiSE'16, ESEM'16, ISD'17 i ESEM'17. Aquests resultats de recerca han sigut aplicats en el procés de desenvolupament de programari de plaques d'inducció de la divisió d'electrodomèstics de BSH (Bosch, Siemens, Gaggenau, Neff i Balay) i estan sent utilitzats per a la seua aplicació en l'actual implantació per al desenvolupament de programari del PLC que controla els trens en l'empresa Construcciones y Auxiliar de Ferrocarriles. / Echeverría Ochoa, J. (2018). Analysis and Improvement of a Software Production Process based on the Combination of Model Driven Development and Software Product Lines [Tesis doctoral no publicada]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/107734 / TESIS
34

Automated Modeling of Human-in-the-Loop Systems

Noah M Marquand (11587612) 22 November 2021 (has links)
Safety in human in the loop systems, systems that change behavior with human input, is difficult to achieve. This difficulty can cost lives. As desired system capability grows, so too does the requisite complexity of the system. This complexity can result in designers not accounting for every use case of the system and unintentionally designing in unsafe behavior. Furthermore, complexity of operation and control can result in operators becoming confused during use or receiving insufficient training in the first place. All these cases can result in unsafe operations. One method of improving safety is implementing the use of formal models during the design process. These formal models can be analyzed mathematically to detect dangerous conditions, but can be difficult to produce without time, money, and expertise.<br> This document details the study of potential methods for constructing formal models autonomously from recorded observations of system use, minimizing the need for system expertise, saving time, money, and personnel in this safety critical process. I first discuss how different system characteristics affect system modeling, isolating specific traits that most clearly affect the modeling process Then, I develop a technique for modeling a simple, digital, menu-based system based on a record of user inputs. This technique attempts to measure the availability of different inputs for the user, and then distinguishes states by comparing input availabilities. From there, I compare paths between states and check for shared behaviors. I then expand the general procedure to capture the behavior of a flight simulator. This system more closely resembles real-world safety critical systems and can therefore be used to approximate a real use case of the method outlined. I use machine learning tools for statistical analysis, comparing patterns in system behavior and user behaviors. Last, I discuss general conclusions on how the modeling approaches outlined in this document can be improved and expanded upon.<br> For simple systems, we find that inputs alone can produce state machines, but without corresponding system information, they are less helpful for determining relative safety of different use cases than is needed. Through machine learning, we find that records of complex system use can be decomposed into sets of nominal and anomalous states but determining the causal link between user inputs and transitions between these conditions is not simple and requires further research.
35

[en] A QUANTITATIVE APPROACH TO ASPECT ORIENTED SOFTWARE DEVELOPMENT / [pt] UMA ABORDAGEM QUANTITATIVA PARA DESENVOLVIMENTO DE SOFTWARE ORIENTADO A ASPECTOS

EDUARDO MAGNO LAGES FIGUEIREDO 05 July 2006 (has links)
[pt] O desenvolvimento de software orientado a aspectos é um paradigma recente que introduz novas abstrações e mecanismos com o objetivo de melhorar a modularidade de interesses que se espalham pelo sistema. Entretanto, a satisfação de atributos de qualidade em sistemas orientados a aspectos não é tarefa simples e a utilização equivocada destas novas abstrações pode resultar em efeitos colaterais relacionados a princípios importantes da Engenharia de Software, tais como elevado acoplamento, baixa coesão dos módulos e incompleta modularidade dos interesses em aspectos. Problemas como estes não são facilmente verificáveis em sistemas de médio e grande porte sem um método adequado e, geralmente, consomem muito tempo e recursos. Portanto, torna-se necessário um método de avaliação que auxilie engenheiros de software na análise de sistemas orientados a aspectos. Este trabalho de mestrado propõe uma abordagem que provê suporte à avaliação quantitativa de implementações orientadas a aspectos. A abordagem incluiu: (i) um método de avaliação organizado em etapas, e (ii) uma ferramenta de medição e avaliação, chamada AJATO, que dá suporte ao método proposto. O método é composto por um conjunto de métricas e regras heurísticas. As métricas fornecem informações quantitativas e as heurísticas contribuem com algum raciocínio semântico dos números. A ferramenta AJATO é composta por quatro módulos que efetuam o parser do código, mapeamento de estruturas sintáticas em interesses, medição e avaliação heurística. Um conjunto de cinco estudos de caso envolvendo domínios de aplicação distintos foi realizado para avaliar a utilidade e usabilidade da abordagem proposta. / [en] Aspect-oriented software development is an emerging paradigm that provides new abstractions and mechanisms to support the modularization of crosscutting concerns through the software development lifecycle. However, the achievement of high-quality aspect-oriented software is not trivial. The inappropriate use of aspect-oriented abstractions and mechanisms potentially leads to the violation of important design principles, such as low coupling, high cohesion, incomplete modularization of crosscutting concerns into aspects, and so forth. These problems are not easily detectable and an ad hoc analysis of large designs and implementations is often expensive and time- consuming. Hence there is a need for an assessment method that assists software engineers in the analysis of their aspect-oriented implementations. This work proposes the development of a systematic approach to support the quantitative assessment of aspect-oriented software. The approach is organized in a stepwise fashion and is founded on a metrics suite and a comprehensive set of complementary rules. Our proposal is supported by a measurement and assessment tool. A set of five case studies from different application domains have been carried out in order to evaluate the usability and usefulness of our proposed approach.
36

[en] FROM OBJECTS TO AGENTS: AN ASPECT ORIENTED APPROACH / [pt] OBJETOS E AGENTES: UMA ABORDAGEM ORIENTADA A ASPECTOS

ALESSANDRO FABRICIO GARCIA 13 July 2004 (has links)
[pt] Agentes de software incorporam várias propriedades específicas, como autonomia, adaptação, interação, aprendizagem e mobilidade. A inclusão dessas propriedades de agência é uma das maiores fontes de complexidade na construção de sistemas multiagentes. Dificilmente elas são modularizadas com abstrações e mecanismos da engenharia de software orientada a objetos. À medida que a complexidade da arquitetura interna dos agentes aumenta, essas propriedades tendem a se espalhar através dos vários módulos ou objetos do sistema. O espalhamento é observado desde fases preliminares de desenvolvimento, como a fase de definição arquitetural. O uso de abstrações e mecanismos existentes conduz ao projeto e à implementação de sistemas multiagentes que são difíceis de manter e reutilizar. Este trabalho apresenta uma abordagem orientada a aspectos para o desenvolvimento de sistemas baseados em agentes. A abordagem provê suporte para modularização e composição das propriedades de agência por meio de abstrações e mecanismos do paradigma orientado a aspectos. Além disso, tais propriedades são incorporadas de forma transparente à funcionalidade básica do sistema de software, desde a fase de definição arquitetural. A abordagem compreende três componentes: (i) um método arquitetural, (ii) uma linguagem de padrões e (iii) um framework para avaliação quantitativa. O método e a linguagem apresentam um conjunto de soluções orientadas a aspectos para a definição arquitetural, projeto e implementação de agentes de software. O framework define um conjunto de métricas e um modelo de qualidade que permite a avaliação empírica da nossa abordagem em termos de reusabilidade e manutenibilidade. Estudos experimentais qualitativos e quantitativos foram realizados para avaliar nossa proposta em diferentes domínios de aplicação. Os resultados empíricos concluíram que nossa abordagem permite a construção de sistemas baseados em agentes com modularização superior, menor acomplamento, menos linhas de código e menor complexidade interna dos componentes. / [en] Software engineers of Multi-Agent Systems (MASs) are faced with different concerns (properties), such as autonomy, adaptation, interaction, collaboration, learning, and mobility. Many of these agent concerns cannot be modularized based only on object-oriented abstractions. MAS developers however have relied mostly on objectoriented design techniques and on object-oriented programming languages, such as Java. As the agent complexity increases, the agent concerns tend to spread across several system components at the architectural, design and implementation levels. It often leads to a poor separation of agent concerns in the software system, and in turn to the production of MASs that are difficult to maintain and reuse. This thesis presents an innovative aspect-oriented approach for the seamless integration of agents into object-oriented software engineering from the architectural stage to the implementation stage. Aspect is the abstraction used to modularize agent concerns that crosscut several system components. The proposed approach encourages the separate handling of agent properties, and provides a disciplined scheme for their composition. The approach is composed of an architectural method, a pattern language, and an assessment framework. The architectural method and the pattern language provide aspect-oriented solutions for modularizing the agent concerns at different stages of design and implementation. The purpose of the assessment framework is to support the evaluation of the reusability and maintainability of aspect-oriented solutions based on a metrics suite and a quality model. Experimental studies in different application domains have been conducted to assess the proposed approach based on qualitative and quantitative criteria. The use of the aspect-oriented solutions resulted in fewer lines of code, fewer design and implementation components, lower internal complexity of system components, and lower coupling.
37

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.

Melo, Claudia de Oliveira 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.
38

[en] ENGINEERING SELF-ORGANIZING EMERGENT MULTI-AGENT SYSTEMS: A DESIGN METHOD AND ARCHITECTURE / [pt] ENGENHARIA DE SISTEMAS MULTI-AGENTES AUTO- ORGANIZÁVEIS: UM MÉTODO DE PROJETO E ARQUITETURA

MAIRA ATHANAZIO CERQUEIRA GATTI 24 September 2010 (has links)
[pt] Arquitetos de software utilizam cada vez mais mecanismos de auto- organização para projetar sistemas distribuídos em um ambiente dinâmico, com ruído e imprevisível. Neste cenário, além de não existir uma entidade centralizadora que possua o conhecimento completo do estado do ambi- ente como um todo, mecanismos de auto-organização são principalmente inspirados pela natureza e permitem o comportamento com controle de- scentralizado. Existem duas linhas de pesquisa que direcionam esta tese: a primeira, como é o caso de qualquer paradigma de engenharia de soft- ware, o sucesso e abrangência de uso de sistemas auto-organizáveis requerem notações que exploram o uso de abstrações relacionadas a auto-organização e promovam a rastreabilidade a partir de modelos de projeto à código, e re- querem métodos de engenharia para prover know-how e guiar um engenheiro durante o projeto da aplicação. A segunda linha de pesquisa foca no incen- tivo do reuso de software em sistemas auto-organizáveis. Os objetivos desta tese são: prover um método de engenharia baseado em simulação para apoiar o projeto, desenvolvimento, simulação, validação e refinamento de sistemas multi-agentes auto-organizáveis; e prover uma arquitetura baseada em sim- ulação. Um projeto arquitetural ajuda no desenvolvimento de uma estrutura de programa modular e na representação dos relacionamentos de controle entre módulos e encoraja o engenheiro de software a se concentrar no pro- jeto arquitetural antes de se preocupar com otimizações e código. Esta tese apresenta: um ciclo de vida de desenvolvimento iterativo baseado no Pro- cesso Unificado, SSOA - uma arquitetura de auto-organização baseada em simulação, e o framework que implementa a arquitetura. O método de pro- jeto e a arquitetura foram avaliados através de três domínios de aplicação diferentes: veículos guiados automatizados, contratos que governam sistemas multi-agentes emergentes, e modelagem computacional do comportamento de células-tronco. / [en] Software architects are increasingly relying on self-organizing mechanisms to design distributed systems within a dynamic, noisy and unpredictable envi- ronment. At any point in time, no centralized entity has complete knowledge of the state of the environment as a whole and self-organizing mechanisms are mainly naturally-inspired which enables the decentralized control. There are two tracks that drive the research in this thesis: first, as it is the case with any new software engineering paradigm, the successful and widespread deployment of self-organizing systems require notations that explore the use of self-organizing related abstractions and promote the traceability from the design models to code, and engineering methods that provides know-how and guides an engineer during an application design. The second research track is to promote software reuse of self-organizing systems. This thesis’s goals are: to provide a simulation-based engineering method to support the design, development, simulation, validation and refinement of self-organizing multi-agent systems; and to provide a simulation-based architecture. An ar- chitectural design helps on the development of a modular program structure and on the representation of the control relationships between modules and encourages the software engineer to concentrate on architectural design be- fore worrying about optimizations or code. We present: an iterative develop- ment life-cycle based on a customization of the Unified Process, the SSOA – Simulation-based Self-Organizing Architecture –, and the framework that implements the architecture. We have evaluated the design method and ar- chitecture using three different application domains: the automated guided vehicles, the contracts that govern emergent multi-agent systems, and the stem cell behavior computational modeling.
39

Are Students Good Proxies for Studying Professional : A Systematic Literature Review / Are Students Good Proxies for Studying Professional : A Systematic Literature Review

Kotakonda, Sharat Chandra, Engu, Ranjith January 2012 (has links)
Context: The problem this thesis address is concerned with experimental software engineering and is associated with validity of the studies with students as subjects. Often in software engineering experiments students are used because students are easily available and are willing to participate in experiment studies, professionals are rarely available to participate in research study and there are several benefits of using students as research subject.The validity of experiments studied with students are questioned because students are less experienced and skilled compared to professionals. Objectives: The goal of this research is to find evidence whether or not the research studies with students as subjects can be trusted to get valid results. Identify factors that influence the results of experiment studies with students. Identify the ways to improve the validity of experiment studies with students. Methods: In this systematic literature review a number of article sources are used, including Compendex, Inspec, IEEE Xplore, ACM Digital Library, and Springer Link. Experiment studies in software engineering are selected after reading titles and abstracts to decide whether the articles are relevant to the subject. Snowball sampling is done to identify several experiment studies that address same research problems. Results: It is found that graduate students serve as good proxies to study professional practices compared to undergraduate students, because there are significant differences between result/findings of studies with undergraduate students as subjects and studies with professionals as subjects. The following factors influencing the results of experiment studies are identified: Number of subjects, Task related knowledge, Motivation levels of subjects, Training provided, Task related experience and Incentives or grades given for participation in the experiment. This study also identifies some problems with the way of conducting and reporting experiments in software engineering. Addressing these problems could improve the validity of experiment studies with students. Conclusion: The results indicate that students can be used to study professional practices but they cannot be said true for all areas and problems of software engineering because the results of experiment studies with different type of subjects in different area and problems are varying. Which means that whether or not students could be used to study a professional practice depends upon the research problems being studied, type of students subjects chosen for the study, difference between students chosen and professionals to whom the results/findings will be generalized. We conclude that graduate students serve as good proxies to study professional practices compared to undergraduate students. The cumulative experience or overall industry or academic experience of subjects does not seem to be affecting the result/findings of experiment studies unless the overall experience includes task related experience. Even though the study identified above mentioned factors that influences the results/findings of experiment studies there still might be few factors which the study might have failed to identify due lack of data. We suggested improvements for reporting that could improve the comparability of studies. / Often in software engineering experiments students are used because students are easily available and are willing to participate in experiment studies, where as professionals are rarely available to participate in research study. This thesis investigates whether it is ok to use students as experiments subjects while studying professional practices. Thesis also investigates the factors which influences the results of experiment studies with students. The derived knowledge from the thesis can assists researchers improve the way of conducting and reporting software engineering experiments, It also aids in improving the comparability of experiment studies.
40

[en] MAINTAINABILITY AND REUSABILITY OF ASPECT-ORIENTED SOFTWARE: AN ASSESSMENT FRAMEWORK / [pt] MANUTENIBILIDADE E REUSABILIDADE DE SOFTWARE ORIENTADO A ASPECTOS: UM FRAMEWORK DE AVALIAÇÃO

CLAUDIO 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.

Page generated in 0.5003 seconds