Cadena is an Eclipse-based extensible integrated modeling and development framework for component-based systems.
Cadena's models are type-centric in that multi-level type systems are used to specify and enforce a
variety of architectural constraints relevant to development of large-scale systems and software product lines.
Cadena provides the following capabilities to system architects, infrastructure developers, and system developers:
Define modeling environments for widely-used component models:
Cadena's meta-modeling capabilities can be used to formally capture the definition of widely used component models
such as the CORBA Component Model (CCM), Enterprise Java Beans (EJB), nesC (a component model for sensor networks
built on TinyOS). Meta-models can include attributes that represent settings and parameters for underlying middleware
frameworks on which systems will be deployed.
Define domain-specific component models:
Cadena meta-modeling can also be applied to specify new component models, including domain-specific component models
that are tailored to the characteristics of a particular domain or underlying middleware capabilities.
Flexibly combine and extend multiple component models in a single system:
Cadena meta-models (called styles) can be directly manipulated using style operations.
This provides a variety of powerful and useful capabilities to system architects.
Styles can be extended through inheritance. This enables reuse of meta-model definitions,
and facilities refinement of platform definitions (multi-step platform-independent to platform-specific
Multiple styles can be combined within the same architecture model environment to support
development of systems of systems that incorporate multiple component models.
Define end-to-end model-driven development environments:
Cadena's base set of capabilities can be extended using plug-in mechanisms based on the Eclipse plug-in architecture.
This enables infrastructure developers to build end-to-end model-driven development environments that include facilities
for editing component implementations, model-level configuration of middleware capabilities, code generation, simulation,
verification, and creating system builds. Plug-ins can also be developed to link other development tools including tools
for requirements capture and down-stream class-level modeling tools such as Rational Rose or Modeler or iLogix Rhapsody.