Please use this identifier to cite or link to this item: http://hdl.handle.net/1893/26007
Full metadata record
DC FieldValueLanguage
dc.contributor.advisorWoodward, John R-
dc.contributor.advisorBrownlee, Alexander E I-
dc.contributor.advisorCairns, David-
dc.contributor.authorHaraldsson, Saemundur Oskar-
dc.date.accessioned2017-10-19T09:48:45Z-
dc.date.available2017-10-19T09:48:45Z-
dc.date.issued2017-05-31-
dc.identifier.urihttp://hdl.handle.net/1893/26007-
dc.description.abstractIn today’s technology driven society, software is becoming increasingly important in more areas of our lives. The domain of software extends beyond the obvious domain of computers, tablets, and mobile phones. Smart devices and the internet-of-things have inspired the integra- tion of digital and computational technology into objects that some of us would never have guessed could be possible or even necessary. Fridges and freezers connected to social media sites, a toaster activated with a mobile phone, physical buttons for shopping, and verbally asking smart speakers to order a meal to be delivered. This is the world we live in and it is an exciting time for software engineers and computer scientists. The sheer volume of code that is currently in use has long since outgrown beyond the point of any hope for proper manual maintenance. The rate of which mobile application stores such as Google’s and Apple’s have expanded is astounding. The research presented here aims to shed a light on an emerging field of research, called Genetic Improvement ( GI ) of software. It is a methodology to change program code to improve existing software. This thesis details a framework for GI that is then applied to explore fitness landscape of bug fixing Python software, reduce execution time in a C ++ program, and integrated into a live system. We show that software is generally not fragile and although fitness landscapes for GI are flat they are not impossible to search in. This conclusion applies equally to bug fixing in small programs as well as execution time improvements. The framework’s application is shown to be transportable between programming languages with minimal effort. Additionally, it can be easily integrated into a system that runs a live web service. The work within this thesis was funded by EPSRC grant EP/J017515/1 through the DAASE project.en_GB
dc.language.isoenen_GB
dc.publisherUniversity of Stirlingen_GB
dc.subjectSoftware Engineeringen_GB
dc.subjectAutomatic Programmingen_GB
dc.subjectBug fixingen_GB
dc.subject.lcshComputer science Mathematicsen_GB
dc.subject.lcshAutomatic programming (Computer science)en_GB
dc.subject.lcshSoftware engineeringen_GB
dc.titleGenetic Improvement of Software: From Program Landscapes to the Automatic Improvement of a Live Systemen_GB
dc.typeThesis or Dissertationen_GB
dc.type.qualificationlevelDoctoralen_GB
dc.type.qualificationnameDoctor of Philosophyen_GB
dc.contributor.funderEPSRC grant EP/J017515/1en_GB
dc.author.emailsoh@cs.stir.ac.uken_GB
Appears in Collections:Computing Science and Mathematics eTheses

Files in This Item:
File Description SizeFormat 
thesis.pdfMain article5.03 MBAdobe PDFView/Open


This item is protected by original copyright



Items in the Repository are protected by copyright, with all rights reserved, unless otherwise indicated.

The metadata of the records in the Repository are available under the CC0 public domain dedication: No Rights Reserved https://creativecommons.org/publicdomain/zero/1.0/

If you believe that any material held in STORRE infringes copyright, please contact library@stir.ac.uk providing details and we will remove the Work from public display in STORRE and investigate your claim.