Composing Concerns with a Framework Approach

Size: px
Start display at page:

Download "Composing Concerns with a Framework Approach"

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 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 information

Introducing a Graduate Course on. called Aspect-Oriented Software Development

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*

More information

Keywords Aspect-Oriented Modeling, Rule-based graph transformations, Aspect, pointcuts, crosscutting concerns.

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

More information

Verifying Semantic of System Composition for an Aspect-Oriented Approach

Verifying 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 information

Using an Aspect Oriented Layer in SOA for Enterprise Application Integration

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 induruwc@cs.man.ac.uk

More information

Encapsulating Crosscutting Concerns in System Software

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

More information

The Nature and Importance of a Programming Paradigm

The 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 information

Generating Aspect Code from UML Models

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 Iris.Groher@fh-hagenberg.at Stefan Schulze Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich,

More information

International Journal of Web & Semantic Technology (IJWesT) Vol.3, No.3, July 2012. Vishnuvardhan Mannava 1 and T. Ramesh 2

International 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 information

Patterns in. Lecture 2 GoF Design Patterns Creational. Sharif University of Technology. Department of Computer Engineering

Patterns 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 information

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

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

More information

A COMPARISON OF AOP BASED MONITORING TOOLS

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

More information

A methodology for secure software design

A 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 information

Evaluation of UML Extensions for Aspect Oriented Design

Evaluation 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 information

Separating Concerns in Software Logistics

Separating 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 information

Relations: Abstracting Object Collaborations

Relations: 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 information

How to Model Aspect-Oriented Web Services

How 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 information

Ontological Representations of Software Patterns

Ontological 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 information

Design Patterns in C++

Design 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 information

Systems 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: 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 information

Introduction CORBA Distributed COM. Sections 9.1 & 9.2. Corba & DCOM. John P. Daigle. Department of Computer Science Georgia State University

Introduction 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 information

Integration of Application Business Logic and Business Rules with DSL and AOP

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 Bogumila.Hnatkowska@pwr.wroc.pl

More information

Using Aspects to Design a Secure System

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 geri_georg@agilent.com Colorado State University Fort Collins, CO iray@cs.colostate.edu

More information

10 Proxy Pattern [Gamma et al]

10 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 information

A Methodological Approach to Domain Engineering for Software Variability Enhancement

A 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 information

Towards a Unifying View on Security Contracts

Towards 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 information

Aspect-Oriented Software Development based Solution for Intervention Concerns Problems:Case Study

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

More information

Implementing COOL in JAMI

Implementing 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 information

The Service Revolution software engineering without programming languages

The 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 information

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 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 information

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note

Chapter 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 information

A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT

A 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 information

Post object-oriented paradigms in software development: a comparative analysis

Post 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 information

Variability in Service-Oriented Systems: An Analysis of Existing Approaches

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

More information

COSC 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. 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 information

Distributed systems. Distributed Systems Architectures

Distributed 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 information

A standards-based approach to application integration

A 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 information

Aspect-Oriented Web Development in PHP

Aspect-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 information

How To Understand The Difference Between Business Process And Process Model In Java.Java.Org (Programming)

How 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 information

Implementing QoS Aware Component-Based Applications

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

More information

CORBAservices. Naming. Part of the CORBA Naming Service Interface in IDL. CORBA Naming Service

CORBAservices. 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 information

Using Aspects to Develop Built-In Tests for Components

Using 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 information

A Meeting Room Scheduling Problem

A 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 information

An Approach for Extracting Modules from Monolithic Software Architectures

An 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 information

An Architecture-Based Approach for Component-Oriented Development

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

More information

AIPLE-IS: An Approach to Develop Product Lines for Information Systems Using Aspects

AIPLE-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 information

Architecture. 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/ 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 information

Extending an Open-Source BPEL Engine with Aspect-Oriented Programming

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

More information

Dynamic Adaptability of Services in Enterprise JavaBeans Architecture

Dynamic 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 information

Java (12 Weeks) Introduction to Java Programming Language

Java (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 information

A Framework for Virtual Enterprise Support Services

A 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 information

ABSTRACT 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 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 information

Chap 1. Introduction to Software Architecture

Chap 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 information

Glossary of Object Oriented Terms

Glossary 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 information

Supporting Software Change in the Programming Language

Supporting 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 information

Eugene Wallingford Department of Computer Science University of Northern Iowa Cedar Falls, Iowa 50614-0507 wallingf@cs.uni.edu

Eugene 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 information

Design 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. 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 information

The Concern-Oriented Software Architecture Analysis Method

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 f.b.scholten@cs.utwente.nl s0002550 Dr. ir. Bedir Tekinerdoǧan

More information

Button, Button, Whose got the Button?

Button, 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 information

Mapping from Business Processes to Requirements Specification

Mapping 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 information

Representation-Oriented Software Development: A cognitive approach to software engineering

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

More information

A Framework for the Semantics of Behavioral Contracts

A 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 information

SOACertifiedProfessional.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. 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 information

The ConTract Model. Helmut Wächter, Andreas Reuter. November 9, 1999

The 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 information

How To Combine Feature-Oriented And Aspect-Oriented Programming To Support Software Evolution

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

More information

Distributed Systems Development: Can we Enhance Evolution by using AspectJ?

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,

More information

Learn Java - The Application Monitor Aspect Pattern

Learn 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 information

ForeverSOA: Towards the Maintenance of Service Oriented Software

ForeverSOA: 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 information

Delivering Heterogeneous Hydrologic Data services with an Enterprise Service Bus Application

Delivering 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 information

VARIABILITY MODELING FOR CUSTOMIZABLE SAAS APPLICATIONS

VARIABILITY 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 information

GenericServ, a Generic Server for Web Application Development

GenericServ, 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 information

Monitors, Java, Threads and Processes

Monitors, 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 information

Introduction to Service Oriented Architectures (SOA)

Introduction 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 information

EMBEDDED SOFTWARE DEVELOPMENT: COMPONENTS AND CONTRACTS

EMBEDDED 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 information

An Exception Monitoring System for Java

An 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 information

OASIS: 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 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 information

Coordinated Visualization of Aspect-Oriented Programs

Coordinated 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 information

ProGUM-Web: Tool Support for Model-Based Development of Web Applications

ProGUM-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 information

A Service Modeling Approach with Business-Level Reusability and Extensibility

A 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 information

Chapter 4 Software Lifecycle and Performance Analysis

Chapter 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 information

Object Oriented Design

Object 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 information

Introduction. Observation Patterns. Accounting Patterns. How to use Patterns

Introduction. 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 information

Integration of Application Business Logic and Business Rules with DSL and AOP

Integration 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 information

Architecture Design & Sequence Diagram. Week 7

Architecture 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 information

The Application Monitor Aspect Pattern

The 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 information

A Thread Monitoring System for Multithreaded Java Programs

A 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 information

KWIC Exercise. 6/18/2007 2007, Spencer Rugaber 1

KWIC 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 information

Monitor Object. An Object Behavioral Pattern for Concurrent Programming. Douglas C. Schmidt

Monitor 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 information

Software Engineering

Software 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 information

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

Tool 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 information

White 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 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 information

Requirements for Software Deployment Languages and Schema

Requirements 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 information

Architectural Patterns (3)

Architectural 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 information

How service-oriented architecture (SOA) impacts your IT infrastructure

How 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 information

Service-Oriented Architectures

Service-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 information

MDE Adoption in Industry: Challenges and Success Criteria

MDE 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 information

Challenges and Opportunities for formal specifications in Service Oriented Architectures

Challenges 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 information

Definition of SOA. Capgemini University Technology Services School. 2006 Capgemini - All rights reserved November 2006 SOA for Software Architects/ 2

Definition 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 information

Implementing Application and Network Security using Aspectoriented

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 tshivhasef@tuks.co.za, 2 hventer@cs.up.ac.za, 3 eloff@cs.up.ac.za Information and Computer

More information

A Reference Model for Process-Oriented Software Development Organizations

A 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