| Send to Print | Close Window |

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.
Session 1.3: Software Implementation
Storing a Persistent Transactional
Object Heap on Flash Memory
Nir Shasha (Israel) and Sivan Toledo (Israel)
We present the design and
implementation of two garbage collectors for TINYSTORE. TINYSTORE is a
persistent flash-based transactional memory-management system for Java
Cards. One collector is a stop-the-world collector with a traversal
ordering that is particularly efficient on flash memories. The second
is an incremental garbage collector that prevents long
garbage-collection pauses.
Execution platform for the Graphic
Real-Time Design tool of Arts'Codes
Aryeh Teitelbaum (Israel)
The Arts'Codes method is an
executable Visual Programming Language for real-time application's
development. It emerged from cognitive skills and realtime system
researches. On one hand, it molds the software design according the
natural cognitive skills, without deteriorating execution performance.
On the other hand, it proposed also a robust execution platform which
takes into account only dry technical restrictions which does not
depend on the design cognitive problems. A bridge between these two
contradictory dimensions (cognition vs. execution) was built by
defining well-defined rules for the design of an execution platform, in
order to conserve the advantages of each dimension.
Session 2.1: Software
Projects Management
Success of Open Source Projects:
Patterns of Downloads and Releases with Time
Ayelet Israeli (Israel) and Dror G. Feitelson (Israel)
The success of software
projects has many different facets: meeting user requirements, being
developed within given budget and time constraints, and actually being
used. We focus on one of them: the pattern of adoption by users and its
possible relationship with continued development. This is done based on
readily available data for open source projects, namely their releases
and downloads. Rather than just classifying projects as “successful” or
“failure”, we identify six distinct patterns of how the download rate
changes with time that illuminate different aspects of successful or
failed projects.
”You’re not thinking fourth dimensionally!” Dr. Emmett “Doc” Brown, Back To The
Future III, scene 8.
The Software Engineering Timeline:
A Time Management Perspective
Orit Hazzan (Israel) and Yael Dubinsky (Israel)
This paper addresses time
management in software development processes. The rationale for this
investigation stems from the observation that many of the problems
associated with software projects, such as planning, time pressure and
late deliveries, are time related. The analysis presented is based both
on a literature review and on illustrations of data taken from our
research on different software project management paradigms – mainly
heavyweight and agile software development.
Estimating the Required Code
Inspection Team Size
Eliezer Kantorowitz,(Israel) Tsvika Kuflik (Israel) and Alex Raginsky (Israel)
Code inspection is considered
an efficient method for detecting faults in software code documents.
The number of faults not detected by inspection should be small.
Several methods have been suggested for estimating the number of
undetected fault. These methods include the fault injection method that
is considered to be quite laborious, capture recapture methods that
avoid the problems of code injection and the Detection Profile Method
for cases where capture recapture methods do not provide sufficient
accuracy. The Kantorowitz estimator is based on a probabilistic model
of the inspection process and enables the estimating the number of
inspectors required to detect a specified fraction of all the faults of
a document as well as the number of undetected faults. This estimator
has proven to be satisfactory in inspection of user requirements
documents. The experiments reported in this study suggest that it is
also useful for code inspection.
| Send to Print | Close Window |