Abstract:
Software evolution is, norm and even more, a critical concern for most
software systems. Despite of many promises that supported by the software
development techniques, such as Object-Oriented approach, but they were not able to
address these concerns appropriately.
Separating static and dynamic concerns of software development helps
developers to get a conceptual grasp on large software systems, and evolve it. We are
interested in separating three generic concerns (3Cs) that are computation,
coordination, and configuration, each layer is superposed in a non-intrusive way on
the layer below, which facilitates the modification of coordination and configuration
policies to make the system evolved.
Using coordination contract concept in specified framework or domain
provides us with a consistent database (library) of contracts that can be reused to
support expected evolution of systems efficiently.
In this thesis a through investigation was made for Coordination Development
Environment (CDE) tool, which supports the superposition of contracts on top of Java
components to develop and superpose new behaviours or business rules. On top of the
CDE a complementary tool (the Spider tool) for volatile system development was
developed
The Spider tool extends the functionality of the CDE by providing the facility
to build versions of application or applications simply through a graphical user
interface rather than building them by the code. The Spider tool plays and implements
the role of configuration layer in the coordination based approach. It composes any
system by draging the components and contracts in plug-and-play manner.