Youssef Hassoun

Analysis of Procedure Splitability (2009)

Tao Jiang, Mark Harman, Youssef Hassoun

As software evolves there is a tendency for size to increase and structure to degrade, leading to problems for ongoing maintenance and reverse engineering. This paper introduces a greedy...

Constantinides, “Considerations on component visibility and code reusability (2007)

Youssef Hassoun, Constantinos A. Constantinides

Abstract: The AspectJ programming language supports the principle of modularity and abstraction by allowing explicit separation between aspects and system core concerns. However, using AspectJ does...

Refactoring trends across n versions of n java open source systems: an empirical study (2005)

Deepak Advani, Youssef Hassoun, Steve Counsell

In the past few years, refactoring has emerged as an important consideration in the maintenance and evolution of software. Yet very little empirical evidence exists to support the claim about whether...

Coupling, Code Reuse and Open Implementation in Reflective Systems (2005)

Youssef Hassoun

Little research has been conducted in investigating the implications of employing reflection in object-oriented (OO) systems on software qualities such as coupling and reuse. In this thesis, we...

Code Reuse Through Reflection: An Empirical Perspective (2004)

Youssef Hassoun, Roger Johnson, Steve Counsell

Applying reuse-supporting techniques has the potential for increasing software productivity, shortening development time and decreasing maintenance costs. However, at present, there is no methodology...

Constantinides, “The Development of Generic Definitions of Hyperslice Packages (2003)

Youssef Hassoun, Constantinos A. Constantinides

Abstract: In this paper we investigate the notion of developing generic aspects in Hyper/J and compare it with other approaches. 1.

Open Implementation and Java's Dynamic Proxies (2003)

Youssef Hassoun, Roger Johnson, Steve Counsell

In this paper we investigate the implications of Java’s dynamic proxies for supporting open architectures to implement reusable code. Dynamic proxies are interpreted as meta-objects, which define...

Code Reuse for Improving Software Productivity and quality in AOP (2003)

Youssef Hassoun, Constantinos A. Constantinides

Aspect oriented programming languages support the principle of modularity and abstraction by allowing explicit separation between aspects and system core concerns. However, using these tools does not...