151,086 research outputs found
Towards property-based testing of RESTful web services
Developing APIs as Web Services over HTTP implies adding an extra layer to software, compared to the ones that we would need to develop an API distributed as, for example, a library. This additional layer must be included in testing too, but this implies that the software under test has an additional complexity due both to the need to use an intermediate protocol in tests and to the need to test compliance with the constraints imposed by that protocol: in this case the constraints defined by the REST architectural style. On the other hand, these requirements are common to all the Web Services, and because of that, we should be able to abstract this aspect of the testing model so that we can reuse it in testing any Web Service. In this paper, as a first step towards automating the testing of Web Services over HTTP, we describe a practical mechanism and model for testing RESTful Web Services without side effects and give an example of how we successfully adapted that mechanism to test two different existing Web Services: Storage Room by Thriventures and Google Tasks by Google. For this task we have used Erlang together with state machine models in the property-based testing tool Quviq QuickCheck, implemented using the statem module. 1
Hacia la construcciĂłn de librerĂas digitales basadas en reuso para universidades nacionales en la Patagonia
This article presents a case study exploring the use of software product lines and reference models as mechanisms of a reuse-based design process to build digital libraries. As a key component in a modern digital library, the reference architecture is responsible for helping define quality of the resulting repository. It is true that many efforts have been addressed towards providing interoperability; however, repositories are expected to provide high levels of reuse too, which goes beyond that of simple object sharing. This work presents the main steps we followed towards building a reusable digital library capable of accommodating such needs by (i) providing mechanisms to reuse resources, and (ii) enabling explicit sharing of commonalities in a distributed environment.Este artĂculo presenta un caso de estudio que explora el uso de lĂneas de productos de software y modelos de referencia como mecanismos de un proceso de diseño basado en reuso para construir bibliotecas digitales. Como componente clave en una biblioteca digital moderna, la arquitectura de referencia es responsable de ayudar a definir la calidad del repositorio resultante. En la literatura se han realizado muchos esfuerzos para proporcionar interoperabilidad; sin embargo, se espera que los repositorios proporcionen tambiĂ©n altos niveles de reutilizaciĂłn, que van más allá del simple intercambio de objetos. Este trabajo presenta los pasos principales para construir una biblioteca digital reusable capaz de acomodar tales necesidades mediante dos actividades especĂficas (i) proporcionar mecanismos para reutilizar recursos, y (ii) permitir el intercambio explĂcito de aspectos comunes en un entorno distribuido.Facultad de Informátic
Hacia la construcciĂłn de librerĂas digitales basadas en reuso para universidades nacionales en la Patagonia
This article presents a case study exploring the use of software product lines and reference models as mechanisms of a reuse-based design process to build digital libraries. As a key component in a modern digital library, the reference architecture is responsible for helping define quality of the resulting repository. It is true that many efforts have been addressed towards providing interoperability; however, repositories are expected to provide high levels of reuse too, which goes beyond that of simple object sharing. This work presents the main steps we followed towards building a reusable digital library capable of accommodating such needs by (i) providing mechanisms to reuse resources, and (ii) enabling explicit sharing of commonalities in a distributed environment.Este artĂculo presenta un caso de estudio que explora el uso de lĂneas de productos de software y modelos de referencia como mecanismos de un proceso de diseño basado en reuso para construir bibliotecas digitales. Como componente clave en una biblioteca digital moderna, la arquitectura de referencia es responsable de ayudar a definir la calidad del repositorio resultante. En la literatura se han realizado muchos esfuerzos para proporcionar interoperabilidad; sin embargo, se espera que los repositorios proporcionen tambiĂ©n altos niveles de reutilizaciĂłn, que van más allá del simple intercambio de objetos. Este trabajo presenta los pasos principales para construir una biblioteca digital reusable capaz de acomodar tales necesidades mediante dos actividades especĂficas (i) proporcionar mecanismos para reutilizar recursos, y (ii) permitir el intercambio explĂcito de aspectos comunes en un entorno distribuido.Facultad de Informátic
Hacia la construcciĂłn de librerĂas digitales basadas en reuso para universidades nacionales en la Patagonia
This article presents a case study exploring the use of software product lines and reference models as mechanisms of a reuse-based design process to build digital libraries. As a key component in a modern digital library, the reference architecture is responsible for helping define quality of the resulting repository. It is true that many efforts have been addressed towards providing interoperability; however, repositories are expected to provide high levels of reuse too, which goes beyond that of simple object sharing. This work presents the main steps we followed towards building a reusable digital library capable of accommodating such needs by (i) providing mechanisms to reuse resources, and (ii) enabling explicit sharing of commonalities in a distributed environment.Este artĂculo presenta un caso de estudio que explora el uso de lĂneas de productos de software y modelos de referencia como mecanismos de un proceso de diseño basado en reuso para construir bibliotecas digitales. Como componente clave en una biblioteca digital moderna, la arquitectura de referencia es responsable de ayudar a definir la calidad del repositorio resultante. En la literatura se han realizado muchos esfuerzos para proporcionar interoperabilidad; sin embargo, se espera que los repositorios proporcionen tambiĂ©n altos niveles de reutilizaciĂłn, que van más allá del simple intercambio de objetos. Este trabajo presenta los pasos principales para construir una biblioteca digital reusable capaz de acomodar tales necesidades mediante dos actividades especĂficas (i) proporcionar mecanismos para reutilizar recursos, y (ii) permitir el intercambio explĂcito de aspectos comunes en un entorno distribuido.Facultad de Informátic
A Semantics-Rich Information Technology Architecture for Smart Buildings
The design of smart homes, buildings and environments currently suffers from a low maturity of available methodologies and tools. Technologies, devices and protocols strongly bias the design process towards vertical integration, and more flexible solutions based on separation of design concerns are seldom applied. As a result, the current landscape of smart environments is mostly populated by defectively designed solutions where application requirements (e.g., end-user functionality) are too often mixed and intertwined with technical requirements (e.g., managing the network of devices). A mature and effective design process must, instead, rely on a clear separation between the application layer and the underlying enabling technologies, to enable effective design reuse. The role of smart gateways is to enable this separation of concerns and to provide an abstracted view of available automation technology to higher software layers.
This paper presents a blueprint for the information technology (IT) architecture of smart buildings that builds on top of established software engineering practices, such as model-driven development and semantic representation, and that avoids many pitfalls inherent in legacy approaches. The paper will also present a representative use case where the approach has been applied and the corresponding modeling and software tools
Software Reuse in Agile Development Organizations - A Conceptual Management Tool
The reuse of knowledge is considered a major factor for increasing productivity and quality. In the software industry knowledge is embodied in software assets such as code components, functional designs and test cases. This kind of knowledge reuse is also referred to as software reuse. Although the benefits can be substantial, software reuse has never reached its full potential. Organizations are not aware of the different levels of reuse or do not know how to address reuse issues. This paper proposes a conceptual management tool for supporting software reuse. Furthermore the paper presents the findings of the application of the management tool in an agile development organization
Recommended from our members
Implementation issues in product line scoping
Often product line engineering is treated similar to the waterfall model in traditional software engineering, i.e., the different phases (scoping, analysis, architecting, implementation) are treated as if they could be clearly separated and would follow each other in an ordered fashion. However, in practice strong interactions between the individual phases become apparent. In particular, how implementation is done has a strong impact on economic aspects of the project and thus how to adequately plan it. Hence, assessing these relationships adequately in the beginning has a strong impact on performing a product line project right. In this paper we present a framework that helps in exactly this task. It captures on an abstract level the relationships between scoping information and implementation aspects and thus allows to provide rough guidance on implementation aspects of the project. We will also discuss the application of our framework to a specific industrial project
Towards guidelines for building a business case and gathering evidence of software reference architectures in industry
Background: Software reference architectures are becoming widely adopted by organizations that need to support the design and maintenance of software applications of a shared domain. For organizations that plan to adopt this architecture-centric approach, it becomes fundamental to know the return on investment and to understand how software reference architectures are designed, maintained, and used. Unfortunately, there is little evidence-based support to help organizations with these challenges.
Methods: We have conducted action research in an industry-academia collaboration between the GESSI research group and everis, a multinational IT consulting firm based in Spain.
Results: The results from such collaboration are being packaged in order to create guidelines that could be used in similar contexts as the one of everis. The main result of this paper is the construction of empirically-grounded guidelines that support organizations to decide on the adoption of software reference architectures and to gather evidence to improve RA-related practices.
Conclusions: The created guidelines could be used by other organizations outside of our industry-academia collaboration. With this goal in mind, we describe the guidelines in detail for their use.Peer ReviewedPostprint (published version
- …