Automating programming via concept mining, probabilistic reasoning over semantic knowledge base of SE domain by Max Talanov.

Slides:



Advertisements
Similar presentations
Dr. Leo Obrst MITRE Information Semantics Information Discovery & Understanding Command & Control Center February 6, 2014February 6, 2014February 6, 2014.
Advertisements

Henry Lieberman MIT Media Lab AI in End-User Software Engineering Henry Lieberman, MIT (presenting) Raphael Hoffmann, Michael Toomim, U. Washington, Seattle.
Business Development Suit Presented by Thomas Mathews.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 13 Slide 1 Application architectures.
The Logic of Intelligence Pei Wang Department of Computer and Information Sciences Temple University.
Lecture 1: Overview of Computers & Programming
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Automating programming via concept mining, probabilistic reasoning over semantic knowledge base of SE domain by Max Talanov.
Object-Oriented Analysis and Design
Component-Level Design
Visual Web Information Extraction With Lixto Robert Baumgartner Sergio Flesca Georg Gottlob.
Knowledge Acquisitioning. Definition The transfer and transformation of potential problem solving expertise from some knowledge source to a program.
1 SWE Introduction to Software Engineering Lecture 22 – Architectural Design (Chapter 13)
PDDL: A Language with a Purpose? Lee McCluskey Department of Computing and Mathematical Sciences, The University of Huddersfield.
Application architectures
Programming Languages Structure
Automatically Extracting and Verifying Design Patterns in Java Code James Norris Ruchika Agrawal Computer Science Department Stanford University {jcn,
ReQuest (Validating Semantic Searches) Norman Piedade de Noronha 16 th July, 2004.
1 Information Retrieval and Extraction 資訊檢索與擷取 Chia-Hui Chang, Assistant Professor Dept. of Computer Science & Information Engineering National Central.
Protégé An Environment for Knowledge- Based Systems Development Haishan Liu.
Course Instructor: Aisha Azeem
Programming. Software is made by programmers Computers need all kinds of software, from operating systems to applications People learn how to tell the.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Application architectures
Becerra-Fernandez, et al. -- Knowledge Management 1/e -- © 2004 Prentice Hall Chapter 16 Knowledge Application Systems: Systems that Utilize Knowledge.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 13 Slide 1 Application architectures.
Developing Enterprise Architecture
Software Development Concepts ITEC Software Development Software Development refers to all that is involved between the conception of the desired.
Chapter 6 – Architectural Design Lecture 2 1Chapter 6 Architectural design.
Overview of the Database Development Process
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
ITEC224 Database Programming
The Electronic Geometry Textbook Project Xiaoyu Chen LMIB - Department of Mathematics Beihang University, China.
Parser-Driven Games Tool programming © Allan C. Milne Abertay University v
Of 33 lecture 10: ontology – evolution. of 33 ece 720, winter ‘122 ontology evolution introduction - ontologies enable knowledge to be made explicit and.
Introduction Algorithms and Conventions The design and analysis of algorithms is the core subject matter of Computer Science. Given a problem, we want.
PETRA – the Personal Embedded Translation and Reading Assistant Werner Winiwarter University of Vienna InSTIL/ICALL Symposium 2004 June 17-19, 2004.
DDI & Model-View-Controller: An Architectural Perspective Dennis Wegener, Matthäus Zloch, Thomas Bosch (GESIS) Dagstuhl,
Generative Programming. Automated Assembly Lines.
Problem Solving using the Science of Computing MSE 2400 EaLiCaRA Spring 2015 Dr. Tom Way.
Developing software and hardware in parallel Vladimir Rubanov ISP RAS.
1 5 Nov 2002 Risto Pohjonen, Juha-Pekka Tolvanen MetaCase Consulting AUTOMATED PRODUCTION OF FAMILY MEMBERS: LESSONS LEARNED.
Knowledge Representation of Statistic Domain For CBR Application Supervisor : Dr. Aslina Saad Dr. Mashitoh Hashim PM Dr. Nor Hasbiah Ubaidullah.
1 CS 385 Fall 2006 Chapter 1 AI: Early History and Applications.
Cross Language Clone Analysis Team 2 October 13, 2010.
User Profiling using Semantic Web Group members: Ashwin Somaiah Asha Stephen Charlie Sudharshan Reddy.
Learning to Share Meaning in a Multi-Agent System (Part I) Ganesh Padmanabhan.
Computer Science 101 Theory of Computing. Computer Science is... The study of algorithms, with respect to –their formal properties –their linguistic realizations.
Volgograd State Technical University Applied Computational Linguistic Society Undergraduate and post-graduate scientific researches under the direction.
Issues in Ontology-based Information integration By Zhan Cui, Dean Jones and Paul O’Brien.
PROG Developing Robust Modular Software.. Objectives What do we want? Programmatic Elements in a Business System. Logic Layer. Persistence (Data)
Software Engineering Lecture # 1.
Chapter 3 JSP Overview. The Problem with Servlets processing the request and generating the response are both handled by a single servlet class Java programming.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
CS223: Software Engineering
MIT App Inventor Lesson 3 Algorithms Variables Procedures.
Concept mining for programming automation. Problem ➲ A lot of trivial tasks that could be automated – Add field Patronim on Customer page. – Remove field.
Some Thoughts to Consider 5 Take a look at some of the sophisticated toys being offered in stores, in catalogs, or in Sunday newspaper ads. Which ones.
Application architectures Advisor : Dr. Moneer Al_Mekhlafi By : Ahmed AbdAllah Al_Homaidi.
/16 Final Project Report By Facializer Team Final Project Report Eagle, Leo, Bessie, Five, Evan Dan, Kyle, Ben, Caleb.
Computer Systems Architecture Edited by Original lecture by Ian Sunley Areas: Computer users Basic topics What is a computer?
Mechanisms for Requirements Driven Component Selection and Design Automation 최경석.
Architecture Components
Chapter 1 (pages 4-9); Overview of SDLC
KNOWLEDGE REPRESENTATION
Chapter 1 Introduction(1.1)
Programming.
Software Development Process Using UML Recap
NARS an Artificial General Intelligence Project
Presentation transcript:

Automating programming via concept mining, probabilistic reasoning over semantic knowledge base of SE domain by Max Talanov

 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

 Template based code generators:  IDEs  Visual studio.  IDEA. ...  Template based generators  Maven  Archetypes  CASE Tools:  Rational Rose  ArgoUML </ Current Solutions

 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

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

Input: shallow English description Output: scaffolding Python classes. Metafor utilised natural language processor Montylingua, common sence KB ConceptNet, programmatic interpreter. </ MIT Metafor

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. </ Key Ideas

 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

 Knowledge base.  Linguistic component.  Perceiving component.  Solution generator.  Communication component. </ Key Components

Linguistic Req Perceiving Solution generator Communicator Updated app Request KB </ Collaboration Diagram

Is the main storage of the data to be used by the system. KB is Structured storage. 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

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. Linguistic Requirements </ Linguistic Component

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. LinguisticPerceiving Solution generator Predicates Updated model </ Perceiving Component

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. Updated app Perceiving Solution generator Updated model </ Solution Generator Component

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

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

Translates knowledge representation of architecture in actual files in target language, based on previously described syntax in KB. </ Target Language Translator

Component is dedicated to generate requests to human expert and analyse replyes of the expert. Perceiving Solution generator Communicator Request </ Communicator

</ Feedback Loops Linguistic Req Perceiving Solution generator Communicator Updated app Request KB

</ Current Implementation Acceptance criteria Solution generator Communicator Updated app Request KB

 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

 Metafor : Prog.pdf  Maven : lifecycle.html  Stanford Parser:  Open NARS:  Menta: project.org/2010/12/menta-v0-1-released/ project.org/2010/12/menta-v0-1-released/ </ References