A Framework for Automated Software Design Optimisation

Size: px
Start display at page:

Download "A Framework for Automated Software Design Optimisation"

Transcription

1 A Framework for Automated Software Design Optimisation Lucian Gabor, John Murphy Performance Engineering Laboratory, School of Electronic Engineering Dublin City University, Dublin 9, Ireland {gaborl, A majority of software systems are not designed with performance as a primary consideration. Even if profiling and monitoring tools that can detect various problems are used, these tools don't provide a solution. It takes a very experienced designer or developer to deal with such problems efficiently. A recent development in design practice is the use of design patterns, refactorings and antipatterns. This paper presents a framework that provides a way to automatically correct design problems preserving the functionality of the system and improving its performance. The approach is to provide a system of patterns, antipatterns and refactorings that will produce an optimised system. 1 Introduction Component-based software systems are typically complex and frequently dynamically changing. A large portion of the design effort for such a system is geared toward ensuring the correct functionality of the system, with performance issues taking a back seat in the design procedure. Often, because of the size and dynamic nature of these systems, performance problems are extremely difficult to detect at the design stage. Even when performance problems are detected, their solution is not always clear. The use of patterns has been suggested as good design practice for large-scale software systems [1], [2], [3], [4]. Patterns may be though of as formal descriptions of problems and their solutions. As such, a designer need only match their current situation to existing patterns, and employ the solutions suggested by those patterns. Much research has been done in showing the effectiveness of using patterns to solve functionality problems for large software systems. We propose that patterns may also be used to solve a class of performance problems for large software systems. In this work, we propose to explore the use of patterns, and the closely related concepts of antipatterns and refactoring, to the problem of performance optimisation for large component-based software systems. In Section 2, we will define the major concepts associated with patterns, antipatterns, and refactoring. In Section 3, we will present a framework for using patterns, antipatterns, and refactoring to optimise performance for a system while preserving functionality. In Sections 4 and 5, we will present conclusions and future work.

2 2 Patterns The motivation for using patterns in software systems is that software patterns are smart, generic, well proved, simple and reusable. [1] A pattern is a three-part rule which expresses a relation between a certain context, a problem and a solution. Even the schema that underlies every pattern (context, problem, solution) leads to the idea of pattern automation. Ideally, if a problem and its context are identified then, a pattern that addresses that problem can be applied to obtain a solution. Over time some important characteristics of software patterns have been pointed out. 1. They are observed through experience. A pattern is in fact a recurring solution to a problem that often appears within a specific context [2]. 2. Patterns exist at different level of abstraction. Some patterns deals with structuring software systems into subsystems or refine subsystems or components or the relations between them. These patterns don't have a strong connection to any specific platform or programming language. Other patterns are just opposite. They provide a specific solution to a design aspect for a specific platform or programming language. [3] 3. Patterns can be used together to form a larger solution. A pattern solves a particular problem, but its application may raise new problems. Some of them might be solved by other patterns. One pattern may be integrated into larger one to form together a solution. [3] There is the problem of how to apply patterns in combination to form a larger solution. [2]. Defining clear and homogeneous pattern systems addresses this problem. A pattern system ties its constituent patterns together. It describes how the patterns are connected and how they complement each other. One important characteristic of a pattern system is that it's constituent patterns are divided into different categories. Choosing the right categories for a pattern system is an important task. These criteria for categorisation are a constituent part of the system and guide the process of deciding on the use of a pattern. One general categorisation criterion is the abstraction level that a pattern resides at. There are three major categories of patterns reflecting different levels of abstraction: architectural patterns, design patterns, and idioms. [3] An architectural pattern refers to the practice of organising software into subsystems with specific responsibilities and methods of interaction [4] A design pattern provides a scheme for refining individual components of a software system or the communication channel between components. It solves a general design problem within a particular context. [3] An idiom is a low-level pattern specific to a programming language. It solves a specific problem using the features of the given language. [3] In the case of a more platform specific pattern system one or more abstraction levels might be missing. An example of this is EJB technology and the Core J2EE pattern system [2] known as SJC (Sun Java Center) patterns. The EJB technology is build with respect to Broker architectural pattern [3]. The SJC pattern system uses other architectural patterns such as Model-View-Controller [3] and Pipes and Filters [3]. They don't present idioms since the platform itself is java centric. Instead, for each pattern there is associated a set of strategies that guide the implementation. This is an example of the tight relationship between a technology and a pattern system that address it. In addition to categorisation, based on level of abstraction, patterns may be categorised according to tiers representing their application level. Three tiers are commonly defined - presentation, business and integration. The boundaries of these tiers are well demarcated.

3 Antipatterns are similar to patterns [8]. They document recurring solutions to common design problems. The difference is that their result is negative -- antipatterns tell what to avoid. They also give a solution to fix the problem. For this paper the term patterns will be used to include the concept of antipatterns. The concept of patterns leads to the suggestion that problematic software should be modified to conform to solutions presented in patterns. Refactoring refers to behaviourpreserving program transformations that automate design evolution in object-oriented applications [7]. Clearly, refactoring is a desirable step in the automation of any patternbased design system. 3 Framework We propose a framework that uses patterns as the basis for an expert system to detect performance problems and use refactoring to solve these problems in the system. Ultimately, it would be desirable to have a system that would automatically refactor software based on the patterns detected. For the moment we propose a tool that will discover the patterns associated with a given software system. The input to this tool is a UML representation of the system, possibly annotated with known problems. The output is a set of patterns associated with the software, indicating what improvements can be made. 3.1 Pattern System The base of the correcting mechanism will be a system of patterns and antipatterns. This architecture has two ways to use patterns. There are patterns that are used to understand the system and patterns that can be applied to improve the system. Being included into one of the category does not exclude the possibility that a pattern can belong to the other category as well. 3.2 Non-intrusive Approach An important feature is that the corrected system will maintain the functionality of the original system. In order that this goal is achieved all patterns should be applied nonintrusively with respect to the functionality of the system. Each pattern will have associated strategies to apply them and these strategies will be based on refactoring. In this way each transformation will be "mathematical", refactoring being a very well defined code-level transformation. Another useful technology for the non-intrusive approach of this framework is aspectoriented programming. By defining new ways to apply a pattern using aspect-oriented concepts the original code will remain untouched. This code will be the black box containing the functionality while aspects and concerns will model the business logic. An example would be the Flyweight [4] pattern. The effect of this pattern is that an object is not instantiated until there is an actual need to do so (first invocation on it). In this case one aspect is that before each method invocation the object must be initialised. 3.3 Expert System The tool that accomplishes these tasks will be an expert system. Its knowledge base will be a pattern system that addresses a particular technology. The underlying structure of the knowledge base will follow the meta-model of the UML/MOF [5] [6] specifications. In this way it will address uniformly any object oriented technology. Version 2.0 of UML and MOF defines all UML concepts, relations and semantics using a metamodeling language.

4 Following those definitions in the design of the knowledge base will propagate its precision and correctness. 3.4 Workflow The basic actions that are taken are illustrated as a business model in Figure 1. The input will be the UML model of the target software system. It will have associated audit data that pinpoints problems that need to be solved (if such data is available). The output will be a collection of patterns associated with the system which may be used to refactor the system. 1. The first step will be to understand the model namely, determining what patterns were used in the design of the system. Detected architectural patterns will split the main system into subsystems. Design patterns will refine them and will provide useful information about other patterns that might complement them. Antipatterns will become problems that have to be solved. 2. The second step is to find similarities between the new system and previously processed systems. This will lead to possible new problems that might have eluded the designers. 3. Knowing where a problem resides in the model, its surroundings will be compared with the contexts that are associated with patterns. Detecting a common context between a problem and a pattern provides a solution. 4. Finally the processed model will be stored into the knowledge base, preserving all the problems and patterns that involve it. From this point each identified problem can be corrected by applying the patterns that share its context. This procedure must then be repeated to ensure that new patterns have not generated new side effects. A possible extension is to use simulation and performance prediction tools to test the provided model and to improve it. input model input model Client Interface OrganizingEngin store model determine patterns ModelKnowledgeBas find similar models Pattern find used patterns / antipatterns MatchingEngin find contexts for problems Contex Figure 1

5 3.5 Problem Domain Classes The problem domain is constructed from the following classes (see Figure 2): 1. Model - the UML model of the tested application. 2. Audit Data - profiling and monitoring information linked to elements of the model. 3. The Context forms the connection between patterns and models. Patterns are either directly associated with the context or through platform dependent strategies. 4. Pattern, Context and Strategy form the base of the system. The Pattern domain constitute the underling layer of the knowledge base, dictating it's architecture. ModelKnowledgeBase, Pattern and Context domain classes together form a knowledge base. This knowledge base will contain the patterns that form the pattern system, the models that have been processed and the context that ties the problem from the model to a pattern. Patterns will be separated by their categories. The knowledge base will contain all the relations between patterns and other patterns and between patterns and their context. Models are stored in this knowledge base to reuse the experience acquired when their problems are solved. Also, detected patterns in a model can be associated with previously undefined context. 5. The knowledge base is managed by an organising engine, which has the task of creating all the relations between patterns, models and contexts. 6. The similarities that define these relations are detected by a matching engine, which provides a weighted solution when comparing elements. interface Model include ModelKnowledgeBase organise OrganizingEngine AuditData access use include MatchingEngine refers include Context interface Pattern Strategy Figure 2

6 4 Conclusions It is important to have a well-defined system of patterns that addresses performance issues. This system of patterns must include other patterns that help refine the solution and antipatterns to be able to avoid and correct them. The quality of the pattern system determines the degree of design improvements. Also a very important issue is the definition and representation of the context of a pattern. The automation process depends on it. The fact that it will take a non-intrusive approach will extend the applicability of the correction mechanism. Another important issue is the use of aspect-oriented techniques as they offer new solutions that are highly scalable. 5 Future Work The impact of profiling mechanism as defined in UML 2.0 specifications will be analysed. The idea is to determine how the definition and use of a UML profile for design patterns would improve the precision of pattern/context definition, detection and matching. Another possible impact would be on the structure of the knowledge base. 6 Acknowledgment This research was supported by Enterprise Ireland s Informatics Research Initiative. 7 References [1] H.E. Eriksson, M. Penker: UML Toolkit, John Wiley & Sons, 1997 [2] D. Alur, J. Crupi, D. Malks: Core J2EE Patterns - Best Practices and Design Strategies, Sun Microsystems Press, 2001 [3] F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, M. Stal: Pattern-Oriented Software Architecture - a System of Patterns, John Wiley & Sons, 1996 [4] E. Gramma, R. Helm, R. Johnson, J. Vlissides: Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995 [5] C. U. Smith, L. G. Williams: Software Performance Antipatterns, 2nd International Workshop on Software and Performance Proceedings, Sept [6] L. Tokuda, D. Batory: Evolving Object-Oriented Designs with Refactorings, Kluwer Academic Publishers, 2001 [7] [8] [9]

A MODEL OF HETEROGENEOUS DISTRIBUTED SYSTEM FOR FOREIGN EXCHANGE PORTFOLIO ANALYSIS

A MODEL OF HETEROGENEOUS DISTRIBUTED SYSTEM FOR FOREIGN EXCHANGE PORTFOLIO ANALYSIS UDC: 004.42 Original scientific paper A MODEL OF HETEROGENEOUS DISTRIBUTED SYSTEM FOR FOREIGN EXCHANGE PORTFOLIO ANALYSIS Dragutin Kermek 1, Tomislav Jakupi 2, Neven Vr ek 1 1 University of Zagreb,Faculty

More information

Design Patterns for Complex Event Processing

Design Patterns for Complex Event Processing Design Patterns for Complex Event Processing Adrian Paschke BioTec Center, Technical University Dresden, 01307 Dresden, Germany adrian.paschke AT biotec.tu-dresden.de ABSTRACT Currently engineering efficient

More information

PATTERN-ORIENTED ARCHITECTURE FOR WEB APPLICATIONS

PATTERN-ORIENTED ARCHITECTURE FOR WEB APPLICATIONS PATTERN-ORIENTED ARCHITECTURE FOR WEB APPLICATIONS M. Taleb, A. Seffah Human-Centred Software Engineering Group Concordia University, Montreal, Quebec, Canada Phone: +1 (514) 848 2424 ext 7165 and/or ext

More information

Patterns in Software Engineering

Patterns in Software Engineering Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 7 GoV Patterns Architectural Part 1 1 GoV Patterns for Software Architecture According to Buschmann et al.: A pattern for software architecture

More information

Research Topics in Software Engineering

Research Topics in Software Engineering MAP-I Programa Doutoral em Informática Research Topics in Software Engineering Unidade Curricular em Paradigmas da Computação Paradigms of Computation (UCPC) UMinho, FEUP July 23, 2009 Abstract This document

More information

Pattern. seconda parte. Types of patterns. ...other good guidance... some GRASP. design patterns (software design) Types of software patterns

Pattern. seconda parte. Types of patterns. ...other good guidance... some GRASP. design patterns (software design) Types of software patterns rel. 1.7 Università di Padova Facoltà di Scienze MM.FF.NN Informatica - anno 2008-09 Corso di Ingegneria del Software Pattern seconda parte Renato Conte - Pattern II- 1/48 - Types of software patterns

More information

Introducing Performance Engineering by means of Tools and Practical Exercises

Introducing Performance Engineering by means of Tools and Practical Exercises Introducing Performance Engineering by means of Tools and Practical Exercises Alexander Ufimtsev, Trevor Parsons, Lucian M. Patcas, John Murphy and Liam Murphy Performance Engineering Laboratory, School

More information

An MDA Approach for the Development of Web applications

An MDA Approach for the Development of Web applications An MDA Approach for the Development of Web applications Santiago Meliá Beigbeder and Cristina Cachero Castro {santi,ccachero}@dlsi.ua.es Univesidad de Alicante, España Abstract. The continuous advances

More information

Information systems modelling UML and service description languages

Information systems modelling UML and service description languages Internet Engineering Tomasz Babczyński, Zofia Kruczkiewicz Tomasz Kubik Information systems modelling UML and service description languages Student Contact Hours: 25.02.2015- Location: 325 C3 room 25.03.2015:

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

Excerpts from Chapter 4, Architectural Modeling -- UML for Mere Mortals by Eric J. Naiburg and Robert A. Maksimchuk

Excerpts from Chapter 4, Architectural Modeling -- UML for Mere Mortals by Eric J. Naiburg and Robert A. Maksimchuk Excerpts from Chapter 4, Architectural Modeling -- UML for Mere Mortals by Eric J. Naiburg and Robert A. Maksimchuk Physical Architecture As stated earlier, architecture can be defined at both a logical

More information

Designing a Semantic Repository

Designing a Semantic Repository Designing a Semantic Repository Integrating architectures for reuse and integration Overview Cory Casanave Cory-c (at) modeldriven.org ModelDriven.org May 2007 The Semantic Metadata infrastructure will

More information

Towards an Automated Pattern Selection Procedure in Software Models

Towards an Automated Pattern Selection Procedure in Software Models Towards an Automated Pattern Selection Procedure in Software Models Alexander van den Berghe, Jan Van Haaren, Stefan Van Baelen, Yolande Berbers, and Wouter Joosen {firstname.lastname}@cs.kuleuven.be IBBT-DistriNet,

More information

Service Oriented Architecture

Service Oriented Architecture Service Oriented Architecture Charlie Abela Department of Artificial Intelligence charlie.abela@um.edu.mt Last Lecture Web Ontology Language Problems? CSA 3210 Service Oriented Architecture 2 Lecture Outline

More information

A Pattern-based Approach to Business Process Modeling and Implementation in Web Services

A Pattern-based Approach to Business Process Modeling and Implementation in Web Services A Pattern-based Approach to Business Process Modeling and Implementation in Web Services Steen Brahe 1 and Behzad Bordbar 2 1 Danske Bank & IT University of Copenhagen, Denmark stbr@itu.dk 2 University

More information

Structuring Product-lines: A Layered Architectural Style

Structuring Product-lines: A Layered Architectural Style Structuring Product-lines: A Layered Architectural Style Tommi Myllymäki, Kai Koskimies, and Tommi Mikkonen Institute of Software Systems, Tampere University of Technology Box 553, FIN-33101 Tampere, Finland

More information

Core J2EE Patterns, Frameworks and Micro Architectures

Core J2EE Patterns, Frameworks and Micro Architectures Core J2EE Patterns, Frameworks and Micro Architectures Deepak.Alur@sun.com Patterns & Design Expertise Center Sun Software Services January 2004 Agenda Patterns Core J2EE Pattern Catalog Background J2EE

More information

CDC UNIFIED PROCESS PRACTICES GUIDE

CDC UNIFIED PROCESS PRACTICES GUIDE Purpose The purpose of this document is to provide guidance on the practice of Modeling and to describe the practice overview, requirements, best practices, activities, and key terms related to these requirements.

More information

PATTERN-BASED BUSINESS-DRIVEN ANALYSIS AND DESIGN OF SERVICE ARCHITECTURES

PATTERN-BASED BUSINESS-DRIVEN ANALYSIS AND DESIGN OF SERVICE ARCHITECTURES PATTERN-BASED BUSINESS-DRIVEN ANALYSIS AND DESIGN OF SERVICE ARCHITECTURES Veronica Gacitua-Decar and Claus Pahl School of Computing, Dublin City University, Glasnevin, Dublin 9, Ireland. vgacitua@computing.dcu.ie,

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

9 Research Questions Resolved

9 Research Questions Resolved 217 9 Research Questions Resolved "All truths are easy to understand once they are discovered; the point is to discover them." Galileo Galilei. 9.1 Main Contributions In section 1.6 the thesis introduced

More information

ARCHITECTURAL DESIGN OF MODERN WEB APPLICATIONS

ARCHITECTURAL DESIGN OF MODERN WEB APPLICATIONS ARCHITECTURAL DESIGN OF MODERN WEB APPLICATIONS Lech MADEYSKI *, Michał STOCHMIAŁEK Abstract. Architectural design is about decisions which influence characteristics of arising system e.g. maintainability

More information

Distributed Objects and Components

Distributed Objects and Components Distributed Objects and Components Introduction This essay will identify the differences between objects and components and what it means for a component to be distributed. It will also examine the Java

More information

Using MDA in Web Software Architectures

Using MDA in Web Software Architectures Using MDA in Web Software Architectures SANTIAGO MELIA, CRISTINA CACHERO AND JAIME GOMEZ 1 Universidad de Alicante, Spain The new challenges posed by the Internet market have increased the need for Web

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

Architectural Patterns: From Mud to Structure

Architectural Patterns: From Mud to Structure DCC / ICEx / UFMG Architectural Patterns: From Mud to Structure Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo From Mud to Structure Layered Architecture It helps to structure applications that

More information

Open Source egovernment Reference Architecture Osera.modeldriven.org. Copyright 2006 Data Access Technologies, Inc. Slide 1

Open Source egovernment Reference Architecture Osera.modeldriven.org. Copyright 2006 Data Access Technologies, Inc. Slide 1 Open Source egovernment Reference Architecture Osera.modeldriven.org Slide 1 Caveat OsEra and the Semantic Core is work in progress, not a ready to use capability Slide 2 OsEra What we will cover OsEra

More information

Introduction to Web Services

Introduction to Web Services Department of Computer Science Imperial College London CERN School of Computing (icsc), 2005 Geneva, Switzerland 1 Fundamental Concepts Architectures & escience example 2 Distributed Computing Technologies

More information

CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE

CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE CHAPTER 4: PATTERNS AND STYLES IN SOFTWARE ARCHITECTURE SESSION I: OVERVIEW AND HISTORY OF STYLES AND PATTERNS Software Engineering Design: Theory and Practice by Carlos E. Otero Slides copyright 2012

More information

Evaluating OO-CASE tools: OO research meets practice

Evaluating OO-CASE tools: OO research meets practice Evaluating OO-CASE tools: OO research meets practice Danny Greefhorst, Matthijs Maat, Rob Maijers {greefhorst, maat, maijers}@serc.nl Software Engineering Research Centre - SERC PO Box 424 3500 AK Utrecht

More information

Applying MDA in Developing Intermediary Service for Data Retrieval

Applying MDA in Developing Intermediary Service for Data Retrieval Applying MDA in Developing Intermediary Service for Data Retrieval Danijela Boberić Krstićev University of Novi Sad Faculty of Sciences Trg Dositeja Obradovića 4, Novi Sad Serbia +381214852873 dboberic@uns.ac.rs

More information

It s all around the domain ontologies - Ten benefits of a Subject-centric Information Architecture for the future of Social Networking

It s all around the domain ontologies - Ten benefits of a Subject-centric Information Architecture for the future of Social Networking It s all around the domain ontologies - Ten benefits of a Subject-centric Information Architecture for the future of Social Networking Lutz Maicher and Benjamin Bock, Topic Maps Lab at University of Leipzig,

More information

Variation Management for Software Production Lines 1

Variation Management for Software Production Lines 1 Variation Management for Software Production Lines 1 Charles W. Krueger BigLever Software, Inc. 10500 Laurel Hill Cove Austin TX 78730 USA ckrueger@biglever.com Abstract. Variation in a software product

More information

Introduction to the Analysis and Management Framework

Introduction to the Analysis and Management Framework Introduction to the Analysis and Management Framework Project Team: Don Kranz, Tom Gullion, Neal Saito, Gary Marchiny Project Monitor: Steve Husty 1 Agenda Problem Space The NASA IV&V AMF N Tier Architectures

More information

Di 6.1a. Warum naive SOA scheitert Ein Erfahrungsbericht. Adam Bien. January 26-30, 2009, Munich, Germany ICM - International Congress Centre Munich

Di 6.1a. Warum naive SOA scheitert Ein Erfahrungsbericht. Adam Bien. January 26-30, 2009, Munich, Germany ICM - International Congress Centre Munich Di 6.1a January 26-30, 2009, Munich, Germany ICM - International Congress Centre Munich Warum naive SOA scheitert Ein Erfahrungsbericht Adam Bien How To Kill a SOA Project Early? [Warum naive SOA scheitert]

More information

Twin A Design Pattern for Modeling Multiple Inheritance

Twin A Design Pattern for Modeling Multiple Inheritance Twin A Design Pattern for Modeling Multiple Inheritance Hanspeter Mössenböck University of Linz, Institute of Practical Computer Science, A-4040 Linz moessenboeck@ssw.uni-linz.ac.at Abstract. We introduce

More information

Federated, Generic Configuration Management for Engineering Data

Federated, Generic Configuration Management for Engineering Data Federated, Generic Configuration Management for Engineering Data Dr. Rainer Romatka Boeing GPDIS_2013.ppt 1 Presentation Outline I Summary Introduction Configuration Management Overview CM System Requirements

More information

Object-Oriented Middleware for Distributed Systems

Object-Oriented Middleware for Distributed Systems Object-Oriented Middleware for Distributed Systems Distributed Systems Sistemi Distribuiti Andrea Omicini after Giovanni Rimassa andrea.omicini@unibo.it Ingegneria Due Alma Mater Studiorum Università di

More information

Co-Creation of Models and Metamodels for Enterprise. Architecture Projects.

Co-Creation of Models and Metamodels for Enterprise. Architecture Projects. Co-Creation of Models and Metamodels for Enterprise Architecture Projects Paola Gómez pa.gomez398@uniandes.edu.co Hector Florez ha.florez39@uniandes.edu.co ABSTRACT The linguistic conformance and the ontological

More information

Supporting Interactive Invocation of Remote Services within an Integrated Programming Environment

Supporting Interactive Invocation of Remote Services within an Integrated Programming Environment Supporting Interactive Invocation of Remote Services within an Integrated Programming Environment Bruce Quig Faculty of Information Technology Monash University Australia John Rosenberg Faculty of Information

More information

25 May 11.30 Code 3C3 Peeling the Layers of the 'Performance Onion John Murphy, Andrew Lee and Liam Murphy

25 May 11.30 Code 3C3 Peeling the Layers of the 'Performance Onion John Murphy, Andrew Lee and Liam Murphy UK CMG Presentation 25 May 11.30 Code 3C3 Peeling the Layers of the 'Performance Onion John Murphy, Andrew Lee and Liam Murphy Is Performance a Problem? Not using appropriate performance tools will cause

More information

Introduction to CORBA. 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture

Introduction to CORBA. 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture Introduction to CORBA 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture 1. Introduction CORBA is defined by the OMG The OMG: -Founded in 1989 by eight companies as a non-profit

More information

RUP Design. Purpose of Analysis & Design. Analysis & Design Workflow. Define Candidate Architecture. Create Initial Architecture Sketch

RUP Design. Purpose of Analysis & Design. Analysis & Design Workflow. Define Candidate Architecture. Create Initial Architecture Sketch RUP Design RUP Artifacts and Deliverables RUP Purpose of Analysis & Design To transform the requirements into a design of the system to-be. To evolve a robust architecture for the system. To adapt the

More information

Web Application Architectures

Web Application Architectures Web Engineering Web Application Architectures Copyright 2013 Ioan Toma & Srdjan Komazec 1 Where we are? # Date Title 1 5 th March Web Engineering Introduction and Overview 2 12 th March Requirements Engineering

More information

Software Engineering. Software Engineering. Component-Based. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Engineering. Software Engineering. Component-Based. Based on Software Engineering, 7 th Edition by Ian Sommerville Software Engineering Component-Based Software Engineering Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To explain that CBSE is concerned with developing standardised components

More information

Combining SAWSDL, OWL DL and UDDI for Semantically Enhanced Web Service Discovery

Combining SAWSDL, OWL DL and UDDI for Semantically Enhanced Web Service Discovery Combining SAWSDL, OWL DL and UDDI for Semantically Enhanced Web Service Discovery Dimitrios Kourtesis, Iraklis Paraskakis SEERC South East European Research Centre, Greece Research centre of the University

More information

Adding Semantics to Business Intelligence

Adding Semantics to Business Intelligence Adding Semantics to Business Intelligence Denilson Sell 1,2, Liliana Cabral 2, Enrico Motta 2, John Domingue 2 and Roberto Pacheco 1,3 1 Stela Group, Universidade Federal de Santa Catarina, Brazil 2 Knowledge

More information

Understanding Architectural Assets

Understanding Architectural Assets IBM Software Group Understanding Architectural Assets Peter Eeles peter.eeles@uk.ibm.com 2008 IBM Corporation Agenda IBM Software Group Rational software Introduction Sources of architecture Types of architectural

More information

Service Oriented Architecture (SOA) Architecture, Governance, Standards and Technologies

Service Oriented Architecture (SOA) Architecture, Governance, Standards and Technologies Service Oriented Architecture (SOA) Architecture, Governance, Standards and Technologies 3-day seminar Give Your Business the Competitive Edge SOA has rapidly seized the momentum and center stage because

More information

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

Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2. Component 2.1 Component 2.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

Patterns in a Nutshell

Patterns in a Nutshell Patterns in a Nutshell http://www.enteract.com/~bradapp/ January 27, 1998 Patterns in a Nutshell Page 2 of 12 Trendy: Literary: 1.0 What are Patterns? Recent hot topic, OOD buzzword, lots of hype! Form

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

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

Applying 4+1 View Architecture with UML 2. White Paper

Applying 4+1 View Architecture with UML 2. White Paper Applying 4+1 View Architecture with UML 2 White Paper Copyright 2007 FCGSS, all rights reserved. www.fcgss.com Introduction Unified Modeling Language (UML) has been available since 1997, and UML 2 was

More information

BCS HIGHER EDUCATION QUALIFICATIONS. BCS Level 5 Diploma in IT. Software Engineering 1. June 2015 EXAMINERS REPORT

BCS HIGHER EDUCATION QUALIFICATIONS. BCS Level 5 Diploma in IT. Software Engineering 1. June 2015 EXAMINERS REPORT BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT Software Engineering 1 June 2015 EXAMINERS REPORT General Comments This is a technical paper about Software Engineering. Questions seek to

More information

Experiences with ALM tools in Software Engineering course

Experiences with ALM tools in Software Engineering course Faculty of Mathematics, University of Belgrade 1/35 Vladimir Filipović Experiences with ALM tools in Software Engineering course Outline 2/35 Software Engineering course entitled Software development 2

More information

Business Rule Standards -- Interoperability and Portability

Business Rule Standards -- Interoperability and Portability Rule Standards -- Interoperability and Portability April 2005 Mark H. Linehan Senior Technical Staff Member IBM Software Group Emerging Technology mlinehan@us.ibm.com Donald F. Ferguson IBM Fellow Software

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

Lecture 9: Requirements Modelling

Lecture 9: Requirements Modelling A little refresher: What are we modelling? Lecture 9: Requirements Modelling Requirements; Systems; Systems Thinking Role of Modelling in RE Why modelling is important Limitations of modelling Brief overview

More information

Remigijus Gustas. Department of Information Systems, Karlstad University, Sweden

Remigijus Gustas. Department of Information Systems, Karlstad University, Sweden Department of Information Systems, Karlstad University, Sweden Underlying principles of conventional Conceptual Modeling Approaches EM methods distinguish disparate views/dimensions (Zachman, 1987). UML

More information

Brokerage in web application frameworks

Brokerage in web application frameworks Brokerage in web application frameworks Issues of framework re-use in OpenACS Stefan Sobernig Vienna University of Economics and Business Administration 1 von 33 15.02.2008 16:03 Uhr Overview 1. On concepts:

More information

Implementing reusable software components for SNOMED CT diagram and expression concept representations

Implementing reusable software components for SNOMED CT diagram and expression concept representations 1028 e-health For Continuity of Care C. Lovis et al. (Eds.) 2014 European Federation for Medical Informatics and IOS Press. This article is published online with Open Access by IOS Press and distributed

More information

INTEROPERABILITY IN DATA WAREHOUSES

INTEROPERABILITY IN DATA WAREHOUSES INTEROPERABILITY IN DATA WAREHOUSES Riccardo Torlone Roma Tre University http://torlone.dia.uniroma3.it/ SYNONYMS Data warehouse integration DEFINITION The term refers to the ability of combining the content

More information

SOA Enabled Workflow Modernization

SOA Enabled Workflow Modernization Abstract Vitaly Khusidman Workflow Modernization is a case of Architecture Driven Modernization (ADM) and follows ADM Horseshoe Lifecycle. This paper explains how workflow modernization fits into the ADM

More information

Masters of Science in Software & Information Systems

Masters of Science in Software & Information Systems Masters of Science in Software & Information Systems To be developed and delivered in conjunction with Regis University, School for Professional Studies Object Oriented Design Table of Contents January

More information

Open Source Software: How Can Design Metrics Facilitate Architecture Recovery?

Open Source Software: How Can Design Metrics Facilitate Architecture Recovery? Open Source Software: How Can Design Metrics Facilitate Architecture Recovery? Eleni Constantinou 1, George Kakarontzas 2, and Ioannis Stamelos 1 1 Computer Science Department Aristotle University of Thessaloniki

More information

Healthcare, transportation,

Healthcare, transportation, Smart IT Argus456 Dreamstime.com From Data to Decisions: A Value Chain for Big Data H. Gilbert Miller and Peter Mork, Noblis Healthcare, transportation, finance, energy and resource conservation, environmental

More information

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles Jørgen Thelin Chief Scientist Cape Clear Software Inc. Abstract The three common software architecture styles

More information

A Process View on Architecture-Based Software Development

A Process View on Architecture-Based Software Development A Process View on Architecture-Based Software Development Lothar Baum, Martin Becker, Lars Geyer, Georg Molter System Software Research Group University of Kaiserslautern D-67653 Kaiserslautern, Germany

More information

Chapter 4. Architecture. Table of Contents. J2EE Technology Application Servers. Application Models

Chapter 4. Architecture. Table of Contents. J2EE Technology Application Servers. Application Models Table of Contents J2EE Technology Application Servers... 1 ArchitecturalOverview...2 Server Process Interactions... 4 JDBC Support and Connection Pooling... 4 CMPSupport...5 JMSSupport...6 CORBA ORB Support...

More information

Wait-Time Analysis Method: New Best Practice for Performance Management

Wait-Time Analysis Method: New Best Practice for Performance Management WHITE PAPER Wait-Time Analysis Method: New Best Practice for Performance Management September 2006 Confio Software www.confio.com +1-303-938-8282 SUMMARY: Wait-Time analysis allows IT to ALWAYS find the

More information

An Automatic Reversible Transformation from Composite to Visitor in Java

An Automatic Reversible Transformation from Composite to Visitor in Java An Automatic Reversible Transformation from Composite to Visitor in Java Akram To cite this version: Akram. An Automatic Reversible Transformation from Composite to Visitor in Java. CIEL 2012, P. Collet,

More information

Data Mining Governance for Service Oriented Architecture

Data Mining Governance for Service Oriented Architecture Data Mining Governance for Service Oriented Architecture Ali Beklen Software Group IBM Turkey Istanbul, TURKEY alibek@tr.ibm.com Turgay Tugay Bilgin Dept. of Computer Engineering Maltepe University Istanbul,

More information

Protecting the Hosted Application Server

Protecting the Hosted Application Server Protecting the Hosted Application Server Paola Dotti, Owen Rees Extended Enterprise Laboratory HP Laboratories Bristol HPL-1999-54 April, 1999 E-mail: {Paola_Dotti,Owen_Rees}@hpl.hp.com application server,

More information

Model Driven Interoperability through Semantic Annotations using SoaML and ODM

Model Driven Interoperability through Semantic Annotations using SoaML and ODM Model Driven Interoperability through Semantic Annotations using SoaML and ODM JiuCheng Xu*, ZhaoYang Bai*, Arne J.Berre*, Odd Christer Brovig** *SINTEF, Pb. 124 Blindern, NO-0314 Oslo, Norway (e-mail:

More information

CONDIS. IT Service Management and CMDB

CONDIS. IT Service Management and CMDB CONDIS IT Service and CMDB 2/17 Table of contents 1. Executive Summary... 3 2. ITIL Overview... 4 2.1 How CONDIS supports ITIL processes... 5 2.1.1 Incident... 5 2.1.2 Problem... 5 2.1.3 Configuration...

More information

Structural Design Patterns Used in Data Structures Implementation

Structural Design Patterns Used in Data Structures Implementation Structural Design Patterns Used in Data Structures Implementation Niculescu Virginia Department of Computer Science Babeş-Bolyai University, Cluj-Napoca email address: vniculescu@cs.ubbcluj.ro November,

More information

Maturity Assessments of Service- oriented Enterprise Architectures with Iterative Pattern Refinement

Maturity Assessments of Service- oriented Enterprise Architectures with Iterative Pattern Refinement Maturity Assessments of Service- oriented Enterprise Architectures with Iterative Pattern Refinement Michael Falkenthal 1, Dierk Jugel 1, Alfred Zimmermann 1, René Reiners 2, Wilfried Reimann 3, Michael

More information

A Review of an MVC Framework based Software Development

A Review of an MVC Framework based Software Development , pp. 213-220 http://dx.doi.org/10.14257/ijseia.2014.8.10.19 A Review of an MVC Framework based Software Development Ronnie D. Caytiles and Sunguk Lee * Department of Multimedia Engineering, Hannam University

More information

Software Architecture. New wine in old bottles? (i.e., software architecture global design?, architect designer)

Software Architecture. New wine in old bottles? (i.e., software architecture global design?, architect designer) Software Architecture New wine in old bottles? (i.e., software architecture global design?, architect designer) Overview What is it, why bother? Architecture Design Viewpoints and view models Architectural

More information

Web Services and Seamless Interoperability

Web Services and Seamless Interoperability Web Services and Seamless Interoperability João Paulo A. Almeida, Luís Ferreira Pires, Marten J. van Sinderen Centre for Telematics and Information Technology, University of Twente PO Box 217, 7500 AE

More information

Simplifying Processes Interoperability with a Service Oriented Architecture

Simplifying Processes Interoperability with a Service Oriented Architecture Why SOA? Simplifying Processes Interoperability with a Service Oriented Architecture Zak Merzouki, Software Architecture and Technology Director BDPA 11/20/2008 Perspective "Things should be made as simple

More information

Information as a Service in a Data Analytics Scenario A Case Study

Information as a Service in a Data Analytics Scenario A Case Study 2008 IEEE International Conference on Web Services Information as a Service in a Analytics Scenario A Case Study Vishal Dwivedi, Naveen Kulkarni SETLabs, Infosys Technologies Ltd { Vishal_Dwivedi, Naveen_Kulkarni}@infosys.com

More information

Pattern Based Transformation and Evolution of Software Systems

Pattern Based Transformation and Evolution of Software Systems Pattern-based Evolution of Software Architectures Isabelle Côté, Maritta Heisel, and Ina Wentzlaff University Duisburg-Essen, Faculty of Engineering, Department of Computational and Cognitive Sciences

More information

A Service Discovery: A Service Broker Approach

A Service Discovery: A Service Broker Approach A Service Discovery: A Service Broker Approach Teemu Koponen Helsinki University of Technology Telecommunication software and Multimedia Laboratory Email: teemu.koponen@hut.fi Teemupekka Virtanen Helsinki

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

Background: Business Value of Enterprise Architecture TOGAF Architectures and the Business Services Architecture

Background: Business Value of Enterprise Architecture TOGAF Architectures and the Business Services Architecture Business Business Services Services and Enterprise and Enterprise This Workshop Two parts Background: Business Value of Enterprise TOGAF s and the Business Services We will use the key steps, methods and

More information

A Java Framework for Multi-Tier Web-Centric Applications Development

A Java Framework for Multi-Tier Web-Centric Applications Development 1 A Java Framework for Multi-Tier Web-Centric Applications Development Davide Brugali, Giuseppe Menga, and Franco Guidi-Polanco Abstract Web-centric applications can be understood as middle-size applications

More information

Pattern Oriented Software Development: Moving Seamlessly from Requirements to Architecture

Pattern Oriented Software Development: Moving Seamlessly from Requirements to Architecture Pattern Oriented Software Development: Moving Seamlessly from Requirements to Architecture M S Rajasree, P Jithendra Kumar Reddy, D Janakiram Distributed & Object Systems Lab Department of Computer Science

More information

Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications

Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications Chapter 6. CORBA-based Architecture 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications 1 Chapter 6. CORBA-based Architecture Part 6.1 Introduction to

More information

Service-oriented architecture in e-commerce applications

Service-oriented architecture in e-commerce applications Service-oriented architecture in e-commerce applications What is a Service Oriented Architecture? Depends on who you ask Web Services A technical architecture An evolution of distributed computing and

More information

Object-Oriented Systems Analysis and Design

Object-Oriented Systems Analysis and Design Object-Oriented Systems Analysis and Design Noushin Ashrafi Professor of Information System University of Massachusetts-Boston Hessam Ashrafi Software Architect Pearson Education International CONTENTS

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

Building Semantic Content Management Framework

Building Semantic Content Management Framework Building Semantic Content Management Framework Eric Yen Computing Centre, Academia Sinica Outline What is CMS Related Work CMS Evaluation, Selection, and Metrics CMS Applications in Academia Sinica Concluding

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

Utilizing Domain-Specific Modelling for Software Testing

Utilizing Domain-Specific Modelling for Software Testing Utilizing Domain-Specific Modelling for Software Testing Olli-Pekka Puolitaival, Teemu Kanstrén VTT Technical Research Centre of Finland Oulu, Finland {olli-pekka.puolitaival, teemu.kanstren}@vtt.fi Abstract

More information

Teaching Software Engineering Through Game Design

Teaching Software Engineering Through Game Design Teaching Software Engineering Through Game Design Kajal Claypool Computer Science Department University of Massachusetts 1 University Avenue Lowell, MA, USA kajal@cs.uml.edu Mark Claypool Computer Science

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

Incorporating database systems into a secure software development methodology

Incorporating database systems into a secure software development methodology Incorporating database systems into a secure software development methodology Eduardo B. Fernandez 1, Jan Jurjens 2, Nobukazu Yoshioka 3, and Hironori Washizaki 4 1 Dept. of Computer Science, Florida Atlantic

More information

Managing Variability in Software Architectures 1 Felix Bachmann*

Managing Variability in Software Architectures 1 Felix Bachmann* Managing Variability in Software Architectures Felix Bachmann* Carnegie Bosch Institute Carnegie Mellon University Pittsburgh, Pa 523, USA fb@sei.cmu.edu Len Bass Software Engineering Institute Carnegie

More information