SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Understanding The need of A UML-based- 
3D modeling tool for Aspect-oriented 
Software Development 
Jorge Edison Lascano 
ESPE Faculty Member 
USU Phd student
Motivation 
• Aspect-oriented Software Development, the need 
of modeling tools and techniques has arisen 
• The most accepted Modeling Language is UML 
• When weaving the modeled aspects in the base 
models, the woven code disappears visually to 
the designer, making difficult if not impossible to 
verify the Cross-Cutting Concerns (CCC) 
throughout the generated diagrams.
The solution 
• A 3D-modeling/viewing tool based on UML 
and AspectJ to surpass a real representation 
of the woven advices in the correspondent 
join points for any AOSD project in its 
modeling from requirements, to analysis and 
design
Introduction 
• a tool should be capable to apply reverse 
engineering to get the UML diagrams and 
allow to see where Aspect Oriented is applied. 
• UML diagrams do not give a correct 
representation of the weaving, and they 
visualized the merged diagrams as traditional 
UML diagrams, therefore, CCCs got lost 
visually and the developers can not track their 
models.
Introduction 
• In a 3D modeling tool, the third dimension 
would be the Cross-cutting concern(s) 
represented by an aspect, and the two 
dimensions will be the base diagrams before 
applying the correspondent advice.
Aspect Oriented Programming 
• According to Kuloor and Eberlein, AOP 
“focuses on identifying crosscutting concerns 
in a system and implement them as a 
collection of loosely coupled aspects.”
Definitions 
• A concern, is a requirement of the system, and 
if this affects more than one class and their 
actions are tangled, it is called a crosscutting 
concern. 
• an Aspect, is a construct that allows the 
introduction of some new behavior, the 
advice, in some point of the program, the join 
point.
Definitions 
• Inter-type declarations, an aspect also may 
introduce new attributes or inheritance, an 
inter-type declaration. 
• Weaving. The process of interfering the 
common state or behavior of one or more 
classes by an aspect is known as weaving. 
Weaving may happen when code is written, 
through compile-time, post-compile time, 
load time and run-time
AOP support 
• Haskell, 
• Java AspectJ, 
• JavaScript, 
• Logtalk, 
• Lua, 
• make, 
• ML, 
• PHP, 
• Racket, 
• Perl, 
• Prolog, 
• Python, 
• Ruby, 
• Squeak Smalltalk. 
• .NET Framework 
languages (C# / VB.NET), 
• ActionScript, 
• Ada, 
• AutoHotkey, 
• C / C++, 
• COBOL, 
• The Cocoa Objective-C 
frameworks, 
• ColdFusion, 
• Common Lisp, 
• Delphi, 
• Delphi Prism, 
• Emacs Lisp, 
• Groovy,
AspectJ 
• An aspect in AspectJ is defined as a class with three 
main sections: 
• its attributes, which are a set of local variables that can 
represent the state of the aspect; 
• the pointcuts, which will define the points where the 
behavior of the base code will be affected, usually they 
are defined as executions or as calls based on a 
signature that specify the set of points (join points); 
and 
• the advices that implement the behavior to be injected 
before, after or around the specific join point.
Sample code 
• public abstract aspect DeployingGenerator { 
• static boolean isCodeGenerated; 
• static boolean isCodeBuilt; 
• static Object obj; 
• StringBuilder sb=new StringBuilder(""); 
• 
• abstract pointcut generateCode(); 
• abstract pointcut build(); 
• 
• boolean around () : generateCode(){ 
• obj=thisJoinPoint.getTarget(); 
• isCodeGenerated = proceed(); 
• sb=new StringBuilder(""); 
• if(!isCodeGenerated){ 
• sb.append(obj.getClass().getSimpleName() + ", when " + 
thisJoinPoint.getSignature().getName() + "ing, was " + isCodeGenerated); 
• sb.append("nRead log screen to locate the errors"); 
• JOptionPane.showMessageDialog(Screens.frm05BP, sb.toString()); 
• } 
• return isCodeGenerated; 
• } 
• }
UML and aspects 
A logging Aspect Model using a UML collaboration 
Stereotype, source: Kande et al.
UML and Aspects 
Sequence Diagram Weaving Example, source: Kienzle et al.
3D UML modeling 
• There is a need to address the orthogonal 
modeling of Core components alongside 
aspectual components”, so a 3D modeling tool is 
needed. 
• pointcuts and advice affect program flow (SD), 
inter-type declarations affect a program´s classes 
structure” 
• the weaving process, Aspects, Pointcuts and 
Advices are modeled as classifiers; Pointcuts and 
advices also need SDs
An example of 3d UML Class Diagram 
Class Diagrams merging
Questions ?
References 
• Kuloor; Ch., Eberlein; A., 2003. “Aspect-Oriented 
Requirements Engineering for Software Products 
Lines”, 2003 IEEE Computer Society 
• Kande; J., Kienzle; J., Strohmeier; A., 2002. “From 
AOP to UML – A Bottom-up Approach”Workshop 
on Aspect-Oriented Modeling with UML at 
AOSD2002, Enschede, The Netherlands, April 22, 
2002 
• Kienzle; J., Abed; W., Klein; J., 2009. “Aspect- 
Oriented Multi-View Modeling”, March 2-6, 2009 
AOSD, pp. 87-98.

Weitere ähnliche Inhalte

Was ist angesagt?

Architecture business cycle
Architecture business cycleArchitecture business cycle
Architecture business cycle
Himanshu
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
Haitham El-Ghareeb
 
Software estimation
Software estimationSoftware estimation
Software estimation
Md Shakir
 

Was ist angesagt? (20)

Architecture business cycle
Architecture business cycleArchitecture business cycle
Architecture business cycle
 
Software project estimation
Software project estimationSoftware project estimation
Software project estimation
 
Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process Models
 
Software testing principles
Software testing principlesSoftware testing principles
Software testing principles
 
Design concept -Software Engineering
Design concept -Software EngineeringDesign concept -Software Engineering
Design concept -Software Engineering
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Improving software economics
Improving software economicsImproving software economics
Improving software economics
 
Model driven architecture
Model driven architectureModel driven architecture
Model driven architecture
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software design
 
Slides chapters 26-27
Slides chapters 26-27Slides chapters 26-27
Slides chapters 26-27
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
 
Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented Design
 
Project control and process instrumentation
Project control and process instrumentationProject control and process instrumentation
Project control and process instrumentation
 
Software process
Software processSoftware process
Software process
 
Multichannel User Interfaces
Multichannel User InterfacesMultichannel User Interfaces
Multichannel User Interfaces
 
Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 
Software estimation
Software estimationSoftware estimation
Software estimation
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 

Andere mochten auch

Evolutionary Problems In Aspect Oriented Software Development
Evolutionary Problems In Aspect Oriented Software DevelopmentEvolutionary Problems In Aspect Oriented Software Development
Evolutionary Problems In Aspect Oriented Software Development
kim.mens
 
Aspect Oriented Software Development
Aspect Oriented Software DevelopmentAspect Oriented Software Development
Aspect Oriented Software Development
Otavio Ferreira
 
Aspect Oriented Software Development
Aspect Oriented Software DevelopmentAspect Oriented Software Development
Aspect Oriented Software Development
Jignesh Patel
 
Aspect oriented software development
Aspect oriented software developmentAspect oriented software development
Aspect oriented software development
Maryam Malekzad
 
Ch21-Software Engineering 9
Ch21-Software Engineering 9Ch21-Software Engineering 9
Ch21-Software Engineering 9
Ian Sommerville
 

Andere mochten auch (13)

AOSD توسعه نرم افزار جنبه گرا
AOSD توسعه نرم افزار جنبه گراAOSD توسعه نرم افزار جنبه گرا
AOSD توسعه نرم افزار جنبه گرا
 
QSOUL/Aop
QSOUL/AopQSOUL/Aop
QSOUL/Aop
 
Scrum doc
Scrum docScrum doc
Scrum doc
 
Aspect-Oriented Technologies
Aspect-Oriented TechnologiesAspect-Oriented Technologies
Aspect-Oriented Technologies
 
Aspect-Oriented Software Development with Use Cases
Aspect-Oriented Software Development with Use CasesAspect-Oriented Software Development with Use Cases
Aspect-Oriented Software Development with Use Cases
 
Evolutionary Problems In Aspect Oriented Software Development
Evolutionary Problems In Aspect Oriented Software DevelopmentEvolutionary Problems In Aspect Oriented Software Development
Evolutionary Problems In Aspect Oriented Software Development
 
Aspect Oriented Software Development
Aspect Oriented Software DevelopmentAspect Oriented Software Development
Aspect Oriented Software Development
 
Aspect Mining Techniques
Aspect Mining TechniquesAspect Mining Techniques
Aspect Mining Techniques
 
Introduction to Aspect Oriented Software Development
Introduction to Aspect Oriented Software DevelopmentIntroduction to Aspect Oriented Software Development
Introduction to Aspect Oriented Software Development
 
Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)
Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)
Software reliability model(روش های اندازه گیری قابلیت اطمینان نرم افزار)
 
Aspect Oriented Software Development
Aspect Oriented Software DevelopmentAspect Oriented Software Development
Aspect Oriented Software Development
 
Aspect oriented software development
Aspect oriented software developmentAspect oriented software development
Aspect oriented software development
 
Ch21-Software Engineering 9
Ch21-Software Engineering 9Ch21-Software Engineering 9
Ch21-Software Engineering 9
 

Ähnlich wie UML for Aspect Oriented Design

[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
Sang Don Kim
 
Java 8 selected updates
Java 8 selected updatesJava 8 selected updates
Java 8 selected updates
Vinay H G
 
Auto cad 2006_api_overview
Auto cad 2006_api_overviewAuto cad 2006_api_overview
Auto cad 2006_api_overview
scdhruv5
 
Code Analysis-run time error prediction
Code Analysis-run time error predictionCode Analysis-run time error prediction
Code Analysis-run time error prediction
NIKHIL NAWATHE
 

Ähnlich wie UML for Aspect Oriented Design (20)

COMP 4026 Lecture 5 OpenFrameworks and Soli
COMP 4026 Lecture 5 OpenFrameworks and SoliCOMP 4026 Lecture 5 OpenFrameworks and Soli
COMP 4026 Lecture 5 OpenFrameworks and Soli
 
CBDW2014 - MockBox, get ready to mock your socks off!
CBDW2014 - MockBox, get ready to mock your socks off!CBDW2014 - MockBox, get ready to mock your socks off!
CBDW2014 - MockBox, get ready to mock your socks off!
 
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanba...
 
Cappuccino - A Javascript Application Framework
Cappuccino - A Javascript Application FrameworkCappuccino - A Javascript Application Framework
Cappuccino - A Javascript Application Framework
 
Java 8 selected updates
Java 8 selected updatesJava 8 selected updates
Java 8 selected updates
 
Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"
Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"
Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"
 
Masterin Large Scale Java Script Applications
Masterin Large Scale Java Script ApplicationsMasterin Large Scale Java Script Applications
Masterin Large Scale Java Script Applications
 
Awesome html with ujs, jQuery and coffeescript
Awesome html with ujs, jQuery and coffeescriptAwesome html with ujs, jQuery and coffeescript
Awesome html with ujs, jQuery and coffeescript
 
AOP on Android
AOP on AndroidAOP on Android
AOP on Android
 
JS Essence
JS EssenceJS Essence
JS Essence
 
How I learned to stop worrying and love embedding JavaScript
How I learned to stop worrying and love embedding JavaScriptHow I learned to stop worrying and love embedding JavaScript
How I learned to stop worrying and love embedding JavaScript
 
Embedding V8 in Android apps with Ejecta-V8
Embedding V8 in Android apps with Ejecta-V8Embedding V8 in Android apps with Ejecta-V8
Embedding V8 in Android apps with Ejecta-V8
 
Auto cad 2006_api_overview
Auto cad 2006_api_overviewAuto cad 2006_api_overview
Auto cad 2006_api_overview
 
Software Architecture: Principles, Patterns and Practices
Software Architecture: Principles, Patterns and PracticesSoftware Architecture: Principles, Patterns and Practices
Software Architecture: Principles, Patterns and Practices
 
[meetup] Mastering Java enhancements like a Pro: practical design patterns an...
[meetup] Mastering Java enhancements like a Pro: practical design patterns an...[meetup] Mastering Java enhancements like a Pro: practical design patterns an...
[meetup] Mastering Java enhancements like a Pro: practical design patterns an...
 
Implementing a JavaScript Engine
Implementing a JavaScript EngineImplementing a JavaScript Engine
Implementing a JavaScript Engine
 
Bootstrapping iPhone Development
Bootstrapping iPhone DevelopmentBootstrapping iPhone Development
Bootstrapping iPhone Development
 
Code Analysis-run time error prediction
Code Analysis-run time error predictionCode Analysis-run time error prediction
Code Analysis-run time error prediction
 
Information from pixels
Information from pixelsInformation from pixels
Information from pixels
 
Tools and practices for rapid application development
Tools and practices for rapid application developmentTools and practices for rapid application development
Tools and practices for rapid application development
 

Mehr von Edison Lascano

GoF Patterns: Prototype, Singleton, Adapter, Bridge
GoF Patterns: Prototype, Singleton, Adapter, BridgeGoF Patterns: Prototype, Singleton, Adapter, Bridge
GoF Patterns: Prototype, Singleton, Adapter, Bridge
Edison Lascano
 
Abstract Factory and Builder patterns
Abstract Factory and Builder patternsAbstract Factory and Builder patterns
Abstract Factory and Builder patterns
Edison Lascano
 

Mehr von Edison Lascano (13)

eXtreme Programming May Be Embedded inside Scrum
eXtreme Programming May Be Embedded inside ScrumeXtreme Programming May Be Embedded inside Scrum
eXtreme Programming May Be Embedded inside Scrum
 
An Infectious Disease Surveillance Simulation (IDSS) in the Cloud
An Infectious Disease Surveillance Simulation (IDSS) in the CloudAn Infectious Disease Surveillance Simulation (IDSS) in the Cloud
An Infectious Disease Surveillance Simulation (IDSS) in the Cloud
 
Soap and Rest
Soap and RestSoap and Rest
Soap and Rest
 
Hw8 GoF state, strategy, tempate method, visitor
Hw8 GoF state, strategy, tempate method, visitorHw8 GoF state, strategy, tempate method, visitor
Hw8 GoF state, strategy, tempate method, visitor
 
Hw7 mediator memento observer
Hw7 mediator memento observerHw7 mediator memento observer
Hw7 mediator memento observer
 
Hw6 interpreter iterator GoF
Hw6 interpreter iterator GoFHw6 interpreter iterator GoF
Hw6 interpreter iterator GoF
 
Hw5 proxy, chain of responsability, command
Hw5 proxy, chain of responsability, commandHw5 proxy, chain of responsability, command
Hw5 proxy, chain of responsability, command
 
Hw4 composite decorator facade flyweight
Hw4 composite decorator facade flyweightHw4 composite decorator facade flyweight
Hw4 composite decorator facade flyweight
 
Hw12 refactoring to factory method
Hw12 refactoring to factory methodHw12 refactoring to factory method
Hw12 refactoring to factory method
 
Hw11 refactoringcreation
Hw11 refactoringcreationHw11 refactoringcreation
Hw11 refactoringcreation
 
GoF Patterns: Prototype, Singleton, Adapter, Bridge
GoF Patterns: Prototype, Singleton, Adapter, BridgeGoF Patterns: Prototype, Singleton, Adapter, Bridge
GoF Patterns: Prototype, Singleton, Adapter, Bridge
 
Abstract Factory and Builder patterns
Abstract Factory and Builder patternsAbstract Factory and Builder patterns
Abstract Factory and Builder patterns
 
GoF design patterns chapters 1 and 2
GoF design patterns chapters 1 and 2GoF design patterns chapters 1 and 2
GoF design patterns chapters 1 and 2
 

Kürzlich hochgeladen

Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
Epec Engineered Technologies
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Kürzlich hochgeladen (20)

Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdf
 
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
Hazard Identification (HAZID) vs. Hazard and Operability (HAZOP): A Comparati...
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKARHAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdf
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
 
Computer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to ComputersComputer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to Computers
 
2016EF22_0 solar project report rooftop projects
2016EF22_0 solar project report rooftop projects2016EF22_0 solar project report rooftop projects
2016EF22_0 solar project report rooftop projects
 
Engineering Drawing focus on projection of planes
Engineering Drawing focus on projection of planesEngineering Drawing focus on projection of planes
Engineering Drawing focus on projection of planes
 
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxHOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.ppt
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
 

UML for Aspect Oriented Design

  • 1. Understanding The need of A UML-based- 3D modeling tool for Aspect-oriented Software Development Jorge Edison Lascano ESPE Faculty Member USU Phd student
  • 2. Motivation • Aspect-oriented Software Development, the need of modeling tools and techniques has arisen • The most accepted Modeling Language is UML • When weaving the modeled aspects in the base models, the woven code disappears visually to the designer, making difficult if not impossible to verify the Cross-Cutting Concerns (CCC) throughout the generated diagrams.
  • 3. The solution • A 3D-modeling/viewing tool based on UML and AspectJ to surpass a real representation of the woven advices in the correspondent join points for any AOSD project in its modeling from requirements, to analysis and design
  • 4. Introduction • a tool should be capable to apply reverse engineering to get the UML diagrams and allow to see where Aspect Oriented is applied. • UML diagrams do not give a correct representation of the weaving, and they visualized the merged diagrams as traditional UML diagrams, therefore, CCCs got lost visually and the developers can not track their models.
  • 5. Introduction • In a 3D modeling tool, the third dimension would be the Cross-cutting concern(s) represented by an aspect, and the two dimensions will be the base diagrams before applying the correspondent advice.
  • 6. Aspect Oriented Programming • According to Kuloor and Eberlein, AOP “focuses on identifying crosscutting concerns in a system and implement them as a collection of loosely coupled aspects.”
  • 7. Definitions • A concern, is a requirement of the system, and if this affects more than one class and their actions are tangled, it is called a crosscutting concern. • an Aspect, is a construct that allows the introduction of some new behavior, the advice, in some point of the program, the join point.
  • 8. Definitions • Inter-type declarations, an aspect also may introduce new attributes or inheritance, an inter-type declaration. • Weaving. The process of interfering the common state or behavior of one or more classes by an aspect is known as weaving. Weaving may happen when code is written, through compile-time, post-compile time, load time and run-time
  • 9. AOP support • Haskell, • Java AspectJ, • JavaScript, • Logtalk, • Lua, • make, • ML, • PHP, • Racket, • Perl, • Prolog, • Python, • Ruby, • Squeak Smalltalk. • .NET Framework languages (C# / VB.NET), • ActionScript, • Ada, • AutoHotkey, • C / C++, • COBOL, • The Cocoa Objective-C frameworks, • ColdFusion, • Common Lisp, • Delphi, • Delphi Prism, • Emacs Lisp, • Groovy,
  • 10. AspectJ • An aspect in AspectJ is defined as a class with three main sections: • its attributes, which are a set of local variables that can represent the state of the aspect; • the pointcuts, which will define the points where the behavior of the base code will be affected, usually they are defined as executions or as calls based on a signature that specify the set of points (join points); and • the advices that implement the behavior to be injected before, after or around the specific join point.
  • 11. Sample code • public abstract aspect DeployingGenerator { • static boolean isCodeGenerated; • static boolean isCodeBuilt; • static Object obj; • StringBuilder sb=new StringBuilder(""); • • abstract pointcut generateCode(); • abstract pointcut build(); • • boolean around () : generateCode(){ • obj=thisJoinPoint.getTarget(); • isCodeGenerated = proceed(); • sb=new StringBuilder(""); • if(!isCodeGenerated){ • sb.append(obj.getClass().getSimpleName() + ", when " + thisJoinPoint.getSignature().getName() + "ing, was " + isCodeGenerated); • sb.append("nRead log screen to locate the errors"); • JOptionPane.showMessageDialog(Screens.frm05BP, sb.toString()); • } • return isCodeGenerated; • } • }
  • 12. UML and aspects A logging Aspect Model using a UML collaboration Stereotype, source: Kande et al.
  • 13. UML and Aspects Sequence Diagram Weaving Example, source: Kienzle et al.
  • 14. 3D UML modeling • There is a need to address the orthogonal modeling of Core components alongside aspectual components”, so a 3D modeling tool is needed. • pointcuts and advice affect program flow (SD), inter-type declarations affect a program´s classes structure” • the weaving process, Aspects, Pointcuts and Advices are modeled as classifiers; Pointcuts and advices also need SDs
  • 15. An example of 3d UML Class Diagram Class Diagrams merging
  • 17. References • Kuloor; Ch., Eberlein; A., 2003. “Aspect-Oriented Requirements Engineering for Software Products Lines”, 2003 IEEE Computer Society • Kande; J., Kienzle; J., Strohmeier; A., 2002. “From AOP to UML – A Bottom-up Approach”Workshop on Aspect-Oriented Modeling with UML at AOSD2002, Enschede, The Netherlands, April 22, 2002 • Kienzle; J., Abed; W., Klein; J., 2009. “Aspect- Oriented Multi-View Modeling”, March 2-6, 2009 AOSD, pp. 87-98.