SlideShare a Scribd company logo
1 of 8
Download to read offline
S Mohammed Elsaid et al Int. Journal of Engineering Research and Applications www.ijera.com 
ISSN : 2248-9622, Vol. 4, Issue 7( Version 3), July 2014, pp.164-171 
www.ijera.com 164 | P a g e 
Detecting Aspect Intertype Declaration Interference at Aspect Oriented Design Models: A Database Approach Ahmed Sharaf Eldin*, Maha Hana**, Shady Mohammed Elsaid*** *(Department of Information Systems, Faculty of Computers and Information, Helwan University, Egypt) **(CIC Cairo Deputed from Helwan University, Egypt) ***(Department of Information Systems, Faculty of Computers and Information, Helwan University, Egypt, Department of Computer Science, Faculty of Computers and Information Systems, Um Al-Qura University, Makkah Al-Mukaramah, Saudi Arabia) ABSTRACT Implementing crosscutting concerns requires aspect oriented developers to be enabled to introduce some mem- bers to core concerns modules along with other. This may lead to a problem of interference among modules, either between classes and aspects or among aspects themselves. Such conflicts may cause program to crash at runtime. Interference problem is addressed but with complex solutions that become more complicated propor- tionally with the project size. In this work a relational database approach and relational algebra is used to detect intertype declaration interferences in aspect oriented design models in order to capture conflicts in an early stage before having it as runtime error. Detection is done in an approach not that complex as the previous ones. Keywords – Aspect Oriented Programming, Databases, Interference Detection, Intertype Declaration, Rela- tional Algebra. 
I. INTRODUCTION 
Aspect oriented programming – AOP – appears to enable software developers to address crosscutting concerns. If a behavior being developed is needed across a range of software, then it is named a crosscutting concern and implemented as an Aspect. For example authentication task that is needed in several modules in banking system that can be viewed as being developed horizontally over these classes [1] [2]. Crosscutting concerns introduce code scattering problem in conventional development environment, which occurs when a single functionality is spanned over several units, or it is just duplicated chunk of code [3] [4]. Code tangling represents another problem when two or more concerns are at the same class and dependent on each other and cannot be disassociated [3]. Therefore a development paradigm is needed to address those problems, which is aspect oriented programming [5]. AOP resolves the previously mentioned limitations by developing the crosscutting concerns as independent modules therefore the overall modularity of the developed software is enhanced [6]. 
AOP targets crosscutting concerns via concept of obliviousness that means programmer doesn't have to care about where the coded aspect will be used inside the code of the entire system [7]. Thus, completely independent modules – aspects – will be developed that increase the overall system productivity and reducing code complexity by resolving crosscutting concerns problem. Aspects may interfere with each other because of weaving – injecting – code at the compile time into another code. Research done in [6] [8] [9] shows the interference among aspect and its causes. The targeted interference type here is that one resulted from introducing new members to base classes or other aspects at the runtime. The work presented here detects introduction conflicts at design level, instead of being detected at compile time or even runtime as an error. The rest of the paper is structured as the following: section two illustrated AOP interference problem. Section three demonstrated the related work in AOP interference detection problem. Section four explains the detection approach using relational database model and formal query language. Section five includes an example for the proposed solution. Finally, the conclusions and future work are in section six. 
II. Aspect Interference 
Aspects may interfere with each other or with their base classes in several forms. First, several aspects addressing the same join point may interfere together as there is no fixed rule for aspect execution order. This is called crosscutting specifications interference that is mainly caused by the usage of the wildcard operator (*) that matches any return value from a method, which causes accidental joinpoints. 
RESEARCH ARTICLE OPEN ACCESS
S Mohammed Elsaid et al Int. Journal of Engineering Research and Applications www.ijera.com 
ISSN : 2248-9622, Vol. 4, Issue 7( Version 3), July 2014, pp.164-171 
www.ijera.com 165 | P a g e 
Second, join points may change due to weaving of an aspect that may add new join points to the code or removes existing join points. Other aspects could be affected due to these changes. This is called aspect- aspect conflicts [6]. Third, aspect may change some variables those are required for other aspect behaviors. This may cause circular dependencies between aspect and base class; so it is called base- aspect conflicts [6]. Forth, interference occurs when aspects have introductions – declarations – that are contradicting with each other due to use of inter-type declaration or structural superimposition [9]. Such a conflict makes contradiction among concerns are required to be achieved, which gives the name concern-concern conflicts [6]. This can occur in several ways, an aspect introduces new members – variables or methods – to another aspect or class. If the aspect or class has a member with the same name as the introduced one then interference will occur. 
III. Related Work 
A. Code Level Detection 
A graph-based model used in [10] to detect intertype declaration conflicts by converting the aspect oriented source code, written in Java and AspectJ, structure to a graph model and the intertype declarations, part of code written in AspectJ, to a graph transformation rules that is to be applied to the graph model. In this model each program element is mapped to a graph node with a unique label to this element. The element node has primarily two edges, the first one called isa to represent its type of the element, whether it is a class, aspect, method, interface, etc. The second edge called named that holds the actual name of the element. Transformation rules are applied as edges to this graph model and then conflicts can be detected. Figure 1 shows an example of graph representation to a sample program. Using this approach is getting complicated along with the program size. Thus, a simple program of 200 elements to be represented in graph adjacency matrix, complexity of O(N2), will cost 40000 comparisons. What if 1000 elements or more? 
Fig. 1 Graph Representation to a Sample AOP Program with Intertype Declarations [10] Program slicing is used in [11] to investigate the woven code – byte code – as it is dependent on AspectJ programming language. A slice is representing a module which can be an aspect or a class. Slices are investigated against intersection; if two slices intersects then they interact. Unit testing is used in [12] [13] to detect interference in aspect oriented program. When aspect <A> requires a unit test that is added by aspect <B>, and vice versa between <B> and <A> it is kind of circular dependency between <A> and <B>. Conflict between aspects can be determined when an aspect suppress a unit test that is required for another aspect, for example an aspect <C> changes a field that is required for aspect <D>. Dependency conflict detected when aspect <E> issues a unit test that is required for aspect <F>. In other words, aspect <E> existence is required for aspect <F> functionality. Figure 2 shows those types of interference detection respectively. Pentagon represents a unit test, octagon represents an aspect, arrow represents <<issue>> direction, dashed circular-end line represents <<require>> direction, and the lightning bolt represents <<suppress>> direction. The main drawback of this approach is lacking of base/aspect interference detection. 
Circular Dependency 
Conflict Interference 
Dependency Interference 
Fig. 2 Aspect Interference Detection using Unit Testing 
B. Model Level Detection 
Modeling aspect oriented software provides a good way to check software before actual coding phase. Theme/UML and UML extension mentioned in [14] and [15] respectively needs a formal way to transform them into a computerized form in order to facilitate the model checking process. In [16] a
S Mohammed Elsaid et al Int. Journal of Engineering Research and Applications www.ijera.com 
ISSN : 2248-9622, Vol. 4, Issue 7( Version 3), July 2014, pp.164-171 
www.ijera.com 166 | P a g e 
technique named MATA – Modeling Aspects using a Transformation Approach – was introduced to specify and compose aspects based on graph transformation. Graphs are then used in [17] to analyze aspect interference and in [18] to detect interference in UML-based aspect oriented models. Those techniques suffer from complexity of the algorithm being developed and limited project size. IV. Intertype Declaration Interference Detection Aspects and classes in aspect oriented modeling have relationships like those in object oriented modeling. Using the relational modeling technique, a database is resulted to resemble a UML-based aspect oriented model. Thus, for any creation to an aspect, class, or any of their members a record is added to the corresponding table. Figure 3 shows this database schema in order to understand the relational algebra written to extract intertype declaration interference. 
In the following there are relational algebraic expressions to extract the intertype declaration interference types. First, aspect introduces a variable to another aspect has a variable with the same name. Second, aspect introduces a variable to a class has a variable with the same name. Third, aspect introduces a method to another aspect has a method with the same name. Forth, aspect introduces a method to a class has a method with the same name. Fifth, an aspect introduces a member – variable or method – to a base class or another aspect, while another aspect or more introduces members with the same name. 
The last one is considered to be the trickiest one as due to the obliviousness nature of aspect oriented paradigm. For example, a software engineer may design an aspect (X) to handle a specific crosscutting concern with a member (M) introduced to another concern (A), at the same time anther software engineer may design an aspect (Y) that implements another crosscutting concern deals with concern (A) and introduces a member (M) to it. This type of error cannot be detected at design time and if those aspects are not compiled together it's a runtime error. 
Fig. 3 Aspect Oriented UML-based Correspondent Database 
a. Aspect/ Aspect Variable Interference 
The concept behind the following is that a variable is intertype interfered if it's declared as intertype to another aspect and the affected aspect has a variable with the same name regardless to its data type. By performing the last join the relation type InterferingVariables contains those aspect variables interfering with other aspects' variables telling the causer and the affected aspects. 
 R1 (OwnerAspectID, OwnerAspect)π ID, Name(Aspect) 
 R2(VarID, VarName, IntertypeAspectID, AspectID) 
 π ID, Name ,IntertypeAspectID ,AspectID (AspectVariable) 
 R3  R1⋈OwnerAspectID=AspectID R2 
 R4  σ IntertypeAspectID ≠ Null (R2) 
 R5  R1 ⋈ OwnerAspectID=IntertypeAspectID R4 
 R6  R1 ⋈ OwnerAspectID=AspectID R5 
 InterferingVariables  
R3⋈ R3.OwnerAspectID = R6.IntertypeAspectID AND R3.VarName=R6.VarName R6 
b. Aspect/ Class Variable Interference 
The concept behind the following is that an aspect variable is intertype interfered with class variable if
S Mohammed Elsaid et al Int. Journal of Engineering Research and Applications www.ijera.com 
ISSN : 2248-9622, Vol. 4, Issue 7( Version 3), July 2014, pp.164-171 
www.ijera.com 167 | P a g e 
it's declared as intertype to this class and the affected class has a variable with the same name regardless to its data type. By performing the last join the relation type InterferingVariables contains those aspect variables interfering with other classes' variables telling the causer aspect and the affected classes. 
► R1 (OwnerAspectID, OwnerAspect) 
π ID, Name(Aspect) 
► R2(AsVarID, AsVar, AspectID, IntertypeClassID) 
π ID, Name, AspectID, IntertypeClassID (AspectVariable) 
► R3  σ IntertypeClassID ≠ Null (R2) 
► R4  R1 ⋈ OwnerAspectID=AspectID R3 
► R5(CVarID, CVar,OwnerClassID)  
π ID, Name, ClassID (ClassVariable) 
► R6 (CID, OwnerClass)π ID, Name(Class) 
► R7  R5 ⋈ OwnerClassID=CID R6 
► InterferingVariables  
R4⋈ AsVar= CVar AND IntertypeClassID=CID R7 
c. Aspect/ Aspect Method Interference 
The concept behind the following is that an aspect method that is declared as intertype one to another aspect interferes if this aspect has another method with the same name regardless to the return type or the parameters. By performing the last join the relation type InterferingMethods contains those aspect methods interfering with other aspects' methods telling the causer aspect and the affected aspects. 
 R1 (OriginalAspectID, OriginalAspect) 
π ID, Name(Aspect) 
 R2 ( MethodID, Method, AspectID, IntertypeAspectID) 
π ID, Name, AspectID, IntertypeAspectID(AspectMethod) 
 R3  R1 ⋈ OriginalAspectID=AspectID R2 
 R4  σ IntertypeAspectID ≠ Null (R2) 
 R5  R1 ⋈ OriginalAspectID=AspectID R4 
 R6  R1 ⋈ OriginalAspectID=IntertypeAspectID R5 
 InterferingMethods  R3⋈ 
OriginalAspectID=IntertypeAspectID AND R3.Method = R6.Method R6 
d. Aspect/ Class Method Interference 
The concept behind the following is that an aspect method is intertype interfered with class one if it's declared as intertype to this class and the affected class has another method with the same name regardless to its return data type or parameters. By performing the last join the relation type Interfering Methods contains those aspect methods interfering with other classes' methods telling the causer aspect and the affected classes. 
► R1 (CID, CName)π ID, Name(Class) 
► R2 (CMID, CMethod, ClassID)  π ID, Name, ClassID (ClassMethod) 
► R3  R1 ⋈ CID=ClassID R2 
► R4 (AsMethodID, AsMethod, IntertypeClassID, AspectID) π ID, Name, IntertypeClassID, AspectID (AspectMethod) 
► R5  σ IntertypeClassID ≠ Null (R4) 
► R6  R5 ⋈ AspectID=ID Aspect 
► InterferingMethods  R3⋈ CID=IntertypeClassID AND CMethod = AsMethod R6 
► 
e. Aspect-Aspect/ Aspect-Class Member Interference 
The concept behind the following is that this interference type occurs if intertype members from different aspects target the same concern either core or crosscutting and those members have the same name. the following expressions extracts the interference in case of a member is a variable. 
 R1  σ IntertypeClassID ≠ Null (AspectVariable) 
 R2  R1 ⋈ AspectID=ID Aspect 
 R3  R2 ⋈ IntertypeClassID=ID Class 
 R4  σ (R3) 
 Result  R4⋈ R4.AspectVariableName = R3.AspectVariableName AND R4.IntertypeClassID = R3. IntertypeClassID AND R4.AspectID <> R3.AspectID R3 
V. Case Study: Customer Account 
The following case, shown in figure 3, demonstrates an example based on [19] for aspect oriented UML-based class diagram models a part of bank customer account management. First, there is a class represents three of the core concerns of any account: balance inquiry, deposits, and withdrawals. Second, there are two aspects represent the crosscutting concerns for any account transaction: Authentication and Authorization. In this model there are five typical interference of intertype declaration kind. Table 1 contains a snapshot of the actual data in the database design in figure 2 concordant with the sample UML-based aspect model in figure 4 is used to facilitate the queries detects the interference within this model.
S Mohammed Elsaid et al Int. Journal of Engineering Research and Applications www.ijera.com 
ISSN : 2248-9622, Vol. 4, Issue 7( Version 3), July 2014, pp.164-171 
www.ijera.com 168 | P a g e 
Fig. 4 UML-based Aspect Oriented Model Class 
ID 
NAME 
ACCESS MODIFIER 
PARENTID 
12 
Account 
public 
null ClassMethod 
ID 
NAME 
ACCESS MODIFIER 
STATIC 
FINAL 
ABSTRACT 
RETURN TYPE 
CLASS ID 
16 
getBalance 
public 
0 
0 
0 
float 
12 
17 
setBalance 
public 
0 
0 
0 
void 
12 
18 
withdraw 
public 
0 
0 
0 
void 
12 
19 
deposit 
public 
0 
0 
0 
void 
12 Class Method Param 
ID 
TYPE 
METHOD ID 
17 
float 
17 
18 
float 
18 
20 
float 
19 Class Variable 
ID 
NAME 
TYPE 
ACCESS MODIFIER 
STATIC 
CLASS ID 
6 
NO 
int 
public 
No 
12 
7 
Lock 
boolean 
public 
No 
12 
8 
Balance 
float 
private 
No 
12 Aspect 
ID 
NAME 
ACCESS MODIFIER 
PARENTASPECT 
10 
Authentication 
public 
null 
11 
Authorization 
public 
null Aspect Variable 
ID 
NAME 
TYPE 
ACCESS 
MODIFIE 
ASPECT ID 
STATIC 
INTERTYPE CLASSID 
INTERTYPE ASPECTID
S Mohammed Elsaid et al Int. Journal of Engineering Research and Applications www.ijera.com 
ISSN : 2248-9622, Vol. 4, Issue 7( Version 3), July 2014, pp.164-171 
www.ijera.com 169 | P a g e 
R 
20 
Balance 
float 
private 
10 
No 
null 
null 
21 
Lock 
boolean 
public 
10 
No 
12 
null 
22 
Owner 
string 
public 
10 
No 
12 
null 
23 
limit 
int 
public 
11 
No 
null 
null 
24 
privilege 
int 
public 
11 
No 
null 
null 
25 
Owner 
string 
public 
11 
No 
12 
null 
26 
privilege 
int 
public 
10 
No 
null 
11 Aspect Method 
ID 
NAME 
ACCESS MODIFIER 
STATIC 
FINAL 
ABSTRACT 
RETURN TYPE 
ASPECT ID 
INTERTYPE CLASS ID 
INTERTYPE ASPECT ID 
7 
authenticate 
public 
0 
0 
0 
boolean 
10 
null 
null 
8 
authorize 
public 
0 
0 
0 
boolean 
11 
null 
null 
9 
lock 
public 
0 
0 
0 
boolean 
11 
null 
null 
10 
unlock 
public 
0 
0 
0 
boolean 
11 
null 
null 
11 
withdraw 
public 
0 
0 
0 
void 
11 
12 
null 
12 
deposit 
public 
0 
0 
0 
void 
11 
12 
null 
13 
lock 
public 
0 
0 
0 
boolean 
10 
null 
11 
14 
unlock 
public 
0 
0 
0 
boolean 
10 
null 
11 Aspect Method Param 
ID 
TYPE 
METHOD ID 
12 
float 
11 
13 
float 
12 Pointcut 
ID 
NAME 
ON ACTION 
ASPECTID 
CLASS METHOD ID 
ASPECT METHOD ID 
5 
pc1 
call 
10 
16 
null 
6 
pc2 
call 
10 
17 
null 
7 
pc3 
call 
10 
18 
null 
8 
pc4 
call 
10 
19 
null 
9 
pc1 
call 
11 
18 
null 
10 
pc2 
call 
11 
19 
null PointcutAdvise 
ID 
NAME 
POINTCUTID 
4 
Before 
5 
6 
Before 
6 
8 
Before 
7 
10 
Before 
8 
11 
Before 
9 
12 
After 
9 
13 
Before 
10 
14 
After 
10 
Table 1. Aspect Oriented UML-based Model Corresspodant Data
S Mohammed Elsaid et al Int. Journal of Engineering Research and Applications www.ijera.com 
ISSN : 2248-9622, Vol. 4, Issue 7( Version 3), July 2014, pp.164-171 
www.ijera.com 170 | P a g e 
VI. Results By applying SQL queries based on the relational algebraic expressions mentioned in the previous section the following results shown in table 2 come out. First, Privilege variable is detected as an interfering member declared in Authentication aspect "OwnerAspect" and the aspect cause this interference is the Authorization aspect "IntertypeAspect" field. Second, Lock variable is detected as an interfering member declared in the Account class "OwnerClass" as a normal member and Authentication aspect has it as intertype member declared to Account class, and interfering with its member Lock. 
Third, the two methods lock() and unlock() are detected as interfering methods between aspects as they are declared basically in the aspect Authentication "OriginalAspect", while they are declared in as intertype members to this aspect at Authorization aspect "IntertypeAspect". Forth, the methods withdraw() and deposit() declared in the aspect Authorization "Owner Aspect" are intertype members interfere with those original members at class Account and its methods withdraw and deposit. 
Fifth, the members that can be declared in two or more aspects and intertype declared to another unit class or aspect are detected such as the example of the variable owner that is declared within two aspects Authorization and Authentication "Aspect1 and Aspect 2" as intertype member to class Account "AffectedClass" that now has two members with the same name. This type of conflicts cannot be detected till runtime, and then crashes the software being run. 
Table 2. Aspect Oriented UML-based Model Intertype Interferences Detected 
Aspect/Aspect Variable Interference 
OWNER ASPECTID 
OWNER ASPECT 
VARNAME 
INTERTYPE ASPECT ID 
INTERTYPE ASPECT 
10 
Authentication 
privilege 
11 
Authorization Aspect/Class Variable Interference 
AS VARID 
ASPECT VAR 
OWNER ASPECT 
INTERTYPE CLASS ID 
CLASS ID 
OWNER CLASS 
21 
Lock 
Authentication 
12 
12 
Account Aspect/Aspect Method Interference 
ORIGINAL ASPECTID 
ORIGINAL ASPECT 
INTER- MID 
OR- MID 
INTER METHOD NAME 
ORIGINAL METHOD NAME 
INTERTYPED ASPECT ID 
INTERTYPED ASPECT 
10 
Authentication 
13 
9 
lock 
lock 
11 
Authorization 
10 
Authentication 
14 
10 
unlock 
unlock 
11 
Authorization Aspect/Class Method Interference 
As Method ID 
As Method 
Owner Aspect 
Intertype ClassID 
CID 
Class 
CMID 
Class Method 
11 
withdraw 
Authorization 
12 
12 
Account 
18 
withdraw 
12 
deposit 
Authorization 
12 
12 
Account 
19 
deposit Aspect-Aspect/ Aspect-Class Member Interference 
Aspect1 ID 
Aspect1 
Aspect2 ID 
Aspect2 
Variable 
Intertype ClassID 
AffectedClass 
10 
Authentication 
11 
Authorization 
Owner 
12 
Account 
11 
Authorization 
10 
Authentication 
Owner 
12 
Account
S Mohammed Elsaid et al Int. Journal of Engineering Research and Applications www.ijera.com 
ISSN : 2248-9622, Vol. 4, Issue 7( Version 3), July 2014, pp.164-171 
www.ijera.com 171 | P a g e 
VII. Conclusion and Future Work Aspect interference problem is one of the most complicated problems in AOP. Despite of AOP importance but the probability of unexpected behavior of software being run and complexity of resolving this problem, many developers prefer OOP and avoiding AOP with all its advantages. Using relational model to represent the corresponding UML-based aspect model and relational algebra provided a simple way to detect one of the interference types – intertype declaration interference – at design time regardless to the size of the software to be designed. The work presented here can be done using XML and X-Query instead of traditional DBMS and SQL thus it can be used within CASE tools easily for local development or can be implemented over a database server for distributed teams targeting the same project. References 
[1] Berg, Klaas van den, Conejero, Jose Maria and Chitchyan, Ruzanna. AOSD ontology 1.0 public ontology of aspect orientation. s.l. : Common Foundation for AOSD, 2005. p. 90, Report. 
[2] J.D. Meier, David Hill, Alex Homer, Jason Taylor, Prashant Bansode, Lonnie Wall, Rob Boucher Jr., Akshay Bogawat. .NET Application Architecture Guide,. 2nd Edtion. s.l. : Microsoft Corporation., 2009. [3] Harbulot, Bruno. SEPARATING CONCERNS IN SCIENTIFIC SOFTWARE USING ASPECT-ORIENTED PROGRAMMING. Computer Science, Manchester University. Manchester : Center of Novel Computing, 2006. p. 194, PhD Thesis. [4] Dessì, Massimiliano. Spring 2.5 Aspect- Oriented Programming. [ed.] Sneha Kulkarni. Olton : Packt Publishing Ltd., 2009. pp. 13-16. 978-1-847194-02-2. [5] Aspect-Oriented Programming. Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes,. Finland : Springer-Verlag, 1997. European Conference on Object-Oriented Programming (ECOOP). pp. 220-242. [6] Aspects: Conflicts and Interferences (A Survey). André Restivo, Ademar Aguiar. 2007. Actas da 2ª Conferência de Metodologias de Investigação Científica. pp. 145-153. [7] Robert E. Filman, Daniel P. Friedman. Aspect- Oriented Programming is Quantification and Obliviousness. Research Inistitution for Advanced Computer Science. s.l. : Workshop on Advanced Separation of Concerns, 2001. 
[8] Katz, Emillia, et al. Detecting Interference Among Aspects. Computing Department, Lancaster University. Lancaster : European Network of Excellence on Aspect-Oriented Software Development, 2007. p. 38, Report. 
[9] Durr, Pascal, Bergmans, Lodewijik and Aksit, Mehmet. Reasoning about Behavioral Conflicts between Aspects. Enschede : University of Twente, 2007. Technical Report . TR-CTIT-07-15. [10] A Graph-based Approach to Modeling and Detecting Composition Conflicts Related to Introductions. Havinga, Wilke, et al. Vancouver : ACM International Conference Proceedings Series, 2007. International Conference on Aspect Oriented Software Development, AOSD 2007. pp. 85-95. 1- 59593-615-7. [11] Balzarotti, Davide and Monga, Mattia. Using Program Slicing to Analyze Aspect Oriented Composition. 2004. [12] Towards detecting and solving aspect conflicts and interferences using unit tests. Restivo, André and Aguiar, Ademar. Vancouver, British Columbia, Canada : ACM, 2007. Proceedings of the 5th workshop on Software engineering properties of languages and aspect technologies. [13] Team, MSDN. Unit Testing. MSDN. [Online] Microsoft, 2012. [Cited: 1 21, 2013.] http://msdn.microsoft.com/en- us/library/aa292197%28v=vs.71%29.aspx. [14] Clarke, Siobhán and Baniassad, Elisa. Aspect- Oriented Analysis and Design: The Theme Approach. Crawfordsville : Addison Wesley Professional, 2005. 0-321-24674-8. [15] A UML Extension to Graphically Represent Aspect Oriented Systems Perspectives. Ferreira, Helivelton Oliveira and Dias, Luiz Alberto Vieira. Las Vegas : IEEE, 2010. Seventh International Conference on Information Technology. pp. 1312-1313. [16] Whittle, Jon and Jayaraman, Praveen. MATA: A Tool for Aspect-Oriented Modeling Based on. Graph Transformation. [ed.] Holger Giese. Models in Software Engineering. Berlin : Springer Berlin Heidelberg, 2008, Vol. 5002, pp. 16-27. [17] Staijen, Tom and Rensink, Arend. A graph- transformation-based semantics for analysing aspect. Natal, Brazil : Workshop on Graph Computation Models,, 2006. [18] Ciraci, Selim, et al. A graph-based aspect interference detection approach for UML- based aspect-oriented models. [ed.] Shmuel Katz and Mira Mezini. Transactions on aspect-oriented software development. Heidelberg : Springer-Verlag, 2010, Vol. VII, pp. 321- 374. [19] Stein, Dominik. An Aspect-Oriented Design Model Based on AspectJ and UML. Management Information Systems. Alfter, Germany : University of Essen, 2002. p. 203, MSc Thesis.

More Related Content

What's hot

IRJET- Classification of Hindi Maatras by Encoding Scheme
IRJET- Classification of Hindi Maatras by Encoding SchemeIRJET- Classification of Hindi Maatras by Encoding Scheme
IRJET- Classification of Hindi Maatras by Encoding SchemeIRJET Journal
 
Design and Implementation of Automated Visualization for Input/Output for Pro...
Design and Implementation of Automated Visualization for Input/Output for Pro...Design and Implementation of Automated Visualization for Input/Output for Pro...
Design and Implementation of Automated Visualization for Input/Output for Pro...ijseajournal
 
Model versioning in context of living
Model versioning in context of livingModel versioning in context of living
Model versioning in context of livingijseajournal
 
Discreate eventsimulation idef
Discreate eventsimulation idefDiscreate eventsimulation idef
Discreate eventsimulation idefMandar Trivedi
 
Programming In C++
Programming In C++ Programming In C++
Programming In C++ shammi mehra
 
Module 3 Object Oriented Data Models Object Oriented notations
Module 3  Object Oriented Data Models Object Oriented notationsModule 3  Object Oriented Data Models Object Oriented notations
Module 3 Object Oriented Data Models Object Oriented notationsTaher Barodawala
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and DesignDr. C.V. Suresh Babu
 
Object Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLObject Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLAjit Nayak
 
Object-Oriented Analysis And Design With Applications Grady Booch
Object-Oriented Analysis And Design With Applications Grady BoochObject-Oriented Analysis And Design With Applications Grady Booch
Object-Oriented Analysis And Design With Applications Grady BoochSorina Chirilă
 
Integrating a Tropos Modeling Tool With a MDA Methodology For Engineering Mul...
Integrating a Tropos Modeling Tool With a MDA Methodology For Engineering Mul...Integrating a Tropos Modeling Tool With a MDA Methodology For Engineering Mul...
Integrating a Tropos Modeling Tool With a MDA Methodology For Engineering Mul...Carlos Eduardo Pantoja
 
Model-Driven Generation of MVC2 Web Applications: From Models to Code
Model-Driven Generation of MVC2 Web Applications: From Models to CodeModel-Driven Generation of MVC2 Web Applications: From Models to Code
Model-Driven Generation of MVC2 Web Applications: From Models to CodeIJEACS
 
IRJET- Machine Learning Techniques for Code Optimization
IRJET-  	  Machine Learning Techniques for Code OptimizationIRJET-  	  Machine Learning Techniques for Code Optimization
IRJET- Machine Learning Techniques for Code OptimizationIRJET Journal
 
Domain class model
Domain class modelDomain class model
Domain class modelshekharsj
 
UML Diagram - Use-Case diagram, Activity Diagram, Sequence Diagram, Er Diagra...
UML Diagram - Use-Case diagram, Activity Diagram, Sequence Diagram, Er Diagra...UML Diagram - Use-Case diagram, Activity Diagram, Sequence Diagram, Er Diagra...
UML Diagram - Use-Case diagram, Activity Diagram, Sequence Diagram, Er Diagra...Niloy Biswas
 
Cl32990995
Cl32990995Cl32990995
Cl32990995IJMER
 
An Efficient Approach to Produce Source Code by Interpreting Algorithm
An Efficient Approach to Produce Source Code by Interpreting AlgorithmAn Efficient Approach to Produce Source Code by Interpreting Algorithm
An Efficient Approach to Produce Source Code by Interpreting AlgorithmIRJET Journal
 
Lecture 4-oop class diagram
Lecture 4-oop class diagramLecture 4-oop class diagram
Lecture 4-oop class diagramktuonlinenotes
 
Uml Omg Fundamental Certification 1
Uml Omg Fundamental Certification 1Uml Omg Fundamental Certification 1
Uml Omg Fundamental Certification 1Ricardo Quintero
 

What's hot (19)

IRJET- Classification of Hindi Maatras by Encoding Scheme
IRJET- Classification of Hindi Maatras by Encoding SchemeIRJET- Classification of Hindi Maatras by Encoding Scheme
IRJET- Classification of Hindi Maatras by Encoding Scheme
 
Design and Implementation of Automated Visualization for Input/Output for Pro...
Design and Implementation of Automated Visualization for Input/Output for Pro...Design and Implementation of Automated Visualization for Input/Output for Pro...
Design and Implementation of Automated Visualization for Input/Output for Pro...
 
Model versioning in context of living
Model versioning in context of livingModel versioning in context of living
Model versioning in context of living
 
Discreate eventsimulation idef
Discreate eventsimulation idefDiscreate eventsimulation idef
Discreate eventsimulation idef
 
Programming In C++
Programming In C++ Programming In C++
Programming In C++
 
Module 3 Object Oriented Data Models Object Oriented notations
Module 3  Object Oriented Data Models Object Oriented notationsModule 3  Object Oriented Data Models Object Oriented notations
Module 3 Object Oriented Data Models Object Oriented notations
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
 
Object Oriented Analysis Design using UML
Object Oriented Analysis Design using UMLObject Oriented Analysis Design using UML
Object Oriented Analysis Design using UML
 
Object-Oriented Analysis And Design With Applications Grady Booch
Object-Oriented Analysis And Design With Applications Grady BoochObject-Oriented Analysis And Design With Applications Grady Booch
Object-Oriented Analysis And Design With Applications Grady Booch
 
Integrating a Tropos Modeling Tool With a MDA Methodology For Engineering Mul...
Integrating a Tropos Modeling Tool With a MDA Methodology For Engineering Mul...Integrating a Tropos Modeling Tool With a MDA Methodology For Engineering Mul...
Integrating a Tropos Modeling Tool With a MDA Methodology For Engineering Mul...
 
Model-Driven Generation of MVC2 Web Applications: From Models to Code
Model-Driven Generation of MVC2 Web Applications: From Models to CodeModel-Driven Generation of MVC2 Web Applications: From Models to Code
Model-Driven Generation of MVC2 Web Applications: From Models to Code
 
IRJET- Machine Learning Techniques for Code Optimization
IRJET-  	  Machine Learning Techniques for Code OptimizationIRJET-  	  Machine Learning Techniques for Code Optimization
IRJET- Machine Learning Techniques for Code Optimization
 
Domain class model
Domain class modelDomain class model
Domain class model
 
UML Diagram - Use-Case diagram, Activity Diagram, Sequence Diagram, Er Diagra...
UML Diagram - Use-Case diagram, Activity Diagram, Sequence Diagram, Er Diagra...UML Diagram - Use-Case diagram, Activity Diagram, Sequence Diagram, Er Diagra...
UML Diagram - Use-Case diagram, Activity Diagram, Sequence Diagram, Er Diagra...
 
Cl32990995
Cl32990995Cl32990995
Cl32990995
 
Ijetcas14 468
Ijetcas14 468Ijetcas14 468
Ijetcas14 468
 
An Efficient Approach to Produce Source Code by Interpreting Algorithm
An Efficient Approach to Produce Source Code by Interpreting AlgorithmAn Efficient Approach to Produce Source Code by Interpreting Algorithm
An Efficient Approach to Produce Source Code by Interpreting Algorithm
 
Lecture 4-oop class diagram
Lecture 4-oop class diagramLecture 4-oop class diagram
Lecture 4-oop class diagram
 
Uml Omg Fundamental Certification 1
Uml Omg Fundamental Certification 1Uml Omg Fundamental Certification 1
Uml Omg Fundamental Certification 1
 

Viewers also liked

A New Technique to Digital Image Watermarking Using DWT for Real Time Applica...
A New Technique to Digital Image Watermarking Using DWT for Real Time Applica...A New Technique to Digital Image Watermarking Using DWT for Real Time Applica...
A New Technique to Digital Image Watermarking Using DWT for Real Time Applica...IJERA Editor
 
Under Water Wireless Control Using Zigbee For Transmissions Systems
Under Water Wireless Control Using Zigbee For Transmissions SystemsUnder Water Wireless Control Using Zigbee For Transmissions Systems
Under Water Wireless Control Using Zigbee For Transmissions SystemsIJERA Editor
 
An Efficient Data Communication Using Conventional Codes
An Efficient Data Communication Using Conventional CodesAn Efficient Data Communication Using Conventional Codes
An Efficient Data Communication Using Conventional CodesIJERA Editor
 
Seismic Response of R C Building With Different Arrangement of Steel Bracing ...
Seismic Response of R C Building With Different Arrangement of Steel Bracing ...Seismic Response of R C Building With Different Arrangement of Steel Bracing ...
Seismic Response of R C Building With Different Arrangement of Steel Bracing ...IJERA Editor
 
A Single Phase to Three Phase PFC Half-Bridge Converter Using BLDC Drive with...
A Single Phase to Three Phase PFC Half-Bridge Converter Using BLDC Drive with...A Single Phase to Three Phase PFC Half-Bridge Converter Using BLDC Drive with...
A Single Phase to Three Phase PFC Half-Bridge Converter Using BLDC Drive with...IJERA Editor
 
Evaluation of Antioxidant Phytochemicals in Different Genotypes of Potato
Evaluation of Antioxidant Phytochemicals in Different Genotypes of PotatoEvaluation of Antioxidant Phytochemicals in Different Genotypes of Potato
Evaluation of Antioxidant Phytochemicals in Different Genotypes of PotatoIJERA Editor
 
Secured Data Transmission Using Video Steganographic Scheme
Secured Data Transmission Using Video Steganographic SchemeSecured Data Transmission Using Video Steganographic Scheme
Secured Data Transmission Using Video Steganographic SchemeIJERA Editor
 

Viewers also liked (19)

A New Technique to Digital Image Watermarking Using DWT for Real Time Applica...
A New Technique to Digital Image Watermarking Using DWT for Real Time Applica...A New Technique to Digital Image Watermarking Using DWT for Real Time Applica...
A New Technique to Digital Image Watermarking Using DWT for Real Time Applica...
 
Under Water Wireless Control Using Zigbee For Transmissions Systems
Under Water Wireless Control Using Zigbee For Transmissions SystemsUnder Water Wireless Control Using Zigbee For Transmissions Systems
Under Water Wireless Control Using Zigbee For Transmissions Systems
 
An Efficient Data Communication Using Conventional Codes
An Efficient Data Communication Using Conventional CodesAn Efficient Data Communication Using Conventional Codes
An Efficient Data Communication Using Conventional Codes
 
K046065864
K046065864K046065864
K046065864
 
Seismic Response of R C Building With Different Arrangement of Steel Bracing ...
Seismic Response of R C Building With Different Arrangement of Steel Bracing ...Seismic Response of R C Building With Different Arrangement of Steel Bracing ...
Seismic Response of R C Building With Different Arrangement of Steel Bracing ...
 
A Single Phase to Three Phase PFC Half-Bridge Converter Using BLDC Drive with...
A Single Phase to Three Phase PFC Half-Bridge Converter Using BLDC Drive with...A Single Phase to Three Phase PFC Half-Bridge Converter Using BLDC Drive with...
A Single Phase to Three Phase PFC Half-Bridge Converter Using BLDC Drive with...
 
Evaluation of Antioxidant Phytochemicals in Different Genotypes of Potato
Evaluation of Antioxidant Phytochemicals in Different Genotypes of PotatoEvaluation of Antioxidant Phytochemicals in Different Genotypes of Potato
Evaluation of Antioxidant Phytochemicals in Different Genotypes of Potato
 
Secured Data Transmission Using Video Steganographic Scheme
Secured Data Transmission Using Video Steganographic SchemeSecured Data Transmission Using Video Steganographic Scheme
Secured Data Transmission Using Video Steganographic Scheme
 
Y4501143148
Y4501143148Y4501143148
Y4501143148
 
X4501138142
X4501138142X4501138142
X4501138142
 
Ag04602228232
Ag04602228232Ag04602228232
Ag04602228232
 
Ac04603170174
Ac04603170174Ac04603170174
Ac04603170174
 
Ae04602212216
Ae04602212216Ae04602212216
Ae04602212216
 
Ab04605183193
Ab04605183193Ab04605183193
Ab04605183193
 
Af04603185190
Af04603185190Af04603185190
Af04603185190
 
Ad04602208211
Ad04602208211Ad04602208211
Ad04602208211
 
Aa04603161164
Aa04603161164Aa04603161164
Aa04603161164
 
T044069296
T044069296T044069296
T044069296
 
V4408114122
V4408114122V4408114122
V4408114122
 

Similar to Detecting Aspect Intertype Declaration Interference at Aspect Oriented Design Models: A Database Approach

THE REMOVAL OF NUMERICAL DRIFT FROM SCIENTIFIC MODELS
THE REMOVAL OF NUMERICAL DRIFT FROM SCIENTIFIC MODELSTHE REMOVAL OF NUMERICAL DRIFT FROM SCIENTIFIC MODELS
THE REMOVAL OF NUMERICAL DRIFT FROM SCIENTIFIC MODELSIJSEA
 
An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey
 An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey
An Adjacent Analysis of the Parallel Programming Model Perspective: A SurveyIRJET Journal
 
A practical approach for model based slicing
A practical approach for model based slicingA practical approach for model based slicing
A practical approach for model based slicingIOSR Journals
 
Pointcut rejuvenation
Pointcut rejuvenationPointcut rejuvenation
Pointcut rejuvenationRavi Theja
 
ASPECT ORIENTED PROGRAMING(aop)
ASPECT ORIENTED PROGRAMING(aop)ASPECT ORIENTED PROGRAMING(aop)
ASPECT ORIENTED PROGRAMING(aop)kvsrteja
 
Generation of Testcases from UML Sequence Diagram and Detecting Deadlocks usi...
Generation of Testcases from UML Sequence Diagram and Detecting Deadlocks usi...Generation of Testcases from UML Sequence Diagram and Detecting Deadlocks usi...
Generation of Testcases from UML Sequence Diagram and Detecting Deadlocks usi...KIIT
 
A SOFTWARE REQUIREMENT ENGINEERING TECHNIQUE USING OOADA-RE AND CSC FOR IOT B...
A SOFTWARE REQUIREMENT ENGINEERING TECHNIQUE USING OOADA-RE AND CSC FOR IOT B...A SOFTWARE REQUIREMENT ENGINEERING TECHNIQUE USING OOADA-RE AND CSC FOR IOT B...
A SOFTWARE REQUIREMENT ENGINEERING TECHNIQUE USING OOADA-RE AND CSC FOR IOT B...ijseajournal
 
Improving Consistency of UML Diagrams and Its Implementation Using Reverse En...
Improving Consistency of UML Diagrams and Its Implementation Using Reverse En...Improving Consistency of UML Diagrams and Its Implementation Using Reverse En...
Improving Consistency of UML Diagrams and Its Implementation Using Reverse En...journalBEEI
 
Multi dimensional customization modelling based on metagraph for saas multi-t...
Multi dimensional customization modelling based on metagraph for saas multi-t...Multi dimensional customization modelling based on metagraph for saas multi-t...
Multi dimensional customization modelling based on metagraph for saas multi-t...csandit
 
GENERIC CODE CLONING METHOD FOR DETECTION OF CLONE CODE IN SOFTWARE DEVELOPMENT
GENERIC CODE CLONING METHOD FOR DETECTION OF CLONE CODE IN SOFTWARE DEVELOPMENT GENERIC CODE CLONING METHOD FOR DETECTION OF CLONE CODE IN SOFTWARE DEVELOPMENT
GENERIC CODE CLONING METHOD FOR DETECTION OF CLONE CODE IN SOFTWARE DEVELOPMENT IAEME Publication
 
A Review of Feature Model Position in the Software Product Line and Its Extra...
A Review of Feature Model Position in the Software Product Line and Its Extra...A Review of Feature Model Position in the Software Product Line and Its Extra...
A Review of Feature Model Position in the Software Product Line and Its Extra...CSCJournals
 
IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...
IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...
IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...IJCSEA Journal
 
IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...
IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...
IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...IJCSEA Journal
 
A Practical Dynamic Single Assignment Transformation
A Practical Dynamic Single Assignment TransformationA Practical Dynamic Single Assignment Transformation
A Practical Dynamic Single Assignment TransformationJeff Nelson
 
Aspect Oriented Programming Through C#.NET
Aspect Oriented Programming Through C#.NETAspect Oriented Programming Through C#.NET
Aspect Oriented Programming Through C#.NETWaqas Tariq
 
Duplicate Code Detection using Control Statements
Duplicate Code Detection using Control StatementsDuplicate Code Detection using Control Statements
Duplicate Code Detection using Control StatementsEditor IJCATR
 

Similar to Detecting Aspect Intertype Declaration Interference at Aspect Oriented Design Models: A Database Approach (20)

4213ijsea02
4213ijsea024213ijsea02
4213ijsea02
 
4213ijsea04
4213ijsea044213ijsea04
4213ijsea04
 
THE REMOVAL OF NUMERICAL DRIFT FROM SCIENTIFIC MODELS
THE REMOVAL OF NUMERICAL DRIFT FROM SCIENTIFIC MODELSTHE REMOVAL OF NUMERICAL DRIFT FROM SCIENTIFIC MODELS
THE REMOVAL OF NUMERICAL DRIFT FROM SCIENTIFIC MODELS
 
An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey
 An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey
An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey
 
A practical approach for model based slicing
A practical approach for model based slicingA practical approach for model based slicing
A practical approach for model based slicing
 
Pointcut rejuvenation
Pointcut rejuvenationPointcut rejuvenation
Pointcut rejuvenation
 
ASPECT ORIENTED PROGRAMING(aop)
ASPECT ORIENTED PROGRAMING(aop)ASPECT ORIENTED PROGRAMING(aop)
ASPECT ORIENTED PROGRAMING(aop)
 
Generation of Testcases from UML Sequence Diagram and Detecting Deadlocks usi...
Generation of Testcases from UML Sequence Diagram and Detecting Deadlocks usi...Generation of Testcases from UML Sequence Diagram and Detecting Deadlocks usi...
Generation of Testcases from UML Sequence Diagram and Detecting Deadlocks usi...
 
A SOFTWARE REQUIREMENT ENGINEERING TECHNIQUE USING OOADA-RE AND CSC FOR IOT B...
A SOFTWARE REQUIREMENT ENGINEERING TECHNIQUE USING OOADA-RE AND CSC FOR IOT B...A SOFTWARE REQUIREMENT ENGINEERING TECHNIQUE USING OOADA-RE AND CSC FOR IOT B...
A SOFTWARE REQUIREMENT ENGINEERING TECHNIQUE USING OOADA-RE AND CSC FOR IOT B...
 
50120140507013
5012014050701350120140507013
50120140507013
 
50120140507013
5012014050701350120140507013
50120140507013
 
Improving Consistency of UML Diagrams and Its Implementation Using Reverse En...
Improving Consistency of UML Diagrams and Its Implementation Using Reverse En...Improving Consistency of UML Diagrams and Its Implementation Using Reverse En...
Improving Consistency of UML Diagrams and Its Implementation Using Reverse En...
 
Multi dimensional customization modelling based on metagraph for saas multi-t...
Multi dimensional customization modelling based on metagraph for saas multi-t...Multi dimensional customization modelling based on metagraph for saas multi-t...
Multi dimensional customization modelling based on metagraph for saas multi-t...
 
GENERIC CODE CLONING METHOD FOR DETECTION OF CLONE CODE IN SOFTWARE DEVELOPMENT
GENERIC CODE CLONING METHOD FOR DETECTION OF CLONE CODE IN SOFTWARE DEVELOPMENT GENERIC CODE CLONING METHOD FOR DETECTION OF CLONE CODE IN SOFTWARE DEVELOPMENT
GENERIC CODE CLONING METHOD FOR DETECTION OF CLONE CODE IN SOFTWARE DEVELOPMENT
 
A Review of Feature Model Position in the Software Product Line and Its Extra...
A Review of Feature Model Position in the Software Product Line and Its Extra...A Review of Feature Model Position in the Software Product Line and Its Extra...
A Review of Feature Model Position in the Software Product Line and Its Extra...
 
IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...
IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...
IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...
 
IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...
IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...
IMPLEMENTATION OF DYNAMIC COUPLING MEASUREMENT OF DISTRIBUTED OBJECT ORIENTED...
 
A Practical Dynamic Single Assignment Transformation
A Practical Dynamic Single Assignment TransformationA Practical Dynamic Single Assignment Transformation
A Practical Dynamic Single Assignment Transformation
 
Aspect Oriented Programming Through C#.NET
Aspect Oriented Programming Through C#.NETAspect Oriented Programming Through C#.NET
Aspect Oriented Programming Through C#.NET
 
Duplicate Code Detection using Control Statements
Duplicate Code Detection using Control StatementsDuplicate Code Detection using Control Statements
Duplicate Code Detection using Control Statements
 

Recently uploaded

System Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingSystem Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingBootNeck1
 
Vishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documentsVishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documentsSachinPawar510423
 
welding defects observed during the welding
welding defects observed during the weldingwelding defects observed during the welding
welding defects observed during the weldingMuhammadUzairLiaqat
 
Transport layer issues and challenges - Guide
Transport layer issues and challenges - GuideTransport layer issues and challenges - Guide
Transport layer issues and challenges - GuideGOPINATHS437943
 
National Level Hackathon Participation Certificate.pdf
National Level Hackathon Participation Certificate.pdfNational Level Hackathon Participation Certificate.pdf
National Level Hackathon Participation Certificate.pdfRajuKanojiya4
 
home automation using Arduino by Aditya Prasad
home automation using Arduino by Aditya Prasadhome automation using Arduino by Aditya Prasad
home automation using Arduino by Aditya Prasadaditya806802
 
Input Output Management in Operating System
Input Output Management in Operating SystemInput Output Management in Operating System
Input Output Management in Operating SystemRashmi Bhat
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHC Sai Kiran
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleAlluxio, Inc.
 
Mine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxMine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxRomil Mishra
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfAsst.prof M.Gokilavani
 
Internet of things -Arshdeep Bahga .pptx
Internet of things -Arshdeep Bahga .pptxInternet of things -Arshdeep Bahga .pptx
Internet of things -Arshdeep Bahga .pptxVelmuruganTECE
 
Class 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm SystemClass 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm Systemirfanmechengr
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating SystemRashmi Bhat
 
Solving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.pptSolving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.pptJasonTagapanGulla
 
NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...
NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...
NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...Amil Baba Dawood bangali
 
US Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionUS Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionMebane Rash
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxKartikeyaDwivedi3
 

Recently uploaded (20)

young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 
System Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingSystem Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event Scheduling
 
Vishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documentsVishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documents
 
welding defects observed during the welding
welding defects observed during the weldingwelding defects observed during the welding
welding defects observed during the welding
 
Transport layer issues and challenges - Guide
Transport layer issues and challenges - GuideTransport layer issues and challenges - Guide
Transport layer issues and challenges - Guide
 
National Level Hackathon Participation Certificate.pdf
National Level Hackathon Participation Certificate.pdfNational Level Hackathon Participation Certificate.pdf
National Level Hackathon Participation Certificate.pdf
 
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 
home automation using Arduino by Aditya Prasad
home automation using Arduino by Aditya Prasadhome automation using Arduino by Aditya Prasad
home automation using Arduino by Aditya Prasad
 
Input Output Management in Operating System
Input Output Management in Operating SystemInput Output Management in Operating System
Input Output Management in Operating System
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECH
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at Scale
 
Mine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxMine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptx
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
 
Internet of things -Arshdeep Bahga .pptx
Internet of things -Arshdeep Bahga .pptxInternet of things -Arshdeep Bahga .pptx
Internet of things -Arshdeep Bahga .pptx
 
Class 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm SystemClass 1 | NFPA 72 | Overview Fire Alarm System
Class 1 | NFPA 72 | Overview Fire Alarm System
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating System
 
Solving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.pptSolving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.ppt
 
NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...
NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...
NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...
 
US Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionUS Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of Action
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptx
 

Detecting Aspect Intertype Declaration Interference at Aspect Oriented Design Models: A Database Approach

  • 1. S Mohammed Elsaid et al Int. Journal of Engineering Research and Applications www.ijera.com ISSN : 2248-9622, Vol. 4, Issue 7( Version 3), July 2014, pp.164-171 www.ijera.com 164 | P a g e Detecting Aspect Intertype Declaration Interference at Aspect Oriented Design Models: A Database Approach Ahmed Sharaf Eldin*, Maha Hana**, Shady Mohammed Elsaid*** *(Department of Information Systems, Faculty of Computers and Information, Helwan University, Egypt) **(CIC Cairo Deputed from Helwan University, Egypt) ***(Department of Information Systems, Faculty of Computers and Information, Helwan University, Egypt, Department of Computer Science, Faculty of Computers and Information Systems, Um Al-Qura University, Makkah Al-Mukaramah, Saudi Arabia) ABSTRACT Implementing crosscutting concerns requires aspect oriented developers to be enabled to introduce some mem- bers to core concerns modules along with other. This may lead to a problem of interference among modules, either between classes and aspects or among aspects themselves. Such conflicts may cause program to crash at runtime. Interference problem is addressed but with complex solutions that become more complicated propor- tionally with the project size. In this work a relational database approach and relational algebra is used to detect intertype declaration interferences in aspect oriented design models in order to capture conflicts in an early stage before having it as runtime error. Detection is done in an approach not that complex as the previous ones. Keywords – Aspect Oriented Programming, Databases, Interference Detection, Intertype Declaration, Rela- tional Algebra. I. INTRODUCTION Aspect oriented programming – AOP – appears to enable software developers to address crosscutting concerns. If a behavior being developed is needed across a range of software, then it is named a crosscutting concern and implemented as an Aspect. For example authentication task that is needed in several modules in banking system that can be viewed as being developed horizontally over these classes [1] [2]. Crosscutting concerns introduce code scattering problem in conventional development environment, which occurs when a single functionality is spanned over several units, or it is just duplicated chunk of code [3] [4]. Code tangling represents another problem when two or more concerns are at the same class and dependent on each other and cannot be disassociated [3]. Therefore a development paradigm is needed to address those problems, which is aspect oriented programming [5]. AOP resolves the previously mentioned limitations by developing the crosscutting concerns as independent modules therefore the overall modularity of the developed software is enhanced [6]. AOP targets crosscutting concerns via concept of obliviousness that means programmer doesn't have to care about where the coded aspect will be used inside the code of the entire system [7]. Thus, completely independent modules – aspects – will be developed that increase the overall system productivity and reducing code complexity by resolving crosscutting concerns problem. Aspects may interfere with each other because of weaving – injecting – code at the compile time into another code. Research done in [6] [8] [9] shows the interference among aspect and its causes. The targeted interference type here is that one resulted from introducing new members to base classes or other aspects at the runtime. The work presented here detects introduction conflicts at design level, instead of being detected at compile time or even runtime as an error. The rest of the paper is structured as the following: section two illustrated AOP interference problem. Section three demonstrated the related work in AOP interference detection problem. Section four explains the detection approach using relational database model and formal query language. Section five includes an example for the proposed solution. Finally, the conclusions and future work are in section six. II. Aspect Interference Aspects may interfere with each other or with their base classes in several forms. First, several aspects addressing the same join point may interfere together as there is no fixed rule for aspect execution order. This is called crosscutting specifications interference that is mainly caused by the usage of the wildcard operator (*) that matches any return value from a method, which causes accidental joinpoints. RESEARCH ARTICLE OPEN ACCESS
  • 2. S Mohammed Elsaid et al Int. Journal of Engineering Research and Applications www.ijera.com ISSN : 2248-9622, Vol. 4, Issue 7( Version 3), July 2014, pp.164-171 www.ijera.com 165 | P a g e Second, join points may change due to weaving of an aspect that may add new join points to the code or removes existing join points. Other aspects could be affected due to these changes. This is called aspect- aspect conflicts [6]. Third, aspect may change some variables those are required for other aspect behaviors. This may cause circular dependencies between aspect and base class; so it is called base- aspect conflicts [6]. Forth, interference occurs when aspects have introductions – declarations – that are contradicting with each other due to use of inter-type declaration or structural superimposition [9]. Such a conflict makes contradiction among concerns are required to be achieved, which gives the name concern-concern conflicts [6]. This can occur in several ways, an aspect introduces new members – variables or methods – to another aspect or class. If the aspect or class has a member with the same name as the introduced one then interference will occur. III. Related Work A. Code Level Detection A graph-based model used in [10] to detect intertype declaration conflicts by converting the aspect oriented source code, written in Java and AspectJ, structure to a graph model and the intertype declarations, part of code written in AspectJ, to a graph transformation rules that is to be applied to the graph model. In this model each program element is mapped to a graph node with a unique label to this element. The element node has primarily two edges, the first one called isa to represent its type of the element, whether it is a class, aspect, method, interface, etc. The second edge called named that holds the actual name of the element. Transformation rules are applied as edges to this graph model and then conflicts can be detected. Figure 1 shows an example of graph representation to a sample program. Using this approach is getting complicated along with the program size. Thus, a simple program of 200 elements to be represented in graph adjacency matrix, complexity of O(N2), will cost 40000 comparisons. What if 1000 elements or more? Fig. 1 Graph Representation to a Sample AOP Program with Intertype Declarations [10] Program slicing is used in [11] to investigate the woven code – byte code – as it is dependent on AspectJ programming language. A slice is representing a module which can be an aspect or a class. Slices are investigated against intersection; if two slices intersects then they interact. Unit testing is used in [12] [13] to detect interference in aspect oriented program. When aspect <A> requires a unit test that is added by aspect <B>, and vice versa between <B> and <A> it is kind of circular dependency between <A> and <B>. Conflict between aspects can be determined when an aspect suppress a unit test that is required for another aspect, for example an aspect <C> changes a field that is required for aspect <D>. Dependency conflict detected when aspect <E> issues a unit test that is required for aspect <F>. In other words, aspect <E> existence is required for aspect <F> functionality. Figure 2 shows those types of interference detection respectively. Pentagon represents a unit test, octagon represents an aspect, arrow represents <<issue>> direction, dashed circular-end line represents <<require>> direction, and the lightning bolt represents <<suppress>> direction. The main drawback of this approach is lacking of base/aspect interference detection. Circular Dependency Conflict Interference Dependency Interference Fig. 2 Aspect Interference Detection using Unit Testing B. Model Level Detection Modeling aspect oriented software provides a good way to check software before actual coding phase. Theme/UML and UML extension mentioned in [14] and [15] respectively needs a formal way to transform them into a computerized form in order to facilitate the model checking process. In [16] a
  • 3. S Mohammed Elsaid et al Int. Journal of Engineering Research and Applications www.ijera.com ISSN : 2248-9622, Vol. 4, Issue 7( Version 3), July 2014, pp.164-171 www.ijera.com 166 | P a g e technique named MATA – Modeling Aspects using a Transformation Approach – was introduced to specify and compose aspects based on graph transformation. Graphs are then used in [17] to analyze aspect interference and in [18] to detect interference in UML-based aspect oriented models. Those techniques suffer from complexity of the algorithm being developed and limited project size. IV. Intertype Declaration Interference Detection Aspects and classes in aspect oriented modeling have relationships like those in object oriented modeling. Using the relational modeling technique, a database is resulted to resemble a UML-based aspect oriented model. Thus, for any creation to an aspect, class, or any of their members a record is added to the corresponding table. Figure 3 shows this database schema in order to understand the relational algebra written to extract intertype declaration interference. In the following there are relational algebraic expressions to extract the intertype declaration interference types. First, aspect introduces a variable to another aspect has a variable with the same name. Second, aspect introduces a variable to a class has a variable with the same name. Third, aspect introduces a method to another aspect has a method with the same name. Forth, aspect introduces a method to a class has a method with the same name. Fifth, an aspect introduces a member – variable or method – to a base class or another aspect, while another aspect or more introduces members with the same name. The last one is considered to be the trickiest one as due to the obliviousness nature of aspect oriented paradigm. For example, a software engineer may design an aspect (X) to handle a specific crosscutting concern with a member (M) introduced to another concern (A), at the same time anther software engineer may design an aspect (Y) that implements another crosscutting concern deals with concern (A) and introduces a member (M) to it. This type of error cannot be detected at design time and if those aspects are not compiled together it's a runtime error. Fig. 3 Aspect Oriented UML-based Correspondent Database a. Aspect/ Aspect Variable Interference The concept behind the following is that a variable is intertype interfered if it's declared as intertype to another aspect and the affected aspect has a variable with the same name regardless to its data type. By performing the last join the relation type InterferingVariables contains those aspect variables interfering with other aspects' variables telling the causer and the affected aspects.  R1 (OwnerAspectID, OwnerAspect)π ID, Name(Aspect)  R2(VarID, VarName, IntertypeAspectID, AspectID)  π ID, Name ,IntertypeAspectID ,AspectID (AspectVariable)  R3  R1⋈OwnerAspectID=AspectID R2  R4  σ IntertypeAspectID ≠ Null (R2)  R5  R1 ⋈ OwnerAspectID=IntertypeAspectID R4  R6  R1 ⋈ OwnerAspectID=AspectID R5  InterferingVariables  R3⋈ R3.OwnerAspectID = R6.IntertypeAspectID AND R3.VarName=R6.VarName R6 b. Aspect/ Class Variable Interference The concept behind the following is that an aspect variable is intertype interfered with class variable if
  • 4. S Mohammed Elsaid et al Int. Journal of Engineering Research and Applications www.ijera.com ISSN : 2248-9622, Vol. 4, Issue 7( Version 3), July 2014, pp.164-171 www.ijera.com 167 | P a g e it's declared as intertype to this class and the affected class has a variable with the same name regardless to its data type. By performing the last join the relation type InterferingVariables contains those aspect variables interfering with other classes' variables telling the causer aspect and the affected classes. ► R1 (OwnerAspectID, OwnerAspect) π ID, Name(Aspect) ► R2(AsVarID, AsVar, AspectID, IntertypeClassID) π ID, Name, AspectID, IntertypeClassID (AspectVariable) ► R3  σ IntertypeClassID ≠ Null (R2) ► R4  R1 ⋈ OwnerAspectID=AspectID R3 ► R5(CVarID, CVar,OwnerClassID)  π ID, Name, ClassID (ClassVariable) ► R6 (CID, OwnerClass)π ID, Name(Class) ► R7  R5 ⋈ OwnerClassID=CID R6 ► InterferingVariables  R4⋈ AsVar= CVar AND IntertypeClassID=CID R7 c. Aspect/ Aspect Method Interference The concept behind the following is that an aspect method that is declared as intertype one to another aspect interferes if this aspect has another method with the same name regardless to the return type or the parameters. By performing the last join the relation type InterferingMethods contains those aspect methods interfering with other aspects' methods telling the causer aspect and the affected aspects.  R1 (OriginalAspectID, OriginalAspect) π ID, Name(Aspect)  R2 ( MethodID, Method, AspectID, IntertypeAspectID) π ID, Name, AspectID, IntertypeAspectID(AspectMethod)  R3  R1 ⋈ OriginalAspectID=AspectID R2  R4  σ IntertypeAspectID ≠ Null (R2)  R5  R1 ⋈ OriginalAspectID=AspectID R4  R6  R1 ⋈ OriginalAspectID=IntertypeAspectID R5  InterferingMethods  R3⋈ OriginalAspectID=IntertypeAspectID AND R3.Method = R6.Method R6 d. Aspect/ Class Method Interference The concept behind the following is that an aspect method is intertype interfered with class one if it's declared as intertype to this class and the affected class has another method with the same name regardless to its return data type or parameters. By performing the last join the relation type Interfering Methods contains those aspect methods interfering with other classes' methods telling the causer aspect and the affected classes. ► R1 (CID, CName)π ID, Name(Class) ► R2 (CMID, CMethod, ClassID)  π ID, Name, ClassID (ClassMethod) ► R3  R1 ⋈ CID=ClassID R2 ► R4 (AsMethodID, AsMethod, IntertypeClassID, AspectID) π ID, Name, IntertypeClassID, AspectID (AspectMethod) ► R5  σ IntertypeClassID ≠ Null (R4) ► R6  R5 ⋈ AspectID=ID Aspect ► InterferingMethods  R3⋈ CID=IntertypeClassID AND CMethod = AsMethod R6 ► e. Aspect-Aspect/ Aspect-Class Member Interference The concept behind the following is that this interference type occurs if intertype members from different aspects target the same concern either core or crosscutting and those members have the same name. the following expressions extracts the interference in case of a member is a variable.  R1  σ IntertypeClassID ≠ Null (AspectVariable)  R2  R1 ⋈ AspectID=ID Aspect  R3  R2 ⋈ IntertypeClassID=ID Class  R4  σ (R3)  Result  R4⋈ R4.AspectVariableName = R3.AspectVariableName AND R4.IntertypeClassID = R3. IntertypeClassID AND R4.AspectID <> R3.AspectID R3 V. Case Study: Customer Account The following case, shown in figure 3, demonstrates an example based on [19] for aspect oriented UML-based class diagram models a part of bank customer account management. First, there is a class represents three of the core concerns of any account: balance inquiry, deposits, and withdrawals. Second, there are two aspects represent the crosscutting concerns for any account transaction: Authentication and Authorization. In this model there are five typical interference of intertype declaration kind. Table 1 contains a snapshot of the actual data in the database design in figure 2 concordant with the sample UML-based aspect model in figure 4 is used to facilitate the queries detects the interference within this model.
  • 5. S Mohammed Elsaid et al Int. Journal of Engineering Research and Applications www.ijera.com ISSN : 2248-9622, Vol. 4, Issue 7( Version 3), July 2014, pp.164-171 www.ijera.com 168 | P a g e Fig. 4 UML-based Aspect Oriented Model Class ID NAME ACCESS MODIFIER PARENTID 12 Account public null ClassMethod ID NAME ACCESS MODIFIER STATIC FINAL ABSTRACT RETURN TYPE CLASS ID 16 getBalance public 0 0 0 float 12 17 setBalance public 0 0 0 void 12 18 withdraw public 0 0 0 void 12 19 deposit public 0 0 0 void 12 Class Method Param ID TYPE METHOD ID 17 float 17 18 float 18 20 float 19 Class Variable ID NAME TYPE ACCESS MODIFIER STATIC CLASS ID 6 NO int public No 12 7 Lock boolean public No 12 8 Balance float private No 12 Aspect ID NAME ACCESS MODIFIER PARENTASPECT 10 Authentication public null 11 Authorization public null Aspect Variable ID NAME TYPE ACCESS MODIFIE ASPECT ID STATIC INTERTYPE CLASSID INTERTYPE ASPECTID
  • 6. S Mohammed Elsaid et al Int. Journal of Engineering Research and Applications www.ijera.com ISSN : 2248-9622, Vol. 4, Issue 7( Version 3), July 2014, pp.164-171 www.ijera.com 169 | P a g e R 20 Balance float private 10 No null null 21 Lock boolean public 10 No 12 null 22 Owner string public 10 No 12 null 23 limit int public 11 No null null 24 privilege int public 11 No null null 25 Owner string public 11 No 12 null 26 privilege int public 10 No null 11 Aspect Method ID NAME ACCESS MODIFIER STATIC FINAL ABSTRACT RETURN TYPE ASPECT ID INTERTYPE CLASS ID INTERTYPE ASPECT ID 7 authenticate public 0 0 0 boolean 10 null null 8 authorize public 0 0 0 boolean 11 null null 9 lock public 0 0 0 boolean 11 null null 10 unlock public 0 0 0 boolean 11 null null 11 withdraw public 0 0 0 void 11 12 null 12 deposit public 0 0 0 void 11 12 null 13 lock public 0 0 0 boolean 10 null 11 14 unlock public 0 0 0 boolean 10 null 11 Aspect Method Param ID TYPE METHOD ID 12 float 11 13 float 12 Pointcut ID NAME ON ACTION ASPECTID CLASS METHOD ID ASPECT METHOD ID 5 pc1 call 10 16 null 6 pc2 call 10 17 null 7 pc3 call 10 18 null 8 pc4 call 10 19 null 9 pc1 call 11 18 null 10 pc2 call 11 19 null PointcutAdvise ID NAME POINTCUTID 4 Before 5 6 Before 6 8 Before 7 10 Before 8 11 Before 9 12 After 9 13 Before 10 14 After 10 Table 1. Aspect Oriented UML-based Model Corresspodant Data
  • 7. S Mohammed Elsaid et al Int. Journal of Engineering Research and Applications www.ijera.com ISSN : 2248-9622, Vol. 4, Issue 7( Version 3), July 2014, pp.164-171 www.ijera.com 170 | P a g e VI. Results By applying SQL queries based on the relational algebraic expressions mentioned in the previous section the following results shown in table 2 come out. First, Privilege variable is detected as an interfering member declared in Authentication aspect "OwnerAspect" and the aspect cause this interference is the Authorization aspect "IntertypeAspect" field. Second, Lock variable is detected as an interfering member declared in the Account class "OwnerClass" as a normal member and Authentication aspect has it as intertype member declared to Account class, and interfering with its member Lock. Third, the two methods lock() and unlock() are detected as interfering methods between aspects as they are declared basically in the aspect Authentication "OriginalAspect", while they are declared in as intertype members to this aspect at Authorization aspect "IntertypeAspect". Forth, the methods withdraw() and deposit() declared in the aspect Authorization "Owner Aspect" are intertype members interfere with those original members at class Account and its methods withdraw and deposit. Fifth, the members that can be declared in two or more aspects and intertype declared to another unit class or aspect are detected such as the example of the variable owner that is declared within two aspects Authorization and Authentication "Aspect1 and Aspect 2" as intertype member to class Account "AffectedClass" that now has two members with the same name. This type of conflicts cannot be detected till runtime, and then crashes the software being run. Table 2. Aspect Oriented UML-based Model Intertype Interferences Detected Aspect/Aspect Variable Interference OWNER ASPECTID OWNER ASPECT VARNAME INTERTYPE ASPECT ID INTERTYPE ASPECT 10 Authentication privilege 11 Authorization Aspect/Class Variable Interference AS VARID ASPECT VAR OWNER ASPECT INTERTYPE CLASS ID CLASS ID OWNER CLASS 21 Lock Authentication 12 12 Account Aspect/Aspect Method Interference ORIGINAL ASPECTID ORIGINAL ASPECT INTER- MID OR- MID INTER METHOD NAME ORIGINAL METHOD NAME INTERTYPED ASPECT ID INTERTYPED ASPECT 10 Authentication 13 9 lock lock 11 Authorization 10 Authentication 14 10 unlock unlock 11 Authorization Aspect/Class Method Interference As Method ID As Method Owner Aspect Intertype ClassID CID Class CMID Class Method 11 withdraw Authorization 12 12 Account 18 withdraw 12 deposit Authorization 12 12 Account 19 deposit Aspect-Aspect/ Aspect-Class Member Interference Aspect1 ID Aspect1 Aspect2 ID Aspect2 Variable Intertype ClassID AffectedClass 10 Authentication 11 Authorization Owner 12 Account 11 Authorization 10 Authentication Owner 12 Account
  • 8. S Mohammed Elsaid et al Int. Journal of Engineering Research and Applications www.ijera.com ISSN : 2248-9622, Vol. 4, Issue 7( Version 3), July 2014, pp.164-171 www.ijera.com 171 | P a g e VII. Conclusion and Future Work Aspect interference problem is one of the most complicated problems in AOP. Despite of AOP importance but the probability of unexpected behavior of software being run and complexity of resolving this problem, many developers prefer OOP and avoiding AOP with all its advantages. Using relational model to represent the corresponding UML-based aspect model and relational algebra provided a simple way to detect one of the interference types – intertype declaration interference – at design time regardless to the size of the software to be designed. The work presented here can be done using XML and X-Query instead of traditional DBMS and SQL thus it can be used within CASE tools easily for local development or can be implemented over a database server for distributed teams targeting the same project. References [1] Berg, Klaas van den, Conejero, Jose Maria and Chitchyan, Ruzanna. AOSD ontology 1.0 public ontology of aspect orientation. s.l. : Common Foundation for AOSD, 2005. p. 90, Report. [2] J.D. Meier, David Hill, Alex Homer, Jason Taylor, Prashant Bansode, Lonnie Wall, Rob Boucher Jr., Akshay Bogawat. .NET Application Architecture Guide,. 2nd Edtion. s.l. : Microsoft Corporation., 2009. [3] Harbulot, Bruno. SEPARATING CONCERNS IN SCIENTIFIC SOFTWARE USING ASPECT-ORIENTED PROGRAMMING. Computer Science, Manchester University. Manchester : Center of Novel Computing, 2006. p. 194, PhD Thesis. [4] Dessì, Massimiliano. Spring 2.5 Aspect- Oriented Programming. [ed.] Sneha Kulkarni. Olton : Packt Publishing Ltd., 2009. pp. 13-16. 978-1-847194-02-2. [5] Aspect-Oriented Programming. Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes,. Finland : Springer-Verlag, 1997. European Conference on Object-Oriented Programming (ECOOP). pp. 220-242. [6] Aspects: Conflicts and Interferences (A Survey). André Restivo, Ademar Aguiar. 2007. Actas da 2ª Conferência de Metodologias de Investigação Científica. pp. 145-153. [7] Robert E. Filman, Daniel P. Friedman. Aspect- Oriented Programming is Quantification and Obliviousness. Research Inistitution for Advanced Computer Science. s.l. : Workshop on Advanced Separation of Concerns, 2001. [8] Katz, Emillia, et al. Detecting Interference Among Aspects. Computing Department, Lancaster University. Lancaster : European Network of Excellence on Aspect-Oriented Software Development, 2007. p. 38, Report. [9] Durr, Pascal, Bergmans, Lodewijik and Aksit, Mehmet. Reasoning about Behavioral Conflicts between Aspects. Enschede : University of Twente, 2007. Technical Report . TR-CTIT-07-15. [10] A Graph-based Approach to Modeling and Detecting Composition Conflicts Related to Introductions. Havinga, Wilke, et al. Vancouver : ACM International Conference Proceedings Series, 2007. International Conference on Aspect Oriented Software Development, AOSD 2007. pp. 85-95. 1- 59593-615-7. [11] Balzarotti, Davide and Monga, Mattia. Using Program Slicing to Analyze Aspect Oriented Composition. 2004. [12] Towards detecting and solving aspect conflicts and interferences using unit tests. Restivo, André and Aguiar, Ademar. Vancouver, British Columbia, Canada : ACM, 2007. Proceedings of the 5th workshop on Software engineering properties of languages and aspect technologies. [13] Team, MSDN. Unit Testing. MSDN. [Online] Microsoft, 2012. [Cited: 1 21, 2013.] http://msdn.microsoft.com/en- us/library/aa292197%28v=vs.71%29.aspx. [14] Clarke, Siobhán and Baniassad, Elisa. Aspect- Oriented Analysis and Design: The Theme Approach. Crawfordsville : Addison Wesley Professional, 2005. 0-321-24674-8. [15] A UML Extension to Graphically Represent Aspect Oriented Systems Perspectives. Ferreira, Helivelton Oliveira and Dias, Luiz Alberto Vieira. Las Vegas : IEEE, 2010. Seventh International Conference on Information Technology. pp. 1312-1313. [16] Whittle, Jon and Jayaraman, Praveen. MATA: A Tool for Aspect-Oriented Modeling Based on. Graph Transformation. [ed.] Holger Giese. Models in Software Engineering. Berlin : Springer Berlin Heidelberg, 2008, Vol. 5002, pp. 16-27. [17] Staijen, Tom and Rensink, Arend. A graph- transformation-based semantics for analysing aspect. Natal, Brazil : Workshop on Graph Computation Models,, 2006. [18] Ciraci, Selim, et al. A graph-based aspect interference detection approach for UML- based aspect-oriented models. [ed.] Shmuel Katz and Mira Mezini. Transactions on aspect-oriented software development. Heidelberg : Springer-Verlag, 2010, Vol. VII, pp. 321- 374. [19] Stein, Dominik. An Aspect-Oriented Design Model Based on AspectJ and UML. Management Information Systems. Alfter, Germany : University of Essen, 2002. p. 203, MSc Thesis.