Search-Based Software Engineering: Challenges, Opportunities and Applications - Tutorial @GECOO 2020
TRANSCRIPCIÓN COMPLETA
hello I'm glad to present this tutorial
today on search method software
engineering challenges opportunities and
recent applications my name is Adina I'm
from ETS Montreal University of Quebec
in Canada so first of all I would like
to thank professors Mark Harmon and
Marvin Santini for the inspiration to
prepare part of this tutorial and I'm
also grateful for all my students
co-authors and collaborators this work
have never been possible without their
support and collaboration so this
tutorial today will cover different
aspects I will start by presenting the
biological basis behind science and
engineering and then I will describe
what is SBC and how we apply it in
practice then to better understand this
message I will present three
applications of SPS see what under
commendation of refactoring changes the
second application is about improving
the web services design and the third
application is about reviewing code
changes in modern code review the
wraptor I will present the hands-on
activity using an existing open source
framework called
my framework and simplified case study
on software migration and finally I'll
be presenting and discussing the
challenges and future work with search
based software engineering so let's
start with the philosophical basis
behind science and engineering so
science is more about using
experimentation and analysis to explore
the world around us so we can take
problem we characterize it quantify and
model the problem this is mainly the
role of scientist on the other side in
engineering we take this information
provided by scientists and use it to
design and develop products that are
gonna allow us to quality human life to
continue
Engineering offers humanity the hope
because science gives us a state of
information but no concrete solution so
the scientist mainly is looking at how
things are theoretically done while the
engineer is looking at how things are
practically done
the scientist Murli explores what exists
but the engineer is more creating what
has never been existed before
so as analogy a computer scientist we
look at the fundamental principles
behind computation and how it works well
the idea for an engineer is to complete
specifications or meet designs but
within a set of constraints and
limitations so how would you consider
yourself yourself
are you more engineer or scientist so
the the synergy or the innate
relationship between both science and
engineering is on the basis of search
based software engineering so search
based software engineering inert from
both fields
computer science and software
engineering so let's move to the first
part 2 of this tutorial about what is as
BSC so before delving into the details
of especially let us see what are the
common work that engineers talk about
all the time so we check it from
different engineering fields they mostly
talk about optimized analyzed solution
estimate tolerance constraint model we
found that the dimensional optimized
wise so one in breach and one in
American so good so as busy is mainly
about optimization is in the core of
SBAC the term SVC was coined first by
Mark Harmon in 2001 and SPC is about the
use of intelligent search techniques to
explore large search spaces guided by
what we call Fitness function that
captures the properties of a desirable
solutions that we need we seek to have
and there exist several ready-made
algorithms such as the Genetic
Programming harmony search particle
swarm optimization and simulated
annealing all these algorithms will be
used to solve any optimization
problem including in software
engineering and other fields so these
algorithms fall under the evolutionary
search algorithms as part of machine
learning which are all artificial
intelligence techniques to be used for
robotics originally and other fields so
SBC is mainly an intersection between
two fields the optimization and software
engineering in software engineering we
have multiple problems that need to be
solved like automated test generation
code refactoring software project
management requirements engineering
fault
localization and program repair the
field of search based optimization
provides us with a set of ready-made
algorithms that are ready to use from
single objective to monthly or many
objective I graded such as the genetic
algorithm the non dominated sort and
genetic algorithm etc and the
application of serrated optimization to
software engineering would create the
field of SBAC we found search basic
testing which is an active field in the
software engineering community we have
also search based refactoring search
based software management search basic
requirements engineering etc so let's
see how or what is SBC in in a natural
so we mainly start from software
engineering problem then we try to use a
solution representation or a specific
encoding for the solution we can
represent the solution as for example a
vector or a 3-2 to fix a given problem
then we need to define what we call
Fitness function that evaluates how good
is our represented solution then we need
to define change operators that can
refine this the candidate solution to
make it better and that can involve over
an evolutionary process to make the
solution better and fitter
so the field of search basis of fringing
is growing
very fast overtime so as we can see the
trend of the use of SDSC until mid-2012
we have over 1,600 authors from nearly
300 institutions spread over more than
40 countries so this is realistic
scenario and the philosophy behind this
busy pushed a lot of researchers and
practitioners to use SBAC to solve their
problems and today we are dedicated
tracks in the top conferences like in XE
or in FSC or also in top conferences in
evolutionary computation like geek oh
there is a dedicated track for SBC
there are also some dedicated
international conferences back or
symposiums like SSB se or sbst we found
also several publications in the top
journals fat asian Tosa in the recent
years so maybe the question is why this
is growing that fast the answer is that
in like other fields we have a valuable
opportunity to check many possible
solutions for a given a problem and then
select the best one in physical
engineering this could be limited and
costly as we need to try different
solutions and experiments and the cost
can limit the application of these
simulations so however in software
engineering for example to fix a bug we
can change the structure of a program
and try different patches to find the
Bell and then find the best one so there
is almost no cost for such experiment we
can modify the code as much as we can
this makes software engineering more
attractive and more applicable in
practice so for example let us see a
real world example of space rocket so
the goal is to find the optimal
structure that maximizes the compression
and minimize the forth conception
consumption this is an extremely costly
experiment we can try cannot write
physically on the space so people
usually
use simulations but there is a risk that
simulation is not as similar to the
reality software engineering is more
attractive in this case for example to
find an optimal design that maximize
cohesion and minimize coupling this is
possible so we can modify the code see
DESBLOQUEAR MÁS
Regístrate gratis para acceder a funciones premium
VISOR INTERACTIVO
Mira el video con subtítulos sincronizados, superposición ajustable y control total de la reproducción.
RESUMEN DE IA
Obtén un resumen instantáneo generado por IA del contenido del video, los puntos clave y las conclusiones.
TRADUCIR
Traduce la transcripción a más de 100 idiomas con un solo clic. Descarga en cualquier formato.
MAPA MENTAL
Visualiza la transcripción como un mapa mental interactivo. Comprende la estructura de un vistazo.
CHATEA CON LA TRANSCRIPCIÓN
Haz preguntas sobre el contenido del video. Obtén respuestas impulsadas por IA directamente desde la transcripción.
SACA MÁS PARTIDO A TUS TRANSCRIPCIONES
Regístrate gratis y desbloquea el visor interactivo, los resúmenes de IA, las traducciones, los mapas mentales y mucho más. No se requiere tarjeta de crédito.