Multi-Dimensional Separation of Concerns and IBM Hyper/J

Size: px
Start display at page:

Download "Multi-Dimensional Separation of Concerns and IBM Hyper/J"

Transcription

1 Multi-Dimensional Separation of Concerns and IBM Hyper/J Technical Research Report Barry R. Pekilis Bell Canada Software Reliability Laboratory Electrical and Computer Engineering University of Waterloo January 22, 2002

2 Introduction The process of multi-dimensional separation of concerns (MDSOC) is intended to allow developers to partition overlapping concerns in new and existing software products along multiple dimensions of composition and decomposition[1][6][7][8]. A clean separation of concerns is purported to: reduce complexity; improve comprehensibility and traceability within and across software artifacts; limit the impact of change; facilitate evolution, adaptation, customization, and reuse; and simplify component integration. In practice, achieving all of these goals has, to date, eluded software developers. For one, sets of primary concerns for a given software product line tend to be highly context-sensitive and often vary greatly over time. Another hurdle relates to the loss of traceability when traversing the link from requirements to design to implementation. Within the various software artifacts, the units of change often do not match the units of abstraction. For example, consider the link between requirements and design. Despite being representations of the same conceptual entity, each artifact decomposes the software system differently. Requirements decompose by feature, while design and code decompose by object. Issues and differences such as these often leads to the scattering and tangling of individual concerns across modules of the software implementation. Scattering occurs when a single requirement affects multiple design and code modules. Tangling occurs when material pertaining to multiple requirements is interleaved within a single module. These two factors greatly complicate and contribute to limiting the ability of software developers to reuse code. Model of Conventional Software Software systems are intended to address problems or provide services within a specified domain. They are represented by a set of software artifacts such as requirements specifications, design documents, and implementation code. Each artifact is created using descriptive materials that may be viewed as units. What comprises each unit depends on the formalism used and the context it is used in (e.g., class, method, function, UML diagram). Modern software implementations are normally organized into modules to help software developers achieve the desired separation of concerns. This modular approach allows software developers to identify each major concern and localize its units into a corresponding module. Many dimensions of concerns are January 22, 2002 Page 1 of 10

3 important throughout an implementation s lifecycle. These dimensions of concerns are used to organize the units that make up a software product. Tyranny of Dominant Decomposition Most of the present software formalisms support, to some extent, separation of concerns, but with a tendency toward a single, main dimension. For example, the object-oriented paradigm encapsulates data concerns into classes, while other concern types are not effectively represented. This is referred to as the tyranny of dominant decomposition[6][7] because one dominant way of decomposing the software (e.g., by class) imposes a brittle structure that makes it difficult to encapsulate other dimensions of concerns. A Detailed Example A detailed example using the MDSOC approach for a personnel system is presented in [7]. The example is summarized in the companion presentation included with this report. Multi-Dimensional Separation of Concerns Hyperspace Hyperspaces is a MDSOC approach that supports the explicit identification of important concerns and the encapsulation and integration of those concerns. Formally, a hyperspace is defined as a tuple (U, M,H) in which: U is a set of units gathered into the hyperspace; M is a concern matrix which simultaneously organizes the units in U according to all concerns of importance; and H is a set of hypermodules which specify how to build components from the units in U. Concern A concern may be modeled as a predicate, c, over a set of units, U. The predicate is used to indicate whether a particular unit addresses a specific concern. The unit set induced by concern c may be represented by: U(c) ={u U c(u) }. Concerns are considered to overlap if their unit sets are not disjoint. Using this representation, a dimension of concern can be defined as a set of concerns whose unit sets partition U. This partitioning property is important because it implies that a point in multi-dimensional spaces projects onto exactly one coordinate in each dimension. A dimension s concerns cannot overlap and must cover all the units in U. January 22, 2002 Page 2 of 10

4 Identification of concerns is a process of selecting concerns and populating them with associated units. It may be performed in a top-down (e.g., design) or bottom up (e.g., evolution) fashion, depending on the phase of the software lifecycle. Software artifacts include UML design documents and Java code. After being identified and grouped, encapsulated concerns can be manipulated as first-class entities. Encapsulated concerns are integrated to create the actual software artifact that addresses the multiple concerns of the system. For example, in standard Java, classes are integrated by loading. Their relationships are determined by a combination of import specifications and the class path. Concerns other than interfaces and classes cannot be integrated by standard Java. None Each dimension d, has one concern called the None concern, N d. All units that do not address any concern in d address N d. The None concern may be defined as the set of all units unaffected by changes that may occur within its associated dimension. The None concern for a given dimension may be empty. Concern Matrix A concern matrix may be defined over a set of units, U, as a tuple (C, D) where: C is a set of concerns; and D is a set of concern dimensions such that: - every concern in C is in exactly one dimension in D; and - every dimension in D partitions U. Therefore, each unit in U will be located at exactly one point (i.e., address only one concern) in each dimension. The unit s coordinates in the concern matrix identifies the associated concern. Hyperslice A hyperslice may be described as a set of units, written in any formalism, that encapsulates concerns in one dimension other than the dominant one. Each hyperslice only contains those units that address a particular concern of interest. Hyperslices can overlap, thus supporting simultaneous decompositions along multiple dimensions. This allows a software implementation to be represented as a collection of hyperslices along as many dimensions as required. Formally, a hyperslice resides in a hyperspace as a tuple (U, M, H). Hyperslice are always defined as a declaratively complete concern (hs C). A hyperslice, hs, is considered closed under references of all kinds such that if a unit u 1 hs refers in some way to another unit, u 2 U, then u 2 hs. January 22, 2002 Page 3 of 10

5 Hypermodules A hypermodule comprises of a set of composable hyperslices, together with a set of composition rules (i.e., integration relationships) that specify how the hyperslices are to be composed. Hypermodules can be nested, allowing an entire software artifact to be modeled as a hypermodule. The hypermodule s composition rules indicate which units in the various hyperslices describe the same concepts and how these units must be integrated. For example, a rule may assert that classes in different hyperslices with the same name model the same concept and should be merged into a new, compound class with the same name and combined details. A hypermodule may be formally defined as a tuple (HS, CR) where: HS is a set of hyperslices; and CR is a set of composition relationships. A composition relationship is itself defined as a tuple (I, r, f, o), where: I is a tuple of input units from the hyperslices in HS; r is a correspondence relationship defining how the units in I are interrelated; f is a composition function, f :(I r) + > U indicating how to compose the units in I in accordance with r; and o is the output unit produced using f. Declarative Completeness Units pertaining to concerns other than the dominant one are often scattered across modules or tangled within a single module. Often, these units are still related in a number of ways. For example, one function unit may invoke another, or it may define or use a variable declaration unit, creating high levels of coupling. To decouple them, hyperslices are defined to be declaritively complete, that is they declare everything to which they refer. For example, each hyperslice must, at minimum, include a declaration for each function that its members invoke, as well as for any variables its members use. Implementation details for these declaration are not needed. The declaration may be abstract, specifying all or part, of the formal or informal properties the hyperslice relies on. Formally, a predicate, decl, is used on units to identify declarations. Sometimes, declarations are different to accommodate hyperslices that have different needs. To prevent false overlap, the implementation set of hyperslices may be defined as: I(hs) ={u hs decl(u)}. The implementation set of a concern is defined similarly. This property of declarative completeness means each hyperslice is self-contained with respect to January 22, 2002 Page 4 of 10

6 declarations. Suppose, for example, hyperslice X contains a unit u 1 for its method x() that use a accessor function y() from unit u 2 defined in hyperslice Y. To make X declaratively complete, it must contain another unit u 2decl which declares y(), without necessarily implementing it, so that u 1 uses u 2decl instead of u 2. This eliminates coupling between X and Y with the understanding that u 2decl will eventually be bound to an implementation in some other hyperslice. Correspondence To create a working implementation in the above example, some hyperslice must provide a unit that can be bound to u 2decl. This relationship is referred to as a correspondence and only occurs within the context of a particular software component or system. Therefore, the same declarative unit may be associated with different implementation units in different software products, as defined in the associated hypermodule. Once identified, corresponding units can be composed or integrated. For example, the composition of corresponding units u 2 and u 2decl results in u 2 being called by u 1 at runtime. Relationships Units, concerns, and hyperslices may be related in a variety of ways. For example, hyperslices may overlap and share units. In this case, sharing a unit in one hyperslice has a side effect on the other. Alternately, two hyperslices might be interrelated through one or more integration relationships that indicate how the two are to be combined. There are two distinct classes of relationships: context-insensitive and context-sensitive. Overlap is a context-insensitive relationship that exists as long as the associated hyperslices share common units. Integration is a context-sensitive relationship that only exists if the associated hyperslices are integrated in some context that is not inherent in their definition. Other common relationship types include generalizes, subsumes, and precludes. Composition To integrate a set of hyperslices, it is necessary to identify the required set of correspondence relationships among them and then determine how to compose to effect integration. Some examples of correspondence relationships include: binding of abstract declarations to implementations; correspondence of multiple implementations to integrate their respective capabilities; or elaboration - for example, a design unit might elaborate a requirement unit during model refinement. Composition rules are specifications for composition relationships They are succinct, and rely on January 22, 2002 Page 5 of 10

7 defaults and uniformity for composition mainly at the hyperslice level, rather than at the individual unit level. Composition details may vary greatly, depending on the artifact s formalism and how the formalism s constructs are treated as units and modules. Composition is based on commonality of concepts across units. That is, different units describing the same concept are composed into a single unit describing that concept more fully. This involves three steps: matching units in different hyperslices that describe the same concept; reconciliation of differences in these descriptions; and integration of units to produce a unified and whole implementation. Presently, composition cannot be fully automated and requires software developers to manually specify the details of the composition rules in the hypermodule. Composition Rules One approach to composition rules, based on subject-oriented programming[2][5], proposes rules be a combination of a concise, general rule, and a series of detailed, specific rules. The specific rules are used to explicitly state those exceptions to the general rule or to handle special cases not handled implicitly by the general rule. Application of the general rule may be automated since the general rule may be applied to either the entire composition or selectively portions of it. Detailed rules can then be employed to handle special issues such as: matching units with different names that describe the same concept; not matching units with the same names that describe different concepts; and reconciling different module structures (e.g., matching units nested at different depths in different hyperslices). IBM Hyper/J IBM Hyper/J is a tool that supports hyperspaces for the Java language formalism. The IBM Hyper/J installation manual and user guide[9] is provide with the Hyper/J binary and can be downloaded from < The user manual provides details for running the tool, along with details for creating a hyperspace specification file, a concern mapping file, and a hypermodule. The experimental (i.e., binary) version of Hyper/J is written in standard Java and released as a standard jar file. The Hyper/J tool can operate in verbose mode. In this mode, the tool creates unparsed files and a dump January 22, 2002 Page 6 of 10

8 of the hyperspace that shows the dimensions and concerns created and the units that address each of those concern. Hyper/J also has a debug option to generate information for debugging erroneous hypermodule specifications, however, the output generated tends to be very large, detailed, and tedious to manually parse. A GUI would be a definite advantage for automatically identify errors through a WYSIWYG graphical interface. Unfortunately, Hyper/J source code and Hyper/J GUI is not available from IBM without special licensing arrangements. Hyper/J is presently intended for units at the granularity of declarations (e.g., classes, UML diagrams) rather than lower-level constructs (e.g., statements, expressions). The tool presently supports one language for defining units - Java 1. The Java language defines both declarator constructs (e.g., packages, interfaces, classes, methods) and statements. In Hyper/J, only a subset of these constructs are treated as units. A finer granularity might include all declarators and statements and thus allow the flexibility to compose any pieces of Java source. However, this would make matching and reconciliation enormously complex and difficult to analyze. A courser granularity simplifies the composition and the understandability of composed results at the cost of generality. The extension of Hyper/J to handle finer grained units in an organized fashion remains an issue of future research[1]. The Hyper/J tool itself works on, and generates, standard Java class files. All support for multidimensional separation of concerns occurs outside the standard Java language. Therefore, no special coding conventions or packages are required. Hyper/J can also be used with only class files (i.e., no source). However, this requires software developers have an intimate understanding of the software product and the actual program, interfaces, and method signatures from up-to-date documentation or class file dumps. To use Hyper/J, a software developer must write the necessary hypermodule. For each concern of importance, a hyperslice must be created and the appropriate composition rules specified. These rules direct Hyper/J on how to compose the specified hyperslices into a set of legal modules. The tool takes, as input: a project specification used to identify Java code units in a given hyperspace; a concern mapping used to describe how units are organized; and a hypermodule specification. Hyper/J is intended to allow software developers to identify and manipulate concerns, to focus in on 1. According to the literature, Hyper/J is being extended to incorporate Unified Modeling Language (UML). January 22, 2002 Page 7 of 10

9 particular dimensions of concern, and to create hypermodules by trial-and-error integration of concerns. Using the experimental version of Hyper/J makes this a time consuming process. The assistance of the GUI to highlight errors and relate them back to the original lines in the project specifications is essential for software products of considerable size. The software developer starts by creating the hypermodules. A set of concerns and a default (i.e., general) compositional relationship among those concerns is then chosen. Running Hyper/J creates the valid hyperslices for the concerns using automatic declaration completion. The tool then composes the hyperslices based on the software developer-specified general and specific compositional relationships. Class files produced by Hyper/J are standard Java class files and can be used as input to Hyper/J for further composition. Although these class files can be reused, once again, the software developer requires up-to-date implementation details such as updated interfaces and method signatures. At present, Hyper/J cannot extend Java library classes, however, this functionality is planned for a future release. Limitations A stated previously, the Hyper/J tool works on the granularity of whole members and does not support pulling apart code in method bodies. Instead, software developers must separately provide their own methods to accomplish any necessary processing for each concern of interest. The Hyper/J tool is then used to compose these methods as they are required. This leaves two choices for handling code for multiple concerns that are tangled in a single method body: first, the entire method to be excluded from composition by assigning the existing method to the None concern. Then, a new method must be separately provided by the software developer for each concern of interest; or second, if the Java source code is available, the software developer can attempt to modify and split up the original method into two or more methods. This has the obvious negative effect for other concerns that still require the original method. Neither option is desirable. The major limitations on the functionality of the Hyper/J tool are detailed in [9] and, therefore, not repeated here. Related Work This section will provide a very brief summary of work related to the MDSOC approach. Where appropriate, comparisons are made between concepts in MDSOC and the related work: January 22, 2002 Page 8 of 10

10 Subject-oriented programming[2][5] provides a model for object-oriented implementations where units are classes, methods, and instance variables. Systems are built as compositions of subjects where each is a class hierarchy modeling its domain from a particular point of view. This is similar to the role of a hyperslice in MDOSC. Like MDSOC, subject-oriented compositional rules provide considerable matching and reconciliation flexibility. The aspect-oriented programming (AOP)[4] paradigm is used to identify and separate non-functional, cross-cutting concerns (e.g. concurrency, distribution, persistence). AOP distinguishes between core classes, which encapsulate a system s functional requirements, from aspects, which encapsulate the non-functional, crosscutting requirements. Aspects are written with respect to core classes and are essentially orthogonal to one another. Individual aspect may be viewed as a hyperslice, and a set of aspects together with the core classes approximates a hypermodule. However, there is no central composition rule. Instead, each aspect contains its part of the rule, specifying how that aspect is to be woven into the base classes. This can make the handling of overlapping concerns (i.e., interaction among aspects) difficult to handle. Compositional contracts[3] have also been proposed for specifying reusable components. In this approach, each contract specifies a set of participant objects and their interactions, expressed as obligations. These are encapsulated to clearly separated them from other interactions involving the same object. A single object can participate in multiple contracts, but must satisfy all its obligations. There are many possible compositional rules for contracts. Contracts correspond to hyperslices and cut across classes. Conclusions Separation of concerns is a software engineering concept used to reduce the complexity of software system to manageable levels, in human terms, and allows software developers to focus on a smaller sets of details, while ignoring other less important details. To effectively employ the MDSOC approach. software developers must be able to identify, encapsulate, modularize, and manipulate multiple dimensions at any point in the software development lifecycle without suffering from the effects of invasive, modification, evolution, or rearchitecture. The stated ultimate goal of Hyper/J is to provide developers with the capability of on-demand remodularization. This means that under ideal circumstances, software developers must be able to choose the best modularization scheme, on the fly, for those concerns of importance and for the particular task at January 22, 2002 Page 9 of 10

11 hand. Unfortunately, at present, this is still an ambitious set of goals. No existing mechanism, including Hyper/J, fully satisfies them. Using Hyper/J is only a semi-automatic process. To use the tool effectively, a software developers must ultimately understand enough about the corresponding units to determine whether or not they are compatible and how best to integrate them. The issue of whether corresponding units are compatible and whether an implementation unit satisfies a declaration unit s requirements or whether a design unit satisfies a requirement involves both syntactic and semantic issues. How to characterize and check for such compatibility remains an issue of future research. This work is clearly at an early stage, largely unproven as yet. There is a considerable body of experience and related research now exists to support the claim that mutli-dimensional separation of concerns is one of the key software issues today. However, a fully automated approach remains elusive. References [1] M. Aksit (editor), Software architectures and component technology, International Series in Engineering and Computer Science, Volume 648, Kluwer Academic Publishers, October [2] S. Clarke, W. Harrison, H. Ossher, P. Tarr, Subject-oriented design: toward improved alignment of requirements, design, and code, OOPSLA 99, ACM, 1999, pp [3] I. Holland, Specifying reusable components using contracts, ECOOP 92, Lecture Notes in Computer Science, Volume 615, Springer, 1992, pp [4] G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.Loingtier, J. Irwin. Aspect-oriented programming, ECOOP'97, Lecture Notes in Computer Science, Volume 1241, Springer, 1997, pp [5] H. Ossher, M. Kaplan, W. Harrison, A. Katz, V. Kruskal, Subject-oriented composition rules, OOPSLA 95, ACM, October 1995, pp [6] H. Ossher, P. Tarr, Multi-dimensional separation of concerns using hyperspaces, IBM Research Report 21452, April, [7] H. Ossher, P. Tarr, Using multidimensional separation of concerns to (re) shape evolving software, Communications of the ACM, October 2001, pp [8] P. Tarr, H. Ossher, W. Harrison, S. Sutton Jr., N degree of separation: mutli-dimensional separation of concerns, ICSE 99, ACM, 1999, pp [9] P. Tarr, H. Ossher, Hyper/J User and Installation Manual, < IBM, January 22, 2002 Page 10 of 10

Multi-dimensional Separation of Concerns in Hyperspace

Multi-dimensional Separation of Concerns in Hyperspace Multi-dimensional Separation of Concerns in Hyperspace IBM Thomas Watson Research Center http://www.research.ibm.com/hyperspace 1 Resources W. Harrison, H. Ossher & P. Tarr: The Beginning of a Graphical

More information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY JOURNAL OF OBJECT TECHNOLOGY Online at http://www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2006 Vol. 5, No. 4, Mai-June 2006 ADDING ASPECT-ORIENTED PROGRAMMING FEATURES TO C#.NET

More information

Towards a formal model of object-oriented hyperslices

Towards a formal model of object-oriented hyperslices Towards a formal model of object-oriented hyperslices Torsten Nelson, Donald Cowan, Paulo Alencar Computer Systems Group, University of Waterloo {torsten,dcowan,alencar}@csg.uwaterloo.ca Abstract This

More information

Pattern Transformation for Two-Dimensional Separation of Concerns

Pattern Transformation for Two-Dimensional Separation of Concerns Transformation for Two-Dimensional Separation of Concerns Xiaoqing Wu, Barrett R. Bryant and Jeff Gray Department of Computer and Information Sciences The University of Alabama at Birmingham Birmingham,

More information

DISCUSSING ASPECTS OF AOP

DISCUSSING ASPECTS OF AOP a DISCUSSING ASPECTS OF AOP How would you define AOP? Gregor Kiczales: Aspect-oriented programming is a new evolution in the line of technology for separation of concerns technology that allows design

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

Using Hyper/J to implement Product-Lines: A Case Study

Using Hyper/J to implement Product-Lines: A Case Study Using Hyper/J to implement Product-Lines: A Case Study Roberto E. Lopez-Herrejon and Don Batory Department of Computer Sciences The University of Texas Austin, Texas 78712 {rlopez,batory@cs.utexas.edu

More information

Domain-Driven Development with Ontologies and Aspects

Domain-Driven Development with Ontologies and Aspects Domain-Driven Development with Ontologies and Aspects Submitted for Domain-Specific Modeling workshop at OOPSLA 2005 Latest version of this paper can be downloaded from http://phruby.com Pavel Hruby Microsoft

More information

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz Results obtained by researchers in the aspect-oriented programming are promoting the aim to export these ideas to whole software development

More information

Dimensions for the Separation of Concerns in Describing Software Development Processes

Dimensions for the Separation of Concerns in Describing Software Development Processes Dimensions for the Separation of Concerns in Describing Software Development Processes Pavel Hruby Navision Software Frydenlunds Allé 6 DK-2950 Vedbæk, Denmark ph@navision.com http://www.navision.com,

More information

Towards a Generic Model for AOP (GEMA)

Towards a Generic Model for AOP (GEMA) Towards a Generic Model for AOP (GEMA) Katharina Mehner *, Awais Rashid Computing Department, Lancaster University, Lancaster LA1 4YR, UK mehner@upb.de, awais@comp.lancs.ac.uk Computing Department, Lancaster

More information

An Aspect-Based Approach to Modeling Security Concerns

An Aspect-Based Approach to Modeling Security Concerns An Aspect-Based Approach to Modeling Security Concerns Geri Georg Agilent Laboratories, Agilent Technologies, Fort Collins, USA geri_georg@agilent.com Robert France, Indrakshi Ray Department of Computer

More information

Control-Flow-Graph-Based Aspect Mining

Control-Flow-Graph-Based Aspect Mining Control-Flow-Graph-Based Aspect Mining Jens Krinke FernUniversität in Hagen, Germany krinke@acm.org Silvia Breu NASA Ames Research Center, USA silvia.breu@gmail.com Abstract Aspect mining tries to identify

More information

A Theory of Aspects for Aspect-Oriented Software Development

A Theory of Aspects for Aspect-Oriented Software Development A Theory of Aspects for Aspect-Oriented Software Development Christina von Flach G. Chavez 1,2 Carlos J. P. de Lucena 2 1 UFBA, Computer Science Department Av. Adhemar de Barros, s/n 40170-110, Salvador,

More information

Model Composition Directives

Model Composition Directives Model Composition Directives Greg Straw, Geri Georg, Eunjee Song, Sudipto Ghosh, Robert France, and James M. Bieman Department of Computer Science Colorado State University, Fort Collins, CO, 80523 {straw,

More information

UML Aspect Specification Using Role Models

UML Aspect Specification Using Role Models UML Aspect Specification Using Role Models Geri Georg Agilent Laboratories, Agilent Technologies, Fort Collins, USA geri_georg@agilent.com Robert France Department of Computer Science, Colorado State University

More information

UML4COP: UML-based DSML for Context-Aware Systems

UML4COP: UML-based DSML for Context-Aware Systems UML4COP: UML-based DSML for Context-Aware Systems Naoyasu Ubayashi Kyushu University ubayashi@acm.org Yasutaka Kamei Kyushu University kamei@ait.kyushu-u.ac.jp Abstract Context-awareness plays an important

More information

Introduction to Aspect-Oriented Programming

Introduction to Aspect-Oriented Programming Introduction to Aspect-Oriented Programming LÁSZLÓ LENGYEL, TIHAMÉR LEVENDOVSZKY {lengyel, tihamer}@aut.bme.hu Reviewed Key words: aspect-oriented programming (AOP), crosscutting concerns Aspect-oriented

More information

Towards Reusable Heterogeneous Data-Centric Disentangled Parts

Towards Reusable Heterogeneous Data-Centric Disentangled Parts Towards Reusable Heterogeneous Data-Centric Disentangled Parts Michael Reinsch and Takuo Watanabe Department of Computer Science, Graduate School of Information Science and Technology, Tokyo Institute

More information

AOSD Explained: ASPECT-ORIENTED SYSTEM DEVELOPMENT

AOSD Explained: ASPECT-ORIENTED SYSTEM DEVELOPMENT Explained: ASPECT-ORIENTED SYSTEM DEVELOPMENT Background & Implications Professor Emeritus Birkbeck College 1 AOSD - Background AOSD - Aspect-Oriented Software Development, AOSD - Aspect-Oriented System

More information

Implementing Producers/Consumers Problem Using Aspect-Oriented Framework

Implementing Producers/Consumers Problem Using Aspect-Oriented Framework Implementing Producers/Consumers Problem Using Aspect-Oriented Framework 1 Computer Science Department School of Science Bangkok University Bangkok, Thailand netipan@iit.edu Paniti Netinant 1, 2 and Tzilla

More information

Aspect-Orientation from Design to Code

Aspect-Orientation from Design to Code Aspect-Orientation from Design to Code Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany groher@informatik.tu-darmstadt.de Thomas Baumgarth Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739

More information

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD TM : ,

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD TM : , Course Code : MCS-032 Course Title : Object Oriented Analysis and Design Assignment Number : MCA (3)/032/Assign/2014-15 Assignment Marks : 100 Weightage : 25% Last Dates for Submission : 15th October,

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

Martin P. Robillard and Gail C. Murphy. University of British Columbia. November, 1999

Martin P. Robillard and Gail C. Murphy. University of British Columbia. November, 1999 Migrating a Static Analysis Tool to AspectJ TM Martin P. Robillard and Gail C. Murphy Department of Computer Science University of British Columbia 201-2366 Main Mall Vancouver BC Canada V6T 1Z4 fmrobilla,murphyg@cs.ubc.ca

More information

6.001 Notes: Section 8.1

6.001 Notes: Section 8.1 6.001 Notes: Section 8.1 Slide 8.1.1 In this lecture we are going to introduce a new data type, specifically to deal with symbols. This may sound a bit odd, but if you step back, you may realize that everything

More information

Modularity: what, why and how

Modularity: what, why and how Modularity: what, why and how Stephen Kell Stephen.Kell@cl.cam.ac.uk Computer Laboratory University of Cambridge Modularity... p.1/33 Some problematic code Imagine implementing a syntax tree evaluator.

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

Implementing Software Connectors through First-Class Methods

Implementing Software Connectors through First-Class Methods Implementing Software Connectors through First-Class Methods Cheoljoo Jeong and Sangduck Lee Computer & Software Technology Laboratory Electronics and Telecommunications Research Institute Taejon, 305-350,

More information

Abstract. Introduction

Abstract. Introduction Aspect of Life-Cycle Control in a C++ Framework Lutz Dominick Siemens AG, Corporate Technology, ZT SE 1 D-81730 Munich, Germany Lutz.Dominick@mchp.siemens.de April 1999 Abstract This paper presents some

More information

Separating Features in Source Code: An Exploratory Study

Separating Features in Source Code: An Exploratory Study Separating Features in Source Code: An Exploratory Study Gail C. Murphy, Albert Lai, Robert J. Walker, and Martin P. Robillard Department of Computer Science University of British Columbia 2366 Main Mall

More information

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements.

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements. Contemporary Design We have been talking about design process Let s now take next steps into examining in some detail Increasing complexities of contemporary systems Demand the use of increasingly powerful

More information

Restricted Use Case Modeling Approach

Restricted Use Case Modeling Approach RUCM TAO YUE tao@simula.no Simula Research Laboratory Restricted Use Case Modeling Approach User Manual April 2010 Preface Use case modeling is commonly applied to document requirements. Restricted Use

More information

Analysing the navigational aspect

Analysing the navigational aspect A. M. Reina Dpto. Lenguajes y Sistemas Informáticos Universidad de Sevilla. e-mail: reinaqu@lsi.us.es Analysing the navigational aspect J. Torres Dpto. Lenguajes y Sistemas Informáticos Universidad de

More information

E-R Model. Hi! Here in this lecture we are going to discuss about the E-R Model.

E-R Model. Hi! Here in this lecture we are going to discuss about the E-R Model. E-R Model Hi! Here in this lecture we are going to discuss about the E-R Model. What is Entity-Relationship Model? The entity-relationship model is useful because, as we will soon see, it facilitates communication

More information

Open Reuse of Component Designs in OPM/Web

Open Reuse of Component Designs in OPM/Web Open Reuse of Component Designs in OPM/Web Iris Reinhartz-Berger Technion - Israel Institute of Technology ieiris@tx.technion.ac.il Dov Dori Technion - Israel Institute of Technology dori@ie.technion.ac.il

More information

Programming Languages Third Edition. Chapter 7 Basic Semantics

Programming Languages Third Edition. Chapter 7 Basic Semantics Programming Languages Third Edition Chapter 7 Basic Semantics Objectives Understand attributes, binding, and semantic functions Understand declarations, blocks, and scope Learn how to construct a symbol

More information

IBM Research Report. Asymmetrically vs. Symmetrically Organized Paradigms for Software Composition

IBM Research Report. Asymmetrically vs. Symmetrically Organized Paradigms for Software Composition RC22685 (W0212-147) December 30, 2002 Computer Science IBM Research Report Asymmetrically vs. Symmetrically Organized Paradigms for Software Composition William H. Harrison, Harold L. Ossher, Peri L. Tarr

More information

Web Services Annotation and Reasoning

Web Services Annotation and Reasoning Web Services Annotation and Reasoning, W3C Workshop on Frameworks for Semantics in Web Services Web Services Annotation and Reasoning Peter Graubmann, Evelyn Pfeuffer, Mikhail Roshchin Siemens AG, Corporate

More information

Variability Implementation Techniques for Platforms and Services (Interim)

Variability Implementation Techniques for Platforms and Services (Interim) Engineering Virtual Domain-Specific Service Platforms Specific Targeted Research Project: FP7-ICT-2009-5 / 257483 Variability Implementation Techniques for Platforms and Services (Interim) Abstract Creating

More information

Complexity. Object Orientated Analysis and Design. Benjamin Kenwright

Complexity. Object Orientated Analysis and Design. Benjamin Kenwright Complexity Object Orientated Analysis and Design Benjamin Kenwright Outline Review Object Orientated Programming Concepts (e.g., encapsulation, data abstraction,..) What do we mean by Complexity? How do

More information

Why Consider Implementation-Level Decisions in Software Architectures?

Why Consider Implementation-Level Decisions in Software Architectures? 1. Abstract Why Consider Implementation-Level Decisions in Software Architectures? Nikunj Mehta Nenad Medvidović Marija Rakić {mehta, neno, marija}@sunset.usc.edu Department of Computer Science University

More information

Introducing MESSIA: A Methodology of Developing Software Architectures Supporting Implementation Independence

Introducing MESSIA: A Methodology of Developing Software Architectures Supporting Implementation Independence Introducing MESSIA: A Methodology of Developing Software Architectures Supporting Implementation Independence Ratko Orlandic Department of Computer Science and Applied Math Illinois Institute of Technology

More information

Towards a symbiosis between Aspect-Oriented and Component-Based Software Development

Towards a symbiosis between Aspect-Oriented and Component-Based Software Development Towards a symbiosis between Aspect-Oriented and Component-Based Software Development Davy Suvée Vrije Universiteit Brussel Pleinlaan 2 1050 Brussel, Belgium +32 2 629 29 65 dsuvee@vub.ac.be Wim Vanderperren

More information

The Object Model Overview. Contents. Section Title

The Object Model Overview. Contents. Section Title The Object Model 1 This chapter describes the concrete object model that underlies the CORBA architecture. The model is derived from the abstract Core Object Model defined by the Object Management Group

More information

A Survey of Concern-Oriented Development Approaches Nicolas Lopez

A Survey of Concern-Oriented Development Approaches Nicolas Lopez A Survey of Concern-Oriented Development Approaches Nicolas Lopez Advisor: André van der Hoek Abstract Concern-oriented development has been of significant interest to the software engineering community

More information

INTRODUCING A MULTIVIEW SOFTWARE ARCHITECTURE PROCESS BY EXAMPLE Ahmad K heir 1, Hala Naja 1 and Mourad Oussalah 2

INTRODUCING A MULTIVIEW SOFTWARE ARCHITECTURE PROCESS BY EXAMPLE Ahmad K heir 1, Hala Naja 1 and Mourad Oussalah 2 INTRODUCING A MULTIVIEW SOFTWARE ARCHITECTURE PROCESS BY EXAMPLE Ahmad K heir 1, Hala Naja 1 and Mourad Oussalah 2 1 Faculty of Sciences, Lebanese University 2 LINA Laboratory, University of Nantes ABSTRACT:

More information

model-driven development Separation of Concerns in Model-Driven Development

model-driven development Separation of Concerns in Model-Driven Development focus model-driven development Separation of Concerns in Model-Driven Development Vinay Kulkarni and Sreedhar Reddy, Tata Research Development and Design Centre To facilitate traceability, reuse, and evolution,

More information

Applying Aspect Oriented Programming on Security

Applying Aspect Oriented Programming on Security Original Article Applying Aspect Oriented Programming on Security Mohammad Khalid Pandit* 1, Azra Nazir 1 and Arutselvan M 2 1 Department of computer Science and engineering, National institute of technology

More information

6.871 Expert System: WDS Web Design Assistant System

6.871 Expert System: WDS Web Design Assistant System 6.871 Expert System: WDS Web Design Assistant System Timur Tokmouline May 11, 2005 1 Introduction Today, despite the emergence of WYSIWYG software, web design is a difficult and a necessary component of

More information

Context-oriented Programming With Only Layers

Context-oriented Programming With Only Layers Robert Hirschfeld Hasso-Plattner-Institute University of Potsdam Germany hirschfeld@hpi.uni-potsdam.de L Context-oriented Programming With Only Layers Hidehiko Masuhara Mathematical and Computing Sciences

More information

3.4 Data-Centric workflow

3.4 Data-Centric workflow 3.4 Data-Centric workflow One of the most important activities in a S-DWH environment is represented by data integration of different and heterogeneous sources. The process of extract, transform, and load

More information

Separating Crosscutting Concerns Across the Lifecycle: From Composition Patterns to AspectJ and Hyper/J

Separating Crosscutting Concerns Across the Lifecycle: From Composition Patterns to AspectJ and Hyper/J Separating Crosscutting Concerns Across the Lifecycle: From Composition Patterns to AspectJ and Hyper/J Siobhán Clarke Department of Computer Science Trinity College Dublin 2, Republic of Ireland +353

More information

Designing Aspect-Oriented Crosscutting in UML

Designing Aspect-Oriented Crosscutting in UML Designing Aspect-Oriented Crosscutting in UML Dominik Stein, Stefan Hanenberg, and Rainer Unland Institute for Computer Science University of Essen, Germany {dstein shanenbe unlandr}@cs.uni-essen.de ABSTRACT

More information

21. Document Component Design

21. Document Component Design Page 1 of 17 1. Plan for Today's Lecture Methods for identifying aggregate components 21. Document Component Design Bob Glushko (glushko@sims.berkeley.edu) Document Engineering (IS 243) - 11 April 2005

More information

Object-Oriented Theories for Model Driven Architecture

Object-Oriented Theories for Model Driven Architecture Object-Oriented Theories for Model Driven Architecture Tony Clark 1, Andy Evans 2, Robert France 3 1 King s College London, UK, anclark@dcs.kcl.ac.uk, 2 University of York, UK, andye@cs.york.ac.uk, 3 University

More information

Improving Software Modularity using AOP

Improving Software Modularity using AOP B Vasundhara 1 & KV Chalapati Rao 2 1 Dept. of Computer Science, AMS School of Informatics, Hyderabad, India 2 CVR College of Engineering, Ibrahimpatnam, India E-mail : vasu_venki@yahoo.com 1, chalapatiraokv@gmail.com

More information

Base Architectures for NLP

Base Architectures for NLP Base Architectures for NLP Tom Mahieu, Stefan Raeymaekers et al. Department of Computer Science K.U.Leuven Abstract Our goal is to develop an object-oriented framework for natural language processing (NLP).

More information

1 Executive Overview The Benefits and Objectives of BPDM

1 Executive Overview The Benefits and Objectives of BPDM 1 Executive Overview The Benefits and Objectives of BPDM This is an excerpt from the Final Submission BPDM document posted to OMG members on November 13 th 2006. The full version of the specification will

More information

Employing Query Technologies for Crosscutting Concern Comprehension

Employing Query Technologies for Crosscutting Concern Comprehension Employing Query Technologies for Crosscutting Concern Comprehension Marius Marin Accenture The Netherlands Marius.Marin@accenture.com Abstract Common techniques for improving comprehensibility of software

More information

AOP Tutorial. Written By: Muhammad Asif. Department of Computer Science, Virtual University of Pakistan

AOP Tutorial. Written By: Muhammad Asif. Department of Computer Science, Virtual University of Pakistan AOP Tutorial Written By: Muhammad Asif. Department of Computer Science, Virtual University of Pakistan Table of Contents 1.0 INTRODUCTION... 3 2.0 SCOPE AND OBJECTIVE... 4 3.0 MOTIVATION... 5 4.0 HISTORY...

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

Design Patterns V Structural Design Patterns, 2

Design Patterns V Structural Design Patterns, 2 Structural Design Patterns, 2 COMP2110/2510 Software Design Software Design for SE September 17, 2008 Department of Computer Science The Australian National University 19.1 1 2 Formal 3 Formal 4 Formal

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration

More information

Composition Graphs: a Foundation for Reasoning about Aspect-Oriented Composition

Composition Graphs: a Foundation for Reasoning about Aspect-Oriented Composition s: a Foundation for Reasoning about Aspect-Oriented - Position Paper - István Nagy Mehmet Aksit Lodewijk Bergmans TRESE Software Engineering group, Faculty of Computer Science, University of Twente P.O.

More information

Information Hiding and Aspect-Oriented Modeling

Information Hiding and Aspect-Oriented Modeling Information Hiding and Aspect-Oriented Modeling Wisam Al Abed and Jörg Kienzle School of Computer Science, McGill University Montreal, QC H3A2A7, Canada Wisam.Alabed@mail.mcgill.ca, Joerg.Kienzle@mcgill.ca

More information

Creating Security Mechanism Aspect Models from Abstract Security Aspect Models

Creating Security Mechanism Aspect Models from Abstract Security Aspect Models Creating Security Mechanism Aspect Models from Abstract Security Aspect Models Geri Georg, Robert France, and Indrakshi Ray Department of Computer Science Colorado State University, Fort Collins, CO 80523

More information

Applying the Component Paradigm to AUTOSAR Basic Software

Applying the Component Paradigm to AUTOSAR Basic Software Applying the Component Paradigm to AUTOSAR Basic Software Dietmar Schreiner Vienna University of Technology Institute of Computer Languages, Compilers and Languages Group Argentinierstrasse 8/185-1, A-1040

More information

Modeling the Evolution of Aspect Configurations using Model Transformations

Modeling the Evolution of Aspect Configurations using Model Transformations Modeling the Evolution of Aspect Configurations using Model Transformations Uwe Zdun, Mark Strembeck Institute of Information Systems, New Media Lab Vienna University of Economics, Austria {uwe.zdun mark.strembeck}@wu-wien.ac.at

More information

Study of Perfective Maintainability for Component-based software systems using Aspect-Oriented-Programming Techniques

Study of Perfective Maintainability for Component-based software systems using Aspect-Oriented-Programming Techniques Study of Perfective Maintainability for Component-based software systems using Aspect-Oriented-Programming Techniques JyothiRandDr.V.K. Agrawal Abstract As Maintainability plays a very important role in

More information

Analysis and Design with the Universal Design Pattern

Analysis and Design with the Universal Design Pattern Analysis and Design with the Universal Design Pattern by Koni Buhrer Software Engineering Specialist Rational Software Developing large software systems is notoriously difficult and unpredictable. Software

More information

Lecturer 2: Spatial Concepts and Data Models

Lecturer 2: Spatial Concepts and Data Models Lecturer 2: Spatial Concepts and Data Models 2.1 Introduction 2.2 Models of Spatial Information 2.3 Three-Step Database Design 2.4 Extending ER with Spatial Concepts 2.5 Summary Learning Objectives Learning

More information

Configuration management for Lyee software

Configuration management for Lyee software Knowledge-Based Systems 16 (2003) 441 447 www.elsevier.com/locate/knosys Configuration management for Lyee software V. Gruhn*, R. Ijioui, D. Peters, C. Schäfer Faculty of Mathematics and Computer Science,

More information

c Copyright 2004, Vinicius Cardoso Garcia, Eduardo Kessler Piveta, Daniel Lucrédio, Alexandre Alvaro, Eduardo Santana de Almeida, Antonio Francisco

c Copyright 2004, Vinicius Cardoso Garcia, Eduardo Kessler Piveta, Daniel Lucrédio, Alexandre Alvaro, Eduardo Santana de Almeida, Antonio Francisco c Copyright 2004, Vinicius Cardoso Garcia, Eduardo Kessler Piveta, Daniel Lucrédio, Alexandre Alvaro, Eduardo Santana de Almeida, Antonio Francisco do Prado, Luiz Carlos Zancanella. Permission is granted

More information

WHAT IS SOFTWARE ARCHITECTURE?

WHAT IS SOFTWARE ARCHITECTURE? WHAT IS SOFTWARE ARCHITECTURE? Chapter Outline What Software Architecture Is and What It Isn t Architectural Structures and Views Architectural Patterns What Makes a Good Architecture? Summary 1 What is

More information

A Novel Approach to Unit Testing: The Aspect-Oriented Way

A Novel Approach to Unit Testing: The Aspect-Oriented Way A Novel Approach to Unit Testing: The Aspect-Oriented Way Guoqing Xu and Zongyuan Yang Software Engineering Lab, Department of Computer Science East China Normal University 3663, North Zhongshan Rd., Shanghai

More information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY JOURNAL OF OBJECT TECHNOLOGY Online at http://www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2004 Vol. 3, No. 7, July-August 2004 UML 2 Activity and Action Models Part 5: Partitions

More information

AspectC2C: a Symmetric Aspect Extension to the C Language

AspectC2C: a Symmetric Aspect Extension to the C Language AspectC2C: a Symmetric Aspect Extension to the C Language Danfeng Zhang, Yao Guo, Xiangqun Chen Key laboratory of High Confidence Software Technologies, Ministry of Education Institute of Software, School

More information

International Journal for Management Science And Technology (IJMST)

International Journal for Management Science And Technology (IJMST) Volume 4; Issue 03 Manuscript- 1 ISSN: 2320-8848 (Online) ISSN: 2321-0362 (Print) International Journal for Management Science And Technology (IJMST) GENERATION OF SOURCE CODE SUMMARY BY AUTOMATIC IDENTIFICATION

More information

6.001 Notes: Section 6.1

6.001 Notes: Section 6.1 6.001 Notes: Section 6.1 Slide 6.1.1 When we first starting talking about Scheme expressions, you may recall we said that (almost) every Scheme expression had three components, a syntax (legal ways of

More information

Sustaining Composability of Aspect-Oriented Design Patterns in Their Symmetric Implementation

Sustaining Composability of Aspect-Oriented Design Patterns in Their Symmetric Implementation Sustaining Composability of Aspect-Oriented Design Patterns in Their Symmetric Implementation Jaroslav Bálik and Valentino Vranić Institute of Informatics and Software Engineering Faculty of Informatics

More information

DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI

DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI Department of Computer Science and Engineering IT6801 - SERVICE ORIENTED ARCHITECTURE Anna University 2 & 16 Mark Questions & Answers Year / Semester: IV /

More information

UNIT V *********************************************************************************************

UNIT V ********************************************************************************************* Syllabus: 1 UNIT V 5. Package Diagram, Component Diagram, Deployment Diagram (08 Hrs, 16 Marks) Package Diagram: a. Terms and Concepts Names, Owned Elements, Visibility, Importing and Exporting b. Common

More information

Software Architecture

Software Architecture Software Architecture Does software architecture global design?, architect designer? Overview What is it, why bother? Architecture Design Viewpoints and view models Architectural styles Architecture asssessment

More information

Dynamic Weaving for Building Reconfigurable Software Systems

Dynamic Weaving for Building Reconfigurable Software Systems Dynamic Weaving for Building Reconfigurable Software Systems FAISAL AKKAWI Akkawi@cs.iit.edu Computer Science Dept. Illinois Institute of Technology Chicago, IL 60616 ATEF BADER abader@lucent.com Lucent

More information

CS211 Lecture: Design Quality; Cohesion and Coupling; Packages

CS211 Lecture: Design Quality; Cohesion and Coupling; Packages CS211 Lecture: Design Quality; Cohesion and Coupling; Packages Objectives: Last revised October 4, 2004 1. To introduce the notion of design quality, tradeoffs, and some principles of quality design 2.

More information

Aspect Design Pattern for Non Functional Requirements

Aspect Design Pattern for Non Functional Requirements Aspect Design Pattern for Non Functional Requirements FAZAL-E-AMIN¹, ANSAR SIDDIQ², HAFIZ FAROOQ AHMAD³ ¹ ²International Islamic University Islamabad, Pakistan ³NUST Institute of Information Technology,

More information

Software Architectures. Lecture 6 (part 1)

Software Architectures. Lecture 6 (part 1) Software Architectures Lecture 6 (part 1) 2 Roadmap of the course What is software architecture? Designing Software Architecture Requirements: quality attributes or qualities How to achieve requirements

More information

A customizable approach to full lifecycle variability management

A customizable approach to full lifecycle variability management Science of Computer Programming 53 (2004) 259 284 www.elsevier.com/locate/scico A customizable approach to full lifecycle variability management Klaus Schmid, Isabel John Fraunhofer Institute for Experimental

More information

Part I: Preliminaries 24

Part I: Preliminaries 24 Contents Preface......................................... 15 Acknowledgements................................... 22 Part I: Preliminaries 24 1. Basics of Software Testing 25 1.1. Humans, errors, and testing.............................

More information

Design Patterns Design patterns advantages:

Design Patterns Design patterns advantages: Design Patterns Designing object-oriented software is hard, and designing reusable object oriented software is even harder. You must find pertinent objects factor them into classes at the right granularity

More information

Metaprogrammable Toolkit for Model-Integrated Computing

Metaprogrammable Toolkit for Model-Integrated Computing Metaprogrammable Toolkit for Model-Integrated Computing Akos Ledeczi, Miklos Maroti, Gabor Karsai and Greg Nordstrom Institute for Software Integrated Systems Vanderbilt University Abstract Model-Integrated

More information

Product Line Evolution Using Source Packages

Product Line Evolution Using Source Packages Product Line Evolution Using Source Packages Arie van Deursen Merijn de Jonge CWI P.O. Box 94079, 1090 GB Amsterdam, The Netherlands http://www.cwi.nl/ {arie,mdejonge} Abstract We present a language-independent

More information

Method Driven Model: A Unified Model for an Object Composition Language

Method Driven Model: A Unified Model for an Object Composition Language Method Driven Model: A Unified Model for an Object Composition Language Chitra Babu and D Janakiram Distributed Object Systems Lab, Dept. of Computer Science & Engg., Indian Institute of Technology Madras,

More information

Teiid Designer User Guide 7.5.0

Teiid Designer User Guide 7.5.0 Teiid Designer User Guide 1 7.5.0 1. Introduction... 1 1.1. What is Teiid Designer?... 1 1.2. Why Use Teiid Designer?... 2 1.3. Metadata Overview... 2 1.3.1. What is Metadata... 2 1.3.2. Editing Metadata

More information

1: Introduction to Object (1)

1: Introduction to Object (1) 1: Introduction to Object (1) 김동원 2003.01.20 Overview (1) The progress of abstraction Smalltalk Class & Object Interface The hidden implementation Reusing the implementation Inheritance: Reusing the interface

More information

Part II Black-Box Composition Systems 20. Finding UML Business Components in a Component-Based Development Process

Part II Black-Box Composition Systems 20. Finding UML Business Components in a Component-Based Development Process Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie Prof. Aßmann - CBSE Part II Black-Box Composition Systems 20. Finding UML Business Components in a Component-Based Development

More information

Fundamentals of Concern Manipulation

Fundamentals of Concern Manipulation Fundamentals of Concern Manipulation Harold Ossher IBM T. J. Watson Research Center The CME Team (IBM Hursley Park and IBM Watson) William Chung, Andrew Clement, Matthew Chapman, William Harrison, Helen

More information

Discovering Faults in Idiom- Based Exception Handling. Magiel Bruntink, Arie van Deursen & Tom Tourwé

Discovering Faults in Idiom- Based Exception Handling. Magiel Bruntink, Arie van Deursen & Tom Tourwé Discovering Faults in Idiom- Based Exception Handling Magiel Bruntink, Arie van Deursen & Tom Tourwé Implementing crosscutting concerns by means of idioms is fault prone 1. what are crosscutting concerns?

More information

CHAPTER-23 MINING COMPLEX TYPES OF DATA

CHAPTER-23 MINING COMPLEX TYPES OF DATA CHAPTER-23 MINING COMPLEX TYPES OF DATA 23.1 Introduction 23.2 Multidimensional Analysis and Descriptive Mining of Complex Data Objects 23.3 Generalization of Structured Data 23.4 Aggregation and Approximation

More information