1,801 research outputs found

    Semantic Component Retrieval in Software Engineering

    Get PDF
    In the early days of programming the concept of subroutines, and through this software reuse, was invented to spare limited hardware resources. Since then software systems have become increasingly complex and developing them would not have been possible without reusable software elements such as standard libraries and frameworks. Furthermore, other approaches commonly subsumed under the umbrella of software reuse such as product lines and design patterns have become very successful in recent years. However, there are still no software component markets available that would make buying software components as simple as buying parts in a do-it-yourself hardware store and millions of software fragments are still lying un(re)used in configuration management repositories all over the world. The literature primarily blames this on the immense effort required so far to set up and maintain searchable component repositories and the weak mechanisms available for retrieving components from them, resulting in a severe usability problem. In order to address these issues within this thesis, we developed a proactive component reuse recommendation system, naturally integrated into test-first development approaches, which is able to propose semantically appropriate, reusable components according to the specification a developer is just working on. We have implemented an appropriate system as a plugin for the well-known Eclipse IDE and demonstrated its usefulness by carrying out a case study from a popular agile development book. Furthermore, we present a precision analysis for our approach and examples of how components can be retrieved based on a simplified semantics description in terms of standard test cases

    A test-driven approach to code search and its application to the reuse of auxiliary functionality

    Get PDF
    Context: Software developers spend considerable effort implementing auxiliary functionality used by the main features of a system (e.g., compressing/decompressing files, encryption/decription of data, scaling/rotating images). With the increasing amount of open source code available on the Internet, time and effort can be saved by reusing these utilities through informal practices of code search and reuse. However, when this type of reuse is performed in an ad hoc manner, it can be tedious and error-prone: code results have to be manually inspected and integrated into the workspace.Objective: in this paper we introduce and evaluate the use of test cases as an interface for automating code search and reuse. We call our approach Test-Driven Code Search (TDCS). Test cases serve two purposes: (1) they define the behavior of the desired functionality to be searched; and (2) they test the matching results for suitability in the local context. We also describe CodeGenie, an Eclipse plugin we have developed that performs TDCS using a code search engine called Sourcerer.Method: Our evaluation consists of two studies: an applicability study with 34 different features that were searched using CodeGenie; and a performance study comparing CodeGenie, Google Code Search, and a manual approach.Results: Both studies present evidence of the applicability and good performance of TDCS in the reuse of auxiliary functionality.Conclusion: This paper presents an approach to source code search and its application to the reuse of auxiliary functionality. Our exploratory evaluation shows promising results, which motivates the use and further investigation of TDCS. (C) 2010 Elsevier B.V. All rights reserved.Universidade Federal de São Paulo, Dept Sci & Technol, Sao Jose Dos Campos, SP, BrazilUSP, ICMC, Comp Syst Dept, BR-13560970 Sao Carlos, SP, BrazilUniv Calif Irvine, Donald Bren Sch Informat & Comp Sci, Irvine, CA USAUniversidade Federal de São Paulo, Dept Sci & Technol, Sao Jose Dos Campos, SP, BrazilWeb of Scienc

    Internet of robotic things : converging sensing/actuating, hypoconnectivity, artificial intelligence and IoT Platforms

    Get PDF
    The Internet of Things (IoT) concept is evolving rapidly and influencing newdevelopments in various application domains, such as the Internet of MobileThings (IoMT), Autonomous Internet of Things (A-IoT), Autonomous Systemof Things (ASoT), Internet of Autonomous Things (IoAT), Internetof Things Clouds (IoT-C) and the Internet of Robotic Things (IoRT) etc.that are progressing/advancing by using IoT technology. The IoT influencerepresents new development and deployment challenges in different areassuch as seamless platform integration, context based cognitive network integration,new mobile sensor/actuator network paradigms, things identification(addressing, naming in IoT) and dynamic things discoverability and manyothers. The IoRT represents new convergence challenges and their need to be addressed, in one side the programmability and the communication ofmultiple heterogeneous mobile/autonomous/robotic things for cooperating,their coordination, configuration, exchange of information, security, safetyand protection. Developments in IoT heterogeneous parallel processing/communication and dynamic systems based on parallelism and concurrencyrequire new ideas for integrating the intelligent “devices”, collaborativerobots (COBOTS), into IoT applications. Dynamic maintainability, selfhealing,self-repair of resources, changing resource state, (re-) configurationand context based IoT systems for service implementation and integrationwith IoT network service composition are of paramount importance whennew “cognitive devices” are becoming active participants in IoT applications.This chapter aims to be an overview of the IoRT concept, technologies,architectures and applications and to provide a comprehensive coverage offuture challenges, developments and applications

    What to Do With All These Project Documentations? – Research Issues in Reusing Codified Project Knowledge

    Get PDF
    Project-based organizations invest a lot of time and effort into the extensive documentation of their projects. These project documents usually contain innovative knowledge and represent a significant source of information for the continual development of a learning organization. However, this codified project knowledge often remains untapped afterwards. A central problem in this context is the sheer information overload due to the often very large documentation stocks in project-based organizations. Against this background, this paper poses the following question: what can be done with the extensive project documentation after it has been created? To answer this question, two methodological approaches are combined. First, a literature review summarizes the current status quo of research in this special area. Then, expert interviews with IT project managers provide a deeper understanding of common practical problems. The combination of respective findings makes it possible to uncover research gaps and subsequently to define future needs for research. In sum, this paper formulates six research issues, which represent a starting point on the path to more comprehensive solutions for practically coping with large stocks of codified project knowledge

    requirements and use cases

    Get PDF
    In this report, we introduce our initial vision of the Corporate Semantic Web as the next step in the broad field of Semantic Web research. We identify requirements of the corporate environment and gaps between current approaches to tackle problems facing ontology engineering, semantic collaboration, and semantic search. Each of these pillars will yield innovative methods and tools during the project runtime until 2013. Corporate ontology engineering will improve the facilitation of agile ontology engineering to lessen the costs of ontology development and, especially, maintenance. Corporate semantic collaboration focuses the human-centered aspects of knowledge management in corporate contexts. Corporate semantic search is settled on the highest application level of the three research areas and at that point it is a representative for applications working on and with the appropriately represented and delivered background knowledge. We propose an initial layout for an integrative architecture of a Corporate Semantic Web provided by these three core pillars

    Service-Oriented Architecture (SOA), Agile Development Methods and Quality Assurance (QA) : a case study

    Get PDF
    Dissertação (mestrado)—Universidade de Brasília, Instituto de Ciências Exatas, Departamento de Ciência da Computação, 2019.Este trabalho propõe um framework batízado de NatVI e apresenta um estudo de caso que lidam com a interface entre Service-Oriented Architecture (SOA). Agile Development e Quality Assurance (QA). O framework NatVI busca apresentar uma solução para todo o ciclo de desenvolvimento de software. neste caso com foco em aplicações baseadas em serviços. NatVI foi resultado de uma revisão da literatura onde os 'trade off' conhecidos entre SOA e Métodos Ágeis foram identificados e as soluções possíveis avaliadas e incorporadas ao produto final Também foram consideradas as melhores práticas baseadas tanto nos princípios de SOA quando nos princípios ágeis. Muito importante neste cenário foi não perder QA de vista. uma necessidade intrínseca aos projetos de software. Tudo isso para responder ao aumento no dinamismo dos ambientes de negócios que está aumentando a cada dia devido ao próprio dinamismo do avanço tecnológico. As organizações são chamadas a entregar valores com rapidez e confiança neste ambiente onde as possibilidades de soluções evoluem quase que diariamente. E os governos não são diferentes, obrigados a prestar mais e melhores serviços aos cidadãos e às empresas. O governo brasileiro não é uma exceção. As formas tradicionais de pensar o processo de engenharia de software vêm apresentando algumas dificuldades para lidar com este novo cenário. principalmente porque não são adequadas para lidar com constantes mudanças nos requisitos e entregas rápidas, conceitos que SOA e Métodos de Desenvolvimento Ágeis prometem ser capazes de responder. O estudo de caso foi realizado em uma pequena unidade do governo federal brasileiro. Um órgão responsável pela supervisão de um campo de interesse institucional para o país. O framework NatVI proposto foi aplicado em um ambiente onde SOA já estava em uso, apesar de ínslpiente. O estudo de caso avaliou a evolução da qualidade de software por meio do acompanhamento de métricas de erro no código fonte Avaliou a evolução do entendimento sobre os métodos ágeis bem como o engajamento no processo por parte da equipe de desenvolvimento. Avaliou ainda a satisfação dos clientes com o novo processo de desenvolvimento. Durante o estudo de caso. aproveitou-se um treinamento em desenvolvimento ágil que foi ministrado pela instituição à equipe e TI e alguns clientes Algumas limitações foram identificadas. Por exemplo, o tamanho da equipe de TI envolvida e a quantidade de clientes que participaram foi considerada pequena para uma inferência estatística Uma avaliação subjetiva teve que ser feita para melhorar o entendimento dos números. Desta forma, entrevistas semiestruturada foram feitas. Os resultados encontrados indicam que o caminho é promissor. mas indica também que muitos estudos ainda necessitam ser feitos, o que não é ruim, pois abre um campo vasto para pesquisas, ainda mais considerando outros ingredientes que foram identificados durante este trabalho. que podem muito bem fazer parte de estudos futuros. como containers e DevOps, por exemplo.Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES).This work proposes a framework named NatVI and presents a case study that deals with the interface between the Service-Oríented Architecture (SOA) with Agile Development Methods and Qualíty Assurance (QA). The NatVI framework seeks to present a solution for the entire software development cycle, in this case focusing on service-based applications. The framework was the result of a literature review where the known trade-offs between SOA and Agile Methods were identified and the possible solutions evaluated and incorporated unto the final product. Best practices based on both the SOA principles and agile principles were also considered. It was very important in this scenario not to cose QA of view, an intrinsic need for software projects. All this to respond to the increase in the dynamism of business environments that ís increasing every day due to the very dynamism of technological advancement. Organizations are called to deliver values quickly and confidently in this environment where solutíons possibilities evolve almost daily. And governments are no different. obliged to provide more and better services to citizens and busínesses. The Brazilian government is no exception. The traditional ways of thinking the software engineering process have presented some difficulties in dealing with this new scenario. mainly because they are not adequate to deal with constant changes in requirements and fast deliveries. concepts that SOA and Agite Development Methods promise to be able to respond. The case study was carríed out in a small unit of the Brazilian federal government. A unit that is responsible for supervisíng a field of institutional interest to the country. The proposed NatVI framework was applied in an environment where SOA was already in use, though ít was insipid The case study evaluated the evolution of software quality through the monitoring of errar metrics in the source cede. It evaluated the evolution of the understandíng of the agíle methods as well as the engagement in the process by the development team. It also evaluated customer satisfaction with the new development process. During the case study, an agile development training was used that was given by the institution to the team and IT and some clíents. Some limitations have been identified. For example, the size of the IT staff involved and the number of customers who partícipated was considered small for an inference statistics. A subjective assessment had to be made to improve the understanding of numbers. In this way. semi- structured interviews were made. The results indicate that the way ís promising, but it also índicates that many studíes still need to be done. which ís not bad, lince it opens up a vast fleld for research. even more considering other concepts that were identlfied during this work, which can greatly well be part of future studies. such as containers and DevOps, for example
    corecore