The first day of the 2013 RAISE workshop focused on the "state of the art" in the synergy between artificial intelligence and software engineering. Several 5-7 page position statements describing late-breaking research results were presented, along with perspectives and a keynote from notable researchers in both fields.
Sol Greenspan of the NSF could not attend the workshop in person, but sent some inspiring words to start off the day:
Dear RAISE attendees:
I would like to add my welcome and appreciation to those who have come to this meeting on Artificial Intelligence (AI) and Software Engineering (SE) synergies. I had planned to attend and am so sorry it did not work out to be there with you. Since I am not in the room for the presentations and discussions, I will absorb as much as possible from your papers and follow-up activities.
Tim and Rachel, among others, deserve our thanks for organizing the RAISE series. Like them, I believe the fields of AI and SE have much to offer each other and want to encourage this interaction. The role of travel support from the US National Science Foundation is to help increase participation, thus increasing the diversity of contributors, ideas and results.
Some of the more direct and immediate opportunities come from an array of maturing AI techniques and technologies which some of you have recognize can play useful roles in SE, such as using machine learning techniques to make sense of bodies of SE project data or using natural language processing notions to relate documentation to specifications and code in software development processes. And, of course, one could mention other examples of useful technologies worth importing to SE research and practice.
At another level, there is a broad and deep set of AI ideas from which SE can benefit. These include (but are not limited to) the use of knowledge representation techniques and tools to model domain knowledge, or the use of reasoning techniques to understand, verify or generate programs, to express requirements, search design spaces, and so on. There is a rich history of AI and SE crossfertilization. Once upon a time, there was a series of conferences called KBSE – Knowledge Based Software Engineering – which explored the intersection of AI and SE. It was a vibrant and ambitious community. After a period of fruitful collaborations and advancements, which are available in the literature and worth reading, KBSE morphed into the Automating Software Engineering (ASE) conferences and the ASE Journal, which are excellent venues for meeting and publishing SE research, but, for the most part, are now light on AI synergies.
The field of AI has a unifying theme, which is to explore different domains where human expertise with the objective of creating increasingly powerful, perhaps “intelligent,” machines (putting aside, for now, questions like “What is intelligence?” or “How are human intelligence and machine intelligence the same or different?”). Programming is one of the domains to which AI paid a lot of attention, since it is an important, fascinating and complex human activity where competence, precision and excellence are worth pursuing through machine support and automation. In prior decades, AI conferences such as IJCAI and AAAI contained sessions on Automatic Programming (AP), thus within the AI community itself there existed a mainstream activity in the intersection of AI and SE, which addressed SE goals in the context of AI. As an historical note, let me mention that I attended AAAI last year, and there were no sessions on automatic programming, except for manifestations in narrow, specialized domains. Thus, SE may have to take over the stewardship of the AI/SE relationship. If AI once attracted SE people by framing SE problems as AI problems, we should now consider how to attract AI people to participate in SE (e.g., through RAISE) to bring the desired synergies to bear on SE.
Importantly, the synergies between AI and SE are a two-way street, since programming is not only the subject of automatic programming but also the means of achieving it.
SE is also needed to advance AI domains. Projects to create AI capabilities (e.g.,, in medical diagnosis, robotics, theorem-proving, etc.) have turned into large software development efforts that need what SE has to offer. AI endeavors usually don’t consider the SE issues as primary, but things could move in that direction as the needs increase to compose, integrate, compose, test, verify and sustain large bodies of software.
Do have an enjoyable and productive workshop, and I’ll catch up with you all later. I wish I were there!
Directorate for Computer and Information Science
Side-discussion on Twitter was encouraged under the hashtag . Some of the tweets are collected here: