|
Go back to
Tutorials Home |
T3: Hyper/J: Multi-Dimensional Separation of
Concerns for Java |
Presenters: - Peri
Tarr, IBM T. J. Watson Research Center - Harold
Ossher, IBM T. J. Watson Research Center - Stanley
M. Sutton, Jr., NFA
Date: Monday, March 17,
afternoon (half day)
Level:
Introductory
Attendees should have some experience with
object-oriented development, but no prior exposure to AOSD is
assumed.
Abstract:
Multi-dimensional
separation of concerns (MDSOC) is an AOSD approach that
promotes flexible, powerful separation and integration of
software based on all kinds of concerns. MDSOC allows
developers to encapsulate overlapping, interacting and
crosscutting concerns, including features, aspects, variants,
roles, business rules, components, frameworks, etc. MDSOC
further supports developers in specifying relationships among
concerns to allow concerns to be systematically separated,
combined, and traced.
MDSOC treats all concerns as
first-class and co-equal, including components and aspects,
allowing them to be encapsulated and composed at will. This is
in contrast to most aspect-oriented approaches, which enable
aspects to be composed with components but do not support
composition of components (or aspects) with one another. Some
other key benefits of MDSOC include the ability to identify
and modularize concerns at any stage of the software lifecycle
(prospectively and retrospectively); the ability to define,
manipulate, and integrate different decompositions of the same
software simultaneously; the ability to customize, adapt,
reuse, and evolve software non-invasively; and the ability to
reconcile different class hierarchies modeling overlapping
domains from different perspectives. MDSOC can therefore
reduce complexity, improve reusability, and simplify evolution
and integration.
This tutorial describes how to
accomplish MDSOC with Hyper/J™, a prototype tool available for
free download, in the context of standard Java™ development.
It will demonstrate how Hyper/J addresses some real, pervasive
problems in participants' own Java development. Example
problems include adding a feature; adding instrumentation;
creating and evolving product lines; separating concerns in
retrospect (i.e., extracting concerns from existing software);
supporting team development, including use of different domain
models by different teams; separating, integrating,
retrofitting and reusing design patterns; and facilitating
unplanned integration. Hyper/J works on Java class files, so
it can be used on any off-the-shelf Java software, even when
source code is not available. It requires no special
compilers, development tools, or
processes.
Biographies:
Peri Tarr is a
researcher at the IBM Thomas J. Watson Research Center. She
co-invented hyperspaces, leads the Hyper/J tool development
effort, and has been exploring issues in MDSOC throughout the
software lifecycle. She has presented or co-presented a number
of tutorials on subject-oriented programming and Hyper/J, and
has co-organized workshops on multi-dimensional separation of
concerns and AOSD at several conferences. She has been on the
program and conference committees for ICSE and OOPSLA, is on
the ICSE '03 program committee, is the OOPSLA '03 tutorial
chair, and was a program committee member for AOSD
'02.
Harold Ossher is a researcher at the IBM Thomas J.
Watson Research Center. He co-invented subject-oriented
programming and hyperspaces, and leads a group that conducts
research and technology transfer in these areas. He has
presented or co-presented tutorials on subject-oriented
programming and Hyper/J, and has co-organized workshops on
subjectivity in object-oriented systems and on MDSOC at
several conferences. He was the General Chair of AOSD
'02.
Stanley Sutton invented the Cosmos approach to
defining and representing multi-dimensional concern spaces,
has been performing research on MDSOC in middleware, and is an
active Hyper/J user. He presented this tutorial at Net.Object
Days 2001 (an invited presentation). |
Contact |
For additional information,
clarifications, questions, or special requirements, please
contact the AOSD 2003 Tutorial Chair: Eric Eide
(tutorials@aosd.net). |
| |
|