267,195 research outputs found
Domain-specific functional software testing: A progress report
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
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
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)
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
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
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
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
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
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
- …