The process of determining crosscutting candidates through aspect mining and refactoring those candidates in existing software system is, for a good AOP [1].In this paper we proposed a graph based technique for identifying the crosscutting candidates. We are providing in initial assessment from the existing [2] how a vector space model and identification of crosscutting concerns steps proposed our algorithm based on crosscutting concerns graph algorithm. This algorithm is used to identify the concerns in the system on the basis of distance between methods in the graph.
The process of determining crosscutting candidates through aspect mining and refactoring those candidates in existing software system is, for a good AOP [1].In this paper we proposed a graph based technique for identifying the crosscutting candidates. We are providing in initial assessment from the existing [2] how a vector space model and identification of crosscutting concerns steps proposed our algorithm based on crosscutting concerns graph algorithm. This algorithm is used to identify the concerns in the system on the basis of distance between methods in the graph.
The process of determining crosscutting candidates through aspect mining and refactoring those candidates in existing software system is, for a good AOP [1].In this paper we proposed a graph based technique for identifying the crosscutting candidates. We are providing in initial assessment from the existing [2] how a vector space model and identification of crosscutting concerns steps proposed our algorithm based on crosscutting concerns graph algorithm. This algorithm is used to identify the concerns in the system on the basis of distance between methods in the graph.
IJSRET @ 2014 Crosscutting Concern Identification Using Graph Theory Richa Singh Banaras Hindu University Tapan Kant* Banaras Hindu University Manjari Gupta Banaras Hindu University Abstract The process of determining crosscutting candidates through aspect mining and refactoring those candidates in existing software system is, for a good AOP [1].In this paper we proposed a graph based technique for identifying the crosscutting candidates. We are providing in initial assessment from the existing [2] how a vector space model and identification of crosscutting concerns steps proposed our algorithm based on crosscutting concerns graph algorithm. This algorithm is used to identify the concerns in the system on the basis of distance between methods in the graph. Index TermsAspect Mining, Aspect Oriented Programming, Crosscutting Concern, Vector-Space- Model, Object-Oriented-Programming. [1] INTRODUCTION Aspect oriented programming is a new prototype that is initiated to design and execute crosscutting concerns [1]. AOP mainly tackle the modularity limitations of Object oriented programming (OOP). It attempts to effectively sum up the crosscutting concerns to form a new type of module known as an aspect [19]. An Aspect is a modular unit of crosscutting implementation. It is defined very much like a class, and can have methods, fields, constructors, initializers, named pointcuts, and advices [1]. At compile time, the aspect is weaved to generate the final system, using a special tool called weaver. Crosscutting concerns are characteristics of software system whose implementations are spread over the source code. Crosscutting concerns in non AO have two symptoms. Code Scattering: the code for one concern is spread across the system. Code tangling: in order to implement one concern the programmer needs to address or crosscut another concerns as well. Aspect mining is a process that tries to identify crosscutting concerns in existing software systems. The goal is to refactor the existing systems to use aspect oriented programming to make them easier to maintain and to evolve [3]. [1.1] Aspect Mining Aspect mining is a relatively new research direction that tries to identify crosscutting concerns in already developed software systems without using AOP [3]. The goal is to identify them and then to refactor them to aspects, to achieve a system that can be easily understood, maintained and modified. Aspect Mining is a reverse software engineering exploration technique that is concerned with the development of concepts, principles, methods and tools supporting the identification and extraction of re-factorable aspect candidates in legacy software systems [4]. To achieve this level of modularization in legacy and traditional object-oriented applications, candidates for refactoring first need to be identified. This step is known as aspect mining [5]. In other words, aspect mining refers to the discovery of potential crosscutting concerns that can be modularized into aspects. Through Aspect mining technique we can identify crosscutting concerns during software development lifecycle or in already developed software system. The goal of these techniques is to provide an overview of the source-code entities that play a role in a particular crosscutting concern. This not only improves the understandability of the concern in particular and of the software in general, but also provides a first step in the migration towards applying aspect-oriented software development techniques [5]. International Journal of Scientific Research Engineering & Technology (IJSRET) Volume 2 Issue 10 pp 683-686 January 2014 www.ijsret.org ISSN 2278 0882 IJSRET @ 2014 Our approach uses clustering based aspect mining techniques. There are just a few aspect mining techniques which uses clustering to identify crosscutting concerns [2, 3, 4, 11, 13, 15]. In our approach, a connected weighted graph is constructed for a given source code, where vertices are corresponding to methods and we assume among all methods weights of edges are corresponding to the Euclidian distance between two methods. By applying given approach described in this paper different subcomponents of this connected graph are identifies. These different subcomponents are corresponding to different crosscutting concerns in the source code. For this we will consider a vector space model, identification of crosscutting concerns steps and threshold value described in [2]. The paper is structured as follows, section 2 describes related work .Section 3 and section 4 describes a vector space model and identification of crosscutting concerns steps [2] which are used in our approach. Section 5, describes our approach for identification of crosscutting concerns and section 6 describes the system graph algorithm. In the last section 7 we conclude and present future work. [2] RELATED WORK Several approaches have been proposed for aspect mining till now. The first approaches in aspect mining were the query based search techniques. The developer had to search so called and associated tool showed all the places where the seed was found [6].There are many tools have been developed for this as Aspect mining tool [7], Aspect browser [8], AMTEX [9],Feature Exploration and analysis tool(FEAT)[10]. Later on researchers have focused on developing such aspect mining techniques that do not require initial seed from the user [6]. Some of them uses fan in analysis techniques [3], [11], some of them uses Formal concept analysis [5], some of them use clustering ([3], [12], [13]) some of them uses clone detection techniques [14]. Those techniques try to identify the crosscutting concerns with some kind of system representation and are called automated aspect mining techniques [6]. These are all static approaches that analyze the source code for crosscutting concerns. In [5] a dynamic approach was purposed to analyze the execution of source code to identify crosscutting concerns. In [18], proposed a clustering approach in aspect mining based on k-means and hierarchical agglomerative clustering techniques and in [17] some quality measures for evaluating the results of clustering based aspect mining techniques. [3] VECTOR SPACE MODEL Several approaches have been used vector space model [2] for their own purpose. We are also used the vector space model described in the below: In our approach the vertices to be considered are the methods from the software system M = {m 1 ,m 2 , ...m n }. The methods belong to the application classes or are called from the application classes. Based on the vector space model,[2] considered each method as an l-dimensional vector as M = {m 1 ,m 2 , ...m n } two vector-space models have considered that illustrate code scattering symptoms in software system [2]: 1-The vector associated with the method m is {FIV, CC}, where FIV is the fan-in value [11] of m (the number of methods that call m) and CC is the number of calling classes. This model has been denoted by M 1 . 2- The vector associated with the method m is {FIV, B 1 , B 2 , ... B l-1 }, where FIV is the fan-in value of m and B i (1 i l1) is 1, if the method m is called from a method belonging to the application class C i , and 0, otherwise. We denote this model by M 2 . In our approach we will consider Euclidian distance as a weight of the edges between two vertices (methods) in the connected graph. In this context the Euclidian distance between two methods m i and m j defined as:- d E (m i ,m j ) = 2 In our approach we have chosen the value 1 for the threshold. The reason for this choice is the following [2]: if the distance between two methods m i and m j is less or equal to 1, considered that they are similar enough to be placed in the same (crosscutting) concern. It mentioned that, from the aspect mining point of view, using Euclidian distance as metric and the vector space model proposed above, the value 1 for threshold makes the difference between a crosscutting concern and a non- crosscutting one. [4] IDENTIFICATION OF CROSSCUTTING CONCERNS STEPS The following steps [2, 3, 15 & 16] are defined for identification of crosscutting concerns. International Journal of Scientific Research Engineering & Technology (IJSRET) Volume 2 Issue 10 pp 683-686 January 2014 www.ijsret.org ISSN 2278 0882 IJSRET @ 2014 Step 1: Computation of set of methods in the chosen source code as well as computation of the features set values, for each method in the set. Step 2: Filtering techniques owned by certain data structures categories like Array List, vectors are removed. Also, the techniques owned by some built-in categories like String, String Builder and String Buffer are removed. Step 3: By using System graph algorithms described in section5, the remaining set of methods is arranged into clusters. The clusters are separated by the average distance from the point 0m in descending order, where 0m is referred to m dimensional vector with individual part 0. Step 4: The clusters acquired are evaluated to detect which methods belong to crosscutting concerns. The cluster that contain procedures owned by crosscutting concerns [11]. The Algorithm that would be used in step 3 we are purposed in the next section. [5] OUR APPROACH Let X ={m 1 ,m 2 ,.m n } be a software system, where 1in is a method of the system. We consider a crosscutting concerns as a set C={c 1 ,c 2 ,.c cn } with Cm, of methods that implement this concerns. The number of methods in crosscutting concerns c is C n =C. Let CCC = {C 1 , C 2 , C q } be the set of all crosscutting concerns that exist within X. The number of crosscutting concerns in the system X is therefore represented by q=|CCC|. In this section we describe the concept of system Crosscutting Concern using Graph and the following definitions are needed to describe our approach. Definition1:-Let X= {m 1 ,m 2 ,m n }, be software methods and d E the Euclidian distance metric between edges (methods). We can define System graph S G as: S G =(V,E) ; Where the set of vertices V={m 1 ,m 2 ,.m n } of the software system X. And the set of edges E={(m i ,m j ) m i ,m j V, m i m j } & all the edges are labeled with the Euclidian distance as: W (m i ,m j )=d E (m i, m j )= 2 Definition2:-Let X={m 1 ,m 2 ,m n } be a software system and d E (Euclidian distance) the metric between methods in a multidimensional and S G the corresponding system graph (Definition 1) We define the problem of finding those components whose edges Euclidian distance is less than one i.e. d E (m i ,m j )<1, in the software system X. Algorithm for finding those components of crosscutting concerns from system graph SG is described in the next section. [6] SYSTEM GRAPH ALGORITHM In this part we describe S G algorithm for determining the d E (m i ,m j )<1,of software system X. This algorithm will be used in grouping step in the section 4 [2] for identification of crosscutting concerns. These are the following steps in S G algorithm:- 1-Create the concerns graph as shown in definition1. 2-Determine the edges whose distance between vertices (methods) is less than 1. These edges are concerns in the software system X. [7] CONCLUSIONS AND FUTURE WORKS We have presented in this paper a new graph based approach in aspect mining. For this we have used system concerns algorithm, in the grouping step of identification of crosscutting concerns. We will find the connected graph whose Euclidian distance between vertices (methods) is less than one and obtained vertices are analyzed in order to identify crosscutting concerns from the system. Future work can be done in the following points: We can apply this approach in case studies, like JHOT Draw, Pet store and JEdit etc. We can compare the results with other algorithm of aspect mining techniques. We can improve vector space model to obtained better result using this algorithm. We can take another threshold value to improve the result. REFERENCES [1] Kiczels, G.,Lamping, J.,Menhdhekar,A., Maeda,C., Lopes, C., Loingtier, J.M. Irwin, J; Aspect oriented programming In: proceeding European conference on object oriented programming 220-242. Volume 1241. Springerverlag (1997). International Journal of Scientific Research Engineering & Technology (IJSRET) Volume 2 Issue 10 pp 683-686 January 2014 www.ijsret.org ISSN 2278 0882 IJSRET @ 2014 [2] Gabrila Serban and Grigoreta Sofia Moldovan A New-Graph based approach in aspect mining knowledge engineering principles and techniques proceeding of the international conference and knowledge engineering, principle and techniques, KEPT 2007 cluj- Nopoca (Romania), June 6-8 2007. [3] Moldovan, G.S., Serban, G.,Aspect Mining using a Vector-Space Model Based Clustering Approach", In: Proceedings of Linking Aspect Technology and Evolution (LATE) Work-shop, 2006, to be published. [4] Sayyed G.Maisikeli& Frank J.MitropoulosAspect Mining Using Self- Organizing Maps With Method Level Dynamic Software metrics as input vector2010 2nd International Conference on Software Technology and Engineering(ICSTE) By March 2009. [5] Tonella, P, Ceccato, M.: Aspect Mining through the Formal Concept Analysis of Execution Traces. In: Proceedings of the IEEE Eleventh Working Conference on Reverse Engineering (WCRE 2004). (2004) 112121. [6] Grigoreta S. Cojocar : Aspect mining past present and future Studia Univ.Babes Bolyai Informatica, Volume LVII, Number 4, 2012. [7] Jan Hannemann and Gregor Kiczales. Overcoming the Prevalent Decomposition of Legacy Code. In Advanced Separation of Concerns Workshop,at the International Conference on Software Engineering (ICSE), May 2001. [8] William G. Griswold, Yoshikiyo Kato, and Jimmy J. Yuan. AspectBrowser: Tool Support for Managing Dispersed Aspects. Technical Report CS1999-0640, UCSD, March 2000. [9] Charles Zhang, Depeng Gao and Hans- Arno Jacobsen Multi visualizer http://www.eecg.utoronto.ca/czhang/amtex/. [10] Martin P. Robillard and Gail C. Murphy. Concern Graphs: Finding and Describing Concerns Using Structural Program Dependencies. In ICSE '02: Proceedings of the 24th International Conference on Software Engineering, pages 406416, 2002. [11] M. Marin, A. van, Deursen, and L. Moonen Identifying Aspects Using Fan-in Analysis In Proceedings of the 11th Working Conference on Reverse Engineering (WCRE2004), pages 132141. IEEE Computer Society, 2004. [12] L. He and H. Bai. Aspect Mining using Clustering and Association Rule Method International Journal of Computer Science and Network Security, 6(2A):247251, February 2006. [13] D. Shepherd and L. Pollock. Interfaces, Aspects, and Views In Proceedings of Linking Aspect Technology and Evolution (LATE) Workshop, Chicago, USA, March 2005. [14] O. A. M. Morales. Aspect Mining Using Clone Detection Masters thesis, Delft University of Technology, the Netherlands, August 2004. [15] Serban, G., Moldovan, G.S., A new k- means based clustering algorithm in aspect mining", In: 8th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC'06), 2006, pp. 60-64. [16] Hacoupian, Yourik Mining aspects through Support vector clustering and Genetic algorithms Ph.D. dissertation, Nova southeastern University, DAI /B 74-10 (E), P., Aug 2013,Page no. 3567556. [17] G. S. Moldovan and G. Serban Aspect Mining using a Vector-Space Model Based Clustering Approach. In Proceedings of Linking Aspect Technology and Evolution (LATE) Workshop, Bonn, Germany, March 2006, to be published. [18] G. S. Moldovan and G. Serban. Quality Measures for Evaluating the Results of Clustering Based Aspect Mining Techniques. In Proceedings of Towards Evaluation of Aspect Mining (TEAM) Workshop, ECOOP, pages 13- 16, 2006. [19] Tarr ,P.,Ossher,H.Harrision and Sutton S.M.,N.Degrees of Sepration Multidimensional degrees of sepration of concerns In proceeding of international conference on object oriented programming (ICSE) 1999. .
Demographic Differences in Postgraduate Students' Attitudes and Use of ICT Facilities in Rivers State University of Science and Technology, Port Harcourt