Composing Concerns with a Framework Approach
|
|
- Anthony Anthony
- 8 years ago
- Views:
Transcription
1 Composing Concerns with a Framework Approach Constantinos A. Constantinides 1,2 and Tzilla Elrad 2 1 Mathematical and Computer Sciences Department Loyola University Chicago cac@cs.luc.edu 2 Concurrent Programming Research Group Computer Science Department Illinois Institute of Technology, Chicago elrad@ iit.edu Abstract As concurrent software systems become larger, the interaction of their components is becoming more complex. This interaction may limit reuse, making it difficult to validate design and correctness and perhaps forcing reengineering of these systems in order to meet future requirements. In order to reduce this complexity and to build stable and adaptable concurrent software systems, we present an approach that emphasizes the separation of the interaction components from the functional components. This approach targets the design and development of open concurrent software systems where the functional requirements, concurrency requirements, and structural requirements can be easily designed, implemented, and reused. 1. Introduction As the size of software systems increases, their design has reached a complexity that requires software engineers to revisit the principle of separation of concerns, which refers to the realization of system concepts as separate software units. This principle is essential to software development since its benefits include better analysis and understanding of systems, easy adaptability, maintainability and high degree of reusability. At the same time, separation of concerns can only be beneficial if the different concerns can be effectively composed to produce the overall system. In order to support separation of concerns the OOP paradigm seems to work well only if a problem can be described with relatively simple interfaces among objects. Unfortunately, this is not the case when we move from sequential programming to concurrent and distributed programming, as the component interaction violates simple object interfaces. As a result, the benefits associated with OOP no longer hold. One of the reasons is the inherent structure of today s software systems that conceptually does not lead itself to be safely decomposed. Reengineering of these systems is needed in order to meet future changes in requirements. This component interaction is based on a number of properties such as synchronization, scheduling, and fault tolerance. These are properties that affect the performance and semantics of the system, and the term codetangling (Kiczales et al., 1997) is referred to as the phenomenon where the implementations of such properties (called aspects) cut across groups of functional components. This code-tangling and the resulting high coupling of components destroys modularity, making the source code difficult to develop and difficult to understand. It also limits reuse, making the source code difficult to evolve. It further makes programs more error prone. In essence, it destroys the quality of the software. In (Bergmans and Aksit, 2000) the authors refer to these phenomena as composition anomalies. This composition anomaly requires a shift in the methodologies used to separate concerns. There are currently a number of different proposals that address advanced separation of concerns. Although the mechanism of weaving lies at the center of their differences, they all have the same goals: Better abstraction than what has so far been achieved with current methodologies, higher modularity and higher degree of reuse. Some of the open issues regarding the design and implementation of architectures lie at the level at which aspects and components integrate. Should the integration be at the source code or maybe at the object code? How do we better express aspectual properties of systems? Should we use an aspect language or a framework approach? To what degree should an aspect oriented architecture support an open system? Should it enable dynamic adaptability and expandability? Should it support reusability? Should it further enable formal verification of system properties? In
2 this paper we present the architecture of a framework that supports separation of concerns and addresses these issues. 2. Requirements for Concurrent Systems In (Constantinides and Elrad, 2000c) we discussed a number of desired requirements for concurrent systems in order to provide an advanced separation of concerns. E- commerce and online client-server applications, like trouble-ticketing systems, on-line reservation systems, timecard reporting systems, and online auctions, are becoming increasingly popular. To ensure high availability and reliability, these systems are often designed according to the design methodology of open software systems. Generally, the functional components of a concurrent system are stable. On the other hand, the interaction components are volatile and reactive to the environment needs. During the analysis phase of these systems, it is important to identify and isolate the functional components from the interaction components. Interaction components are used to address requirements like load balancing, fault tolerance, throughput, security, audits, location transparency, concurrency, and coordination. Object-oriented techniques have indeed supported reuse of these components to the degree that it satisfied software developers but failed to satisfy the software system architects. Software architects are very much interested in the common collaboration for a cluster of components. Object-oriented design techniques have showed their effectiveness to capture functional requirements into components. There is, however, little evidence that OO design techniques have fully resolved the software reusability problem. Recent research in concurrent objectoriented programming has showed that mixing the concurrency code along with the functional code may impede reuse and make it very difficult to extend or reuse the functional or concurrency components in isolation from each other. The structural properties (ilities), of the software systems are usually scattered across the functional components. In OOP, objects are the basic units of computation and the software system is composed of a set of objects and a set of interaction scenarios. These objects may play the role of a servant object, a client object, or perhaps both roles. These objects may reside on the same host or distributed across the network. 3. The Software Architecture of an Aspect- Oriented Framework In the Aspect Moderator framework (Figure 1), a concurrent object is represented as a cluster of co-operating classes that handle the creation of aspects as well as the interaction between components and aspects. The subsequent subsections will discuss the analysis and design phases of the framework. Aspect Moderator EvaluateAspect RegisterAspect ASPECT BANK Security Security Synchronization Synchronization Scheduling Scheduling ASPECT FACTORY CreateAspect Proxy Functional Component SERVICE A SERVICE B Figure 1. Architecture of the Aspect Moderator Framework 4. Analysis Phase This section will discuss the analysis phase of the framework. As an example, we will use the trouble-ticketing system. This is an application where clients open (place) tickets on a server, and assign (retrieve) tickets from a server. This application is based on the producer consumer protocol with the use of a bounded buffer. The framework can be studied in two different stages: initialization, and method invocation. 4.1 Initialization Phase During initialization, the proxy to the functional component (TicketServer) will request from a special object (AspectFactory) the creation of two objects that capture the synchronization constraints that are associated with services (methods) open() and assign() (Figure 2). Upon creation, objects OpenSynchronizationAspect and AssignSynchronizationAspect are registered (stored) in the Aspect- Moderator object that will need to reference them during method invocation in order to coordinate their interaction with the functional components. 4.2 Method Invocation The proxy to the functional component is responsible to evaluate each of aspects that are associated with each one of the services that are defined on the functional component. The result of this evaluation may cause the service to 2
3 be invoked, cause the caller to wait, or abort the activation. Before executing each on the functional component, the proxy object calls the moderator object to evaluate the aspect code that is associated with that method (Figure 3). Methods in the functional component that are associated with aspect objects are referred to as participating methods. Every participating method is guarded by preactivation and post-activation phase. Method pattern is to define an interface for creating an aspect object, but let the requestor decide which class to instantiate. ACTOR put (ticket) :TicketProxy :Aspect Moderator preactivation (open, sync) :OpenSync Aspect :Ticket :TicketProxy :Aspect Moderator :AspectFactory precondition() createaspect (Open, Sync) registeraspect () new :OpenSyncAspect [precondition == true] open (ticket) postactivation (open, sync) createaspect (Assign, Sync) postaction() new :AssignSync Aspect Figure 3. Method Invocation Phase registeraspect () Figure 2. Initialization Phase Upon a message reception that involves a participating method, the proxy will delegate the responsibility to the aspect moderator to evaluate the preactivation phase. The moderator will, in turn, evaluate all required aspects of the participating method by calling the precondition of all required aspects. Upon successful return of the preactivation phase, the proxy will call the actual participating method. Once execution is complete, the proxy will initiate the postactivation phase, by delegating responsibility to the moderator to evaluate the postactivation on the given method. During this phase, the aspect moderator will call the postaction of the required aspects. Figure 4 shows a class diagram with the roles that classes and interfaces play in the Factory Method pattern. Using the organization shown, a TicketServerProxy object calls method createaspect() of an object that implements the AspectfactoryIF interface by passing some parameters that tell that method which class that implements the AspectIF interface to instantiate. TicketServerProxy 1 requestor AspectIF postaction():void * Requests-creation creator * AspectFactoryIF TicketServerProxy component):object 5. Design Phase This section will describe the design phase of the framework. 5.1 Initialization: Deploying the Factory Method Pattern ConcreteAspect postaction():void Creates 1 AspectFactory TicketServerProxy component):object Figure 4. Creating Aspects Using the Factory Method The Factory Method pattern (Gamma et al., 1995) can be used to create the required aspects for the participating methods of the functionality class. All aspect objects implement the AspectIF interface. The intent of the Factory 3
4 5.1.1 Participants of the Factory Method Pattern The participants of the Factory Method pattern are as follows: TicketServerProxy: It acts as a creation requestor for aspect objects. AspectFactoryIF: This is an application-independent interface. It declares the Factory Method, which returns an object of type AspectIF by taking whatever arguments are needed to deduce the class to instantiate. AspectFactory: This is an application-specific class. It implements the Factory Method to return an instance of ConreteAspect. AspectIF: defines the interface of objects the Factory Method creates. ConcreteAspect: This is a concrete class instantiated by the objects that participate in the Factory Method pattern. It implements the AspectIF interface Code Example: Initialization Phase The constructor of TicketServerProxy contains the code to request 1) the creation of the two aspect objects, and 2) their registration with the aspect moderator object (Figure 5). The call from the TicketServerProxy to the Aspect- Factory passes a number of arguments that define the type of aspect instantiation (Figure 6). TicketServerProxy (AspectModerator moderator, AspectFactory factory) moderator.registeraspect(open, SYNC, factory.create(open, SYNC, this)); moderator.registeraspect(assign, SYNC, factory.create(assign, SYNC, this)); Figure 5. Constructor of TicketServerProxy Class public class AspectFactory implements AspectFactoryIF public Object create (String methodid, String aspect, TicketServerProxy component) if (methodid.equals("open")) if (aspect.equals("sync")) return new OpenSynchronizationAspect(component); if (methodid.equals("assign")) if (aspect.equals("sync")) return new AssignSynchronizationAspect(component); return null; Figure 6. AspectFactory Class The implementation of the OpenSynchronizationAspect is defined by precondition() and postaction(). Method precondition() is called during the pre-activation part of method invocation. During precondition() the constraints dictate that if the shared object (TicketServer) is not full, then the method returns true. The postaction() method will be called during the post-activation part of method invocation phase and it will ensure the incrementing of the counters of the shared resource. public class OpenSynchronizationAspect implements AspectIF public TicketServerProxy component; protected int ActiveOpen = 0; public int precondition() if ((component.noitems < component.capacity) && (ActiveOpen == 0)) ++ActiveAssign; ++component.noitems; // retutrn resume else // return blocked public void postaction() --ActiveOpen; component.assignptr = (component.assignptr + 1) % component.capacity; Figure 7. OpenSynchronizationAspect Class As aspect objects are first class abstractions (values), they can be stored in an array within the aspect moderator object. Further, they can be referenced (accessed) from the array. In examining the usage and importance of aspect registration, we introduce the concept of an aspect bank, which provides a hierarchical two-dimensional composition of the system in terms of aspects and components. Upon creation of the aspect objects, the proxy will call the aspect moderator object to store (register) these aspect objects for reference during the next (method invocation) phase. The call to create() method will return a reference to an instance of an aspect class. This reference is parameterized to method registeraspect() of the moderator object. Method registeraspect() will simply create an entry in a two dimensional array within the moderator object to be used for future reference (Figure 9) Method Invocation Phase Figure 10 shows the guarding of a participating method between methods preactivation() and postactivation() that are defined by the AspectModerator class (Figure 11). 4
5 public void registeraspect (String methodid, String aspect, Object aspectobject) if (methodid.equals("open") && aspect.equals("sync")) aspectarray[open][sync] = aspectobject; // similarly for assign() Figure 9. Registration of Aspect Objects public void open (Object the_value) if (moderator.preactivation(open) == RESUME) super.open(the_value); moderator.postactivation(open); else // error // similarly for assign() Figure 10. Guarded Methods in TicketServerProxy public int preactivation(string methodid) int result = ERROR; if (methodid.equals("put")) synchronized(putwaitingqueue) result = ((PutSynchronizationAspect) aspectarray[put][sync]).precondition(); while (result == BLOCKED ) try PutWaitingQueue.wait (); result = ((PutSynchronizationAspect) aspectarray[put][sync]).precondition(); catch (Exception exception) return AspectModerator.ABORT; //while synchronized return result; // put //similarly for assign return result; public void postactivation(string methodid) if (methodid.equals("open")) synchronized(assignwaitingqueue) ((OpenSynchronizationAspect) aspectarray[open][sync]).postcondition(); AssignWaitingQueue.notify(); // synchronized queue // open // similarly for assign Method preactivation() will call precondition() in the method s corresponding synchronization aspect. During precondition(), guards will validate the synchronization constraints of the invoked method, returning RESUME upon success. After successful return, the AspectModerator will return a RESUME to the FunctionalityProxy that will activate the method in the sequential object. The completion of the method execution will initiate a call by the Ticket- ServerProxy to the AspectModerator s postactivation phase. During postactivation(), there is a call to the postaction() of the method's synhronization aspect during which synchronization variables are updated. The proxymoderator object pair coordinate functional and aspectual behavior by handling their interdependencies. The UML class diagram of the aspect moderator framework is shown in Figure 12. Component ComponentProxy ConcreteAspect AspectIF 1 postcondition():void postcondition():void requestor Requests-creation * 1 Creates creator * AspectModeratorIF preactivation(string methodid):int postactivation(string methodid):void registeraspect (String methodid, String aspect, Object aspectobject):void creator * AspectModerator int preactivation(string methodid):int postactivation(string methodid):void registeraspect (String methodid, String aspect, Object aspectobject):void AspectFactoryIF AspectFactoryIF Application component):object AspectFactory Application component):object Figure 12. Class Diagram of the Aspect Moderator 5.3 Provision of Adaptability The key to a successful software architecture is to ensure that the software system is adaptable enough to meet future requirements. Let a new requirement state that authentication should be introduced to the system. The general architecture of the aspect moderator ensures adaptability both in terms of components and aspects. In the trouble ticketing system, an ExtendedTicketServerProxy, will request the creation of two authentication aspects from an extended factory component (Figure 13). Figure 11. Illustration of Pre- and Post-activation 5
6 public class ExtendedTicketProxy extends TicketProxy.. static ExtendedAspectModerator moderator; static ExtendedAspectfactory factory; ExtendedTicketServerProxy (ExtendedAspectModerator m, ExtendedAspectFactory af)... moderator.registeraspect(open, AUTHENTICATE, factory.create(open, AUTHENTICATE, this)); moderator.registeraspect(assign, AUTHENTICATE, factory.create(assign, AUTHENTICATE, this));... Figure 13. ExtendedTicketServerProxy As a consequence of the addition of a new aspect, a request to a participating method will now have to be guarded by preactivation of authentication (done by the extended aspect moderator) followed by preactivation of synchronization. Only when both are true, then execution may proceed. The execution of the actual method is followed by the postactivation of synchronization followed by postactivation of authentication (Figure 14). public void open (Object the_value) if (moderator.preactivation(open) == RESUME) super.open(the_value); moderator.postactivation(open); else System.out.println ("ABORT"); public Object assign() Object the_return_value = null; if (moderator.preactivation(assign) == RESUME) the_return_value = super.assign(); moderator.postactivation(assign); else System.out.println ("ABORT"); return the_return_value; Figure 14. ExtendedTicketServerProxy separation concerns, as it manages to retain separation in all stages of the development. From analysis we emphasize the decoupling between object concurrency constraints and object functionality. Functional and non-functional requirements can be easily designed, implemented, tested and reused. The Aspect Moderator framework complements the object-oriented and component-oriented technology in order to promote code reuse and to support adaptability of concurrent software systems. public class ExtendedAspectFactory extends AspectFactory public static final String AUTHENTICATE= "Authenticate"; public ExtendedAspectFactory () public Object create (String methodid, String aspect, ExtendedTicketServerProxy component) if (methodid.equals("open")) if (aspect.equals("authenticate")) return new OpenAuthenticationAspect(component); if (methodid.equals("assign")) if (aspect.equals("authenticate")) return new AssignAuthenticationAspect(component); return null; Figure 15. Implementation of ExtendedAspectFactory public void registeraspect (String methodid, String aspect, Object aspectobject) if (methodid.equals("open") && aspect.equals("authenticate")) newaspectarray[open][authenticate] = aspectobject; if (methodid.equals("assign") && aspect.equals("authenticate")) newaspectarray[assign][authenticate] = aspectobject; Figure 16. Registration of Authentication Aspects The implementation of the ExtendedAspectFactory is shown in Figure 15. Figure 16 illustrates the registration of the two authentication aspect objects in the extendedaspectmoderator object. Figures 17, and 18 illustrates methods preactivation() and postactivation() respectively in the ExtendedAspectModerator that handle the authentication aspect. 6. Conclusion In this paper we presented an approach for the design and development for open concurrent software systems. The Aspect Moderator framework supports a high level of 6
7 public int preactivation(string methodid) int result = this.error; if (methodid.equals("open")) synchronized(openauthenticationqueue) result = ((OpenAuthenticationAspect) newaspectarray[open][authenticate]).precondition(); while (result == BLOCKED) try OpenAuthenticationQueue.wait(); Synchronized(this) result = ((OpenAuthenticationAspect) newaspectarray[open][authenticate]).precondition(); // similarly for assign() Figure 17. Pre-activation in ExtendedAspectModerator public void postactivation(string methodid) if (methodid.equals("open")) synchronized(assignauthenticationqueue) ((OpenAuthenticationAspect) newaspectarray[open][authenticate]).postaction(); AssignAuthenticationQueue.notify(); // open if (methodid.equals("assign")) synchronized(openauthenticationqueue) ((AssignAuthenticationAspect) newaspectarray[assign][authenticate]).postaction(); OpenAuthenticationQueue.notify(); // assign Figure 18. Post-activation ExtendedAspectModerator REFERENCES Aksit, M., Wakita, K., Bosch, J., Bergmans, L., and Yonezawa, A. (1993). Abstracting object interactions using composition filters. In Guerraoui, R., Nierstrasz, O., and Riveill, M., editors, Object-Based Distributed Programming, volume 791 of Lecture Notes in Computer Science, pages ECOOP, Springer-Verlag. Bader, A., Constantinides, C. A., Elrad, T., Fuller, T., Netinant, P., Building Reusable Concurrent Software Systems, Proceedings of PDPTA'2000. Bergmans, L., and Aksit, M,. Composing Software from Multiple Concerns: A Model and Composition Anomalies, Proceedings of ICSE nd Workshop on Multidimensional Separation of Concerns. Constantinides, C. A., Bader, A., and Elrad, T., A Two- Dimensional Composition Framework to Support Software Adaptability and Reuse, ed. Frakes, W. B., Software Reuse: Advances in Software Reusability; Proceedings of ICSR6, Springer-Verlag Lecture Notes in Computer Science. Constantinides, C. A., Bader, A., Elrad, T. H., Netinant, P., and Fayad, M., Designing an Aspect-Oriented Framework in an Object-Oriented Environment, ed. Fayad, M. E., ACM Computing Surveys Symposium on Application Frameworks, Vol. 32, No. 1, pp. 41-, March Constantinides, C. A., and Elrad, T., On the Requirements for Concurrent Software Ar-chitectures to Support Advanced Separation of Concerns, Proceedings of OOPSLA 2000 Workshop on Advanced Separation of Concerns in Object-Oriented Systems. Fayad, M. and Cline, M. Aspects of Software Adaptability, Communications of the ACM, 39(10), 1996, Gamma, E., Helm, R., Johnson, R. and Vlissides, J. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, MA,1995. Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier, and John Irwin. Aspect-Oriented Programming. In Proceedings of ECOOP 97. LNCS Springer-Verlag, pp
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
More informationIntroducing 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*
More informationKeywords 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
More informationVerifying Semantic of System Composition for an Aspect-Oriented Approach
2012 International Conference on System Engineering and Modeling (ICSEM 2012) IPCSIT vol. 34 (2012) (2012) IACSIT Press, Singapore Verifying Semantic of System Composition for an Aspect-Oriented Approach
More informationUsing 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 induruwc@cs.man.ac.uk
More informationEncapsulating 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
More informationThe Nature and Importance of a Programming Paradigm
Multiple Software Development Paradigms and Multi-Paradigm Software Development Valentino Vranić vranic@elf.stuba.sk Abstract: While OOP (including OOA/D) is reaching the level of maturity of structured
More informationGenerating 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 Iris.Groher@fh-hagenberg.at Stefan Schulze Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich,
More informationInternational Journal of Web & Semantic Technology (IJWesT) Vol.3, No.3, July 2012. Vishnuvardhan Mannava 1 and T. Ramesh 2
COMPOSITE DESIGN PATTERN FOR FEATURE- ORIENTED SERVICE INJECTION AND COMPOSITION OF WEB SERVICES FOR DISTRIBUTED COMPUTING SYSTEMS WITH SERVICE ORIENTED ARCHITECTURE Vishnuvardhan Mannava 1 and T. Ramesh
More informationPatterns in. Lecture 2 GoF Design Patterns Creational. Sharif University of Technology. Department of Computer Engineering
Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 2 GoF Design Patterns Creational 1 GoF Design Patterns Principles Emphasis on flexibility and reuse through decoupling of classes. The underlying
More informationDecomposition 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
More informationA 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
More informationA methodology for secure software design
A methodology for secure software design Eduardo B. Fernandez Dept. of Computer Science and Eng. Florida Atlantic University Boca Raton, FL 33431 ed@cse.fau.edu 1. Introduction A good percentage of the
More informationEvaluation of UML Extensions for Aspect Oriented Design
Evaluation of UML Extensions for Aspect Oriented Design Fernando Asteasuain, Bernardo Contreras, Elsa Estévez, Pablo R. Fillottrani Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional
More informationSeparating Concerns in Software Logistics
Separating Concerns in Software Logistics Danny Greefhorst Software Engineering Research Centre PO Box 424, 3500 AK The Netherlands greefhor@serc.nl Software logistics deals with the storage, administration,
More informationRelations: Abstracting Object Collaborations
Relations: Abstracting Object Collaborations Stephanie Balzer Patrick Eugster Thomas R. Gross Technical Report 539, 2006 Department of Computer Science, ETH Zurich Abstract Allowing the description of
More informationHow to Model Aspect-Oriented Web Services
How to Model Aspect-Oriented Web Services Guadalupe Ortiz Juan Hernández gobellot@unex.es juanher@unex.es Quercus Software Engineering Group University of Extremadura Computer Science Department Pedro
More informationOntological Representations of Software Patterns
Ontological Representations of Software Patterns Jean-Marc Rosengard and Marian F. Ursu University of London http://w2.syronex.com/jmr/ Abstract. This paper 1 is based on and advocates the trend in software
More informationDesign Patterns in C++
Design Patterns in C++ Concurrency Patterns Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa May 4, 2011 G. Lipari (Scuola Superiore Sant Anna) Concurrency Patterns May 4,
More informationSystems Integration: Co C mp m onent- t bas a e s d s o s ftw ft a w r a e r e ngin i eeri r n i g
Systems Integration: Component-based software engineering Objectives To explain that CBSE is concerned with developing standardised components and composing these into applications To describe components
More informationIntroduction CORBA Distributed COM. Sections 9.1 & 9.2. Corba & DCOM. John P. Daigle. Department of Computer Science Georgia State University
Sections 9.1 & 9.2 Corba & DCOM John P. Daigle Department of Computer Science Georgia State University 05.16.06 Outline 1 Introduction 2 CORBA Overview Communication Processes Naming Other Design Concerns
More informationIntegration 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 Bogumila.Hnatkowska@pwr.wroc.pl
More informationUsing Aspects to Design a Secure System
Using Aspects to Design a Secure System Geri Georg Indrakshi Ray Robert France Agilent Technologies Fort Collins, CO geri_georg@agilent.com Colorado State University Fort Collins, CO iray@cs.colostate.edu
More information10 Proxy Pattern [Gamma et al]
10 Pattern [Gamma et al] pattern is used in scenarios when it is required to use avoid heavy-weight objects. So lightweight objects that are actually replica of the original objects exposing the same interface
More informationA Methodological Approach to Domain Engineering for Software Variability Enhancement
A Methodological Approach to Domain Engineering for Software Variability Enhancement Alexandre Bragança 1,2 and Ricardo J. Machado 3 1 Dep. I&D, I2S Informática Sistemas e Serviços SA, Porto, Portugal,
More informationTowards a Unifying View on Security Contracts
Towards a Unifying View on Security Contracts Bart De Win, Frank Piessens, Jan Smans, Wouter Joosen Katholieke Universiteit Leuven Celestijnenlaan 200A 3001 Leuven, Belgium {bartd,frank,jans,wouter@cs.kuleuven.ac.be
More informationAspect-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
More informationImplementing COOL in JAMI
Implementing COOL in JAMI Steven te Brinke s.tebrinke@student.utwente.nl ABSTRACT JAMI aims to be a generic aspect interpreter framework which can be used to prototype a wide range of AOP languages. However,
More informationThe Service Revolution software engineering without programming languages
The Service Revolution software engineering without programming languages Gustavo Alonso Institute for Pervasive Computing Department of Computer Science Swiss Federal Institute of Technology (ETH Zurich)
More informationUSING 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 pcheng@cycollege.ac.cy
More informationChapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note
Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note Text book of CPET 545 Service-Oriented Architecture and Enterprise Application: SOA Principles of Service Design, by Thomas Erl, ISBN
More informationA SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT
A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT Cléver Ricardo Guareis de Farias, Marten van Sinderen and Luís Ferreira Pires Centre for Telematics and Information Technology (CTIT) PO Box
More informationPost object-oriented paradigms in software development: a comparative analysis
Proceedings of the International Multiconference on ISSN 1896-7094 Computer Science and Information Technology, pp. 1009 1020 2007 PIPS Post object-oriented paradigms in software development: a comparative
More informationVariability 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
More informationCOSC 3351 Software Design. Recap for the first quiz. Edgar Gabriel. Spring 2008. For the 1 st Quiz
COSC 3351 Software Design Recap for the first quiz Spring 2008 For the 1 st Quiz Three large topic areas: UML syntax and diagrams Software architectural styles Object oriented design principles A couple
More informationDistributed systems. Distributed Systems Architectures
Distributed systems Distributed Systems Architectures Virtually all large computer-based systems are now distributed systems. Information processing is distributed over several computers rather than confined
More informationA standards-based approach to application integration
A standards-based approach to application integration An introduction to IBM s WebSphere ESB product Jim MacNair Senior Consulting IT Specialist Macnair@us.ibm.com Copyright IBM Corporation 2005. All rights
More informationAspect-Oriented Web Development in PHP
Aspect-Oriented Web Development in PHP Jorge Esparteiro Garcia Faculdade de Engenharia da Universidade do Porto jorge.garcia@fe.up.pt Abstract. Aspect-Oriented Programming (AOP) provides another way of
More informationHow To Understand The Difference Between Business Process And Process Model In Java.Java.Org (Programming)
Business Process Modeling and Workflow Automation Ivo Vondrak * ivo.vondrak@vsb.cz Abstract: Process modeling and workflow applications have become more an more important during last decade. The main reason
More informationImplementing 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
More informationCORBAservices. Naming. Part of the CORBA Naming Service Interface in IDL. CORBA Naming Service
CORBAservices CORBAservices are general purpose and application independent services. They resemble and enhance services commonly provided by an operating system: Service Collection Query Concurrency Transaction
More informationUsing Aspects to Develop Built-In Tests for Components
Using Aspects to Develop Built-In Tests for Components Jean-Michel Bruel 1 João Araújo 2 Ana Moreira 2 Albert Royer 1 1 Computer Science Research Laboratory LIUPPA, University of Pau, France Phone: (+33)559.40.76.37
More informationA Meeting Room Scheduling Problem
A Scheduling Problem Objective Engineering, Inc. 699 Windsong Trail Austin, Texas 78746 512-328-9658 FAX: 512-328-9661 ooinfo@oeng.com http://www.oeng.com Objective Engineering, Inc., 1999-2007. Photocopying,
More informationAn Approach for Extracting Modules from Monolithic Software Architectures
An Approach for Extracting Modules from Monolithic Software Architectures Ricardo Terra, Marco Túlio Valente, Roberto S. Bigonha Universidade Federal de Minas Gerais, Brazil {terra,mtov,bigonha@dcc.ufmg.br
More informationAn 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
More informationAIPLE-IS: An Approach to Develop Product Lines for Information Systems Using Aspects
SBCARS 2007 AIPLE-IS: An Approach to Develop Product Lines for Information Systems Using Aspects Rosana T. Vaccare Braga, Fernão S. Rodrigues Germano, Stanley F. Pacios, Paulo C. Masiero Instituto de Ciências
More informationArchitecture. Reda Bendraou reda.bendraou{{@}}lip6.fr http://pagesperso-systeme.lip6.fr/reda.bendraou/
Architecture Reda Bendraou reda.bendraou{{@}}lip6.fr http://pagesperso-systeme.lip6.fr/reda.bendraou/ Some slides were adapted from L. Osterweil, B. Meyer, and P. Müller material Reda Bendraou LI386-S1
More informationExtending 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
More informationDynamic Adaptability of Services in Enterprise JavaBeans Architecture
1. Introduction Dynamic Adaptability of Services in Enterprise JavaBeans Architecture Zahi Jarir *, Pierre-Charles David **, Thomas Ledoux ** zahijarir@ucam.ac.ma, {pcdavid, ledoux}@emn.fr (*) Faculté
More informationJava (12 Weeks) Introduction to Java Programming Language
Java (12 Weeks) Topic Lecture No. Introduction to Java Programming Language 1 An Introduction to Java o Java as a Programming Platform, The Java "White Paper" Buzzwords, Java and the Internet, A Short
More informationA Framework for Virtual Enterprise Support Services
A Framework for Virtual Enterprise Support Services Vaggelis Ouzounis, Volker Tschammer ECCO Electronic Commerce Center of Competence, GMD-Fokus, Kaiserin-Augusta-Allee 31, D-10589, Berlin, Germany Tel:
More informationABSTRACT FACTORY AND SINGLETON DESIGN PATTERNS TO CREATE DECORATOR PATTERN OBJECTS IN WEB APPLICATION
ABSTRACT FACTORY AND SINGLETON DESIGN PATTERNS TO CREATE DECORATOR PATTERN OBJECTS IN WEB APPLICATION Vijay K Kerji Department of Computer Science and Engineering, PDA College of Engineering,Gulbarga,
More informationChap 1. Introduction to Software Architecture
Chap 1. Introduction to Software Architecture 1. Introduction 2. IEEE Recommended Practice for Architecture Modeling 3. Architecture Description Language: the UML 4. The Rational Unified Process (RUP)
More informationGlossary of Object Oriented Terms
Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction
More informationSupporting Software Change in the Programming Language
Supporting Software Change in the Programming Language Oscar Nierstrasz and Marcus Denker Software Composition Group University of Bern www.iam.unibe.ch/ scg Keywords: sofware evolution, languages, traits,
More informationEugene Wallingford Department of Computer Science University of Northern Iowa Cedar Falls, Iowa 50614-0507 wallingf@cs.uni.edu
TOWARD A FIRST COURSE BASED ON OBJECT-ORIENTED PATTERNS Eugene Wallingford Department of Computer Science University of Northern Iowa Cedar Falls, Iowa 50614-0507 wallingf@cs.uni.edu 1 INTRODUCTION Many
More informationDesign Patterns. Design patterns are known solutions for common problems. Design patterns give us a system of names and ideas for common problems.
Design Patterns Design patterns are known solutions for common problems. Design patterns give us a system of names and ideas for common problems. What are the major description parts? Design Patterns Descriptions
More informationThe Concern-Oriented Software Architecture Analysis Method
The Concern-Oriented Software Architecture Analysis Method Author: E-mail: Student number: Supervisor: Graduation committee members: Frank Scholten f.b.scholten@cs.utwente.nl s0002550 Dr. ir. Bedir Tekinerdoǧan
More informationButton, Button, Whose got the Button?
,, Whose got the?,, Whose got the? (Patterns for breaking client/server relationships) By Robert C. Martin Introduction How many design patterns does it take to turn on a table lamp? This question was
More informationMapping from Business Processes to Requirements Specification
Extended abstract 1/5 Mapping from Business Processes to Requirements Specification Svatopluk Štolfa, Ivo Vondrák Department of Computer Science, VŠB - Technical University of Ostrava, 17.listopadu 15,
More informationRepresentation-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
More informationA Framework for the Semantics of Behavioral Contracts
A Framework for the Semantics of Behavioral Contracts Ashley McNeile Metamaxim Ltd, 48 Brunswick Gardens, London W8 4AN, UK ashley.mcneile@metamaxim.com Abstract. Contracts have proved a powerful concept
More informationSOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q. Exam Code: S90-03A. Exam Name: SOA Design & Architecture
SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q Number: S90-03A Passing Score: 800 Time Limit: 120 min File Version: 14.5 http://www.gratisexam.com/ Exam Code: S90-03A Exam Name:
More informationThe ConTract Model. Helmut Wächter, Andreas Reuter. November 9, 1999
The ConTract Model Helmut Wächter, Andreas Reuter November 9, 1999 Overview In Ahmed K. Elmagarmid: Database Transaction Models for Advanced Applications First in Andreas Reuter: ConTracts: A Means for
More informationHow 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
More informationDistributed 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,
More informationLearn Java - The Application Monitor Aspect Pattern
The Application Monitor Aspect Pattern Roberta Coelho Pontifical Catholic University of Rio de Janeiro (PUC-Rio) Rio de Janeiro, Brazil roberta@inf.puc-rio.br Ayla Dantas Universidade Federal de Campina
More informationForeverSOA: Towards the Maintenance of Service Oriented Software
Author manuscript, published in "SQM 20 - Fifth CSMR International Workshop on Software Quality and Maintainability (20)" ForeverSOA: Towards the Maintenance of Service Oriented Software Dionysis Athanasopoulos
More informationDelivering Heterogeneous Hydrologic Data services with an Enterprise Service Bus Application
18 th World IMACS / MODSIM Congress, Cairns, Australia 13-17 July 2009 http://mssanz.org.au/modsim09 Delivering Heterogeneous Hydrologic Data services with an Enterprise Service Bus Abstract: Bai, Q.F
More informationVARIABILITY MODELING FOR CUSTOMIZABLE SAAS APPLICATIONS
VARIABILITY MODELING FOR CUSTOMIZABLE SAAS APPLICATIONS Ashraf A. Shahin 1, 2 1 College of Computer and Information Sciences, Al Imam Mohammad Ibn Saud Islamic University (IMSIU) Riyadh, Kingdom of Saudi
More informationGenericServ, a Generic Server for Web Application Development
EurAsia-ICT 2002, Shiraz-Iran, 29-31 Oct. GenericServ, a Generic Server for Web Application Development Samar TAWBI PHD student tawbi@irit.fr Bilal CHEBARO Assistant professor bchebaro@ul.edu.lb Abstract
More informationMonitors, Java, Threads and Processes
Monitors, Java, Threads and Processes 185 An object-oriented view of shared memory A semaphore can be seen as a shared object accessible through two methods: wait and signal. The idea behind the concept
More informationIntroduction to Service Oriented Architectures (SOA)
Introduction to Service Oriented Architectures (SOA) Responsible Institutions: ETHZ (Concept) ETHZ (Overall) ETHZ (Revision) http://www.eu-orchestra.org - Version from: 26.10.2007 1 Content 1. Introduction
More informationEMBEDDED SOFTWARE DEVELOPMENT: COMPONENTS AND CONTRACTS
EMBEDDED SOFTWARE DEVELOPMENT: COMPONENTS AND CONTRACTS David URTING, Stefan VAN BAELEN, Tom HOLVOET and Yolande BERBERS {David.Urting, Stefan.VanBaelen, Tom.Holvoet, Yolande.Berbers}@cs.kuleuven.ac.be
More informationAn Exception Monitoring System for Java
An Exception Monitoring System for Java Heejung Ohe and Byeong-Mo Chang Department of Computer Science, Sookmyung Women s University, Seoul 140-742, Korea {lutino, chang@sookmyung.ac.kr Abstract. Exception
More informationOASIS: Organic Aspects for System Infrastructure Software Easing Evolution and Adaptation through Natural Decomposition
OASIS: Organic Aspects for System Infrastructure Software Easing Evolution and Adaptation through Natural Decomposition Celina Gibbs and Yvonne Coady University of Victoria Abstract It is becoming increasingly
More informationCoordinated Visualization of Aspect-Oriented Programs
Coordinated Visualization of Aspect-Oriented Programs Álvaro F. d Arce 1, Rogério E. Garcia 1, Ronaldo C. M. Correia 1 1 Faculdade de Ciências e Tecnologia Universidade Estadual Paulista Júlio de Mesquita
More informationProGUM-Web: Tool Support for Model-Based Development of Web Applications
ProGUM-Web: Tool Support for Model-Based Development of Web Applications Marc Lohmann 1, Stefan Sauer 1, and Tim Schattkowsky 2 1 University of Paderborn, Computer Science, D 33095 Paderborn, Germany {mlohmann,sauer}@upb.de
More informationA Service Modeling Approach with Business-Level Reusability and Extensibility
A Service Modeling Approach with Business-Level Reusability and Extensibility Jianwu Wang 1,2, Jian Yu 1, Yanbo Han 1 1 Institute of Computing Technology, Chinese Academy of Sciences, 100080, Beijing,
More informationChapter 4 Software Lifecycle and Performance Analysis
Chapter 4 Software Lifecycle and Performance Analysis This chapter is aimed at illustrating performance modeling and analysis issues within the software lifecycle. After having introduced software and
More informationObject Oriented Design
Object Oriented Design Kenneth M. Anderson Lecture 20 CSCI 5828: Foundations of Software Engineering OO Design 1 Object-Oriented Design Traditional procedural systems separate data and procedures, and
More informationIntroduction. Observation Patterns. Accounting Patterns. How to use Patterns
Analysis Martin Fowler fowler@acm acm.org http://ourworld ourworld.compuserve.com/homepages/martin_fowler Page Martin Fowler 9//99 What we will cover Introduction Observation Accounting How to use Page
More informationIntegration of Application Business Logic and Business Rules with DSL and AOP
e-informatica Software Engineering Journal, Volume 4, Issue, 200 Integration of Application Business Logic and Business Rules with DSL and AOP Bogumiła Hnatkowska, Krzysztof Kasprzyk Faculty of Computer
More informationArchitecture Design & Sequence Diagram. Week 7
Architecture Design & Sequence Diagram Week 7 Announcement Reminder Midterm I: 1:00 1:50 pm Wednesday 23 rd March Ch. 1, 2, 3 and 26.5 Hour 1, 6, 7 and 19 (pp.331 335) Multiple choice Agenda (Lecture)
More informationThe Application Monitor Aspect Pattern
The Application Monitor Aspect Pattern Roberta Coelho 1 Ayla Dantas 2 Uirá Kulesza 1 Walfredo Cirne 2 Arndt von Staa 1 Carlos Lucena 1 1 Computer Science Department Pontifical Catholic University of Rio
More informationA Thread Monitoring System for Multithreaded Java Programs
A Thread Monitoring System for Multithreaded Java Programs Sewon Moon and Byeong-Mo Chang Department of Computer Science Sookmyung Women s University, Seoul 140-742, Korea wonsein@nate.com, chang@sookmyung.ac.kr
More informationKWIC Exercise. 6/18/2007 2007, Spencer Rugaber 1
KWIC Exercise On a subsequent slide, you will be given the description of a simple program for which you will be asked to devise two architectures. For the purposes of this exercise, you should imagine
More informationMonitor Object. An Object Behavioral Pattern for Concurrent Programming. Douglas C. Schmidt
Monitor Object An Object Behavioral Pattern for Concurrent Programming Douglas C. Schmidt schmidt@cs.wustl.edu Department of Computer Science Washington University, St. Louis 1 Intent The Monitor Object
More informationSoftware Engineering
Software Engineering Lecture 06: Design an Overview Peter Thiemann University of Freiburg, Germany SS 2013 Peter Thiemann (Univ. Freiburg) Software Engineering SWT 1 / 35 The Design Phase Programming in
More informationTool Support for Software Variability Management and Product Derivation in Software Product Lines
Tool Support for Software Variability Management and Product Derivation in Software s Hassan Gomaa 1, Michael E. Shin 2 1 Dept. of Information and Software Engineering, George Mason University, Fairfax,
More informationWhite Paper March 1, 2005. Integrating AR System with Single Sign-On (SSO) authentication systems
White Paper March 1, 2005 Integrating AR System with Single Sign-On (SSO) authentication systems Copyright 2005 BMC Software, Inc. All rights reserved. BMC, the BMC logo, all other BMC product or service
More informationRequirements for Software Deployment Languages and Schema
Requirements for Software Deployment Languages and Schema Richard S. Hall, Dennis Heimbigner, Alexander L. Wolf Software Engineering Research Laboratory Department of Computer Science University of Colorado
More informationArchitectural Patterns (3)
Scatter/Gather Architectural Patterns (3) Prof. Cesare Pautasso http://www.pautasso.info cesare.pautasso@usi.ch @pautasso Goal: send the same message to multiple recipients which will (or may) reply to
More informationHow service-oriented architecture (SOA) impacts your IT infrastructure
IBM Global Technology Services January 2008 How service-oriented architecture (SOA) impacts your IT infrastructure Satisfying the demands of dynamic business processes Page No.2 Contents 2 Introduction
More informationService-Oriented Architectures
Architectures Computing & 2009-11-06 Architectures Computing & SERVICE-ORIENTED COMPUTING (SOC) A new computing paradigm revolving around the concept of software as a service Assumes that entire systems
More informationMDE Adoption in Industry: Challenges and Success Criteria
MDE Adoption in Industry: Challenges and Success Criteria Parastoo Mohagheghi 1, Miguel A. Fernandez 2, Juan A. Martell 2, Mathias Fritzsche 3 and Wasif Gilani 3 1 SINTEF, P.O.Box 124-Blindern, N-0314
More informationChallenges and Opportunities for formal specifications in Service Oriented Architectures
ACSD ATPN Xi an China June 2008 Challenges and Opportunities for formal specifications in Service Oriented Architectures Gustavo Alonso Systems Group Department of Computer Science Swiss Federal Institute
More informationDefinition of SOA. Capgemini University Technology Services School. 2006 Capgemini - All rights reserved November 2006 SOA for Software Architects/ 2
Gastcollege BPM Definition of SOA Services architecture is a specific approach of organizing the business and its IT support to reduce cost, deliver faster & better and leverage the value of IT. November
More informationImplementing 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 tshivhasef@tuks.co.za, 2 hventer@cs.up.ac.za, 3 eloff@cs.up.ac.za Information and Computer
More informationA Reference Model for Process-Oriented Software Development Organizations
A Reference Model for Process-Oriented Software Development Organizations João M. Fernandes 1 and Francisco J. Duarte 2 1 Dep. Informática, Universidade do Minho, Braga, Portugal 2 Blaupunkt Auto-Rádio
More information