Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 15

A Machine Learning Approach to

Programming
Agenda
 Overview of current methodologies.
 Disadvantages of current methodologies.
 MLAP: What, Why, How?
 MLAP: An example.
 MLAP: Design
 MLAP: Advantages/Disadvantages
 Scope
 Conclusion
Overview of software methodologies
 SSAD: Here programming is procedural. The
mapping between a real life object n its
representation in a program is ambiguous.

 OOAD: Here real life objects are mapped as


classes in a program. Each class consists of
attributes n methods.
Disadvantages of other Methodologies
 Testing n error fixing takes a very long time.

 Enhancements are based on user feedback n


usage. Collecting this information is a
cumbersome process.

 Usability issues are not given enough importance


because of lack of information.

 Optimization is difficult because of inadequate


information.
What is MLAP?
In MLAP, a program encodes information about itself i.e. it is
aware of its own design.

It is a natural consequence of the Object Oriented Methodology


wherein real-life objects are represented as classes. In MLAP,
each class is also aware of its construction n purpose.

This is an effort to take programming to a higher level wherein the


program can fix its errors on its own n provide a better user
experience i.e. minor defects r fixed by the program n the
program helps a user make the best use of the application n
runs based on the user’s preferences.
MLAP- An Example
class A
{ private:
attribute1;
attribute2;
classinfo; //encodes functionality details
//of class A
public:
method1();
method2();
getclassinfo(); //retrieves details of class A
};
MLAP- An Example
Each class contains information about itself which
is encoded as an attribute.
This information can be stored in predicates to
record functionality.
Design

EBL Engine
Expert System for Error
Processing n Optimization Knowledge Base

Subsystem Subsystem Subsystem

Application
Design
 EBL Engine: This will learn how it is used in the
execution environment. The engine uses
Explanation Based Learning. Domain theory will
be specific to the application.

 Knowledge Base: This will store domain theory n


any rules that the EBL generates.

 ES for Error Processing n Optimization: This can


be added for real-time error processing n fixing.
Advantages
 Error fixing: Recording error info (steps
traversed at the time of the error, point in code
where error took place), real-time error
processing will reduce time required to fix
defects immensely.

 Functionality/design enhancements: Recording


code coverage n class usage for optimization n
accurate error information will speed up
development of new releases.
Advantages
 Usability: Various aspects of usage will be
recorded by different users for usability studies.

 Customization based on user preferences: UI


preferences ,order of functions, batch processing
based on user preferences n providing help
whenever a user needs it will provide for a better
user experience.
Disadvantages
 Higher memory usage.

 An enhancement to a Basic implementation.

 Higher costs.

 Performance overhead due to additional


functions.
Scope
 Project is still in its implementation stage.

 The idea is to build an EBL engine with a


knowledge base to support the application.

 An expert system shell can be developed at a


later stage for error processing.
Conclusion
 In MLAP, a program encodes information about
itself n can enhance its own performance.

 It can improve n speed up the process of error


fixing.

 It is aware of its functionality n design and works


towards its enhancement.

 It can provide a better user experience.


References
 Artificial Intelligence-”Nilsson”

 Expert Systems-”Peter Jackson”

You might also like