Concept mining for programming automation. Problem ➲ A lot of trivial tasks that could be automated – Add field Patronim on Customer page. – Remove field.

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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 13 Slide 1 Application architectures.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Automating programming via concept mining, probabilistic reasoning over semantic knowledge base of SE domain by Max Talanov.
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
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.
A Flexible Workbench for Document Analysis and Text Mining NLDB’2004, Salford, June Gulla, Brasethvik and Kaada A Flexible Workbench for Document.
PDDL: A Language with a Purpose? Lee McCluskey Department of Computing and Mathematical Sciences, The University of Huddersfield.
Academic Advisor: Prof. Ronen Brafman Team Members: Ran Isenberg Mirit Markovich Noa Aharon Alon Furman.
Application architectures
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.
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.
Introduction To System Analysis and design
Špindlerův Mlýn, Czech Republic, SOFSEM Semantically-aided Data-aware Service Workflow Composition Ondrej Habala, Marek Paralič,
Aurora: A Conceptual Model for Web-content Adaptation to Support the Universal Accessibility of Web-based Services Anita W. Huang, Neel Sundaresan Presented.
Unit B065 – Coding a solution PREP WORK 1)Make sure you keep a work log / diary. Use the table on page 16 of the hand book as a template 2)Keep a bibliography.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
ITEC224 Database Programming
Artificial intelligence project
Agent Model for Interaction with Semantic Web Services Ivo Mihailovic.
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.
Software Life Cycle Requirements and problem analysis. –What exactly is this system supposed to do? Design –How will the system solve the problem? Coding.
Košice, 10 February Experience Management based on Text Notes The EMBET System Michal Laclavik.
UML based expert system generation Using Enterprise Architect to model and generate a web-based expert system.
DDI & Model-View-Controller: An Architectural Perspective Dennis Wegener, Matthäus Zloch, Thomas Bosch (GESIS) Dagstuhl,
Problem Solving using the Science of Computing MSE 2400 EaLiCaRA Spring 2015 Dr. Tom Way.
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.
STASIS Technical Innovations - Simplifying e-Business Collaboration by providing a Semantic Mapping Platform - Dr. Sven Abels - TIE -
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.
Learning to Share Meaning in a Multi-Agent System (Part I) Ganesh Padmanabhan.
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.
Service Brokering Yu-sik Park. Index Introduction Brokering system Ontology Services retrieval using ontology Example.
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.
CS223: Software Engineering
Semantic Data Extraction for B2B Integration Syntactic-to-Semantic Middleware Bruno Silva 1, Jorge Cardoso 2 1 2
MIT App Inventor Lesson 3 Algorithms Variables Procedures.
WonderWeb. Ontology Infrastructure for the Semantic Web. IST Project Review Meeting, 11 th March, WP2: Tools Raphael Volz Universität.
Automating programming via concept mining, probabilistic reasoning over semantic knowledge base of SE domain by Max Talanov.
Mathematical Service Matching Using Description Logic and OWL Kamelia Asadzadeh Manjili
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.
Mechanisms for Requirements Driven Component Selection and Design Automation 최경석.
MANAGEMENT INFORMATION SYSTEM
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.
Martin Rinard, Jiasi Shen, Varun Mangalick
Presentation transcript:

Concept mining for programming automation

Problem ➲ A lot of trivial tasks that could be automated – Add field Patronim on Customer page. – Remove field Patronim from Customer page. – Add drop down list on the form. –... ➲ A lot of not so trivial solutions that should be reused are not reused – How-tos. – Libraries. –...

Current solutions ➲ Template based code generators: – IDEs Visual studio. IDEA. – Maven Archetypes.

They can not solve the problem ➲ Once generated solution is hardly maintainable  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's it's doing.

MIT Metofor 2005 MIT media lab published the feasibility test for Metafor the program that creates the sceleton of the Python classes based on shallow English descripton

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

Requirements ➲ 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.

Key ideas ➲ Operate with changes to be applied over current architecture not the static structure of classes. ➲ 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 components ➲ Knowledge base. ➲ Linguistic. ➲ Perceiving. ➲ Solution generator. ➲ Communication.

Collaboration diagram Linguistic Req PerceivingSolution generator Communicator Updated app Request KB

Knowledge base Is the main storage of the data to be used by the system. KB is RDF storage with OWL data. OWL(web ontology language) W3C recommendation. KB is used to store the semantic information: Target application architecture Domain specific knowledge (How-tos) Common sense information Predicates generated based on text Acceptance criteria for generated solution...

Linguistuc component Human expert specifies the requirements, linguistuc component generates set of predicates for further processing. Inbound: is 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 konwledge. Linguistic Requirements

Perceiving 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. LinguisticPerceivingSolution generator PredicatesUpdated model

Solution generator 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 PerceivingSolution generator Updated model

Solution generator components ➲ Reasoner.  Reasoner interface. ➲ Genetic generator.  Solution checker. ➲ Trainer.  Associator.  Generalizer.  Analogy detector. ➲ Target language translator.

Solution generator activities AnalogyDetector: retrieves solution for similar acceptance criteria Solution found? Solution checker: returns solution assessment Genetic generator: generates new solution Communicator: sends confirmation request to human expert. Communicator: analyses reply of human expert Solution ok? Trainer: run Solution ok?

Reasoner For the purposes of logical inference in the environment of possible contradictions and several probable variants, we decided to use probabilistic reasoner NARS. NARS main feautures: – Deduction – Induction – Analogy –...

Genetic generator 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.

Solution checker 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.

Trainer 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.

Target language translator Translates knowledge representation of architecture in actual files in target language, based on previously described syntax in KB.

Communicator Component is dedicated to generate requests to human expert and analyse replyes of the expert. PerceivingSolution generator Communicator Request

Feedback loops Linguistic Req PerceivingSolution generator Communicator Updated app Request KB

Current implementation Acceptance criteria Solution generator Communicator Updated app Request KB

Future plans ➲ Add evolution mechanism. ➲ Add inbound information analysis. ➲ Add architectural analysis. ➲ Add self optimisation and self improvement. ➲ Extend perceiving algorithm to use encyclopedia resources to extend domain knowledge.

References Metafor: Maven: Stanford Parser: Open NARS: