ILTAM logo English
Send to Print Close Window

 
 
SwSTE07

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.

Send to Print Close Window