Search-based software engineering: Difference between revisions

Content deleted Content added
Citation bot (talk | contribs)
m Alter: template type, url, title. Add: title, volume, series, isbn, hdl, citeseerx. Removed accessdate with no specified URL. Converted bare reference to cite template. Removed parameters. | You can use this bot yourself. Report bugs here. | User-activated.
Line 61:
| journal = [[IEE Proceedings - Software]]
| year = 2003
| citeseerx = 10.1.1.144.3059
}}</ref>
 
Line 96 ⟶ 97:
| date = 2001-12-15
| url = http://www.sciencedirect.com/science/article/pii/S0950584901001896
| citeseerx = 10.1.1.143.9716
}}</ref> The research community grew to include more than 800 authors by 2013, spanning approximately 270 institutions in 40 countries.{{Citation needed|date=October 2013}}
 
Line 111 ⟶ 113:
| title = Search-based software test data generation: a survey
| journal = Software Testing, Verification and Reliability
| accessdate = 2013-10-31
| year = 2004
| citeseerx = 10.1.1.122.33
| url = http://onlinelibrary.wiley.com/doi/10.1002/stvr.294/abstract
}}</ref> Search techniques have been applied to other [[software engineering]] activities, for instance, [[requirements analysis]],<ref>
{{Cite journal
Line 130 ⟶ 131:
| date = 2004-03-15
| url = http://www.sciencedirect.com/science/article/pii/S095058490300140X
| citeseerx = 10.1.1.195.321
}}</ref><ref>{{Cite conference
| doi = 10.1109/SBES.2009.23
Line 163 ⟶ 165:
| date = 2001-12-15
| url = http://www.sciencedirect.com/science/article/pii/S0950584901001951
| citeseerx = 10.1.1.102.6016
}}</ref> [[software development|development]],<ref>
{{Cite journal
Line 179 ⟶ 182:
| date = 2007-06-01
| url = http://www.sciencedirect.com/science/article/pii/S0020025507000175
| hdl = 10630/8145
}}</ref> and [[software maintenance|maintenance]].<ref>
{{Cite conference
Line 209 ⟶ 213:
Y.&nbsp;Zhang and M.&nbsp;Harman and S.&nbsp;L.&nbsp;Lim, "[http://www.cs.ucl.ac.uk/fileadmin/UCL-CS/images/Research_Student_Information/RN_11_12.pdf Search Based Optimization of Requirements Interaction Management]," Department of Computer Science, University College London, Research Note RN/11/12, 2011.
</ref>
<ref>{{cite journalbook|last1=Li|first1=Lingbo|last2=Harman|first2=Mark|last3=Letier|first3=Emmanuel|last4=Zhang|first4=Yuanyuan|title=Robust Next Release Problem: Handling Uncertainty During Optimization|journal=Proceedings of the 2014 Annual Conference on Genetic and Evolutionary Computation|date=2014|pages=1247–1254|doi=10.1145/2576768.2598334|url=http://dl.acm.org/citation.cfm?id=2598334|publisherisbn=ACM9781450326629|series=Gecco '14}}</ref><ref>{{cite journal|last1=Li|first1=L.|last2=Harman|first2=M.|last3=Wu|first3=F.|last4=Zhang|first4=Y.|title=The Value of Exact Analysis in Requirements Selection|journal=IEEE Transactions on Software Engineering|date=2017|volume=43|issue=6|pages=580–596|doi=10.1109/TSE.2016.2615100|url=http://ieeexplore.ieee.org/abstract/document/7582553/?reload=true|issn=0098-5589}}</ref>
 
===Debugging and maintenance===
Line 248 ⟶ 252:
 
===Optimizing software===
The use of SBSE in [[program optimization]], or modifying a piece of software to make it more efficient in terms of speed and resource use, has been the object of successful research.<ref>{{cite journal |last1=Memeti |first1=Suejb |last2=Pllana |first2=Sabri |last3=Binotto |first3=Alecio |last4=Kolodziej |first4=Joanna |last5=Brandic |first5=Ivona |author5-link= Ivona Brandić |title=Using meta-heuristics and machine learning for software optimization of parallel computing systems: a systematic literature review |journal=Computing |date=2018 |pages=1-441–44 |doi=10.1007/s00607-018-0614-9 |url=https://doi.org/10.1007/s00607-018-0614-9 |accessdate=28 August 2018}}</ref> In one instance, a 50,000 line program was genetically improved, resulting in a program 70 times faster on average.<ref>
{{Cite journal
| last = Langdon
Line 258 ⟶ 262:
| url = http://www0.cs.ucl.ac.uk/staff/w.langdon/ftp/papers/Langdon_2013_ieeeTEC.pdf
}}</ref>
A recent work by Basios et al. shows that by optimising the data structure, Google Guava found 9% improvement on execution time, 13% improvement on memory consumption and 4% improvement on CPU usage separately<ref>{{cite journalbook|last1=Basios|first1=Michail|last2=Li|first2=Lingbo|last3=Wu|first3=Fan|last4=Kanthan|first4=Leslie|last5=Barr|first5=Earl T.|title=Optimising Darwinian Data Structures on Google Guava|journal=Search Based Software Engineering|volume=10452|date=9 September 2017|pages=161–167|doi=10.1007/978-3-319-66299-2_14|urllanguage=en|series=Lecture Notes in Computer Science|isbn=https://link.springer.com/chapter/10.1007/978-3-319-6629966298-2_145|publisherurl=Springer, Cham|language=enhttp://discovery.ucl.ac.uk/10062895/1/ssbse_dariwnian_guava.pdf}}</ref>.
 
===Project management===
Line 277 ⟶ 281:
| ___location = New York, NY, USA
| series = GECCO '12
| accessdate = 2013-10-31
| year = 2012
| url = http://doi.acm.org/10.1145/2330163.2330332
}}</ref>
 
Line 291 ⟶ 293:
|first2 = S.
|title = Predicting Regression Test Failures Using Genetic Algorithm-Selected Dynamic Performance Analysis Metrics
|url = https://rd.springer.com/chapter/10.1007/978-3-642-39742-4_13
|format = PDF
|journal = Proceedings of the 5th International Symposium on Search-Based Software Engineering (SSBSE)
|volume = 8084
|pages = 158–171
|year = 2013
|url doi = https://rd.springer.com/chapter/10.1007/978-3-642-39742-4_13
}}</ref> and [[EvoSuite]] <ref>(http://www.evosuite.org/)</ref> and [https://coverage.readthedocs.io/ Coverage], a code coverage measurement tool for Python<ref>{{Citation|last=others|first=Ned Batchelder and 100|title=coverage: Code coverage measurement for Python|url=https://bitbucket.org/ned/coveragepy|accessdate=2018-03-14}}
</ref>
Line 302 ⟶ 303:
==Methods and techniques==
A number of methods and techniques are available, including:
* [[profiling (computer programming)|Profiling]]<ref>{{Cite web | url=http://java-source.net/open-source/profilers | title=Open Source Profilers in Java}}</ref> via [[instrumentation]] in order to monitor certain parts of a program as it is executed.
* Obtaining an [[abstract syntax tree]] associated with the program, which can be automatically examined to gain insights into its structure.
* Applications of [[program slicing]] relevant to SBSE include [[software maintenance]], [[Optimization (computer science)|optimization]] and [[Program analysis (computer science)|program analysis]].
Line 312 ⟶ 313:
{{cite web
|url = http://shape-of-code.coding-guidelines.com/2013/10/18/programming-using-genetic-algorithms-isnt-that-what-humans-already-do/
|title = Programming using genetic algorithms: isn’tisn't that what humans already do ;-)
|last = Jones
|first = Derek
Line 334 ⟶ 335:
| title = Current challenges in automatic software repair
| journal = Software Quality Journal
| accessdate = 2013-10-31
| date = 2013-09-01
| citeseerx = 10.1.1.371.5784
| url = https://link.springer.com/article/10.1007/s11219-013-9208-0
}}
</ref>