Ingeniería del So8ware II
|
|
|
- Naomi Stanley
- 10 years ago
- Views:
Transcription
1 Ingeniería del So8ware II Seminario. Programación Orientada a Aspectos Pablo Sánchez Barreiro DPTO. DE MATEMÁTICAS, ESTADÍSTICA Y COMPUTACIÓN [email protected] Este tema se publica bajo Licencia: CreaNve Commons BY NC SA 3.0
2 Table of Contents 1 Introduction: Why we need Aspect-Oriented Programming 2 Aspect-Oriented Programming 3 Current Challenges 4 What AOSD Is Not About 5 AOSD and Related Technologies 6 Conclusions 7 References Pablo Sánchez (MATESCO) Aspect-Oriented Programming 2 / 51
3 Introduction Crosscutting Concerns Crosscutting Concerns Happiness Sadness Base Functionality Access Control Fault Tolerance v2.0 Encryption ModuleA ModuleB ModuleC Module D ModuleE Pablo Sánchez (MATESCO) Aspect-Oriented Programming 3 / 51
4 Introduction Crosscutting Concerns Case Study: Apache Tomcat XML parsing Pablo Sánchez (MATESCO) Aspect-Oriented Programming 4 / 51
5 Introduction Crosscutting Concerns Case Study: Apache Tomcat URL pattern matching Pablo Sánchez (MATESCO) Aspect-Oriented Programming 5 / 51
6 Introduction Crosscutting Concerns Case Study: Apache Tomcat Logging Pablo Sánchez (MATESCO) Aspect-Oriented Programming 6 / 51
7 Introduction Crosscutting Concerns Motivating example: Access Control class [ AccessControl ] Student -name : String -address : String -religion : String -diseases : String [0..*] +getname() : String +getaddress() : String +getreligion() : String +getdiseases() : String [0..*] +authenticator AccessControl +getaccess() : Boolean +getselectiveaccess( String : String ) «use» AccessControlView +askforcredentials( out username : String, out password : String ) Pablo Sánchez (MATESCO) Aspect-Oriented Programming 7 / 51
8 Introduction Crosscutting Concerns Motivating example: Access Control public class Student {{ protected String religion; protected AccessControl authenticator = = new AccessControl(); public String getreligion() {{ String result = = null; if if (authenticator.getaccess()){{ result = = this.religion; }}/// if if return result; }}/// getreligion }}/// Student Crosscutting code Pablo Sánchez (MATESCO) Aspect-Oriented Programming 8 / 51
9 Introduction Crosscutting Concerns Motivating example: Access Control public List<String> getdiseases() { List<String> result = null; if (authenticator.getaccess()) { result = this.diseases; } // if return result; } // getdiseases Crosscutting code Pablo Sánchez (MATESCO) Aspect-Oriented Programming 9 / 51
10 Introduction Crosscutting Concerns Main Shortcoming of Crosscutting Happiness Sadness Base Functionality Access Control Fault Tolerance v2.0 Encryption ModuleA ModuleB ModuleC Module D ModuleE Pablo Sánchez (MATESCO) Aspect-Oriented Programming 10 / 51
11 Introduction Conclusions Conclusions Scattering A concern appears spread over several software modules. Tangling Several concern appears software modules. 1 Scattering: Decreases encapsulation, (consequently decreases cohesion), creates redundancies, hinders reutilization of the crosscutting concern and increase coupling. 2 Tangling: Decreases cohesion, (consequently hampers reutilization), and increases coupling. Pablo Sánchez (MATESCO) Aspect-Oriented Programming 11 / 51
12 Introduction Empirical Evidence Concern-Oriented Metrics [Sant Anna et al., 2007] CDC Concern Diffusion over Classes CDO Concern Diffusion over Operations CIC Class-Level Interlacing between Concerns OOC Operation-Level Overlapping between Concerns ACC Afferent Coupling between Classes ECC Efferent Coupling between Classes LCC Lack of Concern-Based Cohesion Pablo Sánchez (MATESCO) Aspect-Oriented Programming 12 / 51
13 Introduction Empirical Evidence Concern-Oriented Metrics [Sant Anna et al., 2007] class [ AccessControl ] Student -name : String -address : String -religion : String -diseases : String [0..*] +getname() : String +getaddress() : String +getreligion() : String +getdiseases() : String [0..*] +authenticator AccessControl +getaccess() : Boolean +getselectiveaccess( String : String ) «use» AccessControlView +askforcredentials( out username : String, out password : String ) CDC CDO CIC OOC Data Storage (base) AccessControl ACC ECC LCC Student AccessControl AccessControlView Pablo Sánchez (MATESCO) Aspect-Oriented Programming 13 / 51
14 Aspect-Oriented Programming Table of Contents 1 Introduction: Why we need Aspect-Oriented Programming 2 Aspect-Oriented Programming 3 Current Challenges 4 What AOSD Is Not About 5 AOSD and Related Technologies 6 Conclusions 7 References Pablo Sánchez (MATESCO) Aspect-Oriented Programming 14 / 51
15 Aspect-Oriented Programming Overview Aspect-Oriented Programming Principle Module A Module B Pablo Sánchez (MATESCO) Aspect-Oriented Programming 15 / 51
16 Aspect-Oriented Programming Overview Aspect-Oriented Programming Principle Joinpoint Joinpoint Joinpoint Module A Joinpoint Module B Pablo Sánchez (MATESCO) Aspect-Oriented Programming 16 / 51
17 Aspect-Oriented Programming Overview Aspect-Oriented Programming Principle Fault Tolerance Aspect Access Control Aspect Module A Encryption Aspect Module B Pablo Sánchez (MATESCO) Aspect-Oriented Programming 17 / 51
18 Aspect-Oriented Programming Overview Aspect-Oriented Programming Principle Fault Tolerance Pointcut Access Control Pointcut Module A Encryption Module B Pointcut Pablo Sánchez (MATESCO) Aspect-Oriented Programming 18 / 51
19 Aspect-Oriented Programming Aspect-Oriented Weaving Weaving Process Aspect-Oriented Weaving Process Base Model Pointcut Model Aspect Model Aspect Weaver Woven Base Model Common Compiler Compiled Code Pablo Sánchez (MATESCO) Aspect-Oriented Programming 19 / 51
20 Aspect-Oriented Programming Aspect-Oriented Weaving Weaving Process Concern implementation Weaver Requirements Concern Identifier Final System Aspectual Decomposition Aspectual Recomposition Pablo Sánchez (MATESCO) Aspect-Oriented Programming 20 / 51
21 Aspect-Oriented Programming Aspect-Oriented Weaving Kinds of Aspect-Oriented Weaving Static Weaving Aspects are woven at compile time [Kiczales et al., 2001]. Load-Time Weaving Aspects are woven at class load-time [Laddad, 2001, Chiba, 2000]. Dynamic Weaving Aspects can be woven and even unwoven at runtime [Pinto et al., 2005, Suvée et al., 2003]. It is particulary interesting for context-aware systems [Fuentes et al., 2009]. Pablo Sánchez (MATESCO) Aspect-Oriented Programming 21 / 51
22 Aspect-Oriented Programming Example: Access Control as an Aspect Access Control With AspectJ public aspect AccessControlAspect {{{{ pointcut guardedmethods(): call(string Student.getReligion()); String around() ::: : guardedmethods() {{{{ AccessControl guard = = = = new AccessControl(); String returnvalue = = = = null; if if if if (guard.getaccess()) {{{{ returnvalue = = = = proceed(); }}}// }// // // if if if if return returnvalue; }}}// }// // // around guardedmethods }}}// }// // // AccessControlAspect Pablo Sánchez (MATESCO) Aspect-Oriented Programming 22 / 51
23 Aspect-Oriented Programming Example: Access Control as an Aspect A Clean Student Class public class Student { protected String religion; public String getreligion() { return this.religion; } // getreligion } // Student Pablo Sánchez (MATESCO) Aspect-Oriented Programming 23 / 51
24 Aspect-Oriented Programming Quantification Wildcard-based Quantified Pointcuts public aspect QuantifiedAccessControlAspect { pointcut guardedmethods(): call(* Student.get*(..)); Object around() : guardedmethods() { AccessControl guard = new AccessControl(); Object returnvalue = null; if (guard.getaccess()) { returnvalue = proceed(); } // if return returnvalue; } // around guardedmethods } // QuantifiedAccessControlAspect Pablo Sánchez (MATESCO) Aspect-Oriented Programming 24 / 51
25 Aspect-Oriented Programming Annotation-based Quantification Annotation-based Quantified Pointcuts public class Student { protected String public String getreligion() { return this.religion; } // getreligion } // Student Pablo Sánchez (MATESCO) Aspect-Oriented Programming 25 / 51
26 Aspect-Oriented Programming Annotation-based Quantification Annotation-based Quantified Pointcuts public aspect AnnotationBasedAspect {{ pointcut guardedmethods(): ** *.*(..)); Object around() :: guardedmethods() {{ AccessControl guard = = new AccessControl(); Object returnvalue = = null; if if (guard.getaccess()){{ returnvalue = = proceed(); }}/// if if return returnvalue; }}/// around guardedmethods }}/// AnnotationBasedAspect Pablo Sánchez (MATESCO) Aspect-Oriented Programming 26 / 51
27 Aspect-Oriented Programming Reflection Some Basic & Free Reflection c l a s s [ A c c e s s C o n t r o l ] S t u d e n t - n a m e : S t r i n g - a d d r e s s : S t r i n g - r e l i g i o n : S t r i n g - d i s e a s e s : S t r i n g [ 0.. * ] + g e t N a m e ( ) : S t r i n g + g e t A d d r e s s ( ) : S t r i n g + g e t R e l i g i o n ( ) : S t r i n g + g e t D i s e a s e s ( ) : S t r i n g [ 0.. * ] A c c e s s C o n t r o l + a u t h e n t i c a t o r + g e t A c c e s s ( ) : B o o l e a n + g e t S e l e c t i v e A c c e s s ( S t r i n g : S t r i n g ) «u s e» A c c e s s C o n t r o l V i e w + a s k F o r C r e d e n t i a l s ( o u t u s e r n a m e : S t r i n g, o u t p a s s w o r d : S t r i n g ) Pablo Sánchez (MATESCO) Aspect-Oriented Programming 27 / 51
28 Aspect-Oriented Programming Reflection Some Basic & Free Reflection public aspect ReflectionAccessControlAspect {{ pointcut guardedmethods(): call(string Student.getReligion()); String around() :: guardedmethods() {{ AccessControl guard = = new AccessControl(); String returnvalue = = null; if if (guard.getselectiveaccess( thisjoinpoint.getsignature(). getname())) {{ returnvalue = = proceed(); }}/// if if return returnvalue; }}/// around guardedmethods }}/// ReflectionAccessControlAspect Pablo Sánchez (MATESCO) Aspect-Oriented Programming 28 / 51
29 Aspect-Oriented Programming Reflection Concern-Oriented Metrics Revisited class [ AccessControlAspect ] Student -name : String -address : String -religion : String -diseases : String [0..*] +getreligion() : String +getname() : String +getaddress() : String +getdiseases( diseases : String [0..*] ) «crosscut» AccessControl +getaccess() : Boolean +getselectiveaccess( String : String ) AccessControlView +askforcredentials( out username : String, out password : String ) CDC CDO CIC OOC Data Storage (base) 1 (1) 4 (4) 0 (1) 0 (1) AccessControl 2 (2) 3 (5) 0 (1) 0 (1) ACC ECC LCC Student 1 (0) 0 (1) 1 (2) AccessControl 0 (1) 2 (1) 1 (1) AccessControlView 1 (1) 0 (0) 1 (1) Pablo Sánchez (MATESCO) Aspect-Oriented Programming 29 / 51
30 Current Challenges Table of Contents 1 Introduction: Why we need Aspect-Oriented Programming 2 Aspect-Oriented Programming 3 Current Challenges 4 What AOSD Is Not About 5 AOSD and Related Technologies 6 Conclusions 7 References Pablo Sánchez (MATESCO) Aspect-Oriented Programming 30 / 51
31 Current Challenges Current Hot Research Topics on AOSD 1 Semantic pointcuts [Ostermann et al., 2005]. 2 Reusable aspects (e.g Complex Transaction Management) [Kienzle and Gélineau, 2006]. 3 Aspect interference/conflicts [Douence et al., 2002, Douence et al., 2004, Altahat et al., 2008]. 4 Complex pointcuts [Allan et al., 2005]. 5 Aspect Influence on Interfaces [Ostermann, 2008]. Pablo Sánchez (MATESCO) Aspect-Oriented Programming 31 / 51
32 Current Challenges Current Hot Research Topics on AOSD termsandconditionsofseasonalrebate (.*):(.*) <?cart>(.*) : ShoppingCart (.*):(.*) <?ws>(.*): WebServiceBank price : Real checkout(..) <<CallBehavior>> calculatediscount [*] newcreditcard(..) <?cc>(.*):creditcard first <<CallBehavior>> minus <?jp>: approvecredit(<?cc>(.*):paymentmethod, <?price>(.*):real)) price <<proceed>> proceed?jp?price Pablo Sánchez (MATESCO) Aspect-Oriented Programming 32 / 51
33 What AOSD is not about Table of Contents 1 Introduction: Why we need Aspect-Oriented Programming 2 Aspect-Oriented Programming 3 Current Challenges 4 What AOSD Is Not about 5 AOSD and Related Technologies 6 Conclusions 7 References Pablo Sánchez (MATESCO) Aspect-Oriented Programming 33 / 51
34 What AOSD is not about AOSD is not View-Based Software Development AOSD is not View-Based Software Development << theme >> AddItem class additem << theme >> CheckOut class checkout IDelivery Delivery UserGUI IShop ShoppingCart UserGUI IShop ShoppingCart +additem (book :Book, amount :int ) + checkout () Bank Books + books 0..* sd checkout IBank sd additem UserGUI ShoppingCart Delivery Bank UserGUI ShoppingCart checkdelivery (address =-,weight =-,size =-) approvecredit (ccnumber =-,amount =-) merge Pablo Sánchez (MATESCO) Aspect-Oriented Programming 34 / 51
35 What AOSD is not about AOSD is not Feature-Oriented Software Development AOSD is not Feature-Oriented Software Development class [ Architecture ] +id : Integer Actuator +setvalue( value : float ) Gateway +openwindow( id : Integer ) +closewindow( id : Integer ) «merge» +actuators InitialModel Gateway 0..* +changevalue( id : Integer, value : float ) +gtw +emergence( a : Sensor, value : float ) 0..1 «merge» WindowMng +windows 1..* WindowCtrl +open() +close() Actuator «enumeration» TempUnits +sensors CELSIUS FAHRENHEIT 0..* +id : Integer Sensor +getvalue() : float Gateway «merge» «merge» HeaterMng +adjusttemperature( id : Integer, temp : float ) LightMng Actuator Gateway +switchlight( id : Integer ) LightCtrl +lights 1..* +switch() HeaterCtrl Actuator +heaters 1..* +units : TempUnits +set( t : float ) «merge» Gateway SmartEnergyMng +openwindow( id : Integer ) +closewindow( id : Integer ) +adjusttemperature( id : Integer, temp : float ) +indoortherm ThermometerCtrl 1 +operationmode : TempUnits +outdoortherm 1 Sensor Pablo Sánchez (MATESCO) Aspect-Oriented Programming 35 / 51
36 AOSD and Related Technology Table of Contents 1 Introduction: Why we need Aspect-Oriented Programming 2 Aspect-Oriented Programming 3 Current Challenges 4 What AOSD Is Not About 5 AOSD and Related Technologies 6 Conclusions 7 References Pablo Sánchez (MATESCO) Aspect-Oriented Programming 36 / 51
37 AOSD and Related Technology AOSD and Related Technology 1 Component platforms/application Servers/Container Technology Component platforms offer a set of fixed services. Configuration of each service is often different. Component platforms are often heavier. 2 Reflection: AOP is reflection for human beings. 3 Design Patterns, Dynamic Proxies: The aspect-oriented weaver does it for you. Pablo Sánchez (MATESCO) Aspect-Oriented Programming 37 / 51
38 AOSD and Related Technology AOSD in Industry 1 Spring framework for Enterprise Java. 2 SpringSource dm Server, SpringSource tc Server, Spring Roo y Magma. 3 GlassBox, Perf4J, Contract4J, JXInsight, MaintainJ. 4 Websphere, MySQL, JBoss, Oracle Toplink, J2ME [Rashid et al., 2010]. 5 Siemens Healthcare [Rashid et al., 2010]. 6 Motorola Weavr [Cottenier et al., 2007]. 7 Oficina Virtual Fundación Retevisión [Pinto et al., 2005] 8 Digital Publishing [de Beeck et al., 2009]. 9 Isis Project (Stop Pedophilia). Pablo Sánchez (MATESCO) Aspect-Oriented Programming 38 / 51
39 Conclusions Table of Contents 1 Introduction: Why we need Aspect-Oriented Programming 2 Aspect-Oriented Programming 3 Current Challenges 4 What AOSD Is Not About 5 AOSD and Related Technologies 6 Conclusions 7 References Pablo Sánchez (MATESCO) Aspect-Oriented Programming 39 / 51
40 Conclusions Conclusions Aspect-Oriented Software Development Aspect-Oriented Software Development can help to improve modularization of crosscutting concerns, easing maintenance and evolution. Access Control Code: More Information: Pablo Sánchez (MATESCO) Aspect-Oriented Programming 40 / 51
41 References Table of Contents 1 Introduction: Why we need Aspect-Oriented Programming 2 Aspect-Oriented Programming 3 Current Challenges 4 What AOSD Is Not About 5 AOSD and Related Technologies 6 Conclusions 7 References Pablo Sánchez (MATESCO) Aspect-Oriented Programming 41 / 51
42 References Referencias I Allan, C., Avgustinov, P., Christensen, A. S., Hendren, L. J., Kuzins, S., Lhoták, O., de Moor, O., Sereni, D., Sittampalam, G., and Tibble, J. (2005). Adding trace matching with free variables to AspectJ. In Johnson, R. E. and Gabriel, R. P., editors, Proc. of the 20th Annual Conference on Object-Oriented Programming, Systems, Languages, and Applications, (OOPSLA), pages Altahat, Z., Elrad, T., and Tahat, L. (2008). Applying Critical Pair Analysis in Graph Transformation Systems to Detect Syntactic Aspect Interaction in UML State Diagrams. In Proc. of the 20th Int. Conference on Software Engineering & Knowledge Engineering (SEKE), pages , San Francisco (California, USA). Pablo Sánchez (MATESCO) Aspect-Oriented Programming 42 / 51
43 References Referencias II Brichau, J. and D Hondt, T. (2005). Introduction to Aspect-Oriented Software Development. Deliverable D17 AOSD-Europe-VUB-02, AOSD-Europe Network of Excellence, Brussels. Chiba, S. (2000). Load-Time Structural Reflection in Java. In Bertino, E., editor, Proc. of the 14th European Conference on Object-Oriented Programming (ECOOP), pages , Sophia Antipolis and Cannes (France). Colyer, A., Clement, A., Harley, G., and Webster, M. (2004). Eclipse AspectJ: Aspect-Oriented Programming with AspectJ and the Eclipse AspectJ Development Tools. Addison-Wesley Professional. Pablo Sánchez (MATESCO) Aspect-Oriented Programming 43 / 51
44 References Referencias III Cottenier, T., van den Berg, A., and Elrad, T. (2007). Motorola WEAVR: Aspect and model-driven Engineering. Journal of Object Technology (JOT), 6(7): de Beeck, S. O., Landuyt, D. V., Truyen, E., and Joosen, W. (2009). Building a Next-Generation Digital News Publishing Platform with AOSD. In Proc. of the 8th Int. Conference on Aspect-Oriented Software Development (AOSD), Charlottesvile (Virginia, USA). Demostration. Pablo Sánchez (MATESCO) Aspect-Oriented Programming 44 / 51
45 References Referencias IV Douence, R., Fradet, P., and Südholt, M. (2002). A Framework for the Detection and Resolution of Aspect Interactions. In Batory, D. S., Consel, C., and Taha, W., editors, Proc. of the Int. Conference on Generative Programming and Component Engineering (GPCE), volume 2487 of LNCS, pages , Pittsburgh, (Pennsylvania, USA). Douence, R., Fradet, P., and Südholt, M. (2004). Composition, Reuse and Interaction Analysis of Stateful Aspects. In Proc. of the 3rd Int. Conference on Aspect-Oriented Software Development (AOSD), pages , Lancaster (UK). Elrad, T., Akşit, M., Kiczales, G., Lieberherr, K., and Ossher, H. (2001). Discussing Aspects of AOP. Communications of the ACM, 44(10): Pablo Sánchez (MATESCO) Aspect-Oriented Programming 45 / 51
46 References Referencias V Filman, R. E., Elrad, T., Clarke, S., and Akşit, M., editors (2004). Aspect-Oriented Software Development. Addison-Wesley, Boston. Fuentes, L., Gámez, N., and Sánchez, P. (2009). Aspect-Oriented Design and Implementation of Context-Aware Pervasive Applications. Innovations in Systems and Software Engineering, 5(1): Hannemann, J. and Kiczales, G. (2002). Design Pattern Implementation in Java and AspectJ. In Proc. of the 17th Int. Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pages , Seattle (Washington, USA). Pablo Sánchez (MATESCO) Aspect-Oriented Programming 46 / 51
47 References Referencias VI Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., and Griswold, W. G. (2001). An Overview of AspectJ. In Knudsen, J. L., editor, Proc. of the 15th European Conference on Object-Oriented Programming (ECOOP), volume 2072 of Lecture Notes in Computer Science, pages , Budapest (Hungary). Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C. V., Loingtier, J.-M., and Irwin, J. (1997). Aspect-Oriented Programming. In Akşit, M. and Matsuoka, S., editors, Proc. of the 11th European Conference on Object-Oriented Programming (ECOOP), volume 1241 of Lecture Notes in Computer Science, pages , Jyväskylä (Finland). Pablo Sánchez (MATESCO) Aspect-Oriented Programming 47 / 51
48 References Referencias VII Kienzle, J. and Gélineau, S. (2006). AO challenge - Implementing the ACID properties for Transactional Objects. In Filman, R. E., editor, Proc. of the 5th Int. Conference on Aspect-Oriented Software Development (AOSD), pages Laddad, R. (2001). I want my AOP! Java World, Ostermann, K. (2008). Reasoning about Aspects with Common Sense. In D Hondt, T., editor, Proc. of the 7th Int. Conference on Aspect-Oriented Software Development (AOSD), pages 48 59, Brussels (Belgium). Pablo Sánchez (MATESCO) Aspect-Oriented Programming 48 / 51
49 References Referencias VIII Ostermann, K., Mezini, M., and Bockisch, C. (2005). Expressive Pointcuts for Increased Modularity. In Black, A. P., editor, Proc. of the 19th European Conference on Object-Oriented Programming (ECOOP), volume 3586 of LNCS, pages , Glasgow (UK). Pinto, M., Fuentes, L., and Troya, J. M. (2005). A Dynamic Component and Aspect-Oriented Platform. Computer Journal, 48(4): Rashid, A., Cottenier, T., Greenwood, P., Chitchyan, R., Meunier, R., Coelho, R., Südholt, M., and Joosen, W. (2010). Aspect-Oriented Software Development in Practice: Tales from AOSD-Europe. IEEE Computer, 43(2): Pablo Sánchez (MATESCO) Aspect-Oriented Programming 49 / 51
50 References Referencias IX Sant Anna, C., Figueiredo, E., Garcia, A. F., and de Lucena, C. J. P. (2007). On the Modularity of Software Architectures: A Concern-Driven Measurement Framework. In Oquendo, F., editor, Proc. of the 1st European Conference on Software Architecture (ECSA), pages , Aranjuez (Spain). Suvée, D., Vanderperren, W., and Jonckers, V. (2003). JAsCo: an Aspect-Oriented Approach Tailored for Component-Based Software Development. In Proc. of the 2nd Int. Conference on Aspect-Oriented Software Development (AOSD), pages 21 29, Boston (Massachusetts, USA). Pablo Sánchez (MATESCO) Aspect-Oriented Programming 50 / 51
51 Questions Questions? Pablo Sánchez (MATESCO) Aspect-Oriented Programming 51 / 51
A COMPARISON OF AOP BASED MONITORING TOOLS
STUDIA UNIV. BABEŞ BOLYAI, INFORMATICA, Volume LVI, Number 3, 2011 A COMPARISON OF AOP BASED MONITORING TOOLS GRIGORETA S. COJOCAR AND DAN COJOCAR Abstract. The performance requirements of a software system
Generating Aspect Code from UML Models
Generating Aspect Code from UML Models Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany [email protected] Stefan Schulze Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich,
Using an Aspect Oriented Layer in SOA for Enterprise Application Integration
19 Using an Aspect Oriented Layer in SOA for Enterprise Application Integration Chinthaka D. Induruwana School of Computer Science, University of Manchester, Kilburn Building, Oxford Road M13 9PL [email protected]
Component-Based Software Development with Aspect-Oriented Programming
Vol. 4, No. 3 Special issue: GPCE Young Researchers Workshop 2004 Component-Based Software Development with Aspect-Oriented Programming Michael Eichberg, Departement of Computer Science, Darmstadt University
Aspect-Oriented Programming
Aspect-Oriented Programming An Introduction to Aspect-Oriented Programming and AspectJ Niklas Påhlsson Department of Technology University of Kalmar S 391 82 Kalmar SWEDEN Topic Report for Software Engineering
Keywords Aspect-Oriented Modeling, Rule-based graph transformations, Aspect, pointcuts, crosscutting concerns.
Volume 4, Issue 5, May 2014 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com Functional and Non-Functional
How to Model Aspect-Oriented Web Services
How to Model Aspect-Oriented Web Services Guadalupe Ortiz Juan Hernández [email protected] [email protected] Quercus Software Engineering Group University of Extremadura Computer Science Department Pedro
How To Combine Feature-Oriented And Aspect-Oriented Programming To Support Software Evolution
Combining Feature-Oriented and Aspect-Oriented Programming to Support Software Evolution Sven Apel, Thomas Leich, Marko Rosenmüller, and Gunter Saake Department of Computer Science Otto-von-Guericke-University
Introducing a Graduate Course on. called Aspect-Oriented Software Development
Int. J. Engng Ed. Vol. 21, No. 2, pp. 361±368, 2005 0949-149X/91 $3.00+0.00 Printed in Great Britain. # 2005 TEMPUS Publications. Introducing a Graduate Course on Aspect-Oriented Software Development*
Combining Feature-Oriented and Aspect-Oriented Programming to Support Software Evolution
Combining Feature-Oriented and Aspect-Oriented Programming to Support Software Evolution Sven Apel, Thomas Leich, Marko Rosenmüller, and Gunter Saake Department of Computer Science University of Magdeburg,
Aspect-Oriented Software Development
Aspect-Oriented Software Development Dr. Awais Rashid Computing Department Lancaster University, UK Awais Rashid, 2005. Fundamental to Next Generation Software AOSD is vital to our [IBM Software Group
Toward Configurable Access Control for. Healthcare Information Systems
Toward Configurable Access Control for Healthcare Information Systems Kung Chen a and Da-Wei Wang b a Department of Computer Science, National Chengchi University b Institute of Information Science, Academia
Aspects for Testing Aspects?
Aspects for Testing Aspects? Dehla Sokenou, Stephan Herrmann Technische Universität Berlin Software Engineering Group Sekr. FR 5-6, Franklinstr. 28/29, D-10587 Berlin [dsokenou stephan]@cs.tu-berlin.de
Composing Concerns with a Framework Approach
Composing Concerns with a Framework Approach Constantinos A. Constantinides 1,2 and Tzilla Elrad 2 1 Mathematical and Computer Sciences Department Loyola University Chicago [email protected] 2 Concurrent
Expressing Aspectual Interactions in Design: Experiences in the Slot Machine Domain
Expressing Aspectual Interactions in Design: Experiences in the Slot Machine Domain Johan Fabry 1, Arturo Zambrano 2, and Silvia Gordillo 2 1 PLEIAD Laboratory Computer Science Department (DCC) University
Encapsulating Crosscutting Concerns in System Software
Encapsulating Crosscutting Concerns in System Software Christa Schwanninger, Egon Wuchner, Michael Kircher Siemens AG Otto-Hahn-Ring 6 81739 Munich Germany {christa.schwanninger,egon.wuchner,michael.kircher}@siemens.com
Aspect-Oriented Web Development in PHP
Aspect-Oriented Web Development in PHP Jorge Esparteiro Garcia Faculdade de Engenharia da Universidade do Porto [email protected] Abstract. Aspect-Oriented Programming (AOP) provides another way of
Distributed Systems Development: Can we Enhance Evolution by using AspectJ?
Distributed Systems Development: Can we Enhance Evolution by using AspectJ? Cormac Driver Siobhán Clarke Distributed Systems Group, Computer Science Department, Trinity College Dublin, Ireland {Cormac.Driver,
Rapid Development of Extensible Profilers for the Java Virtual Machine with Aspect-Oriented Programming
Rapid Development of Extensible Profilers for the Java Virtual Machine with Aspect-Oriented Programming Danilo Ansaloni [email protected] Walter Binder [email protected] Philippe Moret [email protected]
Aspect-oriented software engineering
M21_SOMM5152_09_SE_C21.qxd 1/7/10 2:31 PM Page 565 21 Aspect-oriented software engineering Objectives The objective of this chapter is to introduce you to aspect-oriented software development, which is
Unification of AOP and FOP in Model Driven Development
Chapter 5 Unification of AOP and FOP in Model Driven Development I n this chapter, AOP and FOP have been explored to analyze the similar and different characteristics. The main objective is to justify
Representation-Oriented Software Development: A cognitive approach to software engineering
In P. Romero, J. Good, E. Acosta Chaparro & S. Bryant (Eds). Proc. PPIG 17 Pages 173-187 Representation-Oriented Software Development: A cognitive approach to software engineering John J. Sung School of
The Nature and Importance of a Programming Paradigm
Multiple Software Development Paradigms and Multi-Paradigm Software Development Valentino Vranić [email protected] Abstract: While OOP (including OOA/D) is reaching the level of maturity of structured
Implementing Application and Network Security using Aspectoriented
Application and Network Security using Aspectoriented Programming F.E. Tshivhase 1, H.S. Venter 2, J.H.P. Eloff 3 1 [email protected], 2 [email protected], 3 [email protected] Information and Computer
Automated Test Generation for AspectJ Programs
Automated Test Generation for AspectJ Programs Tao Xie 1 Jianjun Zhao 2 Darko Marinov 3 David Notkin 1 1 Department of Computer Science & Engineering, University of Washington, USA 2 Department of Computer
Combining Static and Dynamic Impact Analysis for Large-scale Enterprise Systems
Combining Static and Dynamic Impact Analysis for Large-scale Enterprise Systems The 15th International Conference on Product-Focused Software Process Improvement, Helsinki, Finland. Wen Chen, Alan Wassyng,
AOJS: Aspect-Oriented JavaScript Programming Framework for Web Development
AOJS: Aspect-Oriented JavaScript Programming Framework for Web Development Hironori Washizaki,Atsuto Kubo,Tomohiko Mizumachi,Kazuki Eguchi,Yoshiaki Fukazawa Waseda University, 3-4-1, Okubo, Shinjuku-ku,
Dynamic Reconfiguration Using Template Based Web Service Composition
Dynamic Reconfiguration Using Template Based Web Service Composition Kristof Geebelen, Sam Michiels and Wouter Joosen IBBT-DistriNet, Dept. Computer Science, K.U.Leuven Celestijnenlaan 200A 3001 Leuven,
An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications
An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications Germán Harvey Alférez Salinas Department of Computer Information Systems, Mission College,
Progress Report Aspect Oriented Programming meets Design Patterns. Academic Programme MSc in Advanced Computer Science. Guillermo Antonio Toro Bayona
Progress Report Aspect Oriented Programming meets Design Patterns Academic Programme MSc in Advanced Computer Science Guillermo Antonio Toro Bayona Supervisor Dr. John Sargeant The University of Manchester
Dungeon: A Case Study of Feature-Oriented Programming with Virtual Classes
Dungeon: A Case Study of Feature-Oriented Programming with Virtual Classes Vaidas Gasiunas Ivica Aracic Technische Universität Darmstadt, Germany {gasiunas,aracic}@informatik.tu-darmstadt.de Abstract A
Using Aspect Programming to Secure Web Applications
JOURNAL OF SOFTWARE, VOL. 2, NO. 6, DECEMBER 2007 53 Using Aspect Programming to Secure Web Applications Gabriel Hermosillo Roberto Gomez ITESM CEM/Dpto. Ciencias Computacionales, Edo. de Mexico, Mexico
Aspect-Oriented Software Development based Solution for Intervention Concerns Problems:Case Study
Aspect-Oriented Software Development based Solution for Intervention Concerns Problems:Case Study Farhad Soleimanian Gharehchopogh Department of Computer Engineering, Science and Research Branch, Islamic
Using Aspects to Design a Secure System
Using Aspects to Design a Secure System Geri Georg Indrakshi Ray Robert France Agilent Technologies Fort Collins, CO [email protected] Colorado State University Fort Collins, CO [email protected]
The Concern-Oriented Software Architecture Analysis Method
The Concern-Oriented Software Architecture Analysis Method Author: E-mail: Student number: Supervisor: Graduation committee members: Frank Scholten [email protected] s0002550 Dr. ir. Bedir Tekinerdoǧan
Integration of Application Business Logic and Business Rules with DSL and AOP
Integration of Application Business Logic and Business Rules with DSL and AOP Bogumiła Hnatkowska and Krzysztof Kasprzyk Wroclaw University of Technology, Wyb. Wyspianskiego 27 50-370 Wroclaw, Poland [email protected]
Evaluating the Use of AOP and MDA in Web Service Development
Evaluating the Use of AOP and MDA in Web Service Development Guadalupe Ortiz Quercus Software Engineering Group Centro Universitario de Mérida, UEX Mérida, Spain [email protected] Behzad Bordbar School
Extending an Open-Source BPEL Engine with Aspect-Oriented Programming
Extending an Open-Source BPEL Engine with Aspect-Oriented Programming Alejandro Houspanossian and Mariano Cilia UNICEN, Faculty of Sciences Campus Universitario Tandil, Argentina. {ahouspan,mcilia}@exa.unicen.edu.ar
Implementing QoS Aware Component-Based Applications
Implementing QoS Aware Component-Based Applications Avraam Chimaris and George A. Papadopoulos Department of Computer Science, University of Cyprus 75 Kallipoleos Street, POB 20537, CY-1678, Nicosia, Cyprus
Variability in Service-Oriented Systems: An Analysis of Existing Approaches
Variability in -Oriented Systems: An Analysis of Existing Approaches Holger Eichelberger and Christian Kröher and Klaus Schmid 1 Software Systems Engineering, Institute of Computer Science, University
Identification of Crosscutting in Software Design
Identification of Crosscutting in Software Design Klaas van den Berg Software Engineering Group University of Twente P.O. Box 217 7500 AE Enschede the Netherlands +31 53 4893783 [email protected]
USING ASPECT-ORIENTED SOFTWARE DEVELOPMENT IN REAL-TIME EMBEDDED SYSTEMS SOFTWARE A Review of Scheduling, Resource Allocation and Synchronization
USING ASPECT-ORIENTED SOFTWARE DEVELOPMENT IN REAL-TIME EMBEDDED SYSTEMS SOFTWARE Pericles Leng Cheng Department of Computer Science, Cyprus College 6, Diogenes Street, Engomi, Nicosia 1516 [email protected]
PESTO: A Tool for Migrating DOM-based to Visual Web Tests
2014 14th IEEE International Working Conference on Source Code Analysis and Manipulation PESTO: A Tool for Migrating DOM-based to Visual Web Tests Andrea Stocco 1, Maurizio Leotta 1, Filippo Ricca 1, Paolo
Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces
Software Engineering, Lecture 4 Decomposition into suitable parts Cross cutting concerns Design patterns I will also give an example scenario that you are supposed to analyse and make synthesis from The
GECO: Automatic Generator-Composition for (Aspect-oriented) DSLs
GECO: Automatic Generator-Composition for (Aspect-oriented) DSLs Doctoral Symposium - MODELS 2014 Reiner Jung Christian-Albrechts-University Kiel, Germany 30.09.2014 Domain-specific Languages Motivation
Concern Driven Software Development
Concern Driven Software Development Omar Alam School of Computer Science, McGill University, Montreal, Canada [email protected] Abstract Model Driven Engineering (MDE) has achieved success in many
An Architecture-Based Approach for Component-Oriented Development
An Architecture-Based Approach for Component-Oriented Development Feng Chen, Qianxiang Wang, Hong Mei, Fuqing Yang Department of Computer Science and Technology, Peking University, Beijing 100871, P.R.China
Colligens: A Tool to Support the Development of Preprocessor-based Software Product Lines in C
Colligens: A Tool to Support the Development of Preprocessor-based Software Product Lines in C Flávio Medeiros 1, Thiago Lima 2, Francisco Dalton 2, Márcio Ribeiro 2, Rohit Gheyi 1, Baldoino Fonseca 2
Considering Additional Adaptation Concerns in the Design of Web Applications
Considering Additional Adaptation Concerns in the Design of Web Applications Sven Casteleyn 1, Zoltán Fiala 2, Geert-Jan Houben 1,3, and Kees van der Sluijs 3 1 Vrije Universiteit Brussel, Pleinlaan 2,
Load balancing using Remote Method Invocation (JAVA RMI)
Load balancing using Remote Method Invocation (JAVA RMI) Ms. N. D. Rahatgaonkar 1, Prof. Mr. P. A. Tijare 2 1 Department of Computer Science & Engg and Information Technology Sipna s College of Engg &
Chapter 5 Aspect Oriented Programming
2I1AC3 : Génie logiciel et Patrons de conception Chapter 5 Aspect Oriented Programming J'ai toujours rêvé d'un ordinateur qui soit aussi facile à utiliser qu'un téléphone. Mon rêve s'est réalisé. Je ne
