Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.

Slides:



Advertisements
Similar presentations
Component Oriented Programming 1 Chapter 2 Theory of Components.
Advertisements

Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
Using Eclipse. Getting Started There are three ways to create a Java project: 1:Select File > New > Project, 2 Select the arrow of the button in the upper.
Data Model driven applications using CASE Data Models as the nucleus of software development in a Computer Aided Software Engineering environment.
ETX Workshop OOPSLA 2003 Prism pattern recognition for aspect mining Prism is Research in Software Modularization Charles Zhang and Hans-Arno Jacobsen.
© by Pearson Education, Inc. All Rights Reserved.
Visual Basic 2010 How to Program. © by Pearson Education, Inc. All Rights Reserved.2.
Guide to Oracle10G1 Introduction To Forms Builder Chapter 5.
1 Introducing Collaboration to Single User Applications A Survey and Analysis of Recent Work by Brian Cornell For Collaborative Systems Fall 2006.
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
Input Validation For Free Text Fields ADD Project Members: Hagar Offer & Ran Mor Academic Advisor: Dr Gera Weiss Technical Advisors: Raffi Lipkin & Nadav.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
4 Copyright © 2004, Oracle. All rights reserved. Creating a Basic Form Module.
Whole Platform Tesi di Dottorato di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà di scienze matematiche, fisiche e naturali Corso di Dottorato.
Chapter 2: The Visual Studio.NET Development Environment Visual Basic.NET Programming: From Problem Analysis to Program Design.
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
XP New Perspectives on Microsoft Access 2002 Tutorial 71 Microsoft Access 2002 Tutorial 7 – Integrating Access With the Web and With Other Programs.
© 2006 by IBM 1 How to use Eclipse to Build Rich Internet Applications With PHP and AJAX Phil Berkland IBM Software Group Emerging.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Deriving AO Software Architectures using the AO-ADL Tool Suite Luis Fernández, Lidia Fuentes, Mónica Pinto, Juan A. Valenzuela Universidad de Málaga
Java Beans.
Lesley Bross, August 29, 2010 ArcGIS 10 add-in glossary.
1 N Degrees of Separation: Multi-Dimensional Separation of Concern (MDSOC) HyperJ: language and concepts of general concern combination.
| | Tel: | | Computer Training & Personal Development Microsoft Office Publisher 2007 Expert.
© 2007 by «Author»; made available under the EPL v1.0 | Date | Other Information, if necessary Eclipse SOA Tools Platform Project Eric Newcomer IONA Technologies.
 The BPEL Module project is a group of source files which includes BPEL files, WSDL files, and XML schema files. Within a BPEL Module project, you can.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
Final Year Project Interim Presentation Software Visualisation and Comparison Tool Presented By : Shane Lillis, , 4th Year Computer Engineering.
Aspect Oriented Programming Scott Nykl CSSE 411 Senior Seminar.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
LLRP GUI Client User Guide
Introduction to Eclipse Plug-in Development. Who am I? Scott Kellicker Java, C++, JNI, Eclipse.
Integrated Development Environment for Policies Anjali B Shah Department of Computer Science and Electrical Engineering University of Maryland Baltimore.
Workbench Overview Dwight Deugo Nesa Matic
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Ontology Engineering and Plugin Development with the NeOn Toolkit Plug-in Development for the NeOn Toolkit June 1st, 2008 Michael Erdmann, Peter Haase,
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
IBM Software Group ® Overview of SA and RSA Integration John Jessup June 1, 2012 Slides from Kevin Cornell December 2008 Have been reused in this presentation.
Selected Topics in Software Engineering - Distributed Software Development.
4 Copyright © 2004, Oracle. All rights reserved. Creating a Basic Form Module.
DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools.
ModelPedia Model Driven Engineering Graphical User Interfaces for Web 2.0 Sites Centro de Informática – CIn/UFPe ORCAS Group Eclipse GMF Fábio M. Pereira.
Eclipse 24-Apr-17.
Part VII: Design Continuous
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
Weaving a Debugging Aspect into Domain-Specific Language Grammars SAC ’05 PSC Track Santa Fe, New Mexico USA March 17, 2005 Hui Wu, Jeff Gray, Marjan Mernik,
Java Beans. Definitions A reusable software component that can be manipulated visually in a ‘builder tool’. (from JavaBean Specification) The JavaBeans.
QPE A Graphical Editor for Modeling using Queueing Petri Nets Christofer Dutz.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
 Programming - the process of creating computer programs.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Chapter 5 Introduction To Form Builder. Lesson A Objectives  Display Forms Builder forms in a Web browser  Use a data block form to view, insert, update,
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
® IBM Software Group © 2007 IBM Corporation Module 3: Creating UML Diagrams Essentials of Modeling with IBM Rational Software Architect, V7.5.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
V7 Foundation Series Vignette Education Services.
Visual Programming Borland Delphi. Developing Applications Borland Delphi is an object-oriented, visual programming environment to develop 32-bit applications.
Dive Into® Visual Basic 2010 Express
Working in the Forms Developer Environment
Hands-on Introduction to Visual Basic .NET
Chapter 20 Object-Oriented Analysis and Design
Analysis models and design models
Tutorial 7 – Integrating Access With the Web and With Other Programs
Implementation support
Implementation support
Presentation transcript:

Hyper/J and Concern Manipulation Environment

The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support all stages of artifact development Task directed – constraint enforcement, performance, feature addition etc. Paradigm specific – concern composition, aspect attachment

Problems Lack of framework for initial tool development Integration is difficult – most tools are implemented from scratch Customization is nearly impossible

Possiblesolution Possible solution Abstraction of basic concepts of concern oriented modeling Reusable components for tool developers Layered architecture

ConcernManipulation Environment Concern Manipulation Environment Developed by IBM research labs Presented at AOSD 2004 Supports next generation of HyperJ Extensible, reusable, open, customizable base for tool developers Some ready for use tools and integration with Eclipse Open source

CMEArchitecture CME Architecture 4 main layers – tools, components, framework and engines Communication between layers are through API and interfaces defined by CME Partial implementation of the most important modules of each layer is provided by CME Each layer is open for extension by tool developers

ToolsLayer Tools Layer End user tools + GUI Customized for tasks, lifecycle stages, artifacts, AOSD paradigms, environments Intended for extension by tool developers more than other layers

Toolslayer – existingitems Tools layer – existing items Concern explorer for Eclipse – creation and manipulation of concern models and composition for Java Package explorer style view Visualize code affected by concern Query interface Concern modeler – express the concerns and their relations visually For example all methods that relate to a certain feature can be grouped together to form a concern Define concern in terms of other concern, overlap concerns, constraints on units relationship Hyper/J2 - compositor tool for Hyper/J style concern definition and composition Create hyperslices and hypermodules, then integrate them into existing artifact HyperProbe – insert problem detection probes into existing software Debugging tool implemented using aspects

Using CME – installation Eclipse 3.0+ Using CME – installation in Eclipse 3.0+ Click 'Help' -> 'Software Updates' -> 'Find and Install'. Select 'Search for new features to install' and click 'Next'. Click 'Add Update Site'. Enter a name for the new update site you are creating, such as "CME Update Site", and enter the URL " Click 'OK'. Fully expand the CME Update Site node that appears, and select 'CME'. Click 'Next'. Select 'The Concern Manipulation Environment x.x.x' (where "x.x.x" is the CME version number shown). Accept the license agreement

Using CME – UserInterface Using CME – User Interface The CME perspective is designed to be used for software exploration in which use of an editor (such as a code editor) is important

Using CME – Working with a project To add the CME nature to a project, right click on that project in the Package Explorer and select 'Add CME Nature'. CME will create a new concern model for the project The Concern Explorer view allows you to examine the current concern model. It deliberately resembles Eclipse's Package Explorer, so navigating it should be intuitive for Java developers. For example:

UsingCME – Queries Using CME – Queries To perform a query, the CME Search View is used. You can enter a query manually in the available text box, or you can use the CME Search dialog, which assists with the creation of basic queries To use the CME Search dialog Click the button in the CME Search view's toolbar The dialog has three tabs, which split the queries you can create into three categories - Concern Model oriented, Artifact oriented and AspectJ-style E.g. Searching for method calls with the AspectJ tab

UsingCME – Queries(cont.) Using CME – Queries (cont.) A preview of the query will be created Queries can be saved/loaded from the dialog box Click evaluate to perform the search Result dialog will appear

UsingCME – Visualizer Using CME – Visualizer The Visualiser tool provides many functions and shows an overview of where search results occur in source files

UsingCME – Addingafeature toexistingsoftware Using CME – Adding a feature to existing software Choose the package(s) you want to modify Develop the feature in a separate package, using the same classes and adding new ones if required. This is equivalent to creating a new hyperslice for the feature and implementing it Create a new concern for the feature and integrate using the composer

Using CME – adding a feature (cont.) Sample code from original package:

UsingCME – addingafeature (cont.) Using CME – adding a feature (cont.) Feature code written in a separate package:

UsingCME – adding a feature (cont.) Using CME – adding a feature (cont.) Highlight the packages in the concern explorer Right click and select "Compose New Concern “ This brings up the Compose Concern Wizard which has been filled in to compose the two concerns you selected and to handle conflicts by merging

UsingCME – adding a feature (cont.) Using CME – adding a feature (cont.) Select name for the new concern, its location and click next On the next screen click finish A new package will appear in the concern explorer with both old and new functionality inside

UsingCME – adding a feature (cont.) Using CME – adding a feature (cont.) Code after merge – a new class placed in a new package in the concern explorer

AspectJ in CME vs. standalone plug-in AspectJ composer in CME No need to write aspect code directly – code can be assembled from model Pointcut definition through query engine Uses own view perspective Visualizer AspectJ plug-in Everything must be written explicitly Pointcut definition is done through AspectJ code Standard Eclipse package explorer view Visualizer

ComponentsLayer Components Layer Reusable components for tool builders Separate paradigms and concrete tools aimed at specific tasks from concern representation Separate concern representation from language constructs API for tool developers

Components – existingitems Components – existing items Concern Composition Component (CCC) – supports different composition semantics and weaving techniques Defines interface for tools to specify what should be done where. AspectJ tool can use the API to define pointcuts Control flow relations – before/after Concern Space Management Component (Conman) – Modeling tool which represents concerns and their relationships in paradigm independent way For example we want to state that certain concern is dependent on another as a prerequisite, and we want both the AspectJ tool and the HyperJ tool know about it

FrameworksLayer Frameworks Layer Low level concern representation model Language independent – dealing with abstract object oriented language Pluggable for use with language specific drivers (engines) Defines how an artifact will be manipulated to adapt to a concern

Frameworks – existingitems Frameworks – existing items Concern Assembler Toolkit (CAT) – provides support for assembling artifacts. XML based concern assembly language Specify methods to be created Specify how methods should be combine to achieve the desired result Concern Informant Toolkit (CIT) – common interface providing information about OO elements Inheritance relations Accesibility of certain types within others Method properties Pattern Matcher (PUMA) – extensible query language processor for artifact elements Search for classes, methods, relationships, concerns Regular expressions

EnginesLayer Engines Layer Language dependent Designed to serve specific framework components Access to source code, binary or UML/XMI Most existing engines aim at Java related technology

Engines – existingitems Engines – existing items Java binary manipulator Java source manipulator XMI file manipulator XML Serializer Multiple engine attachment interface

Conclusion Pros Non intrusive Can be used with existing artifacts Extensible by tool developers Open source

Conclusion Cons AOSD is still a new concept Many components are not yet implemented Limited deployment in real world projects Heavy emphasis on specific technology, even though claimed to support wide variety