Technical Sessions
Refereed Papers
October
the 30th - afternoon
Session 1.2: Aspect-
and Object Oriented
Development
Refactoring Aspects into Java Code
Michael Kleyman (Israel), Shmuel Tyszberowicz (Israel) and Amiram Yehudai (Israel)
The Agile Manifesto states
that the Agile development methodology is intended “to satisfy the
customer through early and continuous delivery of valuable software”.
One of its principles is “welcome changing requirements even late in
development”. Refactoring is a major technique used to cope with
changes. It is a process and a set of techniques to reorganize code
while preserving the external behavior. This process can be performed
automatically. Aspect oriented programming (AOP) is a powerful
technology that greatly improves programmer’s ability to quickly
introduce changes to a software system. AOP enables easily modifying
behavior of numerous locations in the system code or adding new
behavior. The AOP technology is perceived by some people not to be
mature enough, hence they avoid using it in production software. We
have developed ACME, a tool that implements a refactoring process for
aspects. ACME enables a developer to convert AspectJ code to pure Java
code according to conversion patterns. The available patterns are
creating a singleton class from an aspect and merging aspects into
existing classes. The tool creates modular and readable object-oriented
code. This paper presents ACME functionality using example
transformations and discusses the tool’s applicability and decisions
made during its design.
Assessing the Object-level
behavioral complexity in Object Relational Databases
Selwyn Justus and Ka Iyakutti (India)
Object Relational Database
Management Systems model set of interrelated objects using references
and collection attributes. The static metrics capture the internal
quality of the database schema at the class –level during design time.
Complex databases like ORDB exhibit dynamism during runtime and hence
require performance-level monitoring. This is achieved by measuring the
access and invocations of the objects during runtime, thus assessing
the behavior of the objects. Runtime coupling and cohesion metrics are
deemed as attributes of measuring the Object-level behavioral
complexity. In this work, we evaluate the runtime coupling and cohesion
metrics and assess their influence in measuring the behavioral
complexity of the objects in ORDB. Further, these internal measures of
object behavior are externalized in measuring the performance of the
database in entirety. Experiments on sample ORDB schemas are conducted
using statistical analysis and correlation clustering techniques to
assess the behavior of the objects in real time. The results indicate
the significance of the object behavior in influencing the database
performance. The scope of this work and the future works in extending
this research form the concluding note.
AspectJTamer: The Controlled
Weaving of Independently Developed Aspects
Constantin Serban (U.S.A) and Shmuel Tyszberowicz (Israel)
In recent years, Aspect
Oriented Programming (AOP) has emerged as a promising model for
modularizing large and complex programs, advancing towards wider
acceptance for mainstream commercial development. The use of AOP
techniques for developing commercial applications poses, however, a
number of challenges — especially when such applications are composed
of large numbers of binary components containing independently
developed aspects. The interaction of such independently developed
aspects with each other and with the rest of the system can lead to
unexpected problems. First, aspects in binary distributions can be
mistakenly treated as ordinary classes, thus ignoring their complex
interaction with the rest of the system. Second, independently
developed aspects might inadvertently make inappropriate assumptions
about their application environment, thus creating unintended
effects. This paper presents AspectJTamer, a tool for addressing these
issues. First, AspectJTamer provides support for identifying aspects
that are present in binary distributions and for documenting their
specific interaction points, thus making explicit both their
assumptions about, and their weaving scope within, an application.
Second, AspectJTamer provides a mechanism to control the weaving scope
of binary aspects in a flexible manner, thus offering supplemental
constraints overriding the assumptions made by independently developed
aspects.