Mark HarmanSearch Based Software Engineering as an Agent for Adaptivity
Search Based Software Engineering (SBSE) has proved to be a very effective way of automating and optimising software engineering problems, ranging right across the spectrum of software engineering activities. This keynote will present an overview of SBSE, focusing on aspects relating to the emerging agenda of Dynamic Adaptive SBSE, in which the search-based optimisation is used as a agent of adaptivity. This is joint work with Professors Edmund Burke, John Clark and Xin Yao and colleagues on the DAASE project (http://daase.cs.ucl.ac.uk).
Mark Harman is professor of Software Engineering in the Department of Computer Science at University College London, where he directs the CREST centre and is Head of Software Systems Engineering. He is widely known for work on source code analysis and testing and co-founded the field of Search Based Software Engineering (SBSE), the topic of this keynote. SBSE research has rapidly grown over the past five years and now includes over 800 authors, from nearly 300 institutions spread over more than 40 countries. A recent tutorial paper on SBSE can be found here: http://www.cs.ucl.ac.uk/staff/mharman/laser.pdf
Nenad MedvidovićAdapting Our View of Software Adaptation: An Architectural Perspective
Engineers frequently neglect to carefully consider the impact of adaptation on a software system. As a result, the software system's architectural design sooner, rather than later, begins to deviate from the original designers' intent and to decay through unplanned introduction of new and/or invalidation of existing design decisions. For systems that are intended to be (self-)adaptive, this problem can be even more pronounced. A solution that was proposed over a decade ago was to keep the architectures of (self-)adaptive systems in sync with their implementations through carefully engineered implementation frameworks, and to allow implementation-level adaptations only via carefully controlled architecture-level operations. However, many approaches to (self-)adaptive software do not explicitly consider the system’s architecture as the starting point for adaptation and, more generally, developers change systems in seemingly arbitrary ways all the time. This begs the question: What is the impact of system changes on a system's architecture in a general case? In this talk, I will present the results of an on-going study that has tried to shed light on this question. To date, the study has involved around 30 open-source systems and, in several cases, large numbers of versions of a given system. I will discuss and illustrate the challenges in extracting the architecture of a system from its implementation artifacts, the concrete problems posed by architectural decay, the difficulties of tracking the architectural impact of implementation-level changes, and the occasional arbitrariness with which the adaptation of real, widely-used software systems is approached. I will then identify several promising research opportunities that present themselves for dealing with these problems in (self-)adaptive systems.
Nenad Medvidović is a Professor and Associate Chair for Ph.D. Affairs in the Computer Science Department at the University of Southern California. Between 2009 and 2013 Medvidović served as Director of the USC Center for Systems and Software Engineering (CSSE). He was the Program Co-Chair of the 2011 International Conference on Software Engineering (ICSE 2011) and is the current chair of the ICSE Steering Committee. Medvidović received his Ph.D. in 1999 from the Department of Information and Computer Science at UC Irvine. He is a recipient of the National Science Foundation CAREER (2000) award, the Okawa Foundation Research Grant (2005), the IBM Real-Time Innovation Award (2007), and the USC Mellon Mentoring Award (2010). He is a co-author of the ICSE 1998 paper titled "Architecture-Based Runtime Software Evolution", which was recognized as that conference's Most Influential Paper. Medvidović's research interests are in the area of architecture-based software development. His work focuses on software architecture modeling and analysis; middleware facilities for architectural implementation; domain-specific architectures; architectural styles; and architecture-level support for software development in highly distributed, mobile, resource constrained, and embedded computing environments. He is a co-author of a textbook on software architectures. Medvidović is a member of ACM and ACM SIGSOFT, and a senior member of IEEE.