Odyssey A Reuse Environment based on Domain Models

Odyssey
A Reuse Environment based on Domain Models
Prepared By:
Mahmud Gabareen
Eliad Cohen
Introduction
• One of the most encourage reuse techniques
available is Component-Based software
Development.
• A reuse environment can help in the effective
application of reuse, during software
development since it provides methods, tools,
and procedures.
• There is no environment that is capable of
addressing all these aspects together.
• The Odyssey environment provides support to
the whole development cycle from conceptual
models to component implementation.
Reuse Environment Diagrammatic View
Odyssey Framework
1. Conceptual Models
 Understanding and recognition of concepts and functionalities
by the Odyssey users.
 The main conceptual models used by Odyssey are:
 Domain Context Diagram: situates the domain in relation to
its scope, limits, relationships with other domains and main
actors involved.
 Domain Use Cases and related OO models: Capture the
main functionalities of the domain, and help in the
identification of the reusable components that are described
in other OO models.
 Feature Diagram: Presents the relationship among the
concepts and functionalities of the domain, trying to explain
what are the meaning of the main concepts in the domain
and its relationship.
Odyssey Framework
2. Architecture Model
• Partitioned by components:
 Each component specifies a domain task.
 Each component shows how its task can be architected.
 Describes the connections between components.
 The main architectural models are:
 Services (interfaces) Model of the components: Present
each component as a type that controls a series of services.
 Architectural Collaboration Model: Presents a global
architecture of the domain, including the interaction among
the components of the domain.
 Classes model and state diagram for each participant
type of components: the definition of the internal
component design deals with the definition, in greater
detail, of the internal structure of each component.
Odyssey Framework
3. Implementation Models
 Formed by a set of code components that are related based
on a CORBA protocol (Common Object Request Broker
Architecture).
 The components are more general, but they can be
specialized by using techniques such as parameterization,
class specialization, etc.
Mediation Layer
 Software layer that provides the integration of different
domain databases (distributed and possibly various).
 Reusable information is naturally divided by domain, which
make the search for domain concepts easier.
 Includes programs that make the connection between
distributed databases, various data models, and users of this
data, providing the information in an suitable format to the
user.
Odyssey Tools
 Odyssey provides tools that enable users to specify and
use domain models:
 Requirements Elicitation Tool:
 The main model that is used in the acquisition
process is the use case model.
 Responsible for the gaining of domain information.
 Information Agent Tool:
 This tool serves as a guide to the search for specific
domain information.
 When the user notifies some interest in a concept,
the tool seeks the related concepts and other related
information such as use cases, OO models, etc.
Odyssey Tools
 Architectural Transformation Tool:
 helps in the transformation of conceptual models to
architectural components models.
Pattern and Components Management System:
 It is responsible for the creation, deletion and
modification of patterns and components.
Odyssey DE Method
The main objectives:
 Creation of components that can be reused in domain
applications in all levels of application development.
 Creation of reusable components is done in an
incremental and evolutionary process, i.e., as new
information are aggregated to the domain, reusable
components are developed or adapted based on the
acquired information.
 Method that retain the best features of the main current DE
methods and at the same time avoid their shortcomings.
 Covers every phase of DE with equal emphasis.
 Provides a domain viability analysis phase.
 Provide systematic approach transition from conceptual
models to architectural models.
Odyssey DE Method
 Composed of four stages:
 Domain viability analysis: Analysis of the viability of the
domain to provide a group of reusable components.
 Domain analysis: Consists in the definition of main
domain concepts, standing out similarities and differences
among these concepts in high abstraction level.
 Domain Design: Deals with specification of components
interaction, internal components and architectural model.
 Domain Implementation: Deals with writing the
components code.
Odyssey DE Method
Definition and Users
• Odyssey domain engineering is an object-oriented
domain analysis and engineering technique that
uses component-based software development
techniques.
• The main objective of the process is the creation of
components that can be reused in domain
applications in all levels of application development
• The main users of the environment are the domain
engineer, the domain specialist and the software
engineer responsible for the development of
applications within that domain.
Conclusion
 Odyssey environment brings some interesting contributions,
mainly in the following points:
– Identification of technologies and specification of components
capable of addressing various stages involved in CBD.
– A DE method to support all phases of the process, including a
viability analysis stage.
– Systematic use of high-level OO constructs, such as patterns, and
its insertion into a DE method.
– Systematization of the transition between conceptual and
architectural models.