Software Live Cycle
Added: June, 2006 · Updated: June,2007
Application deployment and is an active part of software
life-cycle. It is commonly assumed to have loops in the design,
implementation and testing stages, but developers doesn't pay too
much attention to deployment of the products derived from these
iterations, in the sense that they are closely coupled with software
evolution and adaptation.
With this in mind the GNU/EDMA system is being adapted to provided a better support for this specific part of software life cycle, from the point of view of evolution.
In the technical report section you can find a new document which explain the current modifications being carried out on GNU/EDMA and the reasons behind them.
For now, an enhanced repository manager has been added to the system, and component instrumentation is being included to improve testing stage and make it become an active part of the following step: software deployment. Check the details in the technical report "EDNA: A Safe, Evolvable, Multi-version and On-demand Deployment System for GNU/EDMA Applications".
Software Evolution
Nowadays application are getting more and more complex and they also must run in changing environments: Hardware platforms change quickly, mobile computing is getting mainstream, security updates are common and frecuent, etc...This research area tries to cover issues on how to update, evolve and extend running applications in the easiest way and at the run-time, if possible. Topics like Hot swapping, Component Adaptation or Unanticipated program evolution are being studied within the GNU/EDMA framework.
A PoC implementation of this ideas is included in current GNU/EDMA version but it is not yet full functional. This implementation allows to provide an update script with each new version of system components. These scripts are used to "evolve" the run-time object status to the equivalent status of the new version.
To check this features the Mobile Agent System AGNES (see bellow) is been used to transform and evolve applications in distributed and heterogeneous environments in atbitrary ways.
In the technical report section you can found the document "Run-Time Component Extension and Update" which provides a general overview about the solution being explored.
Mobile Agent Platforms
Mobile code is another interesting topic I am trying to address in my research work. GNU/EDMA system provides an interesting environment to build mobile application.Topics of interest in this field covers: Component based Agents, Self-Adapting Models, Heterogeneous Platform interoperation, Security and others.
Currently I am developing a Mobile Agent Framework on top of GNU/EDMA named AGNES to proof these theories. One important issue with this system is that it uses the C programming language, instead of the commonly used Java solution.
Additionally, the AGNES platform is very easy to use and its component-based architecture (provided by the use of GNU/EDMA), allows to easely buit mobile-agent enable applications with very little effort. See the report "Component Coordination in Uncoupled Object Environments" in the Technical Reports Section for a sketch of these ideas.
Aspect Oriented Programming and Dynamic Applications
Aspect oriented programming, concerns separation or hierarchy crosscutting are new programmings techniques that try to formalize the use of orthogonal behaviors in OO class hierarchies.This topic is interesting in the sense that it easely fits within the GNU/EDMA programming model, and hence, is an example of the flexibility and of the possibility of a unification of different paradigms.
In the other hand, to provide dynamic features to application to change at run-time is a general concern in the last years for the research community. The dynamic GNU/EDMA architecture allows to look into this field and so figure out solutions to this problem
In the technical report section you can found the document "Neutral Programming Language Aspects with GNU/EDMA" which provides a general overview about this research line.
Formal Models
Getting a mathematical formalisation of any software related issue provides a way to verify the goodness of an implementation at the same time that provides an universal language description (mathematics) of this works which will allow scientific community understand it in a straightforward way.So, we also are working in a formal and mathematical model of the GNU/EDMA programming solution so we can make it available to the community in a way it can be understood and at the same time, providing a tool to further researches on these topics.
Current works are oriented to algebraic formulation of semantics contents in computer programs, rather than to provide calculus for typing soundness or program validation. We are interested on the relationship among the real world and its computer representation since software solutions are getting more and more complex every day, that is, software solutions are getting closer to real world.

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Please send comments to dmartin AT uvigo DOT es