6,728 research outputs found

    UML-based Model-Driven REST API Development

    Get PDF
    In the last few years we have witnessed the expansion of REST APIs as a method to implement machine- to-machine interactions in open distributed systems. Recently REST APIs can also be found in several B2B and enterprise scenarios that were previously reserved to alternative technologies such as SOAP-based Web Services. Despite that, the development of REST-based solutions has remained mostly inspired by agile ap- proaches with no or limited explicit modeling artifacts produced during the development process. This clashes with software development methods in which modeling artifacts are expected to be available for all developed software. Another problem is related to the resource-based nature of these APIs that miss standardized meth- ods to discover and understand their capabilities akin to what object-oriented interfaces can do for objects and services. In this paper we propose a model-driven approach to REST API development; this approach is com- posed by two main steps: (i) UML modeling of the API using specific profiles and (ii) a model transformation that exploits RAML, a recent RESTful API modeling language, as an intermediate notation that can be used to automatically produce documentation and code for various languages/platforms

    Modeling, Simulation and Emulation of Intelligent Domotic Environments

    Get PDF
    Intelligent Domotic Environments are a promising approach, based on semantic models and commercially off-the-shelf domotic technologies, to realize new intelligent buildings, but such complexity requires innovative design methodologies and tools for ensuring correctness. Suitable simulation and emulation approaches and tools must be adopted to allow designers to experiment with their ideas and to incrementally verify designed policies in a scenario where the environment is partly emulated and partly composed of real devices. This paper describes a framework, which exploits UML2.0 state diagrams for automatic generation of device simulators from ontology-based descriptions of domotic environments. The DogSim simulator may simulate a complete building automation system in software, or may be integrated in the Dog Gateway, allowing partial simulation of virtual devices alongside with real devices. Experiments on a real home show that the approach is feasible and can easily address both simulation and emulation requirement

    A heuristic-based approach to code-smell detection

    Get PDF
    Encapsulation and data hiding are central tenets of the object oriented paradigm. Deciding what data and behaviour to form into a class and where to draw the line between its public and private details can make the difference between a class that is an understandable, flexible and reusable abstraction and one which is not. This decision is a difficult one and may easily result in poor encapsulation which can then have serious implications for a number of system qualities. It is often hard to identify such encapsulation problems within large software systems until they cause a maintenance problem (which is usually too late) and attempting to perform such analysis manually can also be tedious and error prone. Two of the common encapsulation problems that can arise as a consequence of this decomposition process are data classes and god classes. Typically, these two problems occur together – data classes are lacking in functionality that has typically been sucked into an over-complicated and domineering god class. This paper describes the architecture of a tool which automatically detects data and god classes that has been developed as a plug-in for the Eclipse IDE. The technique has been evaluated in a controlled study on two large open source systems which compare the tool results to similar work by Marinescu, who employs a metrics-based approach to detecting such features. The study provides some valuable insights into the strengths and weaknesses of the two approache

    Environments to support collaborative software engineering

    Get PDF
    With increasing globalisation of software production, widespread use of software components, and the need to maintain software systems over long periods of time, there has been a recognition that better support for collaborative working is needed by software engineers. In this paper, two approaches to developing improved system support for collaborative software engineering are described: GENESIS and OPHELIA. As both projects are moving towards industrial trials and eventual publicreleases of their systems, this exercise of comparing and contrasting our approaches has provided the basis for future collaboration between our projects particularly in carrying out comparative studies of our approaches in practical use

    APIbuster Testing Framework

    Get PDF
    In recent years, not only the Service-Oriented Architecture (SOA) became a popular paradigm for the development of distributed systems, but there has been significant progress in terms of their testing. Nonetheless, the multiple testing platforms available fail to fulfil the specific requirements of the Moodbuster platform from Instituto de Engenharia de Sistemas e Computadores, Tecnologia e Ciência (INESC TEC) – provide a systematic process to update the test knowledge, configure and test several Representational State Transfer (REST) Application Programming Interface (API) instances. Moreover, the solution should be implemented as another REST API. The goal is to design, implement and test a platform dedicated to the testing of REST API instances. This new testing platform should allow the addition of new instances to test, the configuration and execution of sets of dedicated tests, as well as, collect and store the results. Furthermore, it should support the updating of the testing knowledge with new test categories and properties on a needs basis. This dissertation describes the design, development and testing of APIbuster, a platform dedicated to the testing of REST API instances, such as Moodbuster. The approach relies on the creation and conversion of the test knowledge ontology into the persistent data model followed by the deployment of the platform (REST API and user dashboard) through a data modelling pipeline. The APIbuster prototype was thoroughly and successfully tested considering the functional, performance, load and usability dimensions. To validate the implementation, functional and performance tests were performed regarding each API call. To ascertain the scalability of the platform, the load tests focused on the most de manding functionality. Finally, a standard usability questionnaire was distributed among users to establish the usability score of the platform. The results show that the data modelling pipeline supports the creation and subsequent updating of the testing platform with new test attributes and classes. The pipeline not only converts the testing knowledge ontology into the corresponding persistent data model, but generates a fully operational testing platform instanceNos últimos anos, o desenvolvimento de sistemas distribuídos do tipo Service-Oriented Architecture (SOA) popularizou-se, tendo ocorrido significativos progressos em ter mos de testagem. Contudo, as múltiplas plataformas de testagem existentes não satisfazem as necessidades específicas de testagem de projetos Application Programming Interfaces (API) do tipo Representational State Transfer (REST) como o Moodbuster do Instituto de Engenharia de Sistemas e Computadores, Tecnologia e Ciência (INESC TEC). O INESC TEC necessita de um processo sistemático de atualização, configuração e testagem de múltiplas instâncias API REST. Adicional mente, esta solução deverá ser implementada como mais uma API REST. O objetivo é conceber, implementar e testar uma plataforma de testagem de instâncias API REST. Esta nova plataforma deverá permitir a adição de instâncias de teste, configuração e execução de grupos de testes, assim como, obter e salvaguardar os resultados. Deverá ainda viabilizar a atualização do conhecimento do domínio mediante a especificação de novas categorias e atributos de teste. Esta dissertação descreve a conceção, desenvolvimento e testagem da plataforma APIbuster dedicada à testagem de instâncias API REST, como as do projecto Moodbuster. A abordagem baseia-se na definição e conversão da ontologia de representação do conhecimento sobre a testagem de API REST no correspondente modelo persistente de dados, seguida da criação da plataforma (REST API e portal do utilizador) através de um processamento sequencial dedicado. O protótipo da APIbuster foi testado detalhadamente com sucesso em relação à funcionalidade, desempenho, carga e usabilidade. Foram efetuados testes funcionais e de desempenho a cada chamada da API para validar a implementação. Para determinar a escalabilidade da plataforma, os testes de carga focaram-se na funcionalidade mais exigente. Finalmente, o questionário de usabilidade foi distribuído entre os utilizadores para definir a usabilidade da plataforma desenvolvida. Os resultados mostram que o processamento sequencial desenvolvido suporta a criação e a subsequente atualização, com novos atributos e categorias, da plataforma de testagem. Este processo não converte apenas a ontologia no modelo de dados persistente, mas gera uma instância atualizada e operacional da plataform

    Programming patterns and development guidelines for Semantic Sensor Grids (SemSorGrid4Env)

    No full text
    The web of Linked Data holds great potential for the creation of semantic applications that can combine self-describing structured data from many sources including sensor networks. Such applications build upon the success of an earlier generation of 'rapidly developed' applications that utilised RESTful APIs. This deliverable details experience, best practice, and design patterns for developing high-level web-based APIs in support of semantic web applications and mashups for sensor grids. Its main contributions are a proposal for combining Linked Data with RESTful application development summarised through a set of design principles; and the application of these design principles to Semantic Sensor Grids through the development of a High-Level API for Observations. These are supported by implementations of the High-Level API for Observations in software, and example semantic mashups that utilise the API
    corecore