Multi-dimensional Separation of Concerns in Hyperspace
|
|
- Patrick Howard
- 5 years ago
- Views:
Transcription
1 Multi-dimensional Separation of Concerns in Hyperspace IBM Thomas Watson Research Center 1 Resources W. Harrison, H. Ossher & P. Tarr: The Beginning of a Graphical Environment for Subject-Oriented Programming, ECOOP 97 workshop on Aspect-Oriented Programming, Finland, June P. Tarr, H. Ossher, W. Harrison & S.M. Sutton: N Degrees of Separation: Multi-Dimensional Separation of Concerns, ECOOP 98 workshop on Aspect-Oriented Programming, Belgium, June S. Clarke, W. Harrison, H. Ossher & P. Tarr: Separating Concerns throughout the Development Lifecycle, ECOOP 99 workshop on Aspect-Oriented Programming, Lisbon, June H. Ossher & P. Tarr: Multi-Dimensional Separation of Concerns in Hyperspace, ECOOP 99 workshop on Aspect-Oriented Programming, Lisbon, June H. Ossher, W. Harrison, F. Budinsky & I. Simmonds: Subject- Oriented Programming: Supporting Decentralized Development of Objects. 2 1
2 Resources (cont.) H. Ossher & P. Tarr: On the Need for On-Demand Remodularization, ECOOP 2000 workshop on Aspects and Separation of Concerns, France, June 2000 H. Ossher and P. Tarr: Multi - Dimensional Separation of Concerns in Hyperspace, Research report No. RC 21452(96717)16APR99. I. Rouvellou, S.M. Sutton Jr. & S. Tai: Multidimensional Separation of Concerns in Middleware, ICSE 2000 workshop on Multi- Dimensional Separation of Concerns in Software Engineering, Limerick, Ireland, June K. Ostermann, G. Kniesel: Independent Extensibility - an Open Challenge for AspectJ and Hyper/J, ECOOP 2000 H. Ossher & P. Tarr: Multi-Dimensional Separation of Concerns and the Hyperspace Approach. P. Tarr & H. Ossher: Hyper/J TM User and Instalation Manual. 3 At the beginning... Machine Code Assembler Modular Languages Functional Languages ADL Separation of Concerns Aspects Composition Filters SOP etc. 4 2
3 Intro Seperation of concerns means ability to: identity encapsulate manipulate only those part of software that are relevant to a particular concept Reduce software development complexity Criterion for decomposition Varies over time due to the particular context development activities stage of the software lifecycle developers... not appropriate for all contexts 5 Features printing, persistence... Related Works Aspects cross-cutting & code tangling Roles Viewpoints... ==> only one dominant decomposition impossible to switch to other dimension 6 3
4 The Goals Multiple, arbitrary dimensions of concerns. Separation along these dimensions simultaneously. Ability to: Modify concerns Add new concerns remove a concern dynamically. printing, persistence... Result: On-demand remodularization 7 Background & Motivation Simple Software Engineering Environment (SEE) a:=b+5 syntax correct a=16 Display Check Eval := a + b 5 8 4
5 Scenario Classes: Expression Literal Binary Operator (+, -, *, /) Unary Operator (+, -). Operations: create get/set eval display check 9 Concerns Classes Features: kernel, display, check, evaluation Artifacts: requirement, design, code, test plan Configuration: mix and match Feature: style checking is a new concern Logging Design Pattern
6 The Tyranny of the Dominant Decomposition Different decomposition have different properties, both good and bad. Different dimensions are useful for different reasons, at different times. Anticipation causes ulcers. Multiple dimensions, simultaneously. 11 Breaking the Tyranny Ability to identity and encapsulate any dimension simultaneously. Ability to identify new concern and new dimension of concern incrementally. Developers must not be required to know about any concerns that do not affect their particular activities. Ability to represent and manage overlapping and interacting concerns. On-demand remodularization: ability to inpose new decompositions on existing software. 12 6
7 The Hyperspace 13 Concern Space of Units Software consists of artifacts, which comprise descriptive material in suitable languages. A unit is a syntactic construct in such a language declaration, statement, state chart, class, interface primitive units vs. compound units. A concern space encompasses all units in some body of software. 14 7
8 The Concern Matrix Units are organized in a multidimensional matrix axe = dimension point on an axe = one concern in that dimension the coordinate of the units = set of concerns it affects, each unit affect exactly one concern in each dimension hyperplane = single concern within some dimension. special none concern for each dimension. 15 Formalization A hyperspace is a tuple (U, M, H) U: a set of units M: a concern matrix H: set of hypermodules The unit set induced by concern c: U(c) = {u U c(u) Dimension of concern = set of concerns whose unit sets partition U The none concern for dimension d, N d : important: units that are unaffected by evoltionary changes within its dimesion. 16 8
9 Formalization... Concern matrix is a tuple (C,D) C: set of concerns D: set of concern dimension Every concern in C is in exactly one dimension in D Every dimension in D partitions U. 17 Hyperslice & Hypemodules Hyperslice = set of units Hypermodule = group of hyperslices Hyperslice required to be declaratively complete ==> Separation of declaration from implementation Correspondence constraint: Each declaration unit in a systém must correspond to compatible implementaton(s) in some other hyperslice. 18 9
10 Hyperslice & Hypermodule... hyperslices are concerns required to be declarative complete. special dimension for all hyperlices ==> hyperslice dimension. hyperslice may affect a concern (overlap) Hypermodule is a tuple (HS, CR) HS: set of hyperslices CR: set of composition relationship 19 The Hyper/J Hyperspace for Java 20 10
11 Project specification hyperspace DemoHyperspace composable class demo.objectdimension.*; composable class demo.stylechecker.*; composable class demo.observer.*; Concern mapping package com.ibm.hyperj.expressionsee: operation display: operation check: operation eval: Hyper/J Intro None concerns are created automatically. Feature.Kernel Feature.Display Feature.Check Feature.Eval 21 Hyper/J Intro... Hypermodules: hypermodule SEE_With_Display_And_Check hyperslices: Feature.Kernel, Feature.Display, Feature.Check relationships: mergebyname 22 11
12 Hyper/J Example 2 hypermodule DemoSEE hyperslices: Feature.Kernel, Feature.Check, Feature.Display, Feature.Eval, Feature.StyleChecker, Feature.Logging; relationships: mergebyname; equate operation Feature.Kernel.process, Feature.Check.check_process,Feature.Display.display_proces, Feature.Eval.eval_process; bracket "{~_,~<*" with (before Feature.Logging.LoggedClass._beforeInvoke ($ClassName, $OperationName), after Feature.Logging.LoggedClass._afterInvoke ($ClassName, $OperationName), "*"); set summary function for action DemoSEE.BinaryOperator.check to action DemoSEE.Expression.summarizeCheck; end hypermodule; 23 The Hyper/J in details Class file specification class package1.classname1, package1.classname2; composable class package2.* except package2.someclass; composable file c:\users\smith\someproject\* uncomposable class java.lang.*, java.io.*; Concern mapping package java.lang: Feature.Library; package someproject.util: Feature.Utilities; class someproject.util.myclass: Optimization.UtilityOptimizations; interface java.util.enumeration: OtherDimension.SomeConcern; operation display: Feature.Display; field foovar: Feature.Foo; Hypermodule Specification hypermodule hypermodulename hyperslices: relationships: mergebyname noncorrespondingmerge overridebyname; other relationships; 24 end hypermodule; 12
13 The Hyper/J in details... Composition Strategy mergebyname: units that have the same name are to correspond, and are to be connected by a merge relationship. noncorrespondingmerge: units in different hyperslices with the same name are not to correspond, and hence are not to be connected. overridebyname: units with the same name are correspond and are to be connected by an override relationship (last unit). 25 The Hyper/J in details... Equate equate class SomeDimension.SomeConcern.SomeClass, ; equate operation Feature.kernel.process, Feature.Check.check_process Indicates a set of units that match each other, to correspond, even their names do not match. Order order action SomeDimension.SomeConcern.SomeClass.foo before action SomeOtherDimension.SomeOtherConcern.SomeClass.foo; Rename rename class HypermoduleName.SomeClass to SomeNewName 26 13
14 Bracket: bracket foo* with The Hyper/J in details... {before Feature.Logging.LoggedClass.invokedBefore($ClassName) after Feature.Logging.LoggedClass.invokeAfter($OperationName), * ; Set of operations in hypermodule in the hypermodule that will bu bracketed (pre/post action) before and/or methods that are to bracket the indicated methods class match pattern Summary set summary fuction for action DemoSEE.NumberLiteral.check to DemoSEE.Expression.sumarizeCheck; by default, the return value is the return value of the last method of which is composed. 27 Current Hyper/J Limitation Java predefined class (Object, String...) cannot be composed. noncorrespondingmerge general composition strategy does not work correctly and has been disabled. merge and override composition relationships do not work. nomerge composition works only on operations order relationship work correctly only for actions summary function must be static classes in the composed hyperslices are public, in a single top-level package
15 Hyper/J versus AspectJ package billingsystem class Invoice { void deliver() { class SpecialInvoice extends Invoice { class InvoiceClient { Invoice Invoice = new Invoice(); void foo() { Invoice.deliver(); 29 Hyper/J versus AspectJ... package billingsystem; class MailExtensionAspect { introduction Invoice { void sendmail() { static advice (Invoice invoice) : void print & invoice { before { invoice.sendmail(); 30 15
16 Hyper/J versus AspectJ... package extension; public class Invoice { public void sendmail() { public void deliver() { sendmail(); hypermodule extendedbillingsystem hyperslices: Feature.billingsystem, Feature.extension; relationships: mergebyname; end hypermodule; 31 Hyper/J versus AspectJ... AspectJ: in-place modification destructive: original class is no longer exists if only clients should use the modified class, it fails. Hyper/J Client migration existing classes are not modified maintenance problem 32 16
17 Conclusion Comprehensibility need only to examine the hyperplane containing ability to identify concern on ongoing basis separate simultaneously all concerns of importance. Do not restrict the nature or number of dimensions Evolvalibility, limited impact of change and traceability additive rather than invasive change extension, customization and extraction of hyperslices 33 THE END 34 17
Multi-Dimensional Separation of Concerns and IBM Hyper/J
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
More informationJOURNAL 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 informationDimensions 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 information43. View-Based Development
43. View-Based Development Prof. Dr. Uwe Aßmann Technische Universität Dresden Institut für Software- und Multimediatechnik http://st.inf.tu-dresden.de Version 14-1.0, June 14, 2014 1. View-based development
More informationComposition 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 informationTowards 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 informationSeparating 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 informationUsing 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 informationModularity: 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 informationSustaining 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 informationDomain-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 informationDISCUSSING 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 informationA 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 informationIntroduction 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 informationPattern 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 informationSeparating 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 informationIntroduction to Programming Using Java (98-388)
Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;
More informationDesign Patterns and Language Evolution. Ran Ettinger Design Patterns, Software Engineering Programme 4 July 2003
Design Patterns and Language Evolution Ran Ettinger Design Patterns, Software Engineering Programme 4 July 2003 Claim: design patterns sometimes provide techniques to overcome language limitations Cases
More informationAOSD 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 informationAspect-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 informationModel 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 informationUML4COP: 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 informationTowards 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 informationIBM Research Report. Concepts for Describing Composition of Software Artifacts
RC23345 (W0409-140) September 22, 2004 Computer Science IBM Research Report Concepts for Describing Composition of Software Artifacts William Harrison, Harold Ossher, Peri Tarr IBM Research Division Thomas
More informationIncremental Compilation in Compose
Incremental Compilation in Compose A thesis submitted for the degree of Master of Science at the University of Twente Dennis Spenkelink Enschede, October 28, 2006 Research Group Twente Research and Education
More informationFundamentals 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 informationCreating 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 informationControl-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 informationCS 112 Introduction to Computing II. Wayne Snyder Computer Science Department Boston University
9/5/6 CS Introduction to Computing II Wayne Snyder Department Boston University Today: Arrays (D and D) Methods Program structure Fields vs local variables Next time: Program structure continued: Classes
More informationA Model for Software Plans
A Model for Software Plans Robert R. Painter and David Coppit Department of Computer Science The College of William and Mary private static Vector readdata() { BufferedReader stdin = new BufferedReader(
More informationLanguage support for AOP
Language support for AOP AspectJ and beyond Mario Südholt www.emn.fr/sudholt INRIA and École des Mines de Nantes OBASCO project, Nantes, France Language support for AOP ; Mario Südholt; INRIA/EMN; March
More informationIBM 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 informationWhy 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 informationDynamic Aspect Composition using Logic Metaprogramming
Vrije Universiteit Brussel - Belgium Faculty of Sciences In Collaboration with Ecole des Mines de Nantes - France and Universidad National de La Plata - Argentina 2001-2002 VRIJE UNIVERSITEIT BRUSSEL SCIENTIA
More informationContext-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 informationTowards 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 informationSignature modification for Compose /.NET
Signature modification for Compose /.NET Implications of signature modification for generic compilers and behavioral signatures of types. A thesis submitted for the degree of Master of Science at the University
More informationIncremental Verification of Consistency in Feature-Oriented Software. Nguyen Truong Thang
Incremental Verification of Consistency in Feature-Oriented Software by Nguyen Truong Thang submitted to Japan Advanced Institute of Science and Technology in partial fulfillment of the requirements for
More informationAspect-Oriented Programming
Aspect-Oriented Programming Anya Helene Bagge Department of Informatics University of Bergen LRDE Seminar, 26 Mar 2008 Anya Helene Bagge (UiB) Aspect-Oriented Programming LRDE Seminar, 26 Mar 2008 1 /
More informationAbout Codefrux While the current trends around the world are based on the internet, mobile and its applications, we try to make the most out of it. As for us, we are a well established IT professionals
More informationSupporting Software Maintenance and Evolution with Intentional source-code Views 1
Supporting Software Maintenance and Evolution with Intentional source-code Views 1 Kim Mens and Bernard Poll Département d Ingénierie Informatique, Université catholique de Louvain Place Sainte-Barbe 2,
More informationLast Class. Introduction to arrays Array indices Initializer lists Making an array when you don't know how many values are in it
Last Class Introduction to arrays Array indices Initializer lists Making an array when you don't know how many values are in it public class February4{ public static void main(string[] args) { String[]
More informationAbstract. (in typechecking module) Statement.typecheck() {... } Expression.typecheck() {... }
Challenge Problems for Separation of Concerns Jonathan Aldrich Department of Computer Science and Engineering University of Washington Box 352350, Seattle, WA 98195 USA jonal@cs.washington.edu Abstract
More informationThe Fractal Open Component Model
The Fractal Open Component Model Jean-Bernard Stefani INRIA Grenoble-Rhône-Alpes Jean-Bernard Stefani (INRIA Grenoble) Fractal OW2 Webinar 04/2009 1 / 24 Executive Summary Fractal: a model for the construction
More informationCompuScholar, Inc. Alignment to Nevada "Computer Science" Course Standards
CompuScholar, Inc. Alignment to Nevada "Computer Science" Course Standards Nevada Course Details: Course Name: Computer Science Primary Cluster: Information and Media Technologies Standards Course Code(s):
More informationASPECT GENERATOR. Audit Trail WEAVER. Aspect Editor. Weaving Strategies Editor. Model Editor. Mapping. Instructions. Original Model (XMI)
Tool Support for Aspect-Oriented Design Francois Mekerke 1, Geri Georg 2, Robert France 3, and Roger Alexander 3 1 Ecole Nationale Superieure des Etudes et Techniques d'armement, Brest, France mekerkfr@ensieta.fr
More informationExperiences In Migrating An Industrial Application To Aspects by Abdelbaset Almasri & Iyad Albayouk
This is an incomplete version of the thesis dissertation titled: Experiences In Migrating An Industrial Application To Aspects by Abdelbaset Almasri & Iyad Albayouk This version of the dissertation does
More informationWeiss Chapter 1 terminology (parenthesized numbers are page numbers)
Weiss Chapter 1 terminology (parenthesized numbers are page numbers) assignment operators In Java, used to alter the value of a variable. These operators include =, +=, -=, *=, and /=. (9) autoincrement
More informationChapter 9 Introduction to Arrays. Fundamentals of Java
Chapter 9 Introduction to Arrays Objectives Write programs that handle collections of similar items. Declare array variables and instantiate array objects. Manipulate arrays with loops, including the enhanced
More informationCode reuse for improving software productivity and quality in AOP
Code reuse for improving software productivity and quality in AOP Youssef Hassoun and Constantinos A. Constantinides School of Computer Science and Information Systems Birkbeck College, University of London,
More informationManaging Variability Using Heterogeneous Feature Variation Patterns
Managing Variability Using Heterogeneous Feature Variation Patterns Imed Hammouda, Juha Hautamäki, Mika Pussinen, and Kai Koskimies Institute of Software Systems, Tampere University of Technology, P.O.BOX
More informationLecture 16 & 17. Crosscutting Concerns N-dimensional separation of concerns, AspectJ, Mixin, Concern Graph, etc.
Lecture 16 & 17 Crosscutting Concerns N-dimensional separation of concerns, AspectJ, Mixin, Concern Graph, etc. Spring 2009 EE 382V Software Evolution, Instructor Miryung Kim This week s Agenda Presentations:
More informationCONTENTS: Array Usage Multi-Dimensional Arrays Reference Types. COMP-202 Unit 6: Arrays
CONTENTS: Array Usage Multi-Dimensional Arrays Reference Types COMP-202 Unit 6: Arrays Introduction (1) Suppose you want to write a program that asks the user to enter the numeric final grades of 350 COMP-202
More informationmodel-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 informationUsing 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 informationAspect Oriented Programming
1 Aspect Oriented Programming Programming Languages Seminar Presenter: Barış Aktemur University of Illinois 18 Feb. 2004 Mostly taken from Bedir Tekinerdogan s slides Outline Introduction Problems Terminology
More informationGraphical Composition of State-Dependent Use Case Behavioral Models
Graphical Composition of State-Dependent Use Case Behavioral Models Jon Whittle Information & Software Engineering George Mason University Fairfax, VA 22030 jwhittle@gmu.edu João Araújo Department of Informatics,
More informationAbsolute C++ Walter Savitch
Absolute C++ sixth edition Walter Savitch Global edition This page intentionally left blank Absolute C++, Global Edition Cover Title Page Copyright Page Preface Acknowledgments Brief Contents Contents
More informationOn the Correctness of Model Transformations. Matthew Nizol CSE 814, Fall 2014 Thursday, December 11, 2014
On the Correctness of Model Transformations Matthew Nizol CSE 814, Fall 2014 Thursday, December 11, 2014 Agenda Context: Model-driven development Background on verification techniques Presentation of each
More informationDecaf Language Reference Manual
Decaf Language Reference Manual C. R. Ramakrishnan Department of Computer Science SUNY at Stony Brook Stony Brook, NY 11794-4400 cram@cs.stonybrook.edu February 12, 2012 Decaf is a small object oriented
More informationAspect Oriented Programming with AspectJ. Ted Leung Sauria Associates, LLC
Aspect Oriented Programming with AspectJ Ted Leung Sauria Associates, LLC twl@sauria.com Overview Why do we need AOP? What is AOP AspectJ Why do we need AOP? Modular designs are not cut and dried Responsibilities
More informationB. Assets are shared-by-copy by default; convert the library into *.jar and configure it as a shared library on the server runtime.
Volume A~B: 114 Questions Volume A 1. Which component type must an integration solution developer define for a non-sca component such as a Servlet that invokes a service component interface? A. Export
More informationRoles From an Aspect-Oriented Perspective
Roles From an Aspect-Oriented Perspective Stefan Hanenberg Dominik Stein Rainer Unland University of Duisburg-Essen Essen, Germany {shanenbe, dstein, unlandr}@cs.uni-essen.de Abstract. Roles and aspects
More informationAspectC2C: 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 informationOO Technology: Properties and Limitations for Component-Based Design
TDDD05 Component-Based Software OO Technology: Properties and Limitations for Component-Based Design Interfaces Design by by Contract Syntactic Substitutability Inheritance Considered Harmful Fragile Base
More informationIPCoreL. Phillip Duane Douglas, Jr. 11/3/2010
IPCoreL Programming Language Reference Manual Phillip Duane Douglas, Jr. 11/3/2010 The IPCoreL Programming Language Reference Manual provides concise information about the grammar, syntax, semantics, and
More informationIntroduction to Computers and C++ Programming p. 1 Computer Systems p. 2 Hardware p. 2 Software p. 7 High-Level Languages p. 8 Compilers p.
Introduction to Computers and C++ Programming p. 1 Computer Systems p. 2 Hardware p. 2 Software p. 7 High-Level Languages p. 8 Compilers p. 9 Self-Test Exercises p. 11 History Note p. 12 Programming and
More informationMartin 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 information1007 Imperative Programming Part II
Agenda 1007 Imperative Programming Part II We ve seen the basic ideas of sequence, iteration and selection. Now let s look at what else we need to start writing useful programs. Details now start to be
More informationObliviousness, Modular Reasoning, and the Behavioral Subtyping Analogy
Obliviousness, Modular Reasoning, and the Behavioral Subtyping Analogy Curtis Clifton and Gary T. Leavens TR #03-01a January 2003, Revised March 2003 Keywords: Spectators, assistants, aspect-oriented programming,
More informationAn 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 informationNaCIN An Eclipse Plug-In for Program Navigation-based Concern Inference
NaCIN An Eclipse Plug-In for Program Navigation-based Concern Inference Imran Majid and Martin P. Robillard School of Computer Science McGill University Montreal, QC, Canada {imajid, martin} @cs.mcgill.ca
More informationEvaluating Support for Features in Advanced Modularization Technologies
Evaluating Support for Features in Advanced Modularization Technologies Roberto E. Lopez-Herrejon, Don Batory, and William Cook Department of Computer Sciences University of Texas at Austin Austin, Texas,
More informationSyllabus & Curriculum for Certificate Course in Java. CALL: , for Queries
1 CONTENTS 1. Introduction to Java 2. Holding Data 3. Controllin g the f l o w 4. Object Oriented Programming Concepts 5. Inheritance & Packaging 6. Handling Error/Exceptions 7. Handling Strings 8. Threads
More informationA case in Multiparadigm Programming : User Interfaces by means of Declarative Meta Programming
A case in Multiparadigm Programming : User Interfaces by means of Declarative Meta Programming S. Goderis W. De Meuter J. Brichau Programming Technology Lab, Vrije Universiteit Brussel, Belgium Abstract.
More informationMATLIP: MATLAB-Like Language for Image Processing
COMS W4115: Programming Languages and Translators MATLIP: MATLAB-Like Language for Image Processing Language Reference Manual Pin-Chin Huang (ph2249@columbia.edu) Shariar Zaber Kazi (szk2103@columbia.edu)
More informationDesigning Loop Condition Constraint Model for Join Point Designation Diagrams (JPDDs)
Designing Loop Condition Constraint Model for Join Point Designation Diagrams (JPDDs) Bahram Zarrin Master Student Bahram.zarrin@gmail.com Rodziah Atan Doctor rodziah@fsktm.upm.edu.my Muhammad Taufik Abdullah
More informationThe Hyper/UML Approach for Feature Based Software Design
The Hyper/UML Approach for Feature Based Software Design Ilka Philippow Technical University of Ilmenau PSF 100565 98684 Ilmenau, Germany Ilka.Philippow@tuilmenau.de Matthias Riebisch Technical University
More informationOperating Systems CMPSCI 377, Lec 2 Intro to C/C++ Prashant Shenoy University of Massachusetts Amherst
Operating Systems CMPSCI 377, Lec 2 Intro to C/C++ Prashant Shenoy University of Massachusetts Amherst Department of Computer Science Why C? Low-level Direct access to memory WYSIWYG (more or less) Effectively
More informationUsing 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 informationWEEK 4 OPERATORS, EXPRESSIONS AND STATEMENTS
WEEK 4 OPERATORS, EXPRESSIONS AND STATEMENTS OPERATORS Review: Data values can appear as literals or be stored in variables/constants Data values can be returned by method calls Operators: special symbols
More informationhttps://asd-pa.perfplusk12.com/admin/admin_curric_maps_display.aspx?m=5507&c=618&mo=18917&t=191&sy=2012&bl...
Page 1 of 13 Units: - All - Teacher: ProgIIIJavaI, CORE Course: ProgIIIJavaI Year: 2012-13 Intro to Java How is data stored by a computer system? What does a compiler do? What are the advantages of using
More informationIBM Research Report. CAT: A Toolkit for Assembling Concerns
RC22686 (W0212-148) December 30, 2002 Computer Science IBM Research Report CAT: A Toolkit for Assembling Concerns William H. Harrison, Harold L. Ossher, Peri L. Tarr, Vincent Kruskal, Frank Tip IBM Research
More informationPreserving Separation of Concerns through Compilation
Preserving Separation of Concerns through Compilation A Position Paper Hridesh Rajan Robert Dyer Youssef Hanna Dept. of Computer Science Harish Narayanappa Iowa State University Ames, IA 50010 {hridesh,
More informationUsing 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 informationLINKING BUSINESS RULES TO OBJECT-ORIENTED SOFTWARE USING JASCO
LINKING BUSINESS RULES TO OBJECT-ORIENTED SOFTWARE USING JASCO ABSTRACT María Agustina Cibrán 1, Maja D'Hondt 1, Davy Suvée 1, Wim Vanderperren, Viviane Jonckers {mcibran, mjdhondt, dsuvee, wvdperre}@vub.ac.be,
More informationAnalysing 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 informationA Proposal For Classifying Tangled Code
A Proposal For Classifying Tangled Code Stefan Hanenberg and Rainer Unland Institute for Computer Science University of Essen, 45117 Essen, Germany {shanenbe, unlandr@csuni-essende Abstract A lot of different
More informationContemporary 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 informationAOP 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 informationA 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 informationDEPARTMENT OF COMPUTER AND MATHEMATICAL SCIENCES UNIVERSITI TEKNOLOGI MARA CAWANGAN PULAU PINANG
DEPARTMENT OF COMPUTER AND MATHEMATICAL SCIENCES UNIVERSITI TEKNOLOGI MARA CAWANGAN PULAU PINANG PROGRAMME Diploma in Civil Engineering Diploma in Mechanical Engineering COURSE/CODE Fundamentals of Computer
More informationTowards 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 informationAspect-Oriented Programming for Connecting Business Rules
Aspect-Oriented Programming for Connecting Business Rules María Agustina Cibrán System and Software Engineering Lab Vrije Universiteit Brussel Belgium mcibran@vub.ac.be Maja D Hondt System and Software
More informationContents. Figures. Tables. Examples. Foreword. Preface. 1 Basics of Java Programming 1. xix. xxi. xxiii. xxvii. xxix
PGJC4_JSE8_OCA.book Page ix Monday, June 20, 2016 2:31 PM Contents Figures Tables Examples Foreword Preface xix xxi xxiii xxvii xxix 1 Basics of Java Programming 1 1.1 Introduction 2 1.2 Classes 2 Declaring
More informationLast Class. More on loops break continue A bit on arrays
Last Class More on loops break continue A bit on arrays public class February2{ public static void main(string[] args) { String[] allsubjects = { ReviewArray, Example + arrays, obo errors, 2darrays };
More informationFull file at
Java Programming: From Problem Analysis to Program Design, 3 rd Edition 2-1 Chapter 2 Basic Elements of Java At a Glance Instructor s Manual Table of Contents Overview Objectives s Quick Quizzes Class
More informationJOURNAL OF OBJECT TECHNOLOGY
JOURNAL OF OBJECT TECHNOLOGY Online at http://www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2005 Vol. 4, No. 3 Special issue: 6th GPCE Young Researchers Workshop 2004 Feature
More informationThe Essence of AspectJ
The Essence of AspectJ [Functional Pearl] Mark P. Jones Pacific Software Research Center Oregon Graduate Institute of Science & Technology 20000 NW Walker Road, Beaverton, Oregon 97006, USA mpj@cse.ogi.edu
More informationProgramming Language Concepts, cs2104 Lecture 04 ( )
Programming Language Concepts, cs2104 Lecture 04 (2003-08-29) Seif Haridi Department of Computer Science, NUS haridi@comp.nus.edu.sg 2003-09-05 S. Haridi, CS2104, L04 (slides: C. Schulte, S. Haridi) 1
More information