Download - A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page
![Page 1: A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page](https://reader035.vdocuments.net/reader035/viewer/2022062520/568161d3550346895dd1cd47/html5/thumbnails/1.jpg)
Automating programming via concept mining, probabilistic reasoning over
semantic knowledge base of SE domain
by Max Talanov
![Page 2: A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page](https://reader035.vdocuments.net/reader035/viewer/2022062520/568161d3550346895dd1cd47/html5/thumbnails/2.jpg)
A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page Add dropdown list on the form...
A lot of not so trivial solutions that should be reused but are not reused How-tos Libraries...
Approximately 60% of developer's time in outsourcing is spent to solve this kind of problems
</ Problem
![Page 3: A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page](https://reader035.vdocuments.net/reader035/viewer/2022062520/568161d3550346895dd1cd47/html5/thumbnails/3.jpg)
Template based code generators: IDEs
Visual studio. IDEA. ...
Template based generators Maven
Archetypes
CASE Tools: Rational Rose ArgoUML
</ Current Solutions
![Page 4: A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page](https://reader035.vdocuments.net/reader035/viewer/2022062520/568161d3550346895dd1cd47/html5/thumbnails/4.jpg)
Once generated solution is hardly maintainable and require to allocate significant amount of money for farther support. Developer generated the solution based on DB structure,
then added some functionality in it, then customer wants to change the DB structure.
Developer has to regenerate and merge his further changes
This is done for only one reason – generator does not understand what it's doing.
</ They cannot solve problem
![Page 5: A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page](https://reader035.vdocuments.net/reader035/viewer/2022062520/568161d3550346895dd1cd47/html5/thumbnails/5.jpg)
2005 MIT media lab published the article “FEASIBILITY STUDIES FOR
PROGRAMMING IN NATURAL LANGUAGE”.
Metafor is the program that creates the sceleton of the Python classes based on
shallow English descripton.
</ MIT Metafor
![Page 6: A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page](https://reader035.vdocuments.net/reader035/viewer/2022062520/568161d3550346895dd1cd47/html5/thumbnails/6.jpg)
Input: shallow English description
Output: scaffolding Python classes.
Metafor utilised natural language processor Montylingua, common sence KB ConceptNet, programmatic interpreter.
</ MIT Metafor
![Page 7: A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page](https://reader035.vdocuments.net/reader035/viewer/2022062520/568161d3550346895dd1cd47/html5/thumbnails/7.jpg)
System should: Operate with changes to be applied not the static
structure of the target application (How-to). Use domain knowledge model to map the inbound
requirements into acceptance criteria to be used to create the solution.
Use both trained data and generation to create the solution.
Use several abstraction layers of the target application.
</ Key Ideas
![Page 8: A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page](https://reader035.vdocuments.net/reader035/viewer/2022062520/568161d3550346895dd1cd47/html5/thumbnails/8.jpg)
System has to operate with knowledge. System has to understand what it is doing
Architecture of the target application. Methods to change the architecture. Domain specific information. Requirements for changes.
System has to understand the human operator Communicate in natural language.
</ Requirements
![Page 9: A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page](https://reader035.vdocuments.net/reader035/viewer/2022062520/568161d3550346895dd1cd47/html5/thumbnails/9.jpg)
Knowledge base. Linguistic component. Perceiving component. Solution generator. Communication component.
</ Key Components
![Page 10: A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page](https://reader035.vdocuments.net/reader035/viewer/2022062520/568161d3550346895dd1cd47/html5/thumbnails/10.jpg)
LinguisticReq Perceiving Solution generator
Communicator
Updatedapp
Request
KB
</ Collaboration Diagram
![Page 11: A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page](https://reader035.vdocuments.net/reader035/viewer/2022062520/568161d3550346895dd1cd47/html5/thumbnails/11.jpg)
Is the main storage of the data to be used by the system.
KB is RDF storage with OWL data.
KB is used to store the semantic information: Target application architecture Domain specific knowledge (How-tos) Common sense information Predicates generated based on requirements text Acceptance criteria for generated solution ...
</ Knowledge Base
![Page 12: A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page](https://reader035.vdocuments.net/reader035/viewer/2022062520/568161d3550346895dd1cd47/html5/thumbnails/12.jpg)
Human expert specifies the requirements, linguistuc component generates set of predicates for further processing.
Inbound: CR, bug report or FRS according to SE standard SPICE.
Outbound: set of predicates.
Stanford Parser creates the set of predicates that are treated as inbound knowledge.
LinguisticRequirements
</ Linguistic Component
![Page 13: A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page](https://reader035.vdocuments.net/reader035/viewer/2022062520/568161d3550346895dd1cd47/html5/thumbnails/13.jpg)
Perceiving module maps inbound predicates to the model (domain model) in knowledge base, using trained data and stochastic search generation. In case of failure invokes Communicator to generate clarification request.
Inbound: set of predicates and domain knowledge model.
Outbound: predicates mapped to domain knowledge model.
Linguistic Perceiving Solution generatorPredicates Updated
model
</ Perceiving Component
![Page 14: A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page](https://reader035.vdocuments.net/reader035/viewer/2022062520/568161d3550346895dd1cd47/html5/thumbnails/14.jpg)
Selects or generates the solution for the specified acceptance criteria in updated model. Provides the updated application with the confirmation request to human expert.
Inbound: acceptance criteria in KB
Outbound: solution in actual code.
UpdatedappPerceiving Solution
generatorUpdated
model
</ Solution GeneratorComponents
![Page 15: A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page](https://reader035.vdocuments.net/reader035/viewer/2022062520/568161d3550346895dd1cd47/html5/thumbnails/15.jpg)
Reasoner. Reasoner interface.
Genetic generator. Solution checker.
Trainer. Associator. Generalizer. Analogy detector.
Target language translator.
</ Solution GeneratorComponents
![Page 16: A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page](https://reader035.vdocuments.net/reader035/viewer/2022062520/568161d3550346895dd1cd47/html5/thumbnails/16.jpg)
</ Solution GeneratorActivities
Analogy Detector:retrieves solution for similar acceptancecriteria
Solution checker: returns solution assessment
Genetic generator:generates new solution
Communicator:sends confirmation request to human expert.
Communicator: analyses reply of human expert
Trainer:run
Solutuon found?
Solution ok?
Solution ok?
yes
yes
yes
no
no
no
![Page 17: A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page](https://reader035.vdocuments.net/reader035/viewer/2022062520/568161d3550346895dd1cd47/html5/thumbnails/17.jpg)
For the purpose of making a logical inference for axepted alternatives within environment of possible contradictions and several probable variants, we decided to use probabilistic reasoner NARS.
NARS main features: Deduction Induction Analogy ...
</ Reasoner
![Page 18: A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page](https://reader035.vdocuments.net/reader035/viewer/2022062520/568161d3550346895dd1cd47/html5/thumbnails/18.jpg)
Inbound: Acceptance criteria.
Outbound: Solution in form of How-tos sequences.
Generator is capable of creation of the sequences of How-tos according to the acceptance criteria. Inference is produced by NARS.
This could be interpreted as human imagination mechanism.
</ Genetic Generator
![Page 19: A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page](https://reader035.vdocuments.net/reader035/viewer/2022062520/568161d3550346895dd1cd47/html5/thumbnails/19.jpg)
Is devoted to logically infer the percentage of how good is generated solution according to acceptance criteria.
Solution checker mainly relies on NARS probabilistic mechanisms, but collects all proper information from KB to be processed by reasoner.
</ Solution Checker
![Page 20: A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page](https://reader035.vdocuments.net/reader035/viewer/2022062520/568161d3550346895dd1cd47/html5/thumbnails/20.jpg)
Machine learning component, is used to detect associations and infer generic associations of inbound acceptance criteria and approved solutions.
Analogy detector is used to retrieve previously learned associations that could be used for specified acceptance criteria.
</ Trainer
![Page 21: A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page](https://reader035.vdocuments.net/reader035/viewer/2022062520/568161d3550346895dd1cd47/html5/thumbnails/21.jpg)
Translates knowledge representation of architecture in actual files in target language, based on previously described syntax in KB.
</ Target LanguageTranslator
![Page 22: A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page](https://reader035.vdocuments.net/reader035/viewer/2022062520/568161d3550346895dd1cd47/html5/thumbnails/22.jpg)
Component is dedicated to generate requests to human expert and analyse replyes of the expert.
Perceiving Solution generator
CommunicatorRequest
</ Communicator
![Page 23: A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page](https://reader035.vdocuments.net/reader035/viewer/2022062520/568161d3550346895dd1cd47/html5/thumbnails/23.jpg)
</ Feedback Loops
LinguisticReq Perceiving Solution generator
Communicator
Updatedapp
Request
KB
![Page 24: A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page](https://reader035.vdocuments.net/reader035/viewer/2022062520/568161d3550346895dd1cd47/html5/thumbnails/24.jpg)
</ Current Implementation
Acceptancecriteria
Solution generator
Communicator
Updatedapp
Request
KB
![Page 25: A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page](https://reader035.vdocuments.net/reader035/viewer/2022062520/568161d3550346895dd1cd47/html5/thumbnails/25.jpg)
Add evolution mechanism. Add inbound information analysis. Add architectural analysis. Add self optimization and self improvement. Extend perceiving algorithm to use encyclopaedic
resources to extend domain knowledge.
</ Future Plans
![Page 26: A lot of trivial tasks that could be automated Add/remove field Patronymic on Customer page](https://reader035.vdocuments.net/reader035/viewer/2022062520/568161d3550346895dd1cd47/html5/thumbnails/26.jpg)
Metafor:http://web.media.mit.edu/~lieber/Publications/Feasibility-Nat-Lang-Prog.pdf
Maven:http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
Stanford Parser:http://nlp.stanford.edu/software/lex-parser.shtml
Open NARS:http://code.google.com/p/open-nars/
Menta: http://code.google.com/p/menta/
</ References