My existing research is mainly focused on lightweight generic programming techniques and the essence of (OO-style) design patterns. * Modular Visitor Components: A Practical Solution to the Expression Families Problem Bruno C. d. S. Oliveira ECOOP 2009. * Scala for Generic Programmers Bruno C. d. S. Oliveira, Jeremy Gibbons In Ralf Hinze, editor, Proceedings of the ACM SIGPLAN Workshop on Generic Programming (WGP'08) July 2008. * Objects to Unify Type Classes and GADTs Bruno C. d. S. Oliveira, Martin Sulzmann ICFP 2008
DJProf is an experimental Java profiling tool which employs AspectJ to insert the necessary instrumentation for profiling rather than, for example, the Java Machine Profiler Interface (JVMPI). DJProf can be used to profile Java programs without modification (i.e. there is no need to recompile them for profiling) and does not require the user to have any knowledge of AspectJ. The Load-Time Weaving capability of AspectJ is utilised to make this possible. The tool (including its source code) is release under a very straightforward (and unrestrictive) license for the benefit of all.
genesis is an open-source framework that aims to bring simplicity and productivity to enterprise application development, ensuring scalability, robustness and testability of your software. The main goal is to simplify the development of business components and the construction of complex graphical interfaces with minimum effort for developers. To accomplish its mission, genesis combines several open-source frameworks in a completely transparent way for developers, through the use of AOP (Aspect Oriented Programming). Our main challenge is to allow people with little knowledge of the Java platform to develop robust applications fast, without requiring them to learn several new technologies and complex concepts. We invite you to experience our approach to the problem.
Domain Driven Design (DDD) is about mapping business domain concepts into software artifacts. Most of the writings and articles on this topic have been based on Eric Evans' book "Domain Driven Design", covering the domain modeling and design aspects mainly from a conceptual and design stand-point. These writings discuss the main elements of DDD such as Entity, Value Object, Service etc or they talk about concepts like Ubiquitous Language, Bounded Context and Anti-Corruption Layer.
Team spirit for objects Building complex systems from isolated objects often yields poor structure which readily decays during system evolution. Objects should team-up in order to co-operate and jointly deliver complex behaviors. Objects play specific roles within a given Team.
line
Context based dispatch Object behavior is controled by the currently active context of execution. Contexts are reified into Team instances, which may be used to mediate between roles and maintain state of the collaboration.
line
Modules larger than classes On the road to re-use of modules larger than classes two approaches compete: frameworks and components. For many applications white box frameworks are too fragile and black box components to rigid. Object Teams provide a middle road which balances encapsulation and adaptability.
line
Key Features of Object Teams
*
Weaving of aspect code into existing classes (no source code needed).
*
Teams are modules that encapsulate the interaction of a set of role objects.
o
Teams can be type-checked in a modular way.
o
Roles are automatically managed by their enclosing Team instance.
*
Teams can be refined using inheritance.
o
Collective refinement of role classes.
o
Team refinement realizes type-safe covariance of role signatures.
*
Teams are instantiable first class entities.
o
Teams are aspects that can be activated/deactivated at run-time.
o
Roles may refer to their enclosing Team.
*
Explicit connectors bind an abstract Team definition to a base package.
o
Binding happens a-posteriori, i.e., no modification in the base package is required.
o
Team binding is specified in a declarative style.
o
Bindings may specify different kinds of adaptations.
*
Object Teams require a minimal number of new language constructs to be learned for a maximum of modularity and composability.
A. Castaldo D'Ursi, L. Cavallaro, and M. Monga. FOAL'07: Proceedings of the 6th workshop on
Foundations of aspect-oriented languages, page 35--43. ACM, ACM Press, (March 2007)
R. Khatchadourian, P. Greenwood, A. Rashid, and G. Xu. Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering, page 575--579. Washington, DC, USA, IEEE Computer Society, (2009)
S. Holland. OOPSLA '04: Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, page 224--225. New York, NY, USA, ACM Press, (2004)
E. Kendall. OOPSLA '99: Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, page 353--369. New York, NY, USA, ACM Press, (1999)
S. ur Rahman, A. Khan, and G. Saake. 36th Conference on Current Trends in Theory and Practice of Computer Science (Student Research Forumn), II, page 87-99. Institute of Computer Science AS CR, Prague, (January 2010)
K. Mehner, M. Monga, and G. Täntzer. volume 5490 of Lecture Notes in Computer Science, chapter Analysis of Aspect-Oriented Model Weaving, page 235--263. Springer Berlin / Heidelberg, (2009)