386 research outputs found

    OntoCheck: verifying ontology naming conventions and metadata completeness in Protégé 4

    Get PDF
    BACKGROUND: Although policy providers have outlined minimal metadata guidelines and naming conventions, ontologies of today still display inter- and intra-ontology heterogeneities in class labelling schemes and metadata completeness. This fact is at least partially due to missing or inappropriate tools. Software support can ease this situation and contribute to overall ontology consistency and quality by helping to enforce such conventions. OBJECTIVE: We provide a plugin for the Protégé Ontology editor to allow for easy checks on compliance towards ontology naming conventions and metadata completeness, as well as curation in case of found violations. IMPLEMENTATION: In a requirement analysis, derived from a prior standardization approach carried out within the OBO Foundry, we investigate the needed capabilities for software tools to check, curate and maintain class naming conventions. A Protégé tab plugin was implemented accordingly using the Protégé 4.1 libraries. The plugin was tested on six different ontologies. Based on these test results, the plugin could be refined, also by the integration of new functionalities. RESULTS: The new Protégé plugin, OntoCheck, allows for ontology tests to be carried out on OWL ontologies. In particular the OntoCheck plugin helps to clean up an ontology with regard to lexical heterogeneity, i.e. enforcing naming conventions and metadata completeness, meeting most of the requirements outlined for such a tool. Found test violations can be corrected to foster consistency in entity naming and meta-annotation within an artefact. Once specified, check constraints like name patterns can be stored and exchanged for later re-use. Here we describe a first version of the software, illustrate its capabilities and use within running ontology development efforts and briefly outline improvements resulting from its application. Further, we discuss OntoChecks capabilities in the context of related tools and highlight potential future expansions. CONCLUSIONS: The OntoCheck plugin facilitates labelling error detection and curation, contributing to lexical quality assurance in OWL ontologies. Ultimately, we hope this Protégé extension will ease ontology alignments as well as lexical post-processing of annotated data and hence can increase overall secondary data usage by humans and computers

    Supporting Source Code Search with Context-Aware and Semantics-Driven Query Reformulation

    Get PDF
    Software bugs and failures cost trillions of dollars every year, and could even lead to deadly accidents (e.g., Therac-25 accident). During maintenance, software developers fix numerous bugs and implement hundreds of new features by making necessary changes to the existing software code. Once an issue report (e.g., bug report, change request) is assigned to a developer, she chooses a few important keywords from the report as a search query, and then attempts to find out the exact locations in the software code that need to be either repaired or enhanced. As a part of this maintenance, developers also often select ad hoc queries on the fly, and attempt to locate the reusable code from the Internet that could assist them either in bug fixing or in feature implementation. Unfortunately, even the experienced developers often fail to construct the right search queries. Even if the developers come up with a few ad hoc queries, most of them require frequent modifications which cost significant development time and efforts. Thus, construction of an appropriate query for localizing the software bugs, programming concepts or even the reusable code is a major challenge. In this thesis, we overcome this query construction challenge with six studies, and develop a novel, effective code search solution (BugDoctor) that assists the developers in localizing the software code of interest (e.g., bugs, concepts and reusable code) during software maintenance. In particular, we reformulate a given search query (1) by designing novel keyword selection algorithms (e.g., CodeRank) that outperform the traditional alternatives (e.g., TF-IDF), (2) by leveraging the bug report quality paradigm and source document structures which were previously overlooked and (3) by exploiting the crowd knowledge and word semantics derived from Stack Overflow Q&A site, which were previously untapped. Our experiment using 5000+ search queries (bug reports, change requests, and ad hoc queries) suggests that our proposed approach can improve the given queries significantly through automated query reformulations. Comparison with 10+ existing studies on bug localization, concept location and Internet-scale code search suggests that our approach can outperform the state-of-the-art approaches with a significant margin

    How May I Help You? – State of the Art and Open Research Questions for Chatbots at the Digital Workplace

    Get PDF
    Chatbots become quite hyped in recent times as they can provide an intuitive and easy-to-use natural language human-computer interface. Nevertheless, they are not yet widespread in enterprises. Corresponding application areas for collaboration at digital workplaces are lacking and prior research contributions on this topic are limited. In this research paper, we aim at surveying the state of the art as well as showing future research topics. Thus, we conducted a structured literature review and showed that only few first research contributions exist. We also outline current potentials and objectives of chatbot applications. In the discussion of the results of our structured literature review, we show that research gaps are present. To tackle the research gaps, we derive open research questions

    Käytettävyyden ja kehityksen modernisointi mikropalveluilla

    Get PDF
    Vanhat ohjelmistojärjestelmät, joilla tarkoitetaan vanhoja ja vanhentuneita ohjelmistoja joita on tehty vanhentuneilla työskentelytavoilla, ovat todellisuus jonka kanssa suurin osa ohjelmistokehitysyrityksistä joutuvat kamppailemaan. Vanhat työskentelytavat ja teknologiat aiheuttavat usein ohjelmiston kehityksen ja julkaisun hidastumista, sillä niiden jatkuvassa käytössä voi piillä yhteensopivuus, turvallisuus, skaalautuvuus sekä ekonomisia ongelmia, muiden ongelmien muassa. Ohjelmistojärjestelmien modernisointi, uudelleensuunnittelu ja refaktorointi voivat lievittää vanhoista järjestelmistä nousevia ongelmia, oli se sitten työskentelytapojen muutoksella, teknologioiden päivityksellä tai ohjelmistoalustojen vaihdolla. On olemassa monia teknologioita ja metodeja jotka voivat helpottaa ohjelmistojärjestelmien modernisointia, mukaanlukien siirto käyttämään erilaista arkkitehtuuria, uusien teknologioiden käyttöönotto ja ohjelmistokehityksen tapojen vaihto. Näillä teknologioilla ja metodeilla, ja modernisaatiolla yleensäkkin, on omat riskinsä ja haasteensa, jotka tulee ottaa huomioon onnistuneen modernisaation aikaansaamiseksi; Nämä strategiset huomiot ovat avaintekijöitä modernisaatiossa. Tämä opinnäytetyö tutkii ohjelmistojen modernisaatiota yleisellä tasolla kirjallisuusarvostelun kautta, ja käyttää tietyn yrityksen tapaustutkimuksen dataa, joka on kerätty kyselyjen ja yhtiön lokien kautta, katsoen mitä teknologioita, konsepteja ja strategioita tarvitaan onnistuneeseen modernisaatioon, ja mitä vaikutuksia modernisaatiolla on modernisoitavaan ohjelmistojärjestelmään loppukäyttäjien sekä ohjelmistokehittäjien näkökulmasta. Tämän tutkimuksen lopputulos paljastaa miksi modernisaatio on monimutkainen aihe jossa on monia haasteita, mutta joka samaan aikaan tarjoaa monia hyötyjä modernisoitavalle ohjelmistojärjestelmälle. Näitä tuloksia on parasta käyttää ohjeina siihen, mihin ongelmiin kannattaa keskittyä modernisoinnin aikana, pitäen mielessä tapaustutkimuksen rajoitetun soveltamisalan.Legacy software systems, which refers to old and likely outdated software applications and practices, are a reality that most software development companies have to contend with. Old practices and technologies are often at fault for slowing down development and deployment of software, as they can have compatibility, security, scalability and economic issues with their continued use, among other issues. Software modernization, reengineering and refactoring can alleviate the issues stemming from legacy systems, whether it be in the form of altering practices, updating technologies or changing platforms. There are many technologies and methods that can facilitate the modernization of a software system, including a move to using different architectures, specific newer technologies and changing the methods of working and developing the software system. These technologies and methods, and modernization in general, come with their own risks and challenges that must be considered for a successful modernization to take place; These strategic considerations are a key factor in modernization. This thesis will explore software modernization in general through literature reviews and as a case study for a specific company using data from surveys and the case company’s logs, with a look into the technologies, concepts and strategies required for a successful modernization, and what kinds of effects modernization can have on the software system being modernized, both from a user perspective as well as from a developer perspective. The end-result of this exploration reveals that modernization is a complex subject with many challenges, but that also offers benefits to the software system being modernized. These results are best used as a guideline on what issues should be concentrated on during modernization, with a mindful consideration for the limited scope of the case study represented within

    A Systematic Review of Automated Query Reformulations in Source Code Search

    Full text link
    Fixing software bugs and adding new features are two of the major maintenance tasks. Software bugs and features are reported as change requests. Developers consult these requests and often choose a few keywords from them as an ad hoc query. Then they execute the query with a search engine to find the exact locations within software code that need to be changed. Unfortunately, even experienced developers often fail to choose appropriate queries, which leads to costly trials and errors during a code search. Over the years, many studies attempt to reformulate the ad hoc queries from developers to support them. In this systematic literature review, we carefully select 70 primary studies on query reformulations from 2,970 candidate studies, perform an in-depth qualitative analysis (e.g., Grounded Theory), and then answer seven research questions with major findings. First, to date, eight major methodologies (e.g., term weighting, term co-occurrence analysis, thesaurus lookup) have been adopted to reformulate queries. Second, the existing studies suffer from several major limitations (e.g., lack of generalizability, vocabulary mismatch problem, subjective bias) that might prevent their wide adoption. Finally, we discuss the best practices and future opportunities to advance the state of research in search query reformulations.Comment: 81 pages, accepted at TOSE

    Enhancement of the usability of SOA services for novice users

    Get PDF
    Recently, the automation of service integration has provided a significant advantage in delivering services to novice users. This art of integrating various services is known as Service Composition and its main purpose is to simplify the development process for web applications and facilitates reuse of services. It is one of the paradigms that enables services to end-users (i.e.service provisioning) through the outsourcing of web contents and it requires users to share and reuse services in more collaborative ways. Most service composers are effective at enabling integration of web contents, but they do not enable universal access across different groups of users. This is because, the currently existing content aggregators require complex interactions in order to create web applications (e.g., Web Service Business Process Execution Language (WS-BPEL)) as a result not all users are able to use such web tools. This trend demands changes in the web tools that end-users use to gain and share information, hence this research uses Mashups as a service composition technique to allow novice users to integrate publicly available Service Oriented Architecture (SOA) services, where there is a minimal active web application development. Mashups being the platforms that integrate disparate web Application Programming Interfaces (APIs) to create user defined web applications; presents a great opportunity for service provisioning. However, their usability for novice users remains invalidated since Mashup tools are not easy to use they require basic programming skills which makes the process of designing and creating Mashups difficult. This is because Mashup tools access heterogeneous web contents using public web APIs and the process of integrating them become complex since web APIs are tailored by different vendors. Moreover, the design of Mashup editors is unnecessary complex; as a result, users do not know where to start when creating Mashups. This research address the gap between Mashup tools and usability by the designing and implementing a semantically enriched Mashup tool to discover, annotate and compose APIs to improve the utilization of SOA services by novice users. The researchers conducted an analysis of the already existing Mashup tools to identify challenges and weaknesses experienced by novice Mashup users. The findings from the requirement analysis formulated the system usability requirements that informed the design and implementation of the proposed Mashup tool. The proposed architecture addressed three layers: composition, annotation and discovery. The researchers developed a simple Mashup tool referred to as soa-Services Provisioner (SerPro) that allowed novice users to create web application flexibly. Its usability and effectiveness was validated. The proposed Mashup tool enhanced the usability of SOA services, since data analysis and results showed that it was usable to novice users by scoring a System Usability Scale (SUS) score of 72.08. Furthermore, this research discusses the research limitations and future work for further improvements
    corecore