• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 88
  • 44
  • 5
  • 5
  • 5
  • 2
  • 2
  • 1
  • 1
  • Tagged with
  • 158
  • 158
  • 142
  • 61
  • 38
  • 36
  • 36
  • 32
  • 28
  • 27
  • 26
  • 25
  • 24
  • 22
  • 20
  • 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.
71

Uma abordagem de desenvolvimento de linha de produtos orientada a modelos para a construção de famílias de sistemas embarcados críticos / A model-driven product line development approach to build safety-critical embedded families

Queiroz, Paulo Gabriel Gadelha 20 January 2015 (has links)
Sistemas embarcados críticos (SEC) correspondem aos sistemas embarcados para aplicações críticas, que são aplicações nas quais falhas podem por vidas em perigo. A crescente imersão deste tipo de sistema em nossas atividades cotidianas aumentou sua demanda, e consequentemente, a necessidade por novas técnicas de desenvolvimento que possam aumentar a produtividade dos desenvolvedores. Linha de produtos (LP) é uma técnica de reúso, na qual famílias de produtos similares são desenvolvidos em conjunto, e portanto, objetiva-se o desenvolvimento em larga escala. Com a utilização de LP, pode-se reusar requisitos e arquitetura de forma sistemática. Entretanto, o reúso no domínio de sistemas embarcados críticos ainda é visto de forma cética. Por outro lado, o domínio de SEC tem obtido avanços de desenvolvimento por meio de técnicas orientadas a modelo. A Engenharia orientada a modelos (MDE) concentra-se na importância de modelos no ciclo de vida do sistema, tornando-os parte do produto final. Assim, mantêm-se os modelos simples, e a maioria da complexidade do software passa a pertencer às transformações, que podem ser obtidas automaticamente por motores de transformação. Isso ajuda a aumentar a qualidade do produto final, bem como facilitar a futura evolução do software, que poderá ser feita mudando-se os modelos de alto nível e obtendo-se, de forma automática, o novo produto. MDE é particularmente útil no domínio de SEC, pois a partir de modelos corretos do problema, a chance de introdução de erros durante a codificação é menor se geradores de aplicações forem utilizados em vez de codificação manual. Além disso, o aumento no nível de abstração proporcionado pelo MDE permite que técnicas de validação e verificação sejam usadas desde os estágios iniciais de desenvolvimento, tais como co-design e co-simulação. Portanto, este trabalho visa defender a tese de que é possível oferecer os benefícios do desenvolvimento em larga escala para o domínio de SEC e ainda continuar se beneficiando de técnicas de MDE. Para corroborar esta tese, define-se uma abordagem de desenvolvimento de linha de produtos de sistema com uso de técnicas de engenharia orientada a modelos para o desenvolvimento de famílias de sistemas embarcados críticos. Além disso, apresenta-se um estudo de caso de marca-passo elaborado segundo as indicações da abordagem proposta que indicam a viabilidade de sua utilização. / Safety-critical embedded systems (SCES) correspond to embedded systems for critical applications, i.e., applications where lives can be lost if they fail. The increasing immersion of this type of system in our daily activities increased their demand and, consequently, the need for new development techniques that can increase developers productivity. Product Line (LP) is a promising technique for reuse, in which families of similar products are developed together and, therefore, it aims at large-scale development. With the use of LP we can reuse requirements and architecture systematically. However, developers remain sceptical about reuse in the SCES domain, mainly due to problems in the past, such as the failure of the spacecraft Ariane 5. In addition, advances in development of techniques for the SEC domain have been obtained, for example through model-driven engineering (MDE) approaches. MDE focuses on the importance of models in the software life cycle, making them part of the final product. So, it keeps models simple, and most of the software complexity belongs to the transformations that can be obtained automatically by transformation engines. This helps increasing the quality of the final product, and facilitate the future development of software that can be done by changing the high level models and obtaining, automatically, the new product. MDE is particularly useful in the SCES domain because, from correct models of the problem, the chance of introducing errors during coding is smaller if generators are used in the development instead of manual coding. In addition, the increased level of abstraction provided by MDE allows the use of validation and verification techniques since the early stages of development, such as co-design and co-simulation. Therefore, this work aims to defend the thesis that it is possible to offer the benefits of large-scale development for the SCES domain and still continue to benefit from MDE techniques. In support of this thesis, we define a system product line approach using model-driven techniques for the development of safety-critical embedded families. In addition, we present a case study prepared according to the directions of approach.
72

Gerenciamento de configuração de uma linha de produtos de software de veículos aéreos não tripulados / Confuguration management of a unmanned aerial vehicles software product line

Steiner, Eduardo Miranda 22 March 2012 (has links)
Veículos Aéreos não Tripulados (VANTs) são aeronaves que voam sem tripulação e são capazes de realizar diversos tipos de missões, como vigilância, coleta de dados topográficos e monitoramento ambiental. Este é um domínio que tem muito a ganhar com a aplicação da abordagem de Linha de Produtos de Software (LPS), uma vez que é rico em variabilidades e cada modelo de VANT tem também muitas partes comuns. Neste trabalho é apresentada uma infraestrutura tecnológica e de configuração de ativos em Simulink, gerenciados pelas ferramentas Pure::variant e Hephaestos para uma LPS de VANTs. Um conjunto de padrões para especificação de variabilidades em Simulink é proposto, bem como uma extensão para a ferramenta Hephaestus. Uma comparação entre as ferramentas Pure::variants e Hephaestus é apresentada / Unmanned Aerial Vehicles (UAVs) are aircrafts that can fly without any crew and are capable to realize several types of missions such as surveillance, topographic data collection and environmental monitoring. This is a domain which can benefit very much with the adoption of the Software Product Lines (SPL) approach, as each UAV model is rich in variabilities and has many common parts. In this work it is presented a software asset configuration infrastructure for the Simulink environment, managed by the tools Pure::variants and Hephaestus for a UAV SPL. A set of patterns of variability specification in Simulink is proposed as well as an extension to Hephaestus to support a SPL product engineering for Simulink. A comparison between Pure::variants and Hephaestus is also presented
73

Diretrizes para desenvolvimento de linhas de produtos de software com base em Domain-Driven Design e métodos ágeis / Guidelines for developing software product lines based on Domain-Driven Design and agile methods.

Macedo, Otávio Augusto Cardoso 20 February 2009 (has links)
Linhas de produtos de software (LPS) são coleções de sistemas que compartilham características comuns, desenvolvidas de forma sistemática a partir de um conjunto comum de ativos centrais. Dentre as técnicas propostas por vários autores para o desenvolvimento de LPS, dois padrões podem ser observados: o processo de desenvolvimento geralmente é sequencial e o foco do projeto (design) costuma estar em interesses técnicos, como alocação de componentes e separação em subsistemas, e não em um modelo de domínio. Embora essas práticas sejam reportadas como bem-sucedidas, um outro paradigma de desenvolvimento, baseado em métodos ágeis e em um conjunto de princípios de projeto conhecido como domain-driven design, é apresentado neste trabalho e pode produzir resultados mais satisfatórios, comparados aos métodos tradicionais. Essa hipótese é sustentada por comparações entre padrões de modelagem e por um estudo de caso feito neste trabalho / Software product lines (SPL) are collections of systems that have common features. Those systems are systematically developed from a common set of core assets. Two patterns outstand among the various techniques proposed by several authors for developing software product lines: the development process is generally sequential and the primary design concerns deal with technical issues, such as component allocation and system partitioning (into subsystems). The importance of a domain model is often neglected. Although such practices have been reported as successful, this work proposes another paradigm, which can yield more satisfactory results. This paradigm is based on agile methods and a set of design principles known as domain-driven design. This hypothesis is supported by comparing different modeling patterns and by developing a case study
74

L'analyse formelle de concepts : un cadre structurel pour l'étude de la variabilité de familles de logiciels / Formal concept analysis : a structural framework to study variability in software families

Carbonnel, Jessie 29 October 2018 (has links)
Des familles de logiciels similaires proviennent fréquemment de pratiques de réutilisation de clones de logiciels existants, qui sont ensuite enrichis ou dépouillés de fonctionnalités pour suivre de nouvelles exigences. Avec le temps, ces variantes se multiplient et se complexifient, et il devient difficile de les maintenir, de les faire évoluer. L’ingénierie des lignes de produits logiciels regroupe un ensemble de méthodes visant à faciliter le développement et la gestion de telles collections de logiciels similaires. Documenter la variabilité est le point central de ce paradigme ; on la représente à travers des modèles de variabilité, qui servent de supports à la grande majorité des processus propres à l’ingénierie des lignes de produits. La migration complète ou partielle de ces familles de logiciels vers des approches de type lignes de produits permet la simplification de leur exploitation. La rétro-ingénierie, la modélisation et la gestion de la variabilité sont reconnues comme une phase cruciale et ardue de cette migration. Par conséquent, de nombreuses approches ont été proposées pour étudier des descriptions de familles de logiciels dans ce but. Plusieurs d’entre elles s’appuient sur l’analyse formelle de concepts, un cadre mathématique de groupement hiérarchique qui organise un ensemble d’objets et leurs descriptions dans une structure canonique mettant naturellement en évidence leurs aspects communs et variables.Dans ce manuscrit, nous défendons l'idée que l’analyse formelle de concepts, plus qu’un outil, offre un véritable cadre structurel et réutilisable à l’étude de la variabilité des familles de produits.Dans un premier temps, nous établissons un panorama des informations sur la variabilité qui sont mises en évidence grâce à ce formalisme, et discutons de son spectre d’applicabilité. Nous étudions les points communs entre les structures conceptuelles produites par l’analyse formelle de concepts et les modèles de variabilité. Dans un second temps, nous illustrons l’utilisation originale de ces structures conceptuelles comme support à des opérations de conception et de recherche d’informations. Enfin, nous élargissons notre champ d’étude aux informations plus complexes définies par des modèles de variabilité qui ont été étendus pour en améliorer l’expressivité, et dont la rétro-ingénierie est encore peu étudiée à ce jour. Nous montrons comment certaines propriétés de l’analyse formelle de concepts permettent de généraliser son utilisation à des descriptions de variantes plus complexes, et étudions son application pour la manipulation d’attributs multivalués et de cardinalités, en complément des caractéristiques booléennes traditionnelles. Nous évaluons notre approche sur des données issues de dépôts tels que SPLOT, fork-insight et de matrices de comparaison de produits de wikipedia. / Software families often rise from reuse practices as cloning existing software products which are then enhanced or pruned to fulfill new requirements. With time, these variants grow in number and in complexity, and become more and more complex to maintain. Software product line engineering gathers a set of methods that aims at facilitating the management and development of such collections of existing variants. Documenting variability is the central point of this paradigm; This variability is represented in variability models that support a large part of software product line engineering processes.The partial or complete migration from software families to a product line approach eases their exploitation.Reverse-engineering, modeling and managing variability are known as crucial tasks of the migration: therefore, numerous methods have been proposed to study descriptions of software families for this goal.Some of them are based on formal concept analysis, a mathematical framework for hierarchical clustering which organises set of objects and their descriptions in canonical structures highlighting naturally their commonalities and variability.In this thesis, we defend that formal concept analysis, more than a tool, is a relevant structural, reusable and extensible framework to study variability of software families.First, we propose an overview of variability information which is highlighted thanks to this framework, and we discuss its scope of applicability.We study the common points between the conceptual structures of formal concept analysis and variability models.Then, we show how to use these conceptual structures to support research and modeling operations.Finally, we broaden the scope of this study to take into account more complex information about extended variability.We evaluate our method on data taken from the SPLOT repository, fork-insight and product comparison matrices from wikipedia.
75

Configuration par modèle de caractéristiques adapté au contexte pour les lignes de produits logiciels : application aux Smart Buildings / Configuring context adapted feature models for software product lines

Possompès, Thibaut 04 October 2013 (has links)
Les lignes de produits logiciels ont pour objectif la réutilisation des documents, codes sources, architectures, et plus généralement tout artefact créé durant le développement de logiciels d'un même domaine. Pour cette réutilisation, on utilise aujourd'hui des ``modèles de caractéristiques''. L'approche consiste à décrire dans ce modèle les caractéristiques des artefacts créés et les contraintes permettant de les assembler, puis à sélectionner les caractéristiques représentatives d'un nouveau produit en le générant en tout ou partie. Dans certaines situations, une caractéristique représente un artefact associé à un élément du contexte que le produit doit gérer. Une telle caractéristique, et les contraintes relatives à sa mise en œuvre, peuvent être clonées pour chaque occurrence de l'élément dans le contexte. Dans le cadre de cette thèse, nous cherchons à déterminer l'impact du contexte d'exécution d'un futur produit sur les caractéristiques d'une ligne de produits logiciels. Nous explorons tout d'abord les différentes manières de représenter un modèle de caractéristiques et le contexte d'un produit. Nous proposons ensuite une méthode générique pour adapter un modèle de caractéristiques aux éléments d'un contexte. Cette thèse a été réalisée dans le contexte du projet RIDER (Reasearch for ITDriven EneRgy efficiency). Ce projet a pour objectif la réduction des pertes énergétiques subies à cause d'une gestion inappropriée des sources et des besoins énergétiques des bâtiments. La variété des équipements et les spécificités de chaque bâtiment nécessitent une adaptation au cas par cas des logiciels d'optimisation énergétique. Nous proposons donc d'appliquer à ce projet une approche par lignes de produits logiciels, et plus particulièrement, notre méthode d'adaptation de modèles de caractéristiques au contexte, pour adapter les logiciels d'optimisation énergétique au contexte spécifique de chaque bâtiment. / Software product lines aim at reusing documents, source code, architectures, and, all artefact created during software development achieved in a given domain. Nowadays, we use ``feature models'' to facilitate the reuse of such elements. The approach consists in describing, in this feature model, artefacts and their usage constraints, and then to identify representative features for creating a new product. In some situations, a feature represents an artefact associated to a context element that must be handled by the product. Such a feature, and its related constraints, can be cloned for each occurrence of instances of this element in a given context. In this thesis, we are try to determine the impact of a product execution context on a future product features. We first explore different ways for representing feature models and a product context. Then, we propose a generic method to adapt a feature model to context elements. This thesis has been achieved in the context of the RIDER project (Research for IT Driven EneRgy efficiency). This project aims at reducing energy waste due to an inappropriate management of energy sources and needs. The heterogeneousness of building equipments and each building specificities require to adapt energy optimisation software. We propose to apply a software product line approach to this project. More precisely, we propose to apply to this project our feature model context adaptation methodology, in order to adapt energy optimisation software to each building specific context.
76

Supporting feature model configuration based on multi-stakeholder preferences

Stein, Jacob January 2015 (has links)
Configuração modelo de features é conhecida por ser uma atividade complexa, demorada e propensa a erros. Esta atividade torna-se ainda mais complicada quando envolve múltiplas partes interessadas no processo de configuração. Trabalhos de pesquisa têm proposto abordagens para ajudar na configuração de modelo de features, mas elas dependem de processos sistemáticos que restringem as decisões de alguns dos stakeholders. Neste trabalho, propomos uma nova abordagem para melhorar o processo de configuração multi-stakeholder, considerando as preferências dos stakeholders expressas através de restrições duras e brandas. Com base em tais preferências, recomendamos diferentes configurações de produto utilizando diferentes estratégias da teoria da escolha social. Nossa abordagem é implementada em uma ferramenta chamada SACRES, que permite criar grupos de stakeholders, especificar preferências dos stakeholders sobre uma configuração e gerar as configurações ideais. Realizamos um estudo empírico para avaliar a eficácia de nossas estratégias no que diz respeito à satisfação individual e justiça entre todos os stakeholders. Os resultados obtidos provem evidência de que estratégias em particular possuem melhor performance em relação à satisfação de grupo, chamadas average e multiplicative considerando as pontuações atribuídas pelos participantes e complexidade computacional. Nossos resultados são relevantes não só no contexto de Linha de Produto de Software, mas também para a Teoria da Escolha Social, dada a instanciação de estratégias de escolha social em um problema prático. / Feature model con guration is known to be a hard, error-prone and timeconsuming activity. This activity gets even more complicated when it involves multiple stakeholders in the con guration process. Research work has proposed approaches to aid multi-stakeholder feature model con guration, but they rely on systematic processes that constraint decisions of some of the stakeholders. In this dissertation, we propose a novel approach to improve the multi-stakeholder con guration process, considering stakeholders' preferences expressed through both hard and soft constraints. Based on such preferences, we recommend di erent product con gurations using di erent strategies from the social choice theory. Our approach is implemented in a tool named SACRES, which allows creation of stakeholder groups, speci cation of stakeholder preferences over a con guration and generation of optimal con guration. We conducted an empirical study to evaluate the e ectiveness of our strategies with respect to individual stakeholder satisfaction and fairness among all stakeholders. The obtained results provide evidence that particular strategies perform best with respect to group satisfaction, namely average and multiplicative, considering the scores given by the participants and computational complexity. Our results are relevant not only in the context software product lines, but also in the context of social choice theory, given the instantiation of social choice strategies in a practical problem.
77

Estudo e definição de uma linha de produtos de software para o desenvolvimento de aplicações educacionais móveis / Study and definition of a software product line for the development of mobile learning applications

Falvo Júnior, Venilton 07 April 2015 (has links)
A popularização dos dispositivos móveis em todas as camadas sociais tem motivado o desenvolvimento de aplicações educacionais móveis, denominadas aplicações de m-learning. Neste cenário, as aplicações existentes, mesmo possuindo diversos benefícios e facilidades no que diz respeito ao ensino e aprendizagem, apresentam problemas e desafios relacionados, sobretudo no que se refere ao desenvolvimento, reuso e padronização arquitetural. Por outro lado, na vertente do reúso de software, percebe-se uma crescente adoção do conceito de Linha de Produtos de Software (LPS). Esse paradigma possibilita às organizações explorar as similaridades e variabilidades de seus produtos, aumentando a reutilização de artefatos e, como consequência, diminuindo custos e tempo de desenvolvimento. Neste trabalho é apresentada uma LPS voltada ao domínio das aplicações de m-learning, denominada M-SPLearning. A proposição da M-SPLearning envolveu desde o estudo inicial para a obtenção de uma análise de domínio efetiva, até a implementação dos componentes previamente analisados. A LPS concebida teve seus respectivos produtos avaliados experimentalmente no cenário industrial, fornecendo evidências de que sua utilização pode acelerar o time-to-market de produtos de m-learning, com um número reduzido de defeitos. / The popularity of mobile devices in all social classes has motivated the development of mobile educational applications, called m-learning applications. The existing applications, even having many benefits and facilities in relation to teaching and learning, also have problems and challenges, especially regarding the development, reuse and architectural standardization. Particularly, there is an increasing adoption of the concept of Software Product Line (SPL) in researches related to reuse. This paradigm enables organizations to explore the similarities and variabilities of their products, increasing the reuse of artifacts and, consequently, reducing costs and development time. This work presents an SPL focused on the domain of m-learning applications, named M-SPLearning. The development of M-SPLearning has comprised since the initial study for an effective domain analysis until the implementation of the components previously analyzed. Such SPL had its products experimentally evaluated in the industrial scenario, providing evidences that its use can accelerate the time-to-market of m-learning applications, with a reduced number of faults.
78

Engineering Families of Software-Intensive Systems using Features, Goals and Scenarios

Eriksson, Magnus January 2007 (has links)
Over the last decade, software has become an integral part of many products with which it is not traditionally associated (e.g., automobiles, medical equipment, home appliances, etc.). This has led to problems in many organizations, since it has proved difficult to integrate software engineering processes with other engineering processes. To address the increased complexity and to coordinate their engineering efforts, many organizations working in such domains have therefore introduced systems engineering into their business processes. Systems engineering is an interdisciplinary approach to system development. Teamwork is essential in developing complex systems, and systems engineering orchestrates this process throughout the lifespan of a system. The focus of systems engineering is on defining customer needs and required functionality, documenting requirements, synthesizing a design and validating the system. A problem with the traditional techniques of systems engineering is, however, that they provide inadequate support for achieving high levels of reuse between different projects. In this dissertation, methods and tools with the overall purpose of providing an improved reuse infrastructure for systems engineering artifacts and their resulting detailed design artifacts are proposed. The proposed methods and tools are based on the software product-line approach, a reuse strategy which focuses on families of related systems that address particular market segments. Studies have shown that if an empirical study does not report experiences from that which practitioners consider a “real” situation, results are likely to be ignored. Even though case studies cannot achieve the scientific rigor of formal experiments, case studies can provide enough information to decide if a specific technology will benefit a particular organization. To ensure industry-relevant research results, case studies on real development projects were chosen as the main vehicle for performing research. This dissertation reports experiences from four empirical studies which were performed within the Swedish defense industry. The studies indicate that the proposed methods and tools indeed provide an improved reuse infrastructure, compared to the previously used methods and tools.
79

Variability Modeling in the Real

Berger, Thorsten 15 May 2013 (has links) (PDF)
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.
80

Einfluss von Eingabedaten auf nicht-funktionale Eigenschaften in Software-Produktlinien

Lillack, Max 13 December 2012 (has links) (PDF)
Nicht-funktionale Eigenschaften geben Aussagen über Qualitätsaspekte einer Software. Mit einer Software-Produktlinie (SPL) wird eine Menge von verwandten Software-Produkten beschrieben, die auf Basis gemeinsam genutzter Bausteine und Architekturen entwickelt werden, um die Anforderungen unterschiedlicher Kundengruppen zu erfüllen. Hierbei werden gezielt Software-Bestandteile wiederverwendet, um Software effizienter zu entwickeln. In dieser Arbeit wird der Einfluss von Eingabedaten auf die nicht-funktionalen Eigenschaften von SPL untersucht. Es wird auf Basis von Messungen ausgewählter nicht-funktionaler Eigenschaften einzelner Software-Produkte ein Vorhersagemodell für beliebige Software-Produkte der SPL erstellt. Das Vorhersagemodell kann genutzt werden, um den Konfigurationsprozess zu unterstützen. Das Verfahren wird anhand einer SPL von verlustfreien Kompressionsalgorithmen evaluiert. Die Berücksichtigung von Eingabedaten kann die Vorhersage von nicht-funktionalen Eigenschaften einer SPL gegenüber einfacheren Vorhersagemodellen ohne die Berücksichtigung von Eingabedaten signifikant verbessern.

Page generated in 0.0642 seconds