Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Suitable Reusable Components Mining to Assist Developers                      using a Rule Based System          Imran S. ...
languages are easiest for human beings in terms of          becomes much more usable if they contain object-learning, unde...
patrons. Now a day, we are confronted with models, in       object participates in the action. As in the followingwhich th...
if the subject person belongs to a different continent,   6.2. Contents Interpretationthe meanings can be totally changed....
information from scientific text: protein–protein               [17] S. Weiss, C. Apte, F. Damerau, D. Johnson, F.interact...
Upcoming SlideShare
Loading in …5

Reuse Software Components (IMS 2006)


Published on

Imran Sarwar Bajwa, Irfan Hyder, M. Abbas Choudhary. [2006], “Suitable Reusable Components Mining to Assist Developers using a Rule Based System”, in Fifth International Conference on Information and Management Sciences (IMS 2006), Chengdu, China, Volume: 5 pp:266-270

  • Be the first to comment

Reuse Software Components (IMS 2006)

  1. 1. Suitable Reusable Components Mining to Assist Developers using a Rule Based System Imran S. Bajwa Syed Irfan Hyder M. Abbas Choudhary Balochistan University of Information PAF-Karachi Institute of Economics Balochistan University of Information Technology and Management Sciences and Technology, Technology and Management Sciences Quetta, Pakistan Karachi Quetta, Pakistan Abstract developed components in new software applications to save the cost and time.Modern software engineering technologies andparadigms have been vastly affected by using The concept of code reusability has been around forreusable components. Reusability of software much longer than object orientation. In structuredcomponents stands for using the existing design and programming we were always looking for ways todeveloped components in new software applications create reusable routines or functions that could reduceto save the cost and time. Against these persuading the effort required on later projects [12]. We werefacts, some vexing problems also subsist there as to working towards encapsulation and loose externalreuse which components and how to search those coupling in the effort to get thing to be reusable.particular components from the given designed In object oriented programming we have new tools thatscenario. The newly designed rule based framework is allow for an even better level of reusability. By takingfairly efficient in searching desired information from advantage of things like polymorphism and inheritancea given scenario. This research has been conducted to we can create class definitions that are truly universalincorporate this obvious capability of the designed in their applicability [11]. Speech languages are toolsframework of analyzing the given scenario and that humans use to communicate or share thoughts,extract the required reusable components to assist the ideas, and emotions. Language is the set of rules,developers according to the given guidelines. The shared by the individuals who are communicating, thatdesigned system provides a quick and reliable way to allows them to exchange those thoughts, ideas, orextract required components that are used for reuse emotions. Speech is talking, one way that a languagepurposed on later stages. The application with such can be expressed [2]. Language may also be expressedabilities can be more intelligent and pertinent through writing, signing, or even gestures in the casespecifically for the user to save the time. of people who have neurological disorders and mayKeywords: Reusable components, Rule based depend upon eye blinks or mouth movements totechnique, Language processing, Information communicate.extraction. Natural languages or speech languages are main source of commutation in daily life. Each field of life has its1. Introduction particular sets of words vocabulary collection which is quiet exclusive to its purposes [8]. NLP introducesModern software engineering technologies and many new concepts and new terminology to describeparadigms have been vastly affected by using reusable its models, techniques and processes. Some of thesecomponents [4]. Reusability is basically a software terms come directly from linguistics and the science ofengineering activity that focuses on the identification perception, while others were invented to describeof commonalities of systems within and across discoveries that did not fit into any previous and their using them again and again duringthe design and development of a software application. Natural Language understanding is a hefty field toInvolvement of reusable components in development grasp. Understanding and comprehending a speechphase of present-day software applications has evolved language means to know that what concepts a word ora great influence in terms of efficiency and cost- a particular phrase stands under a particular perspectiveeffective solutions [6]. Reusability of software [11]. To give meanings to a particular sentence acomponents stands for using the existing design and system should know how to link the concepts together in a meaningful way. Its satirical that the speech
  2. 2. languages are easiest for human beings in terms of becomes much more usable if they contain object-learning, understanding and using, on the other hand oriented modules. If the module looked for is nothardest for a computer to understand. Long after present, it is not necessary to adapt an almost fittingmachines have proven capable of inverting large module by tinkering with the code-always a dangerousmatrices with speed and grace, they still fail to master affair. Desirable features can be inherited from athe basics of our spoken and written languages. In suitable class already present in the library, and theorder to resolve all such issues, we need software, extra bells and whistles can be added to a newlywhich facilitates both users and software engineers. As defined subclass [10]. Conversely, the inheritance andfar as this software is concerns the time, it takes to polymorphism (will be explained shortly) features ofexplore all the facilities and services, should be quite object-oriented languages by themselves provideless than a minute and this information is quite useful opportunities for constructing reusable parts. Theyfor the users. promote the emergence of abstract classes that may serve as a starting point from which more specific2. Problem Description component are derived [13].Modern software engineering paradigms are based on Object Orientation and Component based developmentreusable components. Reusability of software has taken a vital role in Software Engineering. Incomponents stands for using the existing design and traditional software the software data and softwaredeveloped components in new software applications to processes were designed and implemented apart. Thissave the cost and time. Some vexing problems subsist separation leaded to big drawbacks. Few of thesethere as to reuse which components and how to search drawbacks were reusability and maintenance ofthose particular components from the given scenario. software.This paper presents discovering suitable reusable 3.1. Reusabilitycomponents to assist developers using a rule based Conventionally, Reusability is the ability of softwareframework. The newly designed rule based framework elements to serve for the construction of manyis fairly efficient in analyzing the given scenario and different applications and software [5].extract the required reusable components to assist thedevelopers according to the given guidelines. We need It is economic concerns, which dictate that softwarea solution to Search and Retrieve all possible reusable components should be reusable. The termobject-oriented software components from designed ``component implies that it should be possible to takesoftware systems to facilitate the Software developers part of one system and reuse it in the construction of another. In programming it is common to write3. Reusable Components essentially the same code over and over again for different applications (and even within the sameReusable software elements can be used for the application), with only slight variations each time [9].definitive construction of many different applications. This is very inefficient. If the code is doing essentiallySoftware reusability means that software based ideas the same thing each time, why do we have to write itand codes are developed once, and then used to solve again? The problem lies in the ``slight variationsmany software problems in various applicable between the different uses. The ability of a single piecescenarios. This vigorous ability of this mechanism of code to be reused rather than rewritten hinges onenhances not only productivity but also ensures support for a property known as "polymorphism". Thisreliability and quality. Reuse applies not only to source is one of the key strengths of OO languages [11].code fragments, but to all the intermediate workproducts generated during software development, 3.2. Reusability Factors in OO-methodologiesincluding requirements documentation, systems There are many object-oriented methodologies butspecifications, design structure and any information the today the most important is the Unified Modelingdeveloper needs to create software [3]. In the context Language (UML). UML has become the industryof this research paper, only reusing of source code standard design an analysis notation, which lends itselffragments is detained. to a methodology [14].Reuse is primarily a technical problem that can be In literature, regarding domain analysis for OO-solved by using the right, i.e object-oriented, Software, one can find just tips and fag heuristics.techniques. Many others also see managerial, There is no systematic method for OO-Analysis to findorganizational and psychological problems that hinder a perfect domain [15]. This technique is that is whythe fast promulgation of a large-scale reuse technology used only by experienced analysts. They use their skills[17]. It goes without saying that module libraries to follow some standard guidelines and standard
  3. 3. patrons. Now a day, we are confronted with models, in object participates in the action. As in the followingwhich the analyst is led too much by traditional example: "Main class has three objects.” A proceduresplitting of functionality (stepwise verification). All that understands such a sentence must discover thatimplementation details (like Persistence, pointers, Role is the agent because he performs the action ofguideline aspects, etc) pollute the whole model. This hitting, that the ball as the thematic object because it ismakes the reusability and maintenance of software the object hit, and that the racket is an instrumentdifficult. So efforts are required to keep in mind because it is the tool with which hitting is done. Thereusability factor while dealing with OO- input text is processed in following four steps.methodologies. 5.1. Step – 14. Component Engineering This is the first step of analyzing the written text called syntax analysis. Lexical ambiguity is created when aComponent-based reengineering enables segregation of same word assumes various meanings [3]. Syntacticindividual components. These components are ambiguities are simply solvable through theindependent and interoperable. These components can comparison with the expressions contained in abe easily modified, deleted or swapped in response to dictionary. In this case that ambiguity is generatedchanging business needs without affecting the rest of from the fact that which meanings will be incorporatedthe system. In addition, new components can be in which scenario. As an example we consider thequickly added, significantly increasing the system’s "cold" adjective in the sentences as "That room is cold"extensibility. Components can be identified and and "That person is cold." It turns out obvious that theextracted using two techniques as event-driven same "cold" adjective assumes, in the two phrasesidentification and data-centric identification [10] as different meanings. In the first sentence it indicate afollowing: temperature, in the second one a particular character of4.1. Event-Centric Identification a person.The event-centric approach to component identification 5.2. Step – 2is used to identify components in event- driven The second step of called syntax analysis and it issystems. In an event-driven system, any time an event performed on world level to recognize the word’stakes place, specific code within the system is specific category. The syntactic analysis of theexecuted. Components can be identified by triggering programs would have to be in a position to isolatean event and isolating the specific business functions subject, verbs, objects and various complements. It isthat result from that event. little complex procedure as in the example, "Imran eats4.2. Data-Centric Identification the apple." In this example, the actual meanings are that “Mario eats apple” but ambiguity can be assertedIdentifying the business functions performed on each if this sentence is conceived as “the apple eats Mario”.type of data and pinpointing where each businessfunction is performed throughout the system e.g. 5.3. Step – 3various methods or functions handling employees This is the third step as it analysis a phrase from theinformation. Once a unique, independent business semantic point of view means to give it a meaning.function is identified and isolated, it can then be This step helps to understand the actual sense of thesegregated as a component. sentence. Semantic ambiguities are most common due to the fact that generally a computer is not in a position5. Methods and Materials to distinguish the logical situations. Its example can beConventional natural language processing based "The bus hit the pole while it was moving." All of ussystems user rule based systems. Agents are another would surely interpret the phrase like "The car, whileway to address this problem [8]. In the research, a rule- moving, hit the pole", while nobody would be dreamedbased algorithm has been used which has robust ability to attribute to the sentence the meant "the car hit theto read, understand and extract the desired information. pole while the pole was moving ".First of all basic elements of the language grammar are 5.4. Step – 4extracted as verbs, nouns, adjectives, etc then on thebasis of this extracted information further processing is In the last the pragmatics of a sentence are also neededperformed. to be resolved. The pragmatic ambiguities are usually due to the communication between two persons whoIn linguistic terms, verbs often specify actions, and do not share the same context. As in the example, "Inoun phrases the objects that participate in the action will arrive to the airport at 8 oclock." In this example,[16]. Each noun phrases then role specifies how the
  4. 4. if the subject person belongs to a different continent, 6.2. Contents Interpretationthe meanings can be totally changed. This module reads the input from module 1 in the form of words. These words are categorized into various6. Anatomy of Designed System classes as verbs, helping verbs, nouns, pronouns,The designed speech language contents system has adjectives, prepositions, conjunctions, etc.ability to draw speech language contents after readingthe text scenario provided by the user. This system 6.3. Knowledge Retrievaldraws in five modules: Text input acquisition, text This module, extracts different objects and classes andunderstanding, knowledge extraction, generation of their respective attributes on the basses of the inputspeech language contents and finally multi-lingual provided by the preceding module. Nouns arecode generation as shown in following fig. symbolized as classes and objects and their associated attributes are termed as attributes.6.1. Text input acquisitionThis module helps to acquire input text scenario. User 6.4. Components Identificationprovides the business scenario in from of paragraphs of This module uses speech language contents symbols tothe text. This module reads the input text in the form identify the various objects in the program code andcharacters and generates the words by concatenating then finding there related methods. The type of thesethe input characters. This module is the methods is identified on the basis of the data theyimplementation of the lexical phase. Lexicons and handle.tokens are generated in this module. 6.5. Components Segregation This module finally segregates the identified components in the software application code. As a result the code of the segregated components is provided to the user. 7. Conclusion The accomplished research is related to the understanding of the high level languages code written in various Object Oriented languages. The designed system discovers suitable reusable components to assist developers using a rule based framework. The newly designed rule based framework is fairly efficient analyzing the given scenario and extract the required reusable components. Software developers can be assisted by providing them automatic functionality of reusable components searching 8. Future Work The designed system for extending the ability to find reusable components to design A Complete Automatic Reverse Engineering System with more accuracy and efficiency in terms of time and cost can also be designed. There is also periphery of improvements in the algorithms for understanding the input text and getting better results. Current accuracy of understanding is about 85% to 90%. It can be enhanced up to 95% by improving the algorithms and inducing the ability of learning in the system. Fig 1: Architecture of the Speech Language Context 9. References Understanding Model [1] Blaschke,C., Andrade,M.A., Ouzounis,C. and Valencia,A. (1999) Automatic extraction of biological
  5. 5. information from scientific text: protein–protein [17] S. Weiss, C. Apte, F. Damerau, D. Johnson, F.interactions. Ismb, 60–67. Oles, T. Goetz and T. Hampp, Maximizing text-mining performance, IEEE Intelligent Systems 14 (1999)[2- A. Eliëns, Principles of Object-Oriented Software 63ñ69.Development 2e ed., Addison- Wesley (2000). [18] Strzalowski, T. (1995). Natural language information[3]- Umar Rehman, The Factor of Reusability in retrieval. Information Processing and Management, 31(3),Object Oriented Programming, Informatica, Vrije 397–417.University Amsterdam [19] Van Rijsbergen, C. (1977). A theoretical basis for use[4] C. A. Thompson, R. J. Mooney and L. R. Tang, of co-occurrence data in information retrieval. Journal ofLearning to parse natural language database queries Documentation, 33(2), 106–119.into logical form, in: Workshop on AutomataInduction, Grammatical Inference and LanguageAcquisition (1997).[5] Chomsky, N. (1959). On certain formal properties ofgrammars. Information and Control, 2(2), 137–167.[6] Chomsky, N. (1965). Aspects of the Theory of Syntax.MIT Press, Cambridge, Mass. Chow, C., & Liu, C. (1968).Approximating discrete probability distributions withdependence trees. IEEE Transactions on Information Theory,IT-14(3), 462–467.[7] Fagan, J. L. (1989). The effectiveness of a non-syntacticapproach to automatic phrase indexing for documentretrieval. Journal of the American Society for InformationScience, 40(2), 115–132.[8] J. M. Zelle and R. J. Mooney, Learning semanticgrammars with constructive inductive logicprogramming, in: Proceedings of the 11th NationalConference on Arti_cial Intelligence (AAAI Press/MITPress, Washington, D.C., 1993), pp. 817ñ822.[9] Kowalski, G. (1998). Information Retrieval Systems:Theory and Implementation. Kluwer, Boston.[10] Krovetz, R., & Croft, W. B. (1992). Lexical ambiguityand information retrieval. ACM Transactions on InformationSystems, 10, 115–141.[11] Losee, R. M. (1988). Parameter estimation forprobabilistic document retrieval models. Journal of theAmerican Society for Information Science, 39(1), 8–16.[12] Losee, R. M. (1996a). Learning syntactic rules and tagswith genetic algorithms for information retrieval andfiltering: An empirical basis for grammatical rules.Information Processing and Management, 32(2), 185–197.[13] Manning, C. D., & Schutze, H. (1999). Foundations ofStatistical Natural Language Processing. MIT Press,Cambridge, Mass.[14] Maron, M. E.,& Kuhns, J. L. (1960). On relevance,probabilistic indexing, and information retrieval. Journal ofthe ACM, 7, 216–244.[15] Partee, B. H., Meulen, A. t., &Wall, R. E. (1990).Mathematical Methods in Linguistics. Kluwer, Dordrecht,The Netherlands.[16] Salton, G., & McGill, M. (1983). Introduction toModern Information Retrieval. McGraw-Hill, New York.