267,195 research outputs found

    Domain-specific functional software testing: A progress report

    Get PDF
    Software Engineering is a knowledge intensive activity that involves defining, designing, developing, and maintaining software systems. In order to build effective systems to support Software Engineering activities, Artificial Intelligence techniques are needed. The application of Artificial Intelligence technology to Software Engineering is called Knowledge-based Software Engineering (KBSE). The goal of KBSE is to change the software life cycle such that software maintenance and evolution occur by modifying the specifications and then rederiving the implementation rather than by directly modifying the implementation. The use of domain knowledge in developing KBSE systems is crucial. Our work is mainly related to one area of KBSE that is called automatic specification acquisition. One example is the WATSON prototype on which our current work is based. WATSON is an automatic programming system for formalizing specifications for telephone switching software mainly restricted to POTS, i.e., plain old telephone service. Our current approach differentiates itself from other approaches in two antagonistic ways. On the one hand, we address a large and complex real-world problem instead of a 'toy domain' as in many research prototypes. On the other hand, to allow such scaling, we had to relax the ambitious goal of complete automatic programming, to the easier task of automatic testing

    Automation and Artificial Intelligence in Software Engineering: Experiences, Challenges, and Opportunities

    Get PDF
    Automation and Artificial Intelligence have a transformative influence on many sectors, and software engineers are the actors who engineer this transformation. On the other hand, there is little knowledge of how automation and Artificial Intelligence impact software engineering practice. To answer this question, we conducted semi-structured interviews with experienced software practitioners across frontend and backend development, DevOps, R&D, integration, and leadership positions. Our findings reveal 1) automation to appear as micro-automation in the sense of automation of tiny and specific tasks, 2) automation as a side product of work, and bottom-up driven in software engineering, and 3) automation as a possible cause for cognitive overhead due to automatically generated notifications. Furthermore, we notice that our interview participants do not expect automation and artificial intelligence tools to substantially change software engineering\u27s essence in the foreseeable future

    DIANA, a program for Feynman Diagram Evaluation

    Get PDF
    A C-program DIANA (DIagram ANAlyser) for the automatic Feynman diagram evaluation is presented.Comment: LaTeX, 5 pages, no figures; talk given at 6th International Workshop on Software Engineering, Artificial Intelligence, Neural Nets, Genetic Algorithms, Symbolic Algebra, Automatic Calculation (AIHENP 99), Heraklion, Crete, Greece, 12-16 April, 199

    at the 14th Conference of the Spanish Association for Artificial Intelligence (CAEPIA 2011)

    Get PDF
    Technical Report TR-2011/1, Department of Languages and Computation. University of Almeria November 2011. Joaquín Cañadas, Grzegorz J. Nalepa, Joachim Baumeister (Editors)The seventh workshop on Knowledge Engineering and Software Engineering (KESE7) was held at the Conference of the Spanish Association for Artificial Intelligence (CAEPIA-2011) in La Laguna (Tenerife), Spain, and brought together researchers and practitioners from both fields of software engineering and artificial intelligence. The intention was to give ample space for exchanging latest research results as well as knowledge about practical experience.University of Almería, Almería, Spain. AGH University of Science and Technology, Kraków, Poland. University of Würzburg, Würzburg, Germany

    Framework for the Automation of SDLC Phases using Artificial Intelligence and Machine Learning Techniques

    Get PDF
    Software Engineering acts as a foundation stone for any software that is being built. It provides a common road-map for construction of software from any domain. Not following a well-defined Software Development Model have led to the failure of many software projects in the past. Agile is the Software Development Life Cycle (SDLC) Model that is widely used in practice in the IT industries to develop software on various technologies such as Big Data, Machine Learning, Artificial Intelligence, Deep learning. The focus on Software Engineering side in the recent years has been on trying to automate the various phases of SDLC namely- Requirements Analysis, Design, Coding, Testing and Operations and Maintenance. Incorporating latest trending technologies such as Machine Learning and Artificial Intelligence into various phases of SDLC, could facilitate for better execution of each of these phases. This in turn helps to cut-down costs, save time, improve the efficiency and reduce the manual effort required for each of these phases. The aim of this paper is to present a framework for the application of various Artificial Intelligence and Machine Learning techniques in the different phases of SDLC

    Generative Artificial Intelligence for Software Engineering -- A Research Agenda

    Full text link
    Generative Artificial Intelligence (GenAI) tools have become increasingly prevalent in software development, offering assistance to various managerial and technical project activities. Notable examples of these tools include OpenAIs ChatGPT, GitHub Copilot, and Amazon CodeWhisperer. Although many recent publications have explored and evaluated the application of GenAI, a comprehensive understanding of the current development, applications, limitations, and open challenges remains unclear to many. Particularly, we do not have an overall picture of the current state of GenAI technology in practical software engineering usage scenarios. We conducted a literature review and focus groups for a duration of five months to develop a research agenda on GenAI for Software Engineering. We identified 78 open Research Questions (RQs) in 11 areas of Software Engineering. Our results show that it is possible to explore the adoption of GenAI in partial automation and support decision-making in all software development activities. While the current literature is skewed toward software implementation, quality assurance and software maintenance, other areas, such as requirements engineering, software design, and software engineering education, would need further research attention. Common considerations when implementing GenAI include industry-level assessment, dependability and accuracy, data accessibility, transparency, and sustainability aspects associated with the technology. GenAI is bringing significant changes to the field of software engineering. Nevertheless, the state of research on the topic still remains immature. We believe that this research agenda holds significance and practical value for informing both researchers and practitioners about current applications and guiding future research

    Artificial intelligence approaches to software engineering

    Get PDF
    Artificial intelligence approaches to software engineering are examined. The software development life cycle is a sequence of not so well-defined phases. Improved techniques for developing systems have been formulated over the past 15 years, but pressure continues to attempt to reduce current costs. Software development technology seems to be standing still. The primary objective of the knowledge-based approach to software development presented in this paper is to avoid problem areas that lead to schedule slippages, cost overruns, or software products that fall short of their desired goals. Identifying and resolving software problems early, often in the phase in which they first occur, has been shown to contribute significantly to reducing risks in software development. Software development is not a mechanical process but a basic human activity. It requires clear thinking, work, and rework to be successful. The artificial intelligence approaches to software engineering presented support the software development life cycle through the use of software development techniques and methodologies in terms of changing current practices and methods. These should be replaced by better techniques that that improve the process of of software development and the quality of the resulting products. The software development process can be structured into well-defined steps, of which the interfaces are standardized, supported and checked by automated procedures that provide error detection, production of the documentation and ultimately support the actual design of complex programs

    A knowledge representation semantic network for a natural language syntactic analyzer based on the UML

    Get PDF
    The need for improving software processes approximated the software engineering and artificial intelligence areas. Artificial intelligence techniques have been used as a support to software development processes, particularly through intelligent assistants that offer a knowledge-based support to software process’ activities. The context of the present work is a project for an intelligent assistant that implements a linguistic technique with the purpose of extracting object-oriented elements from requirement specifications in natural language through two main functionalities: the syntactic and semantic analyses. The syntactic analysis has the purpose of extracting the syntactic constituents from a sentence; and the semantic analysis has the goal of extracting the meaning from a set of sentences, i.e., a text. This paper focuses on the syntactic analysis functionality and applies the UML to its core as a semantic network for knowledge representation, based on the premise that the UML is de facto a standard general modeling language for software development.Applications in Artificial Intelligence - Language ProcessingRed de Universidades con Carreras en Informática (RedUNCI

    Knowledge-Based Aircraft Automation: Managers Guide on the use of Artificial Intelligence for Aircraft Automation and Verification and Validation Approach for a Neural-Based Flight Controller

    Get PDF
    The ultimate goal of this report was to integrate the powerful tools of artificial intelligence into the traditional process of software development. To maintain the US aerospace competitive advantage, traditional aerospace and software engineers need to more easily incorporate the technology of artificial intelligence into the advanced aerospace systems being designed today. The future goal was to transition artificial intelligence from an emerging technology to a standard technology that is considered early in the life cycle process to develop state-of-the-art aircraft automation systems. This report addressed the future goal in two ways. First, it provided a matrix that identified typical aircraft automation applications conducive to various artificial intelligence methods. The purpose of this matrix was to provide top-level guidance to managers contemplating the possible use of artificial intelligence in the development of aircraft automation. Second, the report provided a methodology to formally evaluate neural networks as part of the traditional process of software development. The matrix was developed by organizing the discipline of artificial intelligence into the following six methods: logical, object representation-based, distributed, uncertainty management, temporal and neurocomputing. Next, a study of existing aircraft automation applications that have been conducive to artificial intelligence implementation resulted in the following five categories: pilot-vehicle interface, system status and diagnosis, situation assessment, automatic flight planning, and aircraft flight control. The resulting matrix provided management guidance to understand artificial intelligence as it applied to aircraft automation. The approach taken to develop a methodology to formally evaluate neural networks as part of the software engineering life cycle was to start with the existing software quality assurance standards and to change these standards to include neural network development. The changes were to include evaluation tools that can be applied to neural networks at each phase of the software engineering life cycle. The result was a formal evaluation approach to increase the product quality of systems that use neural networks for their implementation
    corecore