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 Knowledge Base Expert System for Error Processing n Optimization 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”