REPRESENTATION OF CONDITIONS OF PROGRAMMING STATEMENTS INPOST-COMPILE MODIFIABLE LAYOUTSRam Gopal Raj
Department of Artificial Intelligence,Faculty of Computer Science and Information Technology,University of Malaya, 50603 Kuala Lumpur, Malaysia. Email:ramgopalraj@perdana.um.edu.my
ABSTRACT
Software development for large scale systems is often very costly. Large systems tend to have long service lives and thus meet with ever changing operational requirements. Catering to such changes necessitates changes to thesoftware resulting in increased expenditure. However, allowing the conditions for conditional statements such as ‘if statements’ by which a program operates, to be stored in a format that does not require any application changes but only external file changes can save considerable effort, time and money. Presented here is one of the techniques,used by our chatterbot, RONE, to allow self adaptability on multiple levels. The technique is applicable to all programming purposes, and will enable the making of fewer application changes and hence reduce corresponding costs, for systems with long service lives.
Keywords: SQL, Knowledge Base, Conditions, Adaptability.
1.0 INTRODUCTION
Development of software systems is often tremendously expensive work. Apart from initial development costs,software systems may experience lifetime costs. Lifetime costs occur if a software system requires further changes or adaptations during its time of service. A software system is called
adaptable
if some of its properties, which are stableduring regular use, can be changed in order to meet diversified or changing requirements, [2].Therefore we see two options. One option being to either spend a lot of money initially and build a verycomprehensive system that will have a long service life with minimal maintenance and updating issues or build asimple and comparatively cheap system that will subsequently need frequent and costly changes. The other option,being to have a system that could be modified during its operational lifetime without having to restructure largemasses of source code and change various conditions or add new conditions. For example, if the program was builtwith a smart updating system which requires no recompilation or reinstallation but allows changes to be made duringits uptime, it would posses a considerable degree of reusability of the system itself as opposed to reusability of onlyits components. Such adaptability and reusability would result in considerable savings in terms of long term systemmaintenance.Adaptability is favorable for a number of reasons. For example, human users usually have different needs, views,ways and preferences; and there appears to be no ‘one best way’ to accommodate all their differences. The situationescalates when one considers groups of humans or even entire organizations. As the world we live in becomesincreasingly computerized, accommodating the different human preferences and ever changing operationalenvironment conditions also increases in importance. As such software adaptability is becoming practicallyindispensable. Additionally, by building adaptive systems, developers can maximize their profits by accommodatingeven larger market segments. Currently software development is expensive and most software systems are notcompletely custom-built anymore [1].When we look at adaptability, we need to consider a number of factors. Firstly one needs to know just how muchadaptability is required, what are the aspects of the program that need to be adaptable? Once the required or desireddegree of adaptability has been determined, one must decide how to implement those features. We believe that themost efficient adaptations are those that are implemented by the systems themselves through interacting with users,rather than relying on users to tell the systems how to adapt. Our experience suggests that humans tend to be morehonest about how they would like a machine to behave when the users actually interact or use the machine rather than when they describe how they would like the machine to behave. Finally, one has to figure out how all thisadaptability is to be accommodated in the software architecture? Consideration of these factors, suggests to us thatany system that is to be adaptable must be able to store new information.Conversational programs must have the ability to learn from their interactions with users. In order to learn, theseprograms must have an adaptive knowledge base system that can be updated by the programs themselves. Wehave introduced our learning program, RONE, in a previous paper, [3]. We cover in this paper, a new technique usedby RONE for storing the conditions of programming ‘if’ statements as well as loop numbers in an SQL database inorder to allow a conversational program to adapt to future conversations. While we acknowledge that our researchscope is limited to enabling our system to perform only tele-text conversations with users, it must be clarified thatRONE is a chatterbot. The idea behind its design is to allow it to adapt on its own without requiring any recompilationor reinstallation - a technique that is usable in other programming applications.
©Informatics '09, UM 2009
RDT
7
-
257
Proceeding of the 3rd International Conference on Informatics and Technology, 2009
Leave a Comment