31 research outputs found

    NLP2Code: Code Snippet Content Assist via Natural Language Tasks

    Full text link
    Developers increasingly take to the Internet for code snippets to integrate into their programs. To save developers the time required to switch from their development environments to a web browser in the quest for a suitable code snippet, we introduce NLP2Code, a content assist for code snippets. Unlike related tools, NLP2Code integrates directly into the source code editor and provides developers with a content assist feature to close the vocabulary gap between developers' needs and code snippet meta data. Our preliminary evaluation of NLP2Code shows that the majority of invocations lead to code snippets rated as helpful by users and that the tool is able to support a wide range of tasks.Comment: tool demo video available at https://www.youtube.com/watch?v=h-gaVYtCznI; to appear as a tool demo paper at ICSME 2017 (https://icsme2017.github.io/

    QuantityEr: Una soluci贸n simple y extensible para obtener la cantidad de resultados de consultas complejas a GitHub

    Get PDF
    GitHub is a platform that provides hosting for software development version control using Git. It features an application programming interface to allow the software to interact with the platform. The enormous quantity of information Hosted in GitHub may be useful to make studies about the current presence of development tools in the open-source software development community. However, the search engine has restrictions that make it impossible to issue complex queries to the platform. In this report, it is described as an object-oriented and extensible solution, named QuantityEr, to obtain the number of search results of complex queries to GitHub by using the inclusion-exclusion principle. The mathematical definitions, as well as related concepts, are presented. The mathematical model is discussed. The application of general design and used development tools are presented. Also, the results of the execution examples are showed. It is concluded that the treated problem has been solved although more work may be done to improve the solution.GitHub es una plataforma que proporciona alojamiento para el control de versiones de desarrollo de software utilizando Git. Cuenta con una interfaz de programaci贸n de aplicaciones para permitir que el software interact煤e con la plataforma. La enorme cantidad de informaci贸n alojada en GitHub puede ser 煤til para realizar estudios sobre la presencia actual de herramientas de desarrollo en la comunidad de desarrollo de software de c贸digo abierto. Sin embargo, el motor de b煤squeda posee restricciones que hacen imposible emitir consultas complejas a la plataforma. En este informe, se describe una soluci贸n extensible y orientada a objetos, llamada QuantityEr, para obtener la cantidad de resultados de b煤squeda de consultas complejas a GitHub utilizando el principio de inclusi贸n-exclusi贸n. Se presentan las definiciones matem谩ticas y los conceptos relacionados. Se discute el modelo matem谩tico. Se presentan el dise帽o general de la aplicaci贸n y las herramientas de desarrollo utilizadas. Adem谩s, son mostrados resultados de ejemplos de ejecuci贸n. Se concluye que el problema tratado ha sido resuelto aunque se puede trabajar para mejorar la soluci贸n

    Application of machine learning techniques to the flexible assessment and improvement of requirements quality

    Get PDF
    It is already common to compute quantitative metrics of requirements to assess their quality. However, the risk is to build assessment methods and tools that are both arbitrary and rigid in the parameterization and combination of metrics. Specifically, we show that a linear combination of metrics is insufficient to adequately compute a global measure of quality. In this work, we propose to develop a flexible method to assess and improve the quality of requirements that can be adapted to different contexts, projects, organizations, and quality standards, with a high degree of automation. The domain experts contribute with an initial set of requirements that they have classified according to their quality, and we extract their quality metrics. We then use machine learning techniques to emulate the implicit expert鈥檚 quality function. We provide also a procedure to suggest improvements in bad requirements. We compare the obtained rule-based classifiers with different machine learning algorithms, obtaining measurements of effectiveness around 85%. We show as well the appearance of the generated rules and how to interpret them. The method is tailorable to different contexts, different styles to write requirements, and different demands in quality. The whole process of inferring and applying the quality rules adapted to each organization is highly automatedThis research has received funding from the CRYSTAL project鈥揅ritical System Engineering Acceleration (European Union鈥檚 Seventh Framework Program FP7/2007-2013, ARTEMIS Joint Undertaking grant agreement no 332830); and from the AMASS project鈥揂rchitecture-driven, Multi-concern and Seamless Assurance and Certification of Cyber-Physical Systems (H2020-ECSEL grant agreement no 692474; Spain鈥檚 MINECO ref. PCIN-2015-262)

    Hierarchical clustering-based framework for a posteriori exploration of Pareto fronts: application on the bi-objective next release problem

    Get PDF
    IntroductionWhen solving multi-objective combinatorial optimization problems using a search algorithm without a priori information, the result is a Pareto front. Selecting a solution from it is a laborious task if the number of solutions to be analyzed is large. This task would benefit from a systematic approach that facilitates the analysis, comparison and selection of a solution or a group of solutions based on the preferences of the decision makers. In the last decade, the research and development of algorithms for solving multi-objective combinatorial optimization problems has been growing steadily. In contrast, efforts in the a posteriori exploration of non-dominated solutions are still scarce.MethodsThis paper proposes an abstract framework based on hierarchical clustering in order to facilitate decision makers to explore such a Pareto front in search of a solution or a group of solutions according to their preferences. An extension of that abstract framework aimed at addressing the bi-objective Next Release Problem is presented, together with a Dashboard that implements that extension. Based on this implementation, two studies are conducted. The first is a usability study performed with a small group of experts. The second is a performance analysis based on computation time consumed by the clustering algorithm.ResultsThe results of the initial empirical usability study are promising and indicate directions for future improvements. The experts were able to correctly use the dashboard and properly interpret the visualizations in a very short time. In the same direction, the results of the performance comparison highlight the advantage of the hierarchical clustering-based approach in terms of response time.DiscussionBased on these excellent results, the extension of the framework to new problems is planned, as well as the implementation of new validity tests with expert decision makers using real-world data

    Kollaboratives Reengineering und Modularisieren von Softwaresystemen

    Get PDF
    Software systems evolve over their lifetime. Changing requirements make it inevitable for developers to modify and extend the underlying code base. Specific requirements emerge in the context of open source software where everybody can contribute and requirements can change over time. In particular, research software is often not structured with a maintainable and extensible architecture. Furthermore, often databases are employed for retrieving, storing, and processing application data. Insufficient knowledge of the actual structure and behavior of such software systems and related databases can entail further challenges. Thus, understanding these software systems embodies a crucial task, which needs to be addressed in an appropriate way to face inevitable challenges while performing software changes. Approaches based on alternative display and interaction concepts can support this task by offering a more immersive user experience. In this thesis, we introduce three complementary approaches to support the evolution and particularly understanding of software systems in different aspects. Our main contributions are (i) an approach named CORAL for enabling collaborative reengineering and modularization of software systems, (ii) a gesture-based, collaborative, and multi-user-featuring Virtual Reality approach named ExplorViz VR for the software city metaphor, and (iii) a database behavior live-visualization approach named RACCOON for database comprehension of software systems. An extensive case study shows that our CORAL approach is capable of supporting reengineering and modularization processes. Furthermore, several lab experiments demonstrate the high usability, and efficiency and effectiveness for solving comprehension tasks when using the visualization within our multi-user VR approach ExplorViz VR. All implementations are available as open-source software on www.explorviz.net. Additionally, we provide an extensive experimental package of our latest VR evaluation to facilitate the verifiability and reproducibility of our results
    corecore