Adaptive Object-Model Metadata Evolver

Size: px
Start display at page:

Download "Adaptive Object-Model Metadata Evolver"

Transcription

1 Adaptive Object-Model Metadata Evolver Atzmon Hen-Tov Pontis David H. Lorenz Open University Lena Nikolaev Pontis Lior Schachter Open University Rebecca Wirfs-Brock Wirfs-Brock Associates Joseph W. Yoder The Refactory, Inc. Introduction An Adaptive Object-Model (AOM) system represents user-defined domain classes (and their relationships) as metadata [YBJ01; YJ02]. The AOM system is a model represented by objects rather than classes. The object model is constructed at run time by interpreting externally stored definitions (metadata). Users change the object model (or the metadata) to reflect changes in the domain. One way to support model evolution is to take the system off-line, evolve the metadata and the domain objects, and perform a clean restart of the system after a careful release and upgrade. However, when a system needs to keep running, or when updating the entire model at the time a new version needs to come online is too time consuming, then the evolution of the metadata and the domain objects can be included as a part of the model loader. Target Audience The pattern presented in this paper focuses on updating the metadata as either the core meta-architecture or the domain model of an AOM evolves. This pattern is particularly relevant to developers of AOM systems. It may also be relevant to those who need to evolve other types of meta-architectures. We assume the reader has some background knowledge of AOM systems (mainly TYPE OBJECT [JW98], PROPERTIES [JW98], and TYPE-SQUARE [YBJ01] or DYNAMIC OBJECT MODEL [RTJ05] based architectures). 1

2 AOM Metadata Evolver Context You are upgrading a 24x7 production system that is implemented using an AOM. You find that implementing new functionality requires changes to the AOM architecture. For example, a core update to the AOM architecture may be required. You want to make these changes available to a running production system where there is already considerable metadata and data in the system based upon a previous version of the AOM architecture. Your model relies on a TYPE OBJECT [JW98] to dynamically define new business entities for the system. Entities have attributes, which are implemented with the PROPERTIES [JW98] pattern. The TYPE OBJECT pattern is used a second time to define the legal types of attributes, called AttributeTypes. Thus you are using TYPE SQUARE [YBJ01], a combination of TYPE OBJECT [JW98] and PROPERTIES [JW98] patterns. Additionally you might be using these patterns: ENTITYRELATIONSHIP (ACCOUNTABILITY) [WYW09], RULEOBJECTS [Ars00], HISTORY OF OPERATIONS [FCW08], SYSTEM MEMENTO [FCW08], and MIGRATION [FCW08]. Problem How can you evolve at runtime the metadata and the data associated with a live and running AOM as its core architecture changes? Forces Polymorphism: The rules for creating an entity may vary according to its type or according to rules that apply to its data. A monolithic upgrade logic will not manage model evolution well, i.e., a solution that doesn t support polymorphism in the upgrade logic will be hard to manage against a polymorphic model.. Customisability: There are many customers using the product, each customer may modify its own AOM model. The new architecture needs to be able to understand different versions of the AOM model. A solution that doesn t let the customer team resolve conflicts autonomously will require reimplementation of the customization. Legacy Data: There may be large amounts of stored instances, excluding the possibility for off-line data migration in a short maintenance window. Solution Use an AOM BUILDER [WYW09] to create entities (Figure 1). Add as the first step in your AOM-Builder an UpgradeBuildStep to check whether the data associated with an entity-type has been defined with the current version of the AOM. If not, invoke the necessary upgrade scripts that will evolve the data to map to the current version of the AOM. Each entity-type may have several upgrade scripts (Figure 2), some of which are supplied with the new product version and some that are added manually by the user (per customized installation of the AOM system). 2

3 Figure 1: Upgrade Builder Step This process can include migrating metadata and data from many versions before so there may be a chain of version upgrades that needs to be applied. For that to work, every persistent object (Entity, EntityType) has a version field (Figure 2). A system-wide parameter holds the currently installed version. When upgrading the system a collection of ModelVersion entities and the associated upgrade scripts are available to the UpgradeManager. Figure 2: Upgrade Framework Class Diagram 3

4 The UpgradeManager is responsible for determining which scripts are necessary to invoke. This is carried out by consulting the EntityType and the migration converstions each Upgrader handles. This logic includes querying a flag (overridesuper) to determine whether or not the EntityType superclass Upgraders should be used. An Upgrader edits the raw AOM data (e.g., XML) and transforms it to the new version format. The raw data transformation is the responsibility of the Upgrader.upgrade method (Figure 2). Updating the raw data values of AOM objects in the BuildContext is carried out by the UpgradeManager (Figure 1). The BuildContext is part of the AOMBuilder. The upgrade framework provides an API (using the PROXY pattern) for manipulating raw data format. This lets the script programmer concentrate on the transformation from the old version to the new one, rather than dealing with the raw data format [BMR+96]. Dynamics The overall process requires a staging server (Figure 3) in which the new version is installed and the AOM metadata from the production system is brought into the running system. Conflicts between modification done by developers in the new version of the product and modifications done at production by end users are reported in the Problems view (see BREAK AND CORRECT [HNS+10]) and the user needs to resolve them. For example, if an entity type has a new property with the same name of a property defined in an AOM type, the user will need to change the dynamically defined property name. The product team prepares placeholder update scripts for cases where they think a customer specific upgrade script is needed (for example, when a new mandatory property is defined and a simple default value will not suffice). After all conflicts are resolved and all placeholder scripts are written, the customer team can test the new version along with the entire set of upgrade scripts. During production deployment, the upgrade framework is invoked as a first step in the AOM-BUILDER and performs just-in-time instance upgrades as described above (invoked as script hook points during the build process). 4

5 Figure 3. AOM Evolution Process Example For example, consider an AOM implementation of an online marketing system, designed for running Telephony campaigns targeted at different subscriber segments [HLPS09]. Figure 4 shows several classes in the AOM and several instantiated entities. 5

6 Figure 4. The AOM Model and Instances. A generic product comprises several general-purpose classes, such as Benefit and Event. Benefit describes specific campaigns. Event describes the trigger for activating Benefits. Each Benefit is associated with an EventType to define which type of Event can trigger grant of this Benefit type. BenefitType and EventType are part of the AOM TYPE OBJECT pattern. These generic classes can be specialized for a particular customer. In our example, the customer defined two kinds of Benefits: FreeSms and FreeAstrologicalPrediction; and three kinds of Events: SmsEvent, TopupEvent, and VoiceCallEvent. FreeSms is activated by an SmsEvent and grants the user with free units of Sms sends. The number of units is defined in the Benefit class. FreeAstrologicalPrediction is activated by a TopUpEvent and grants the user with free units of daily predictions. For simplicity we omit details such as the conditioning for granting benefits, e.g., send 200 text messages 6

7 this week and get 100 more sends for free. In addition, the customer took advantage of the AOM architecture and added a CAP instance variable in FreeAstrologicalPrediction. This variable is used by the customer to set a special cap on the number of free units that limits the overall cost of the benefit to the service provider in keeping with the marketing budget for this campaign. At runtime, instantiations of specific benefits represent specific products. For example, 100FreeSms sets the benefit to 100 units of free SMS's. WeekFreeAstrologicalPrediction sets the benefit to 7 days of free predictions with a maximum cap of 1904 days total for all users collectively to keep within a $10K budget. Upgrade Scenario The next version of the AOM system needs to incorporate two improvements (Figure 5). First, the cardinality of the association between BenefitType and EventType needs to change from 1:1 to 1:M. In this new version each benefit may be triggered by several event types. Second, to improve budget control, a new monetary CAP is introduced in the generic framework (in the Benefit class), along with a costperunit (in BenefitType). When granting benefits to end users, the system checks that the CAP is not exceeded, otherwise it fails the grant. This is implemented in the new version of the Benefit class. Next we consider the conflicts that may occur during the upgrade and their resolution. Generic upgrade scripts: The cardinality change is a change to the type of benefits, thus affecting FreeSMS and FreeAstrologicalPrediction. This is resolved by providing an upgrade script that converts an event type value to an event type list containing a single event type value. The script is provided as part of the generic system upgrade: if (oldinstance.gettriggertype()!= null) { newinstance.gettriggertypes().add(oldinstance.gettriggertype()); } The generic product can contain a library of recurring refactoring scenarios and their solutions (e.g., property rename). Customer upgrade scripts: Not all upgrade scenarios can be resolved automatically. In some cases specific business logic should be applied in order to resolve the conflict. For example, the cost-per-unit modification cannot be resolved generically. The new property is mandatory and therefore must be initialized. Therefore, the customer needs to supply the cost on case-by-case basis. This is achieved by defining a placeholder script that the customer team needs to implement. The addition of the CAP variable clashes with pre-existing customizations performed to the model by the customer. Specifically, the addition conflicts with the CAP introduced earlier by the customer. To resolve this conflict, the customer needs to rename the original CAP to oldcap and provide an upgrade script that calculates the CAP value for existing model instances. This can be accomplished by multiplying the oldcap by the costperunit and the number of units. newinstance.setoldcap(oldinstance.getcap()); 7

8 newinstance.setcap( oldinstance.getoldcap() * oldinstancenewinstance.gettype().getcostperunit() * oldinstance.getunits()); The FreeSMS is simpler: the customer just needs to define a default value. Although the example presented here is of an application domain change, the pattern applies as well to core AOM architecture changes, such as changing the serialization format of AOM objects. Figure 5. New Version of the AOM Model. 8

9 Alternative Solution The core solution presented in this pattern is based upon lazily evolving the metadata as the system evolves; primarily for modifying systems that need to be running 24x7. However there is a very common alternative (or possible pattern) to the core solution mentioned in this paper that can be used when you need to Evolve your Metadata and you don t have such execution constraints. This is to suspend your AOM system and completely migrate all of your metadata before resuming the system. This alternative is premised on the ability to completely shut down the running AOM system. This allows for a script to completely evolve all of the metadata before bringing your AOM system back online. This solution has the benefit of allowing the metadata to always be consistent with the AOM and will also perform better as the system will not need to invoke checks and hooks in order to possibly evolve the metadata as it is loaded and instantiated. There are definitely tradeoffs to either solution but the core solution mentioned in this paper requires interesting enhancements to the core of the AOM architecture, while this alternative solution does not affect the architecture of the AOM. Resulting Context High Availability: Changes to the AOM architecture can be made without having to stop a running system and then evolve all the previous metadata and data at the same time. Amortized Cost: The overhead of converting data to the new AOM architecture occurs incrementally. Automatic Migration: Default migration can be provided for the changes to the core AOM metadata and architecture using generic scripts. An AOM system may be upgraded from a much earlier version to the latest version without going through the intermediate versions Reuse: Generic upgrades can be provided by the upgrade framework (e.g., for rename property). Usability: Users are supported in resolving version conflicts. Higher Complexity: The AOM Builder code is more complex as hook methods and evolution code will become part of the Builder. Performance Hit: The AOM Builders can be slower at first as the upgrade to the metadata is invoked. Running version checks every time an entity is created can degrade performance. Fragility: Cached AOM data may need to be flushed to force data evolution of existing in-memory AOM instances. Related Patterns History Patterns [AND98] allows for different version of the rules to be available thus going back in time but can add a lot of complexity to the system. Also, in some systems you only want the current version of the AOM architecture and rules. AOM BUILDER [WYW09] is an evolution of the BUILDER [GoF95] pattern. 9

10 AOM Builder is used to invoke the Upgrade Scripts [HNS+10]. Customer upgrade scripts are implemented using the PLACEHOLDER PATTERN [FJS99]. HOOKS [FPR01] are invoked in the AOM loader to enable customers to provide default values for AOM attributes when migrating to a new version. Known Uses Pontis Ltd. ( is a provider of Online Marketing solutions for Communication Service Providers. Pontis Marketing Delivery Platform allows for onsite customization and model evolution by non-programmers. The system is developed using ModelTalk [HLPS09] based on AOM patterns. Pontis system is deployed in over 20 customer sites including Tier I Telcos. A typical customer system handles tens of millions of transactions a day exhibiting Telco-Grade performance and robustness. There is a mutation technique developed for migrating objects in Smalltalk-80 [CW86] that is a known use of the core of this pattern. These authors made an enhancement to Smalltalk that changed how class redefinitions worked. The original Smalltak-80 system mutated all existing instances to use the new representation whenever a class was redefined. To eliminate the overhead of this bulk object mutation, the new approach used lazy mutation. Lazy mutation defers object mutation until it is actually used in a computation. Lazy mutation is accomplished by replacing the method dictionary of the old class definition with a dictionary which defines only the message doesnotunderstand:. In addition, the superclass of the old class definition is set to nil and a reference to the new class definition is stored within the old definition. When a message is sent to such an instance of the old class, a response to the message will not be found and the doesnotunderstand: method will be activated. This method contains the code to mutate the instance into an instance of the new class. The difference between this approach and the pattern described in this paper is that lazy mutation only applies a single evolution to an object, not a chain of replacements. An AOM system developed for the Illinois Department of Public Health used the alternative solution mentioned above. There are also many other well-known uses of the alternative solution done by some of the authors. 10

11 References [AOM] [And98] [Ars00] Adaptive Object-Models. Anderson, F. A Collection of History Patterns. Proceedings of the 6 th Pattern Language of Programs Conference (PLoP 1998), Monticello, Illinois, USA, Arsanjani, A. Rule Object Pattern Language. Proceedings of the 8 th Pattern Language of Programs Conference (PLoP 2000). Technical Report WUCS-00-29, Dept. of Computer Science, Washington University Department of Computer Science. (2000). [BMR+96] Buschman, F., Meunier, R., Rohnert, H., Sommerlad, P., and Stal, M. Pattern Oriented Software Architecture, Volume 1: A System of Patterns. Wiley & Sons [BR98] [CW86] [FCW08] [Fow97] [Fow02] [FPR01] [FY98] [GoF95] [HNS+10] [HLPS09] [Jon99] Bäumer, D., D. Riehle. Product Trader. Pattern Languages of Program Design 3. Edited by Robert Martin, Dirk Riehle, and Frank Buschmann. Addison-Wesley, Caudill, P., Wirfs-Brock A. "A Third Generation Smalltalk-80 Implementation.", p , OOPSLA '86 Conference Proceedings, Portland Oregon, September 29-October 2, Ferreira, H. S., Correia, F. F., and Welicki, L Patterns for data and metadata evolution in adaptive object-models. Proceedings of the 15th Conference on Pattern Languages of Programs (Nashville, Tennessee, October 18-20, 2008). PLoP '08, vol ACM, New York, NY, 1-9. Fowler, M. Analysis Patterns: Reusable Object Models. Addison- Wesley Fowler, M. Patterns of Enterprise Application Architecture. Addison-Wesley Fontura, M., Pree, W., Rump, B. The UML Profile for Framework Architectures. Addison-Wesley Foote B, J. Yoder. Metadata and Active Object Models. Proceedings of Plop98. Technical Report #wucs-98-25, Dept. of Computer Science, Washington University Department of Computer Science, October Gamma, E., R. Helm, R. Johnson, J. Vlissides. Design Patterns: Elements of Reusable Object Oriented Software. Addison-Wesley Atzmon Hen-Tov, Lena Nikolaev, Lior Schachter, Joseph W. Yoder, Rebecca Wirfs-Brock. Adaptive Object-Model Evolution Patterns, SugarLoafPLoP To appear. Atzmon Hen-Tov, David H. Lorenz, Assaf Pinhasi, Lior Schachter: ModelTalk: When Everything Is a Domain-Specific Language, IEEE Software, vol. 26, no. 4, pp , July/Aug Jones, S. A Framework Recipe. Building Application Frameworks: Object-Oriented Foundations of Framework Design. Edited by Fayed, M., Johnson, R., Schmidt,.D. John Wiley & Sons

12 [JW98] [KJ04] [KSS05] [Mar02] [RFBO01] [RTJ05] [RY01] [WYWJ07] [WYW09] [WYW07] [YBJ01] [YJ02] [YR00] Johnson, R., R. Wolf. Type Object. Pattern Languages of Program Design 3. Addison-Wesley, Kircher, M.; P. Jain. Pattern Oriented Software Architecture, Volume 3: Patterns for Resource Management. Wiley & Sons Krishna, A., D.C. Schmidt, M. Stal. Context Object: A Design Pattern for Efficient Middleware Request Processing. 13 th Pattern Language of Programs Conference (PLoP 2005), Monticello, Illinois, USA, Martin, R. Agile Software Development: Principles, Patterns, and Practices. Prentice Hall, Riehle, D., Fraleigh S., Bucka-Lassen D., Omorogbe N. The Architecture of a UML Virtual Machine. Proceedings of the 2001 Conference on Object-Oriented Program Systems, Languages and Applications (OOPSLA 01), October Riehle D., M. Tilman, and R. Johnson. Dynamic Object Model. Pattern Languages of Program Design 5. Edited by Dragos Manolescu, Markus Völter, James Noble. Reading, MA: Addison- Wesley, Revault, N, J. Yoder. Adaptive Object-Models and Metamodeling Techniques Workshop Results. Proceedings of the 15th European Conference on Object Oriented Programming (ECOOP 2001). Budapest, Hungary Welicki, L.; J. Yoder; R. Wirfs-Brock; R. Johnson. Towards a Pattern Language for Adaptive Object-Models. Companion of the ACM SIGPLAN Conference on Object Oriented Programming, Systems, Languages and Applications (OOPSLA 2007), Montreal, Canada, Welicki, L.; J. Yoder; R. Wirfs-Brock. Adaptive Object-Model Builder. 16 th Pattern Language of Programs Conference (PLoP 2009), Chicago, Illinois, USA, Welicki, L, J. Yoder, R. Wirfs-Brock. Rendering Patterns for Adaptive Object Models. 14 th Pattern Language of Programs Conference (PLoP 2007), Monticello, Illinois, USA, 2007 Yoder, J.; F. Balaguer; R. Johnson. Architecture and Design of Adaptive Object-Models. Proceedings of the ACM SIGPLAN Conference on Object Oriented Programming, Systems, Languages and Applications (OOPSLA 2001), Tampa, Florida, USA, Yoder, J.; R. Johnson. The Adaptive Object-Model Architectural Style. IFIP 17th World Computer Congress - TC2 Stream / 3rd IEEE/IFIP Conference on Software Architecture: System Design, Development and Maintenance (WICSA 2002), Montréal, Québec, Canada, Yoder, J.; R. Razavi. Metadata and Adaptive Object-Models. ECOOP Workshops (ECOOP 2000), Cannes, France,

Dynamic Model Evolution

Dynamic Model Evolution Dynamic Model Evolution ATZMON HEN-TOV, Pontis Ltd. DAVID H. LORENZ, Open University of Israel LENA NIKOLAEV, Pontis Ltd. LIOR SCHACHTER, Open University of Israel REBECCA WIRFS-BROCK, Wirfs-Brock Associates,

More information

AOM Metadata Extension Points

AOM Metadata Extension Points AOM Metadata Extension Points PATRICIA MEGUMI MATSUMOTO, Instituto Tecnológico de Aeronáutica FILIPE FIGUEIREDO CORREIA, Faculdade de Engenharia, Universidade do Porto JOSEPH WILLIAM YODER, Refactory,

More information

AOM Metadata Extension Points 1

AOM Metadata Extension Points 1 AOM Metadata Extension Points 1 PATRICIA MEGUMI MATSUMOTO, Instituto Tecnológico de Aeronáutica FILIPE FIGUEIREDO CORREIA, Departamento de Engenharia Informática, Faculdade de Engenharia, Universidade

More information

Rendering Patterns for Adaptive Object-Models

Rendering Patterns for Adaptive Object-Models Rendering Patterns for Adaptive Object-Models León Welicki ONO (Cableuropa S.A.) Basauri, 7-9 28023, Madrid, Spain +34 637 879 258 lwelicki@acm.org Joseph W. Yoder The Refactory, Inc. 7 Florida Drive Urbana,

More information

Using Aspects to Make Adaptive Object-Models Adaptable

Using Aspects to Make Adaptive Object-Models Adaptable Using Aspects to Make Adaptive Object-Models Adaptable Ayla Dantas 1, Joseph Yoder 2, Paulo Borba 1, Ralph Johnson 2 1 Software Productivity Group Informatics Center Federal University of Pernambuco Recife,

More information

Using Aspects to Make Adaptive Object-Models Adaptable

Using Aspects to Make Adaptive Object-Models Adaptable Using Aspects to Make Adaptive Object-Models Adaptable Ayla Dantas 1, Joseph Yoder 2, Paulo Borba, and Ralph Johnson 1 Software Productivity Group Informatics Center Federal University of Pernambuco Recife,

More information

Dynamic Generated Adapters from Adaptive Object Models to Static APIs

Dynamic Generated Adapters from Adaptive Object Models to Static APIs Dynamic Generated Adapters from Adaptive Object Models to Static APIs Eduardo Martins Guerra, INPE, Brazil Jean Novaes Santos, INPE, Brazil Ademar Aguiar, FEUP, Portugal Luiz Gustavo Veras, INPE, Brazil

More information

security model. The framework allowed for quickly creating applications that examine nancial data stored in a database. The applications that are gene

security model. The framework allowed for quickly creating applications that examine nancial data stored in a database. The applications that are gene Patterns For Developing Successful Object-Oriented Frameworks Joseph W. Yoder August 27, 1997 1 Overview The work described here extends last years OOPSLA framework workshop paper [Yoder 1996] describing

More information

Object-Oriented Software Development Goal and Scope

Object-Oriented Software Development Goal and Scope Object-Oriented Software Development Goal and Scope Koichiro Ochimizu Japan Advanced Institute of Science and Technologies School of Information Science Scope and Goal Goal enable you to understand basic

More information

Design patterns generic models

Design patterns generic models Design patterns generic models Jyothish Maniyath CDC Software India Pvt Ltd 6 th Floor, Canberra Block, UB City, #24 Vittal Mallya Road, Bangalore, India +91 94482 46718 jyosh@maniyath.com ABSTRACT This

More information

Partial Acquisition Prashant Jain and Michael Kircher

Partial Acquisition Prashant Jain and Michael Kircher 1 Partial Acquisition Prashant Jain and Michael Kircher {Prashant.Jain,Michael.Kircher}@mchp.siemens.de Siemens AG, Corporate Technology Munich, Germany Partial Acquisition 2 Partial Acquisition The Partial

More information

Patterns for Data and Metadata Evolution in Adaptive Object-Models

Patterns for Data and Metadata Evolution in Adaptive Object-Models Patterns for Data and Metadata Evolution in Adaptive Object-Models Hugo Sereno Ferreira 1,2, Filipe Figueiredo Correia 1,3, León Welicki 4 1 ParadigmaXis Arquitectura e Engenharia de Software, S.A., Avenida

More information

Concurrency Control with Java and Relational Databases

Concurrency Control with Java and Relational Databases Concurrency Control with Java and Relational Databases Sérgio Soares and Paulo Borba Informatics Center Federal University of Pernambuco Recife, PE, Brazil scbs,phmb @cin.ufpe.br Abstract As web based

More information

Transparent Remote Access

Transparent Remote Access Abstract Transparent Remote Access Klaus Marquardt Käthe-Kollwitz-Weg 14, D-23558 Lübeck, Germany Email: marquardt@acm.org In distributed systems, the different processors communicate via network messages.

More information

Proceedings of. The Three-Tier Architecture Pattern Language Design Fest

Proceedings of. The Three-Tier Architecture Pattern Language Design Fest Proceedings of The Three-Tier Architecture Pattern Language Design Fest Introduction Three-tier applications have gained increasing acceptance and popularity in the software industry. Three-tier applications

More information

Dynamic Generated Adapters from Adaptive Object Models to Static APIs

Dynamic Generated Adapters from Adaptive Object Models to Static APIs Dynamic Generated Adapters from Adaptive Object Models to Static APIs EDUARDO GUERRA, National Institute for Space Research (INPE) - Brazil JEAN SANTOS, National Institute for Space Research (INPE) - Brazil

More information

Creating Reports with Query Objects

Creating Reports with Query Objects Creating Reports with Query Objects John Brant Joseph Yoder Department of Computer Science University of Illinois at Urbana-Champaign Urbana, IL 61801 {brant, yoder}@cs.uiuc.edu Abstract This paper contains

More information

Universal Communication Component on Symbian Series60 Platform

Universal Communication Component on Symbian Series60 Platform Universal Communication Component on Symbian Series60 Platform Róbert Kereskényi, Bertalan Forstner, Hassan Charaf Department of Automation and Applied Informatics Budapest University of Technology and

More information

A Metric of the Relative Abstraction Level of Software Patterns

A Metric of the Relative Abstraction Level of Software Patterns A Metric of the Relative Abstraction Level of Software Patterns Atsuto Kubo 1, Hironori Washizaki 2, and Yoshiaki Fukazawa 1 1 Department of Computer Science, Waseda University, 3-4-1 Okubo, Shinjuku-ku,

More information

Coordination Patterns

Coordination Patterns Coordination Patterns 1. Coordination Patterns Design Patterns and their relevance for Coordination Oscar Nierstrasz Software Composition Group Institut für Informatik (IAM) Universität Bern oscar@iam.unibe.ch

More information

Evictor. Prashant Jain Siemens AG, Corporate Technology Munich, Germany

Evictor. Prashant Jain Siemens AG, Corporate Technology Munich, Germany 1 Evictor Prashant Jain Prashant.Jain@mchp.siemens.de Siemens AG, Corporate Technology Munich, Germany Evictor 2 Evictor The Evictor 1 pattern describes how and when to release resources such as memory

More information

Using AOP to build complex data centric component frameworks

Using AOP to build complex data centric component frameworks Using AOP to build complex data centric component frameworks Tom Mahieu, Bart Vanhaute, Karel De Vlaminck, Gerda Janssens, Wouter Joosen Katholieke Universiteit Leuven Computer Science Dept. - Distrinet

More information

Patterns for Data and Metadata Evolution in Adaptive Object-Models

Patterns for Data and Metadata Evolution in Adaptive Object-Models Patterns for Data and Metadata Evolution in Adaptive Object-Models Hugo Sereno Ferreira Faculty of Engineering University of Porto Rua Dr. Roberto Frias, s/n hugo.sereno@fe.up.pt Filipe Figueiredo Correia

More information

Work groups meeting 3

Work groups meeting 3 Work groups meeting 3 INF5040 (Open Distributed Systems) Sabita Maharjan sabita@simula.no Department of Informatics University of Oslo September 07, 2009 Design Patterns J2EE Design Patterns Outline EIS

More information

A System of Patterns for Web Navigation

A System of Patterns for Web Navigation A System of Patterns for Web Navigation Mohammed Abul Khayes Akanda and Daniel M. German Department of Computer Science, University of Victoria, Canada maka@alumni.uvic.ca, dmgerman@uvic.ca Abstract. In

More information

Architectural Patterns

Architectural Patterns Architectural Patterns Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson dr@inf.ed.ac.uk http://www.inf.ed.ac.uk/ssp/members/dave.htm SEOC2 Spring 2005:

More information

Design Patterns. Architectural Patterns. Contents of a Design Pattern. Dr. James A. Bednar. Dr. David Robertson

Design Patterns. Architectural Patterns. Contents of a Design Pattern. Dr. James A. Bednar. Dr. David Robertson Design Patterns Architectural Patterns Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson dr@inf.ed.ac.uk http://www.inf.ed.ac.uk/ssp/members/dave.htm A

More information

Reflective Design Patterns to Implement Fault Tolerance

Reflective Design Patterns to Implement Fault Tolerance Reflective Design Patterns to Implement Fault Tolerance Luciane Lamour Ferreira Cecília Mary Fischer Rubira Institute of Computing - IC State University of Campinas UNICAMP P.O. Box 676, Campinas, SP 3083-970

More information

Patterns. Erich Gamma Richard Helm Ralph Johnson John Vlissides

Patterns. Erich Gamma Richard Helm Ralph Johnson John Vlissides Patterns Patterns Pattern-based engineering: in the field of (building) architecting and other disciplines from 1960 s Some software engineers also started to use the concepts Become widely known in SE

More information

extrinsic members RoleB RoleA

extrinsic members RoleB RoleA ASPECT- ORIENTED PROGRAMMING FOR ROLE MODELS Elizabeth A. Kendall Department of Computer Science, Royal Melbourne Institute of Technology GPO Box 2476V, Melbourne, VIC 3001, AUSTRALIA email: kendall@rmit.edu.au

More information

Idioms for Building Software Frameworks in AspectJ

Idioms for Building Software Frameworks in AspectJ Idioms for Building Software Frameworks in AspectJ Stefan Hanenberg 1 and Arno Schmidmeier 2 1 Institute for Computer Science University of Essen, 45117 Essen, Germany shanenbe@cs.uni-essen.de 2 AspectSoft,

More information

Frameworks Representations & Perspectives Position Paper Workshop on Language Support for Design Patterns and Frameworks, ECOOP 97

Frameworks Representations & Perspectives Position Paper Workshop on Language Support for Design Patterns and Frameworks, ECOOP 97 Frameworks Representations & Perspectives Position Paper Workshop on Language Support for Design Patterns and Frameworks, ECOOP 97 Palle Nowack Department of Computer Science, Aalborg University Fredrik

More information

JOURNAL OF OBJECT TECHNOLOGY Online at Published by ETH Zurich, Chair of Software Engineering. JOT, 2002

JOURNAL OF OBJECT TECHNOLOGY Online at  Published by ETH Zurich, Chair of Software Engineering. JOT, 2002 JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering. JOT, 2002 Vol. 1, No. 2, July-August 2002 Representing Design Patterns and Frameworks in UML Towards

More information

The Relationships between Domain Specific and General- Purpose Languages

The Relationships between Domain Specific and General- Purpose Languages The Relationships between Domain Specific and General- Purpose Languages Oded Kramer and Arnon Sturm Department of Information Systems Engineering, Ben-Gurion University of the Negev Beer-Sheva, Israel

More information

A Metric for Measuring the Abstraction Level of Design Patterns

A Metric for Measuring the Abstraction Level of Design Patterns A Metric for Measuring the Abstraction Level of Design Patterns Atsuto Kubo 1, Hironori Washizaki 2, and Yoshiaki Fukazawa 1 1 Department of Computer Science, Waseda University, 3-4-1 Okubo, Shinjuku-ku,

More information

Distributed Proxy: A Design Pattern for Distributed Object Communication

Distributed Proxy: A Design Pattern for Distributed Object Communication Distributed Proxy: A Design Pattern for Distributed Object Communication António Rito Silva, Francisco Assis Rosa, Teresa Gonçalves INESC/IST Technical University of Lisbon, Rua Alves Redol n o 9, 1000

More information

APICES - Rapid Application Development with Graph Pattern

APICES - Rapid Application Development with Graph Pattern APICES - Rapid Application Development with Graph Pattern Ansgar Bredenfeld GMD Institute for System Design Technology D-53754 Sankt Augustin, Germany bredenfeld@gmd.de Abstract In this paper, we present

More information

CS/CE 2336 Computer Science II

CS/CE 2336 Computer Science II CS/CE 2336 Computer Science II UT D Session 20 Design Patterns An Overview 2 History Architect Christopher Alexander coined the term "pattern" circa 1977-1979 Kent Beck and Ward Cunningham, OOPSLA'87 used

More information

Pooling. Michael Kircher, Prashant Jain Corporate Technology, Siemens AG, Munich, Germany

Pooling. Michael Kircher, Prashant Jain Corporate Technology, Siemens AG, Munich, Germany 1 Pooling Michael Kircher, Prashant Jain {Michael.Kircher,Prashant.Jain@mchp.siemens.de Corporate Technology, Siemens AG, Munich, Germany Pooling 2 Pooling The Pooling pattern describes how expensive acquisition

More information

Towards Better Support for Pattern-Oriented Software Development

Towards Better Support for Pattern-Oriented Software Development Towards Better Support for Pattern-Oriented Software Development Dietrich Travkin Software Engineering Research Group, Heinz Nixdorf Institute & Department of Computer Science, University of Paderborn,

More information

Developing Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach

Developing Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach Developing Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach Ninat Wanapan and Somnuk Keretho Department of Computer Engineering, Kasetsart

More information

Patterns for Asynchronous Invocations in Distributed Object Frameworks

Patterns for Asynchronous Invocations in Distributed Object Frameworks Patterns for Asynchronous Invocations in Distributed Object Frameworks Patterns for Asynchronous Invocations in Distributed Object Frameworks Markus Voelter Michael Kircher Siemens AG, Corporate Technology,

More information

Freeway Patterns for SOA Systems Vinod Sarma N MindTree Ltd. Global Village, RVCE Post, Mysore Rd Bangalore , India

Freeway Patterns for SOA Systems Vinod Sarma N MindTree Ltd. Global Village, RVCE Post, Mysore Rd Bangalore , India Freeway Patterns for SOA Systems Vinod Sarma N MindTree Ltd. Global Village, RVCE Post, Mysore Rd Bangalore 560069, India +91-80-67064000 vinodsn@mindtree.com Srinivas Rao Bhagavatula MindTree Ltd. Global

More information

Agile Database Techniques Effective Strategies for the Agile Software Developer. Scott W. Ambler

Agile Database Techniques Effective Strategies for the Agile Software Developer. Scott W. Ambler Agile Database Techniques Effective Strategies for the Agile Software Developer Scott W. Ambler Agile Database Techniques Effective Strategies for the Agile Software Developer Agile Database Techniques

More information

Classifying Relationships Between Object-Oriented Design Patterns

Classifying Relationships Between Object-Oriented Design Patterns Classifying Relationships Between Object-Oriented Design Patterns James Noble Microsoft Research Institute Macquarie University Sydney, Australia kjx@mri.mq.edu.au Abstract Since the publication of the

More information

Coordinator. Example. Prashant Jain Corporate Technology, Siemens AG Munich, Germany

Coordinator. Example. Prashant Jain Corporate Technology, Siemens AG Munich, Germany Coordinator Prashant Jain pjain@gmx.net Corporate Technology, Siemens AG Munich, Germany The Coordinator design pattern describes how to maintain system consistency by coordinating completion of tasks

More information

Patterns for Sustaining Muddy Architectures

Patterns for Sustaining Muddy Architectures Patterns for Sustaining Muddy Architectures REBECCA WIRFS-BROCK, Wirfs-Brock Associates, Inc. JOSEPH W. YODER, The Refactory, Inc. Big Ball of Mud (BBoM) architectures are haphazardly structured, sprawling,

More information

More on Design. CSCI 5828: Foundations of Software Engineering Lecture 23 Kenneth M. Anderson

More on Design. CSCI 5828: Foundations of Software Engineering Lecture 23 Kenneth M. Anderson More on Design CSCI 5828: Foundations of Software Engineering Lecture 23 Kenneth M. Anderson Outline Additional Design-Related Topics Design Patterns Singleton Strategy Model View Controller Design by

More information

Pattern Density and Role Modeling of an Object Transport Service

Pattern Density and Role Modeling of an Object Transport Service Pattern Density and Role Modeling of an Object Transport Service Dirk Riehle. SKYVA International. 25 First Street, Cambridge, MA 02129, U.S.A. E-mail: driehle@skyva.com or riehle@acm.org Roger Brudermann.

More information

Lecture 19: Introduction to Design Patterns

Lecture 19: Introduction to Design Patterns Lecture 19: Introduction to Design Patterns Software System Design and Implementation ITCS/ITIS 6112/8112 091 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte

More information

Improving the Data Warehouse Architecture Using Design Patterns

Improving the Data Warehouse Architecture Using Design Patterns Association for Information Systems AIS Electronic Library (AISeL) MWAIS 2011 Proceedings Midwest (MWAIS) 5-20-2011 Improving the Data Warehouse Architecture Using Design Patterns Weiwen Yang Colorado

More information

A Pattern Language for MVC Derivatives

A Pattern Language for MVC Derivatives A Pattern Language for MVC Derivatives Sami Lappalainen Aalto University School of Science Department of Computer Science sami.k.lappalainen@iki.fi Takashi Kobayashi Tokyo Institute of Technology School

More information

Slide 1. Design Patterns. Prof. Mirco Tribastone, Ph.D

Slide 1. Design Patterns. Prof. Mirco Tribastone, Ph.D Slide 1 Design Patterns Prof. Mirco Tribastone, Ph.D. 22.11.2011 Introduction Slide 2 Basic Idea The same (well-established) schema can be reused as a solution to similar problems. Muster Abstraktion Anwendung

More information

JUnit A Study on Applying JUnit Framework to Document Knowledge of Object-Oriented Software Systems

JUnit A Study on Applying JUnit Framework to Document Knowledge of Object-Oriented Software Systems JUnit A Study on Applying JUnit Framework to Document Knowledge of Object-Oriented Software Systems Email: {hsieh, s1669021}@ntut.edu.tw JUnit SyncFree 92 [16] SyncFree 1.0 [17] bug fixmerge CVS SyncFree

More information

An Introduction to Patterns

An Introduction to Patterns An Introduction to Patterns Robert B. France Colorado State University Robert B. France 1 What is a Pattern? - 1 Work on software development patterns stemmed from work on patterns from building architecture

More information

Deployment Pattern. YOUNGSU SON, Samsung Electronics JIWON KIM, Samsung Electronics DONGUK KIM, Samsung Electronics JINHO JANG, Samsung Electronics

Deployment Pattern. YOUNGSU SON, Samsung Electronics JIWON KIM, Samsung Electronics DONGUK KIM, Samsung Electronics JINHO JANG, Samsung Electronics Deployment Pattern YOUNGSU SON, Samsung Electronics JIWON KIM, Samsung Electronics DONGUK KIM, Samsung Electronics JINHO JANG, Samsung Electronics Software that is deployed into the market needs to be

More information

A Grid-Enabled Component Container for CORBA Lightweight Components

A Grid-Enabled Component Container for CORBA Lightweight Components A Grid-Enabled Component Container for CORBA Lightweight Components Diego Sevilla 1, José M. García 1, Antonio F. Gómez 2 1 Department of Computer Engineering 2 Department of Information and Communications

More information

Design Patterns. Hausi A. Müller University of Victoria. Software Architecture Course Spring 2000

Design Patterns. Hausi A. Müller University of Victoria. Software Architecture Course Spring 2000 Design Patterns Hausi A. Müller University of Victoria Software Architecture Course Spring 2000 1 Motivation Vehicle for reasoning about design or architecture at a higher level of abstraction (design

More information

Introduction to Design Patterns

Introduction to Design Patterns Dr. Michael Eichberg Software Technology Group Department of Computer Science Technische Universität Darmstadt Introduction to Software Engineering Introduction to Design Patterns Patterns 2 PATTERNS A

More information

HOW AND WHEN TO FLATTEN JAVA CLASSES?

HOW AND WHEN TO FLATTEN JAVA CLASSES? HOW AND WHEN TO FLATTEN JAVA CLASSES? Jehad Al Dallal Department of Information Science, P.O. Box 5969, Safat 13060, Kuwait ABSTRACT Improving modularity and reusability are two key objectives in object-oriented

More information

Broker Pattern. Teemu Koponen

Broker Pattern. Teemu Koponen Broker Pattern Teemu Koponen tkoponen@iki.fi Broker Pattern Context and problem Solution Implementation Conclusions Comments & discussion Example Application Stock Exchange Trader 1 Stock Exchange 1 Trader

More information

Design Patterns for Description-Driven Systems

Design Patterns for Description-Driven Systems Design Patterns for Description-Driven Systems N. Baker 3, A. Bazan 1, G. Chevenier 2, Z. Kovacs 3, T Le Flour 1, J-M Le Goff 4, R. McClatchey 3 & S Murray 1 1 LAPP, IN2P3, Annecy-le-Vieux, France 2 HEP

More information

Work groups meeting 3

Work groups meeting 3 Work groups meeting 3 INF5040 (Open Distributed Systems) Amir Taherkordi amirhost@ifi.uio.no Department of Informatics University of Oslo September 18, 2008 Design Patterns J2EE Design Patterns AntiPatterns

More information

Relating Patterns and Reference Architectures

Relating Patterns and Reference Architectures Relating Patterns and Reference Architectures Eduardo Guerra, LAC/INPE, Brazil Elisa Yumi Nakagawa, ICMC/USP, Brazil Abstract : Both patterns and reference architectures aim to describe solutions to be

More information

Using Design Patterns in Java Application Development

Using Design Patterns in Java Application Development Using Design Patterns in Java Application Development ExxonMobil Research & Engineering Co. Clinton, New Jersey Michael P. Redlich (908) 730-3416 michael.p.redlich@exxonmobil.com About Myself Degree B.S.

More information

Patterns for polymorphic operations

Patterns for polymorphic operations Patterns for polymorphic operations Three small object structural patterns for dealing with polymorphism Alexander A. Horoshilov hor@epsylontech.com Abstract Polymorphism is one of the main elements of

More information

Batch Lazy Loader Pattern

Batch Lazy Loader Pattern Batch Lazy Loader Pattern Ryan Senior Intent Retrieve many related, Lazy Loaded objects simultaneously, overcoming the performance degradation that can be associated with the Lazy Load pattern (called

More information

An Introduction to Patterns and Pattern Languages. Overview. Patterns -- Why? Patterns -- Why?

An Introduction to Patterns and Pattern Languages. Overview. Patterns -- Why? Patterns -- Why? An Introduction to Patterns and Pattern Languages CSC591O April 7-9, 1997 Raleigh, NC Copyright (C) 1996, Kyle Brown, Bobby Woolf, and Knowledge Systems Corp. All rights reserved. 1 Kyle Brown Senior Member

More information

Object Oriented Methods with UML. Introduction to Design Patterns- Lecture 8

Object Oriented Methods with UML. Introduction to Design Patterns- Lecture 8 Object Oriented Methods with UML Introduction to Design Patterns- Lecture 8 Topics(03/05/16) Design Patterns Design Pattern In software engineering, a design pattern is a general repeatable solution to

More information

Application Architectures, Design Patterns

Application Architectures, Design Patterns Application Architectures, Design Patterns Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2017 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Application Architectures, Design Patterns Winter Term

More information

Remoting Patterns - A Systematic Approach for Design Reuse of Distributed Object Middleware Solutions

Remoting Patterns - A Systematic Approach for Design Reuse of Distributed Object Middleware Solutions Remoting - A Systematic Approach for Design Reuse of Distributed Object Middleware Solutions Markus Völter Michael Kircher Uwe Zdun voelter Siemems AG New Media Lab Ingenieurbüro für Softewaretechnologie

More information

Scenarios, Quality Attributes, and Patterns: Capturing and Using their Synergistic Relationships for Product Line Architectures

Scenarios, Quality Attributes, and Patterns: Capturing and Using their Synergistic Relationships for Product Line Architectures Scenarios, Quality Attributes, and Patterns: Capturing and Using their Synergistic Relationships for Product Line Architectures Muhammad Ali Babar National ICT Australia Ltd. and University of New South

More information

Tool Support for Complex Refactoring to Design Patterns

Tool Support for Complex Refactoring to Design Patterns Tool Support for Complex Refactoring to Design Patterns Carmen Zannier 1, Frank Maurer 1 1 University of Calgary, Department of Computer Science, Calgary, Alberta, Canada T2N 1N4 {zannierc, maurer}@cpsc.ucalgary.ca

More information

Introduction to Design Patterns

Introduction to Design Patterns Dr. Michael Eichberg Software Engineering Department of Computer Science Technische Universität Darmstadt Software Engineering Introduction to Design Patterns (Design) Patterns A pattern describes... Patterns

More information

EuroPLoP 2003 Focus Group: Patterns for Component Composition and Adaptation

EuroPLoP 2003 Focus Group: Patterns for Component Composition and Adaptation EuroPLoP 2003 Focus Group: Patterns for Component Composition and Adaptation Uwe Zdun Department of Information Systems, Vienna University of Economics, Austria zdun@acm.org Markus Voelter voelter - Ingenieurbüro

More information

WS01/02 - Design Pattern and Software Architecture

WS01/02 - Design Pattern and Software Architecture Design Pattern and Software Architecture: VIII. Conclusion AG Softwaretechnik Raum E 3.165 Tele. 60-3321 hg@upb.de VIII. Conclusion VIII.1 Classifications VIII.2 Common Misconceptions VIII.3 Open Questions

More information

1 Software Architecture

1 Software Architecture Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to

More information

Applying the Observer Design Pattern

Applying the Observer Design Pattern Applying the Observer Design Pattern Trenton Computer Festival Professional Seminars Michael P. Redlich (908) 730-3416 michael.p.redlich@exxonmobil.com About Myself Degree B.S. in Computer Science Rutgers

More information

Concurrent Object-Oriented Development with Behavioral Design Patterns

Concurrent Object-Oriented Development with Behavioral Design Patterns Concurrent Object-Oriented Development with Behavioral Design Patterns Benjamin Morandi 1, Scott West 1, Sebastian Nanz 1, and Hassan Gomaa 2 1 ETH Zurich, Switzerland 2 George Mason University, USA firstname.lastname@inf.ethz.ch

More information

Composition Approaches Summary

Composition Approaches Summary Composition Approaches Summary Related Work Several successful experiences have reported on the advantages of using patterns in designing applications. For instance, Srinivasan et. al. [26] discuss their

More information

1 (ERTSDP) ERTSDP (Embedded Real-Time Systems Design Pattern) (1)

1 (ERTSDP) ERTSDP (Embedded Real-Time Systems Design Pattern) (1) [ ] ERTSDP [ ] UML 1 Liskov [1-4] Gamma 25 [5] GammaBruce Douglas UML [6] ERTSDP Bruce Douglass 2 (ERTSDP) 2.1 [7-9] (problem) QoS (solution) (consequences) 2.2 ERTSDP (Embedded Real-Time Systems Design

More information

Appendix A - Glossary(of OO software term s)

Appendix A - Glossary(of OO software term s) Appendix A - Glossary(of OO software term s) Abstract Class A class that does not supply an implementation for its entire interface, and so consequently, cannot be instantiated. ActiveX Microsoft s component

More information

Architectural Patterns. Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2

Architectural Patterns. Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2 Architectural Patterns Architectural Patterns Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson dr@inf.ed.ac.uk http://www.inf.ed.ac.uk/ssp/members/dave.htm

More information

Architectural Patterns

Architectural Patterns Architectural Patterns Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson dr@inf.ed.ac.uk http://www.inf.ed.ac.uk/ssp/members/dave.htm SAPM Spring 2012:

More information

Applying the Factory Method Design Pattern

Applying the Factory Method Design Pattern Applying the Factory Method Design Pattern Trenton Computer Festival Professional Seminars Michael P. Redlich (908) 730-3416 michael.p.redlich@exxonmobil.com About Myself Degree B.S. in Computer Science

More information

Stable Model-View-Mapping (MVM) Architectural Pattern

Stable Model-View-Mapping (MVM) Architectural Pattern Stable Model-View-Mapping (MVM) Architectural Pattern Mohamed E.Fayad 1, Nayeem Islam 2, and Haitham Hamza 3 1 Computer Engineering Department San José State University San José, CA 95192-0180 Ph: +1 408

More information

Layering Strategies. Peter Eeles RSO (UK) Rational Software Ltd. Version rd August 2001

Layering Strategies. Peter Eeles RSO (UK) Rational Software Ltd. Version rd August 2001 Layering Strategies Peter Eeles RSO (UK) Rational Software Ltd. peter.eeles@rational.com Version 2.0 23 rd August 2001 A number of techniques exist for decomposing software systems. Layering is one example

More information

SyncFree SyncFree: The Development of an Open Source Personal Data Synchronization Software

SyncFree SyncFree: The Development of an Open Source Personal Data Synchronization Software SyncFree SyncFree: The Development of an Open Source Personal Data Synchronization Software {s1669021, s1598011, yccheng, hsieh}@ntut.edu.tw SyncFree Abstract People who use different computers at different

More information

On the Role of Design Patterns in Quality-Driven Re-engineering

On the Role of Design Patterns in Quality-Driven Re-engineering On the Role of Design Patterns in Quality-Driven Re-engineering Ladan Tahvildari and Kostas Kontogiannis Dept. of Electrical and Computer Eng. University of Waterloo Waterloo, Ontario Canada, N2L 3G1 {ltahvild,kostas}@swen.uwaterloo.ca

More information

Keywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator.

Keywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator. Comparative Study In Utilization Of Creational And Structural Design Patterns In Solving Design Problems K.Wseem Abrar M.Tech., Student, Dept. of CSE, Amina Institute of Technology, Shamirpet, Hyderabad

More information

Broker Revisited. Markus Voelter Copyright 2004, Kircher, Voelter, Jank, Schwanninger, Stal D5-1

Broker Revisited. Markus Voelter Copyright 2004, Kircher, Voelter, Jank, Schwanninger, Stal D5-1 Broker Revisited Michael Kircher, Klaus Jank, Christa Schwanninger, Michael Stal {Michael.Kircher,Klaus.Jank,Christa.Schwanninger, Michael.Stal}@siemens.com Markus Voelter voelter@acm.org Copyright 2004,

More information

Plan. Design principles: laughing in the face of change. What kind of change? What are we trying to achieve?

Plan. Design principles: laughing in the face of change. What kind of change? What are we trying to achieve? Plan Design principles: laughing in the face of change Perdita Stevens School of Informatics University of Edinburgh What are we trying to achieve? Review: Design principles you know from Inf2C-SE Going

More information

Towards a Java Framework for Knowledge Representation and Inference

Towards a Java Framework for Knowledge Representation and Inference Towards a Java Framework for Knowledge Representation and Inference Adrian GIURCA University of Craiova, Faculty of Mathematics and Computer Science Email: giurca@inf.ucv.ro Abstract. The Knowledge Representation

More information

Design Patterns For Object Oriented Software Development Acm Press

Design Patterns For Object Oriented Software Development Acm Press Design Patterns For Object Oriented Software Development Acm Press We have made it easy for you to find a PDF Ebooks without any digging. And by having access to our ebooks online or by storing it on your

More information

Pattern-Oriented Development with Rational Rose

Pattern-Oriented Development with Rational Rose Pattern-Oriented Development with Rational Rose Professor Peter Forbrig, Department of Computer Science, University of Rostock, Germany; Dr. Ralf Laemmel, Department of Information Management and Software

More information

Idioms and Design Patterns. Martin Skogevall IDE, Mälardalen University

Idioms and Design Patterns. Martin Skogevall IDE, Mälardalen University Idioms and Design Patterns Martin Skogevall IDE, Mälardalen University 2005-04-07 Acronyms Object Oriented Analysis and Design (OOAD) Object Oriented Programming (OOD Software Design Patterns (SDP) Gang

More information

Pattern-Based Architectural Design Process Model

Pattern-Based Architectural Design Process Model Pattern-Based Architectural Design Process Model N. Lévy, F. Losavio Abstract: The identification of quality requirements is crucial to develop modern software systems, especially when their underlying

More information

The DCI Architecture: A New Legal Notice Vision of Object-Oriented Programming Trygve Reenskaug

The DCI Architecture: A New Legal Notice Vision of Object-Oriented Programming  Trygve Reenskaug The DCI Architecture: A New Vision of Object-Oriented Programming http://www.artima.com/articles/dci_vision.html Trygve Reenskaug Institutt for informatikk Universitetet i Oslo heim.ifi.uio.no/~trygver/themes/babyide

More information

Lectures 24 and 25 Introduction to Architectural Styles and Design Patterns

Lectures 24 and 25 Introduction to Architectural Styles and Design Patterns Lectures 24 and 25 Introduction to Architectural Styles and Design Patterns Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte

More information

A MULTI-LEVEL DESIGN PATTERN FOR EMBEDDED SOFTWARE *

A MULTI-LEVEL DESIGN PATTERN FOR EMBEDDED SOFTWARE * A MULTI-LEVEL DESIGN PATTERN FOR EMBEDDED SOFTWARE * Ricardo J. Machado and João M. Fernandes Dept. Sistemas de Informação & Dept. Informática, Universidade do Minho, Portugal Abstract: It is a common

More information