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.
Lecture 1: Overview of Computers & Programming
Object-Oriented Analysis and Design
Informatics 43 – May 7, Restatement of Goals for Testing Want to verify software’s correctness  Need to test  Need to decide on test cases  No.
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)
Information Retrieval Concerned with the: Representation of Storage of Organization of, and Access to Information items.
PDDL: A Language with a Purpose? Lee McCluskey Department of Computing and Mathematical Sciences, The University of Huddersfield.
Application architectures
Architecture for Pattern- Base Management Systems Manolis TerrovitisPanos Vassiliadis National Technical Univ. of Athens, Dept. of Electrical and Computer.
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.
1 BrainWave Biosolutions Limited Accelerating Life Science Research through Technology.
Chapter 2 Introduction to Systems Architecture. Chapter goals Discuss the development of automated computing Describe the general capabilities of a computer.
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
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
Aurora: A Conceptual Model for Web-content Adaptation to Support the Universal Accessibility of Web-based Services Anita W. Huang, Neel Sundaresan Presented.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
ITEC224 Database Programming
Introduction To System Analysis and Design
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.
DDI & Model-View-Controller: An Architectural Perspective Dennis Wegener, Matthäus Zloch, Thomas Bosch (GESIS) Dagstuhl,
Generative Programming. Automated Assembly Lines.
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.  10% Assignments/ class participation  10% Pop Quizzes  05% Attendance  25% Mid Term  50% Final Term 2.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
User Profiling using Semantic Web Group members: Ashwin Somaiah Asha Stephen Charlie Sudharshan Reddy.
Data Structures and Algorithms Dr. Tehseen Zia Assistant Professor Dept. Computer Science and IT University of Sargodha Lecture 1.
Learning to Share Meaning in a Multi-Agent System (Part I) Ganesh Padmanabhan.
Domain Classes – Part 1.  Analyze Requirements as per Use Case Model  Domain Model (Conceptual Class Diagram)  Interaction (Sequence) Diagrams  System.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Volgograd State Technical University Applied Computational Linguistic Society Undergraduate and post-graduate scientific researches under the direction.
PROG Developing Robust Modular Software.. Objectives What do we want? Programmatic Elements in a Business System. Logic Layer. Persistence (Data)
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
Concept mining for programming automation. Problem ➲ A lot of trivial tasks that could be automated – Add field Patronim on Customer page. – Remove field.
Automating programming via concept mining, probabilistic reasoning over semantic knowledge base of SE domain by Max Talanov.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Application architectures Advisor : Dr. Moneer Al_Mekhlafi By : Ahmed AbdAllah Al_Homaidi.
September 2003, 7 th EDG Conference, Heidelberg – Roberta Faggian, CERN/IT CERN – European Organization for Nuclear Research The GRACE Project GRid enabled.
/16 Final Project Report By Facializer Team Final Project Report Eagle, Leo, Bessie, Five, Evan Dan, Kyle, Ben, Caleb.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
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 최경석.
Application architectures. Objectives l To explain the organisation of two fundamental models of business systems - batch processing and transaction processing.
Architecture Components
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
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.  Use several abstraction layers of the target application. </ 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 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

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 Components

 Reasoner.  Reasoner interface.  Genetic generator.  Solution checker.  Trainer.  Associator.  Generalizer.  Analogy detector.  Target language translator. </ Solution Generator Components

</ Solution Generator Activities Analogy Detector: retrieves solution for similar acceptance criteria 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? yes no

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

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

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

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: </ References