• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 102
  • 20
  • 17
  • 10
  • 5
  • 4
  • 3
  • 2
  • 2
  • 2
  • 2
  • 1
  • Tagged with
  • 197
  • 197
  • 93
  • 76
  • 73
  • 63
  • 45
  • 39
  • 32
  • 30
  • 30
  • 28
  • 27
  • 26
  • 25
  • 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.
91

Metaprojektavimo aspektų realizavimas pakartotinio naudojimo technologija grindžiamose informacinėse sistemose / Implementation of meta-design aspects for information systems based on reuse technology

Ridikaitė, Milda 16 August 2007 (has links)
Dokumento tikslas yra pristatyti pakartotinio panaudojimo technologijos, komponentais grįsto projektavimo ir metaprojektavimo aspektų simbiozės. Simbiozė realizuojama per programinės įrangos architektūros modelį ir rinkinį pakartotinio panaudojimo komponentų, kurie sukurti įtraukti galutinį vartotoją į programinės įrangos procesą kaip projektuotoją. / The aim of this paper is to present symbiosis of reuse technology, component based design and meta-project aspects. Symbiosis occurs through software architectural model and set of reusable components designed to involve end-user to software development process as designer. Theoretical background of specified model is delivered in the beginning sections of this thesis. As experimental solution information system was introduced. System provides a pack of highly configurable and customizable components designed to achieve common tasks. Unexpected or rare tasks are solved by providing extra components, which are developed and integrated to entire system according predefined rules. Several complete definitions and application areas of those components are given. Paper also includes statistics about reusable component life cycle in different software projects: how often they are reused and for what purpose. Thesis is concluded with pros and cons of suggested model.
92

Representing Design Patterns As Super Components In Component Oriented Software Engineering

Avkarogullari, Okan 01 February 2004 (has links) (PDF)
It is widely believed and empirically shown that component reuse improves both the quality and productivity of software development. This brings the necessity of a graphical editor to model the projects by using components. A graphical editor was implemented for the development of Component Oriented software development. The editor facilitates modeling efforts through application of the graphical modeling language COSEML. Both design patterns and software components have come to play important roles in software development. The correlation between software components and design patterns is apparent. In the design phase of the projects design patterns are used widely both in component and object oriented projects. Design patterns can be used as super components in component-based development . Software reuse, software components, design patterns, use of design patterns in component-based development, and component architectures are studied in details to address the need for the approach. COSE modeling activity starts with the decomposition of the target system into building blocks in a top-down order. Next, interfaces between these blocks are defined. If required design patterns can be added to model as super components.
93

Vers une modélisation et un dimensionnement automatique des systèmes répartis / Automatic performance modelling of black boxes towards self-sizing

Harbaoui, Ahmed 21 October 2011 (has links)
De nos jours, les systèmes distribués sont caractérisés par une complexité croissante de l'architecture, des fonctionnalités et de la charge soumise. Cette complexité induit souvent une perte de la qualité de service offerte, ou une saturation des ressources, voire même l'indisponibilité des services en ligne, en particulier lorsque la charge est importante. Afin d'éviter les désagrèments causés par d'importantes charges et remplir le niveau attendu de la qualité de service, les systèmes nécessitent une auto-gestion, en optimisant par exemple un tier ou en le renforçant à travers la réplication. Cette propriété autonome requiert une modélisation des performances de ces systèmes. Visant cet objectif, nous développons un framework basé sur une méthodologie théorique et expérimentale d'identification automatique de modèle et de dimensionnement, fournissant en premier un modèle de réseau de file d'attente pour un système distribué. Ensuite, ce Modèle est utilisé au sein de notre framwork pour dimensionner le système à travers une analyse ou une simulation du réseau de file d'attente. / Modern distributed systems are characterized by a growing complexity of their architecture, functionalities and workload. This complexity, and in particular significant workloads, often lead to quality of service loss, saturation and sometimes unavailability of on-line services. To avoid troubles caused by important workloads and fulfill a given level of quality of service (such as response time), systems need to self-manage, for instance by tuning or strengthening one tier through replication. This autonomic feature requires performance modelling of systems. In this objective, we developed a framework based on a theoretical and experimental approach for automatic identification process and sizing . This framework provid a queuing model for a distributed system. Then, this model is used in our Framwork to size the system through an analysis or simulation.
94

Distributed Implementations of Component-based Systems with Prioritized Multiparty Interactions : Application to the BIP Framework. / Implantations distribuées de modèles à base de composants communicants par interactions multiparties avec priorités : application au langage BIP

Quilbeuf, Jean 16 September 2013 (has links)
Les nouveaux systèmes ont souvent recours à une implémentation distribuée du logiciel, pour des raisons d'efficacité et à cause de l'emplacement physique de certains capteurs et actuateurs. S'assurer de la correction d'un logiciel distribué est difficile car cela impose de considérer tous les enchevêtrements possibles des actions exécutées par des processus distincts. Cette thèse propose une méthode pour générer, à partir d'un modèle d'application haut niveau, une implémentation distribuée correcte et efficace. Le modèle de l'application comporte des composants communiquant au moyen d'interactions multiparties avec priorités. L'exécution d'une interaction multipartie, qui correspond à un pas de la sémantique, change de façon atomique l'état de tous les composants participant à l'interaction. On définit une implantation distribuée comme un ensemble de processus communiquant par envoi de message asynchrone. La principale difficulté est de produire une implémentation correcte et efficace des interactions multiparties avec priorités, en utilisant uniquement l'envoi de message comme primitive. La méthode se fonde sur un flot de conception rigoureux qui raffine progressivement le modèle haut niveau en un modèle bas niveau, à partir duquel le code pour une plateforme particulière est généré. Tous les modèles intermédiaires apparaissant dans le flot sont exprimés avec la même sémantique que le modèle original. À chaque étape du flot, les interactions complexes sont remplacés par des constructions utilisant des interactions plus simples. En particulier, le dernier modèle obtenu avant la génération du code ne contient que des interactions modélisant l'envoi de message. La correction de l'implémentation est obtenue par construction. L'utilisation des interactions multiparties comme primitives dans le modèle de l'application permet de réduire très significativement l'ensemble des états atteignables, par rapport à un modèle équivalent mais utilisant des primitives de communication plus simples. Les propriétés essentielles du système sont vérifiées à ce niveau d'abstraction. Chaque transformation constituante du flot de conception est suffisamment simple pour être complètement formalisée et prouvée, en termes d'équivalence observationelle ou d'équivalence de trace entre le modèles avant et après transformation. L'implémentation ainsi obtenue est correcte par rapport au modèle original, ce qui évite une coûteuse vérification a posteriori. Concernant l'efficacité, la performance de l'implémentation peut être optimisée en choisissant les paramètres adéquats pour les transformations, ou en augmentant la connaissance des composants. Cette dernière solution requiert une analyse du modèle de départ afin de calculer la connaissance qui est réutilisée pour les étapes ultérieures du flot de conception. Les différentes transformations et optimisations constituant le flot de conception ont été implémentées dans le cadre de BIP. Cette implémentation a permis d'évaluer les différentes possibilités ainsi que l'influence des différents paramètres, sur la performance de l'implémentation obtenue avec plusieurs exemples. Le code généré utilise les primitives fournies par les sockets POSIX, MPI ou les pthreads pour envoyer des messages entre les processus. / Distributed software is often required for new systems, because of efficiency and physical distribution and sensors and actuators. Ensuring correctness of a distributed implementation is hard due to the interleaving of actions belonging to distinct processes. This thesis proposes a method for generating a correct and efficient distributed implementation from a high-level model of an application. The input model is described as a set of components communicating through prioritized multiparty interactions. Such primitives change the state of all components involved in an interaction during a single atomic execution step. We assume that a distributed implementation is a set of processes communicating through asynchronous message-passing. The main challenge is to produce a correct and efficient distributed implementation of prioritized multiparty interactions, relying only on message-passing. The method relies on a rigorous design flow refining the high-level model of the application into a low-level model, from which code for a given platform is generated. All intermediate models appearing in the flow are expressed using the same semantics as the input model. Complex interactions are replaced with constructs using simpler interactions at each step of the design flow. In particular, the last model obtained before code generation contains only interactions modeling asynchronous message passing. The correctness of the implementation is obtained by construction. Using multiparty interaction reduces drastically the set of reachable states, compared to an equivalent model expressed with lower level primitives. Essential properties of the system are checked at this abstraction level. Each transformation of the design flow is simple enough to be fully formalized and proved by showing observational equivalence or trace equivalence between the input and output models. The obtained implementation is correct with respect to the original model, which avoids an expensive a posteriori verification. Performance can be optimized through adequate choice of the transformation parameters, or by augmenting the knowledge of components. The latter solution requires to analyze the original model to compute the knowledge, that is reused at subsequent steps of the decentralization. The various transformations and optimizations constituting the design flow have been implemented using the BIP framework. The implementation has been used to evaluate the different possibilities, as well the influence of parameters of the design flow, on several examples. The generated code uses either Unix sockets, MPI or pthreads primitives for communication between processes.
95

Um metodo para modelagem de exceções em desenvolvimento baseado em componentes / A method for modelling exceptions in component-based software development

Brito, Patrick Henrique da Silva 14 October 2005 (has links)
Orientador: Cecilia Mary Fischer Rubira / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-05T04:18:48Z (GMT). No. of bitstreams: 1 Brito_PatrickHenriquedaSilva_M.pdf: 1701733 bytes, checksum: c2009f5302dc57e1c6d8e2d4a0c95c85 (MD5) Previous issue date: 2005 / Resumo: Devido a grande popularização do Desenvolvimento Baseado em Componentes (DBC), ele vem sendo empregado inclusive no desenvolvimento de sistemas computacionais críticos. O emprego do DBC na construção de sistemas confiáveis evidencia a necessidade de se desenvolver componentes de software que sejam robustos e que possuam uma garantia maior do seu funcionamento correto. Tratamento de exceções é uma técnica bastante conhecida para a verificação e tratamento de erros em sistemas de software. Por'em, apesar da sua popularidade, o seu projeto e a implementação são constituídos de tarefas muito complexas que não recebem uma atenção adequada dos processos de desenvolvimento existentes. A situação É ainda mais crítica se levarmos em considera¸c¿ao os métodos para DBC. Este trabalho propõe um método para auxiliar a modelagem do comportamento excepcional de sistemas baseados em componentes, chamado MDCE+. Baseado no refinamento da metodologia MDCE, o MDCE+ apresenta dois diferenciais importantes, que reforçam o seu aspecto robusto: (i) o fato dele combinar as abordagens top-down e botton-up para o desenvolvimento de sistemas confiáveis; e (ii) o fato dele ser centrado na arquitetura. O foco na arquitetura de software contribui para uma melhor definição e análise do fluxo de exceções entre os componentes do sistema. Essa maneira estruturada de detectar e tratar exceções no contexto da ocorrência de falhas é particularmente relevante para sistemas que apresentam requisitos de confiabilidade extrema. O método MDCE+ é um método genérico que pode ser aplicada a processos de desenvolvimento modernos. Em particular, nesta dissertação o método MDCE+ foi adaptado ao processo UML Components e a uma metodologia de testes. Como maneira de avaliar esse método, foi desenvolvido um estudo de caso de um sistema financeiro real, com requisitos de tolerância a falhas. Dada a sua importância, o processo de avaliação do método MDCE+ foi dividido em tr¿es etapas: (i) preparação; (ii) execução; e (iii) análise dos resultados. Nesse estudo foi necessário tratar exceções na arquitetura do sistema, com o intuito de aumentar a disponibilidade dos serviços / Abstract: Due to the large adoption of the Component-Based Development (CBD), it has also been employed in the development of critical software systems. The development of dependable systems using the CBD paradigm evidences the necessity of developing software components that are robust and dependable. Exception handling is a well known technique for verify and treat errors in software systems. However, despite its popularity, its design and implementation are constituted of very complex tasks that do not receive the adequate attention from the existing development processes. This is still more critical in the context of CBD processes. This work presents the MDCE+, a method that assists the modeling of the exceptional behavior in component-based software development. Based in the refinement of the MDCE methodology, the MDCE+ presents two important differentials, that strengthen its robustness: (i) it combines the top-down and bottom-up strategies for the development of dependable systems; and (ii) it is centered in the software architecture. As a consequence of the focus given to the software architecture, the exceptions that flow between the system components are better defined and analyzed. This structured way to detect and to treat exceptions in the context of the occurrence of imperfections is particularly needed for developing dependable systems. The MDCE+ is a generic method that can be applied together with modern development processes. In particular, in this master thesis MDCE+ was adapted to the UML Components process and to a software test methodology. In order to evaluate this method, a case study of a real financial system with fault-tolerance requirements was developed. Given its importance, the evaluation process of the MDCE+ method was decomposed in three stages: (i) preparation; (ii) execution; and (iii) results analysis. In order to increase the services availability, in this study it was necessary to deal with exceptions in the software architecture / Mestrado / Engenharia de Software / Mestre em Ciência da Computação
96

Modelo de qualidade para componentes de software / Software component quality model

Darley Rosa Peres 18 December 2006 (has links)
Dentre as tecnologias de desenvolvimento de software que promovem o reuso com o objetivo de construir sistemas com prazos e custos menores, sem sacrificar a qualidade dos produtos, está o Desenvolvimento Baseado em Componentes (DBC). O Desenvolvimento Baseado em Componentes consiste na construção de sistemas pela composição de componentes de software de acordo com um processo de desenvolvimento específico. Para garantir a qualidade desses sistemas, é importante garantir a qualidade de seus componentes. A falta da garantia da qualidade dos componentes de software destinados à reutilização é um dos fatores de inibição do DBC, e existe certa carência de pesquisas sobre a qualidade de componentes de software. Desta maneira, o principal objetivo deste trabalho foi a definição de um modelo de qualidade específico para componentes de software, fornecendo a base para a especificação de requisitos de qualidade e para a avaliação de qualidade dos mesmos. O Modelo está embasado nas normas ISO/IEC 9126 e ISO/IEC 12119, e também na literatura especializada. Uma ferramenta para apoiar avaliações de componentes (e de produtos de software de forma geral) também foi desenvolvida. Foram realizadas ainda quatro avaliações de componentes através de estudos de casos para verificar a aplicabilidade e utilidade do modelo de qualidade e da ferramenta desenvolvida. Dois questionários foram respondidos pelos avaliadores responsáveis pelas avaliações coletando assim, suas considerações sobre o modelo de qualidade e sobre a ferramenta / Among the software development technologies that promote the reuse aiming to build systems with periods and smaller costs, without sacrificing the quality of products, is the Component-Based Development (CBD). The Component-Based Development consists on the construction of systems by the composition of software components according to a specific development process. To guarantee the quality of those systems, it is important to guarantee the quality of their components. The lack of warranty of the quality of the software components destined to reuse is one of the inhibition factors of CBD, and there is certain lack of researches about quality of software components. This way, the main objective of this work was the formalization of a specific quality model for software components, supplying the base for the specification of quality requirements and for the quality evaluation of the same ones. The model is based on the norms ISO/IEC 9126 and ISO/IEC 12119, and also in the specialized literature. A tool to support components evaluations (and software products in a general way) was also developed. It was realized four components evaluations through case studies to verify the applicability and usefulness of the quality model and the developed tool. Two questionnaires were answered by the appraisers responsible for the evaluations collecting thereby, their considerations on the quality model and the tool
97

A Comparative Study of Component Based Regression Testing Approaches without Source Code

Dulal, Nabin Raj, Maharjan, Sabindra January 2011 (has links)
Context: Today, most of the software products are built with COTS components. When a new version of these components is available, it is difficult to perform testing as the vendors of the component do not usually provide source code. Various regression testing techniques have been developed, but most of the techniques are based on the source code for change identification. So, the testers are facing different challenges in performing effective testing. Objectives: The goal of this research is to find out the different approaches that are used to identify changes in modified COTS component, analyze the main characteristics of those approaches and investigate how these characteristics can be used in selection and development of CBRT approach. Methods: To fulfill the aims of the research, we have conducted systematic literature review of different CBRT approaches from the year 1993-2010. From systematic literature we found out 32 papers relevant to our study. Data related to our research are extracted from those papers and conclusion is made. The relevant articles were searched in six scientific databases such as IEEE Explore, ACM Digital Library, SpringerLink, Science Direct, Scopus, and Engineering Village. Furthermore, online survey was conducted based on the characteristics of CBRT approaches. This survey was conducted to validate the SLR result. Results: From the systematic Literature Review we have found out 8 different characteristics of CBRT approaches such as applicability, automation, complexity, behavior model used, coverage criteria, strength and weakness, theory used and input. We observe that these are the most important characteristics in CBRT approaches and these approaches should be considered in selecting or developing new CBRT approach. The results from the survey also validate our findings. From survey some more factors were identified. Conclusion: The research develops the state-of-art of CBRT approaches towards future research. The result of this thesis will be helpful for the researchers as well as practitioners who are working on CBRT. The result of the thesis can be considered as a basis for further study. Based on the result of this thesis further study can be done on making a framework based on these characteristics and support component based regression testing. / Nabin Raj Dulal, 139, Jagriti Tole Marg, Balaju-16, Kathmandu , Nepal ph: +97714351087
98

Visualisering av komplexa system / Visualizing complex systems

Risinger, Tore, Tinnerholm, John January 2016 (has links)
Mjukvaruutveckling är en komplicerad uppgift och olika visualiseringstekniker har genom åren använts för att underlätta förståelsen och underhållbarheten av mjukvara. I detta arbete har en prototyp tagits fram för att underlätta navigering och förståelse för mjukvarukomponenter i utvecklingsverktyget Arctic Studio. En intervju- baserad användarundersökning användes för att förstå aktuella brister med nuvarande presentationsmönster i Arctic studio och ta reda på hur användarna arbetar med verktyget. Prototypens design baserades på resultatet av användarundersökningen. Den slutgiltiga prototypen bestod utav tre delar. Ett polärdiagram för att visa komponenter och dess grannar, en matrisbaserad visualisering för att visa en vald komponents portar och dess kopplingar samt en riktad trädgraf för att visualisera hur information propagerar genom systemet. Den framtagna prototypen evaluerades med hjälp av kognitiva genomgångar med interna utvecklare. / Software development is a complicated task and different visualisation techniques have been used during the years to facilitate understandability and maintenance in software systems. In this thesis a proof of concept has been developed to augment navigation and understandability for software components in the integrated software development environment Arctic Studio. An interview based user survey was conducted to identify issues with the current environment in Arctic Studio, and to find out current usage patterns in the user base. The design of the prototype was based on the result of the user survey. The final prototype consisted of three parts. A radian diagram was used to provide a neighbourhood view for the different compositions of the system, a matrix based visualisation complemented this view to show a selected components ports and connections. The last part consisted of a directed tree graph to visualize the connection hierarchy for a selected port. The prototype was then evaluated using a cognitive walkthrough with internal developers.
99

A Resource-Aware Component Model for Embedded Systems

Vulgarakis, Aneta January 2009 (has links)
Embedded systems are microprocessor-based systems that cover a large range of computer systems from ultra small computer-based devices to large systems monitoring and controlling complex processes. The particular constraints that must be met by embedded systems, such as timeliness, resource-use efficiency, short time-to-market and low cost, coupled with the increasing complexity of embedded system software, demand technologies and processes that will tackle these issues. An attractive approach to manage the software complexity, increase productivity, reduce time to market and decrease development costs, lies in the adoption of the component based software engineering (CBSE) paradigm. The specific characteristics of embedded systems lead to important design issues that need to be addressed by a component model. Consequently, a component model for development of embedded systems needs to systematically address extra-functional system properties. The component model should support predictable system development and as such guarantee absence or presence of certain properties. Formal methods can be a suitable solution to guarantee the correctness and reliability of software systems.   Following the CBSE spirit, in this thesis we introduce the ProCom component model for development of distributed embedded systems. ProCom is structured in two layers, in order to support both a high-level view of loosely coupled subsystems encapsulating complex functionality, and a low-level view of control loops with restricted functionality. These layers differ from each other in terms of execution model, communication style, synchronization etc., but also in kind of analysis which are suitable. To describe the internal behavior of a component, in a structured way, in this thesis we propose REsource Model for Embedded Systems (REMES) that describes both functional and extra-functional behavior of interacting embedded components. We also formalize the resource-wise properties of interest and show how to analyze such behavioral models against them. / PROGRESS
100

Architecting Resilient Computing Systems : a Component-Based Approach / Conception et implémentation de systèmes résilients par une approche à composants

Stoicescu, Miruna 09 December 2013 (has links)
L'évolution des systèmes pendant leur vie opérationnelle est incontournable. Les systèmes sûrs de fonctionnement doivent évoluer pour s'adapter à des changements comme la confrontation à de nouveaux types de fautes ou la perte de ressources. L'ajout de cette dimension évolutive à la fiabilité conduit à la notion de résilience informatique. Parmi les différents aspects de la résilience, nous nous concentrons sur l'adaptativité. La sûreté de fonctionnement informatique est basée sur plusieurs moyens, dont la tolérance aux fautes à l'exécution, où l'on attache des mécanismes spécifiques (Fault Tolerance Mechanisms, FTMs) à l'application. A ce titre, l'adaptation des FTMs à l'exécution s'avère un défi pour développer des systèmes résilients. Dans la plupart des travaux de recherche existants, l'adaptation des FTMs à l'exécution est réalisée de manière préprogrammée ou se limite à faire varier quelques paramètres. Tous les FTMs envisageables doivent être connus dès le design du système et déployés et attachés à l'application dès le début. Pourtant, les changements ont des origines variées et, donc, vouloir équiper un système pour le pire scénario est impossible. Selon les observations pendant la vie opérationnelle, de nouveaux FTMs peuvent être développés hors-ligne, mais intégrés pendant l'exécution. On dénote cette capacité comme adaptation agile, par opposition à l'adaptation préprogrammée. Dans cette thèse, nous présentons une approche pour développer des systèmes sûrs de fonctionnement flexibles dont les FTMs peuvent s'adapter à l'exécution de manière agile par des modifications à grain fin pour minimiser l'impact sur l'architecture initiale. D'abord, nous proposons une classification d'un ensemble de FTMs existants basée sur des critères comme le modèle de faute, les caractéristiques de l'application et les ressources nécessaires. Ensuite, nous analysons ces FTMs et extrayons un schéma d'exécution générique identifiant leurs parties communes et leurs points de variabilité. Après, nous démontrons les bénéfices apportés par les outils et les concepts issus du domaine du génie logiciel, comme les intergiciels réflexifs à base de composants, pour développer une librairie de FTMs adaptatifs à grain fin. Nous évaluons l'agilité de l'approche et illustrons son utilité à travers deux exemples d'intégration : premièrement, dans un processus de développement dirigé par le design pour les systèmes ubiquitaires et, deuxièmement, dans un environnement pour le développement d'applications pour des réseaux de capteurs. / Evolution during service life is mandatory, particularly for long-lived systems. Dependable systems, which continuously deliver trustworthy services, must evolve to accommodate changes e.g., new fault tolerance requirements or variations in available resources. The addition of this evolutionary dimension to dependability leads to the notion of resilient computing. Among the various aspects of resilience, we focus on adaptivity. Dependability relies on fault tolerant computing at runtime, applications being augmented with fault tolerance mechanisms (FTMs). As such, on-line adaptation of FTMs is a key challenge towards resilience. In related work, on-line adaption of FTMs is most often performed in a preprogrammed manner or consists in tuning some parameters. Besides, FTMs are replaced monolithically. All the envisaged FTMs must be known at design time and deployed from the beginning. However, dynamics occurs along multiple dimensions and developing a system for the worst-case scenario is impossible. According to runtime observations, new FTMs can be developed off-line but integrated on-line. We denote this ability as agile adaption, as opposed to the preprogrammed one. In this thesis, we present an approach for developing flexible fault-tolerant systems in which FTMs can be adapted at runtime in an agile manner through fine-grained modifications for minimizing impact on the initial architecture. We first propose a classification of a set of existing FTMs based on criteria such as fault model, application characteristics and necessary resources. Next, we analyze these FTMs and extract a generic execution scheme which pinpoints the common parts and the variable features between them. Then, we demonstrate the use of state-of-the-art tools and concepts from the field of software engineering, such as component-based software engineering and reflective component-based middleware, for developing a library of fine-grained adaptive FTMs. We evaluate the agility of the approach and illustrate its usability throughout two examples of integration of the library: first, in a design-driven development process for applications in pervasive computing and, second, in a toolkit for developing applications for WSNs.

Page generated in 0.0765 seconds