834 research outputs found

    Enabling Machine Understandable Exchange of Energy Consumption Information in Intelligent Domotic Environments

    Get PDF
    In the 21st century, all the major countries around the world are coming together to reduce the impact of energy generation and consumption on the global environment. Energy conservation and its efficient usage has become a top agenda on the desks of many governments. In the last decade, the drive to make homes automated and to deliver a better assisted living picked pace and the research into home automation systems accelerated, usually based on a centralized residential gateway. However most devised solutions fail to provide users with information about power consumption of different house appliances. The ability to collect power consumption information can lead us to have a more energy efficient society. The goal addressed in this paper is to enable residential gateways to provide the energy consumption information, in a machine understandable format, to support third party applications and services. To reach this goal, we propose a Semantic Energy Information Publishing Framework. The proposed framework publishes, for different appliances in the house, their power consumption information and other properties, in a machine understandable format. Appliance properties are exposed according to the existing semantic modeling supported by residential gateways, while instantaneous power consumption is modeled through a new modular Energy Profile ontolog

    Design-time performance testing

    Get PDF
    Software designers make decisions between alternate approaches early in the development of a software application and these decisions can be difficult to change later. Designers make these decisions based on estimates of how alternatives affect software qualities. One software quality that can be difficult to predict is performance, that is, the efficient use of resources in the system. It is particularly challenging to estimate the performance of large, interconnected software systems composed of components. With the proliferation of class libraries, middle-ware systems, web services, and third party components, many software projects rely on third party services to meet their requirements. Often choosing between services involves considering both the functionality and performance of the services. To help software developers compare their designs and third-party services, I propose using performance prototypes of alternatives and test suites to estimate performance trade-offs early in the development cycle, a process called Design-Time Performance Testing (DTPT). Providing software designers with performance evidence based on prototypes will allow designers to make informed decisions regarding performance trade-offs. To show how DTPT can help inform real design decisions. In particular: a process for DTPT, a framework implementation written in Java, and experiments to verify and validate the process and implementation. The implemented framework assists when designing, running, and documenting performance test suites, allowing designers to make accurate comparisons between alternate approaches. Performance metrics are captured by instrumenting and running prototypes. This thesis describes the process and framework for gathering software performance estimates at design-time using prototypes and test suites

    Anturidatan lähettäminen fyysiseltä kaksoselta digitaaliselle kaksoselle

    Get PDF
    A digital twin is a digital counterpart of a physical thing such as a machine. The term digital twin was first introduced in 2010. Thereafter, it has received an extensive amount of interest because of the numerous benefits it is expected to offer throughout the product life cycle. Currently, the concept is developed by the world’s largest companies such as Siemens. The purpose of this thesis is to examine which application layer protocols and communication technologies are the most suitable for the sensor data transmission from a physical twin to a digital twin. In addition, a platform enabling this data transmission is developed. As the concept of a digital twin is relatively new, a comprehensive literature view on the definition of a digital twin in scientific literature is presented. It has been found that the vision of a digital twin has evolved from the concepts of ‘intelligent products’ presented at the beginning of the 2000s. The most widely adopted definition states that a digital twin accurately mirrors the current state of its corresponding twin. However, the definition of a digital twin is not yet standardized and varies in different fields. Based on the literature review, the communication needs of a digital twin are derived. Thereafter, the suitability of HTTP, MQTT, CoAP, XMPP, AMQP, DDS, and OPC UA for sensor data transmission are examined through a literature review. In addition, a review of 4G, 5G, NB-IoT, LoRa, Sigfox, Bluetooth, Wi-Fi, Z-Wave, ZigBee, and WirelessHART is presented. A platform for the management of the sensors is developed. The platform narrows the gap between the concept and realization of a digital twin by enabling sensor data transmission. The platform allows easy addition of sensors to a physical twin and provides an interface for their configuration remotely over the Internet. It supports multiple sensor types and application protocols and offers both web user iterface and REST API.Digitaalinen kaksonen on fyysisen tuotteen digitaalinen vastinkappale, joka sisältää tiedon sen nykyisestä tilasta. Digitaalisen kaksosen käsite otettiin ensimmäisen kerran käyttöön vuonna 2010. Sen jälkeen digitaalinen kaksonen on saanut paljon huomiota, ja sitä ovat lähteneet kehittämään maailman suurimmat yritykset, kuten Siemens. Tämän työn tarkoituksena tutkia, mitkä sovelluskerroksen protokollat ja langattomat verkot soveltuvat parhaiten anturien keräämän datan lähettämiseen fyysiseltä kaksoselta digitaaliselle kaksoselle. Sen lisäksi työssä esitellään alusta, joka mahdollistaa tämän tiedonsiirron. Digitaalisen kaksosesta esitetään laaja kirjallisuuskatsaus, joka luo pohjan työn myöhemmille osioille. Digitaalisen kaksosen konsepti pohjautuu 2000-luvun alussa esiteltyihin ajatuksiin ”älykkäistä tuotteista”. Yleisimmän käytössä olevan määritelmän mukaan digitaalinen kaksonen heijastaa sen fyysisen vastinparin tämän hetkistä tilaa. Määritelmä kuitenkin vaihtelee eri alojen välillä eikä se ole vielä vakiintunut tieteellisessä kirjallisuudessa. Kirjallisuuskatsauksen avulla johdetaan digitaalisen kaksosen kommunikaatiotarpeet. Sen jälkeen arvioidaan seuraavien sovelluskerroksen protokollien soveltuvuutta anturidatan lähettämiseen kirjallisuuskatsauksen avulla: HTTP, MQTT, CoAP, XMPP, AMQP, DDS ja OPC UA. Myös seuraavien langattomien verkkojen soveltuvuutta tiedonsiirtoon tutkitaan: 4G, 5G, NB-IoT, LoRaWAN, Sigfox, Bluetooth, Wi-Fi, Z-Wave, ZigBee ja WirelessHART. Osana työtä kehitettiin myös ohjelmistoalusta, joka mahdollistaa anturien hallinnan etänä Internetin välityksellä. Alusta on pieni askel kohti digitaalisen kaksosen käytän-nön toteutusta, sillä se mahdollistaa tiedon keräämisen fyysisestä vastinkappaleesta. Sen avulla sensorien lisääminen fyysiseen kaksoseen on helppoa, ja se tukee sekä useita sensorityyppejä että sovelluskerroksen protokollia. Alusta tukee REST API –rajapintaa ja sisältää web-käyttöliittymän

    Cotextual Android Education

    Get PDF
    With advances in mobile phone hardware, the demand for mobile applica- tions has risen drastically. This has resulted in mobile phones becoming a pop- ular new medium for application development. However, the body of knowledge for contextual examples and tutorials leaves much to be desired. As of January 2010, California Polytechnic State University has offered a mobile development class that teaches students how to write applications for phones running Google’s Android platform. This class aims at taking advantage of students’ current in- terest in mobile applications to teach them about difficult computer science topics. As a corollary, the class hopes to foster and encourage a sense of inde- pendence and entrepreneurship through having students design, implement, and publish their own applications to the Android Application Marketplace. The main contribution of this thesis project comes in the form of a series of detailed educational laboratory exercises and a system for grading student submissions in an automated fashion. These labs are designed to supplement the Android documentation by providing contextual examples, activities, and tutorials. It is therefore the goal of this thesis project to aid in transforming the class of mobile development students into a group of successful, practicing, mobile developers

    Internet of Things Software Modules Marketplace

    Get PDF
    The project developed is a centralised repository of software packages to be used in cyber-physical systems. It is composed by a central database, an http api, an ftp client to serve files and a web application to manage the repository. The system also communicates via OPCUA protocol with the embed-system for real time monitoring.The advent of the Cyber-Physical Systems (CPS), a physical system representation through a vir-tual model, usually used to control a system or a process comes from the growing democratizationof the computational power. Nowadays, virtually anything can be equipped with some kind ofembedded processor to automate tasks, generate or consume some kind of data. In addition, thecontinuous development and improvement of the communication networks has helped leveragethe concept of the Internet of Things (IoT) in which things are now, themselves, connected to theInternet, exchanging data with each other and with people.In the industrial sector, CPS, also called Cyber-Physical Production Systems (CPPS) and theIoT are the main technological advances that lead to the industry fourth revolution, common des-ignated as Industry 4.0 in which the factory floor is no longer a centralized model where all thecomputation is done centrally but is now a decentralized model where industrial equipment haveembedded devices to control, automate tasks and react in a dynamic and intelligent manner to thesensed physical environment.Thereby, one of the keywords around the CPPSs is software. Software is no longer centralizedand is now distributed through several devices that comprises the system. This new approachcomes with significant changes and one of them is the reuse and distribution of the software. Itis not viable to manual deploy and install software in hundreds or thousands of devices and nothaving a way of reusing the existing software. If, on the one hand, the desire is to develop a moreintelligent process control system, on the other, flexibility, adaptability and simplicity are alsoconvenient capabilities or else intelligent manufacturing process control systems are built upon alot of resources debt. Hence, the solution is to build standards, tools and frameworks that allowthe reuse of software and its rapid deployment in the distributed devices.One option, in the Industry 4.0 field, to cope with the software reuse issue in this kind of sys-tems is the encapsulation of software in functional blocks, the Function Blocks (FBs) and their usein the function block programming paradigm, described in IEC 61499 standard. The functionalityis abstracted away in the FBs and can be reused by just deploying the them to the devices. Thisway, it is easier to manage a network by dragging and dropping these blocks, building complexapplications centrally and deploy everything to the distributed embedded devices. However, theimplementation of this standard to address the aforementioned problem brings, itself, other neces-sities such as managing the FBs, monitoring them and their previous download by the embeddeddevices.This dissertation main goal is the development of a marketplace to manage and monitor of FBs in a IEC 61499 network envisioning the filling of the previous mentioned gaps in this kindof networks. The marketplace, integrated in a IEC 61499 global solution will not only enable thedistribution of FBs among the embedded devices in a IEC 61499 compliant CPPS but also manageFBs versions, functioning as a central repository of software components, having also monitoringand statistical features, allowing the detection of flaws or malfunctions and collect statistical datai iiabout FBs usage

    Sistema de teste auto-adaptativo baseado em modelo para SOA dinâmico

    Get PDF
    Orientadores: Eliane Martins, Andrea CeccarelliDissertação (mestrado) - Universidade Estadual de Campinas, Instituto de ComputaçãoResumo: Arquitetura orientada a serviços (SOA) é um padrão de design popular para implemen- tação de serviços web devido à interoperabilidade, escalabilidade e reuso de soluções de software que promove. Os serviços que usam essa arquitetura precisam operar em um am- biente altamente dinâmico, entretanto quanto mais a complexidade desses serviços cresce menos os métodos tradicionais de validação se mostram viáveis. Aplicações baseadas em arquitetura orientada a serviços podem evoluir e mudar du- rante a execução. Por conta disso testes offline não asseguram completamente o compor- tamento correto de um sistema em tempo de execução. Por essa razão, a necessidade de tecnicas diferentes para validar o comportamento adequado de uma aplicação SOA durante o seu ciclo de vida são necessárias, por isso testes online executados durante o funcionamento serão usados nesse projeto. O objetivo do projeto é de aplicar técnicas de testes baseados em modelos para gerar e executar casos de testes relevantes em aplicações SOA durante seu tempo de execu- ção. Para alcançar esse objetivo uma estrura de teste online autoadaptativa baseada em modelos foi idealizada. Testes baseados em modelos podem ser gerados de maneira offline ou online. Nos testes offline, os casos de teste são gerados antes do sistema entrar em execução. Já nos testes online, os casos de teste são gerados e aplicados concomitantemente, e as saídas produzidas pela aplicação em teste definem o próximo passo a ser realizado. Quando uma evolução é detectada em um serviço monitorado uma atualização no modelo da aplicação alvo é executada, seguido pela geração e execução de casos de testes online. Mais precisamente, quatro componentes foram integrados em um circuito autoadap- tativo: um serviço de monitoramento, um serviço de criação de modelos, um serviço de geração de casos de teste baseado em modelos e um serviço de teste. As caracteristicas da estrutura de teste foram testadas em três cenários que foram executados em uma aplicação SOA orquestrada por BPEL, chamada jSeduite. Este trabalho é um esforço para entender as restrições e limitações de teste de soft- ware para aplicações SOA, e apresenta análises e soluções para alguns dos problemas encontrados durante a pesquisaAbstract: Service Oriented Architecture (SOA) is a popular design pattern to build web services be- cause of the interoperability, scalability, and reuse of software solutions that it promotes. The services using this architecture need to operate in a highly dynamic environment, but as the complexity of these services grows, traditional validation processes become less feasible. SOA applications can evolve and change during their execution, and offline tests do not completely assure the correct behavior of the system during its execution. There- fore there is a need of techniques to validate the proper behaviour of SOA applications during the SOA lifecycle. Because of that, in this project online testing will be used. The project goal is to employ model-based testing techniques to generate and execute relevant test cases to SOA applications during runtime. In order to achieve this goal a self-adaptive model-based online testing framework was designed. Tests based on models can be generated offline and online. Offline test are generated before the system execution. Online tests are generated and performed concomitantly, and the output produced by the application under test defines the next step to be performed. when our solution detects that a monitored service evolves, the model of the target service is updated, and online test case generation and execution is performed. More specifically, four components were integrated in a self-adaptive loop: a mon- itoring service, a model generator service, a model based testing service and a testing platform. The testing framework had its features tested in three scenarios that were performed in a SOA application orchestrated by BPEL, called jSeduite. This work is an effort to understand the constraints and limitations of the software testing on SOA applications, and present analysis and solutions to some of the problems found during the researchMestradoCiência da ComputaçãoMestre em Ciência da ComputaçãoCAPE

    Technical Debt in Software Development : Examining Premises and Overcoming Implementation for Efficient Management

    Get PDF
    Software development is a unique field of engineering: all software constructs retain their modifiability — arguably, at least — until client release, no single project stakeholder has exhaustive knowledge about the project, and even this portion of the knowledge is generally acquired only at project completion. These characteristics imply that the field of software development is subject to design decisions that are known to be sub-optimal—either deliberately emphasizing interests of particular stakeholders or indeliberately harming the project due to lack of exhaustive knowledge. Technical debt is a concept that accounts for these decisions and their effects. The concept’s intention is to capture, track, and manage the decisions and their products: the affected software constructs. Reviewing the previous, it is vital for software development projects to acknowledge technical debt both as an enabler and as a hindrance. This thesis looks into facilitating efficient technical debt management for varying software development projects. In the thesis, examination of technical debt’s role in software development produces the premises on to which a management implementation approach is introduced. The thesis begins with a revision of motivations. Basing on prior research in the fields of technical debt management and software engineering in general, the five motivations establish the premises for technical debt in software development. These include notions of subjectivity in technical debt estimation, update frequency demands posed on technical debt information, and technical debt’s polymorphism. Three research questions are derived from the motivations. They ask for tooling support for technical debt management, capturing and modelling technical debt propagation, and characterizing software development environments and their technical debt instances. The questions imply consecutive completion as the first pursued tool would benefit from—possibly automatically assessable—propagation models, and finally the tool’s introduction to software development organizations could be assisted by tailoring it based on the software development environment and the technical debt instance characterizations. The thesis has seven included publications. In introducing them, the thesis maps their backgrounds to the motivations and their outcomes to the research questions. Amongst the outcomes are the DebtFlag tool for technical debt management, the procedures for retrospectively capturing technical debt from software repositories, a procedure for technical debt propagation model creation from these retrospectives, and a multi-national survey characterizing software development environments and their technical debt instances. The thesis concludes that the tooling support, the technical debt propagation modelling, and the software environment and technical debt instance characterization describe an implementation approach to further efficient technical debt management. Simultaneously, future work is implied as all previously described efforts need to be continued and extended. Challenges also remain in the introduced approach. An example of this is the combinatorial explosion of technology-development-context-combinations that technical debt propagation modelling needs to consider. All combinations have to be managed if exhaustive modelling is desired. There is, however, a great deal of motivation to pursue these efforts when one re-notes that technical debt is a permanent component of software development that, when correctly managed, is a development efficiency mechanism comparable to a financial loan investment.Ohjelmistokehitys on uniikki tekniikan ala: kaikki ohjelmistorakenteet säilyttävät muokattavuutensa — otaksuttavasti ainakin — asiakasjulkaisuun asti. Yhdenkään projektiosakkaan tietämys ei kata koko projektia ja merkittävä osa tästäkin tiedosta karttuu vasta projektin suorittamisen aikana. Nämä ominaisuudet antavat ymmärtää, että ohjelmistokehitysala on sellaisten suunnitelupäätösten kohde, joiden tiedetään olevan epätäydellisiä—joko tarkoituksella tiettyjen projektiosakkaiden intressejä painottavia tai tahattomasti projektia vahingoittavia puutteelliseen tietoon perustuvia. Tekninen velka on konsepti, joka huomioi nämä päätökset sekä niiden vaikutukset. Konseptin tarkoitus on havaita, seurata ja hallita näitä päätöksiä sekä tuloksena syntyviä teknisen velan vaikutuksen alla olevia ohjelmistorakenteita. Edellisen kuvauksen valossa ohjelmistokehitysprojekteille on erityisen tärkeää huomioida tekninen velka sekä mahdollistajana että hidasteena. Tämän vuoksi kyseinen väitöskirja perehtyy tehokkaan teknisen velan hallinnan fasilitointiin moninaisille ohjelmistokehitysprojekteille. Väitöskirjassa tarkastellaan teknisen velan roolia osana ohjelmistokehitystä. Tarkastelu tuottaa joukon premissejä, joihin perustuen esitellään lähestymistapa teknisen velan hallinnan toteuttamiselle. Viisi väitöskirjan alussa esitettyä motivaatiota kiinnittävät ne premissit,joille ratkaisu esitetään. Motivaatiot rakennetaan olemassa olevaan teknisen velan sekä ohjelmistotekniikan tutkimustietoon perustuen. Näihin lukeutuvat muun muassa subjektiivisuus teknisen velan estimoinnissa, teknisen velan informaatiolle nähdyt päivitystaajuusvaatimukset sekä teknisen velan polymorfismi. Havainnoista johdetaan kolme tutkimuskysymystä. Ne tavoittelevat työkalutukea teknisen velan hallinnalle, velan propagoitumisen havainnointia sekä mallinnusta kuin myös ohjelmistotuotantoympäristöjen ja niiden velka instanssien kuvaamista. Tutkimuskysymykset implikoivat peräkkäistä suoritusta: tavoiteltu työkalu hyötyy—mahdollisesti automaattisesti arvoitavista—teknisen velan propagaatiomalleista. Valmiin työkalun käyttöönottoa voidaan taas edistää jos kuvaukset kehitysympäristöistä sekä niiden velkainstansseista ovat käytettävissä työkalun räätälöintiin. Väitöskirjaaan sisältyy seitsemän julkaisua. Väitöskirja esittelee ne kiinnittämällä julkaisujen taustatyön aikaisemmin mainittuihin motivaatioihin sekä niiden tulokset edellisiin tutkimuskysymyksiin. Tuloksista huomioidaan esimerkiksi DebtFlag-työkalu teknisen velan hallintaan, retrospektiivinen prosessi teknisen velan kartoittamiselle versionhallintajärjestelmistä, prosessi teknisen velan mallien rakentamiselle näistä kartoituksista ja monikansallinen kyselytutkimus ohjelmistokehitysympäristöjen sekä näiden teknisen velan instanssien luonnehtimiseksi. Väitöskirjan yhteenvetona huomioidaan, että teknisen velan hallinnan työkalutuki, teknisen velan propagaatiomallinnus ja ohjelmistokehitysympäristöjen sekä niiden teknisen velan instanssien luonnehdinta muodostavat toteutustavan, jolla teknisen velan tehokasta hallintaa voidaan kehittää. Samalla implikoidaan jatkotoimia, sillä kaikkia edellä kuvattuja työn osia tulee jatkaa ja laajentaa. Toteutustavalle nähdään myös haasteita. Eräs näistä on kombinatorinen räjähdys teknologia- ja kehityskontekstikombinaatioille. Kaikki kombinaatiot tulee huomioida mikäli teknisen velan propagaatiomallinnuksesta halutaan kattavaa. Motivaatio väitöskirjassa esitetyn työn jatkamiselle on huomattavaa ja sitä kasvattaa entuudestaan edellä tehty huomio siitä, että tekninen velka on pysyvä komponentti ohjelmistokehityksessä, joka oikein hallittuna on kehitystehokkuutta edistävänä komponenttina verrattavissa finanssialan lainainvestointiin.Siirretty Doriast

    Caritapp: Implementation of a computer system that streamlines the distribution of food

    Get PDF
    Aquest projecte està basat en una necessitat real del centre de Cáritas Cerdanyola. En aquest document es recull la planificació i implementació de la solució proposada, així com tota la informació necessària per al correcte funcionament de l'aplicatiu. Caritapp és una aplicació d'escriptori que permet gestionar la repartició d'aliments i els seus receptors, i generar documents d'entrega per al Fons d'Ajuda Europeu per a les Persones Més Desafavorides (FEAD).This project is based on a real need of the Cáritas Cerdanyola center. This document includes the planning and implementation of the proposed solution, as well as all the necessary information to make the application work. Caritapp is a desktop application that allows managing the food delivery and their receivers, and generating delivery documents for the European Aid to the Most Deprived (FEAD)
    corecore