In this chapter, the following content will be discussed: The design of a powerful component model is shown to be a complex task, the model has improved progressively over the years, very large systems must live with inconsistencies.
Trang 1Building Reliable Componentbased Systems
Chapter 19 Industrial Experience with Dassault Système Component Model
Chapter 19 Industrial Experience with Dassault Système Component Model
Trang 2Building Reliable Componentbased Systems
Chapter 19 Industrial Experience with Dassault Système Component Model
Overview
Introduction
The OM Component Model
Discussion
Lessons Learned
Trang 3Building Reliable Componentbased Systems
Chapter 19 Industrial Experience with Dassault Système Component Model
Introduction
CATIA
Dassault Systèmes main software product
5 millions lines of code
19 000 clients
180 000 work places
50000 C++ classes
8000 components Object Modeller: Own component model
Trang 4Building Reliable Componentbased Systems
Chapter 19 Industrial Experience with Dassault Système Component Model
Dassault Systèmes
The DS objective was not primarily:
To sell isolated OM components
To sell the OM component framework.
To make their component model a standard
The primary objective was:
To find a way to develop its software under the best conditions, and to provide to its customers with powerful adaptability facilities
Trang 5Building Reliable Componentbased Systems
Chapter 19 Industrial Experience with Dassault Système Component Model
The OM Component Model
The OM is quite similar to COM.
Interfaces: a set of method signatures
Component may support more than one interface
Trang 6Building Reliable Componentbased Systems
Chapter 19 Industrial Experience with Dassault Système Component Model
External view of OM components
(a) External view of an OM component
Interfaces
(b) Heterogeneous application
Other software entities
OM components
Dependencies
Trang 7Building Reliable Componentbased Systems
Chapter 19 Industrial Experience with Dassault Système Component Model
Using OM Components to Build Applications
In practice, there is no boundary between traditional
development and component-based development
DS applications are hybrids.
There is a Lack of support for explicit connections and assembly facilities.
DS does not aim to sell components, but extensible applications.
Trang 8Building Reliable Componentbased Systems
Chapter 19 Industrial Experience with Dassault Système Component Model
Component implementation
Component inheritance
Bases Extensions
c
c
?
?
Interfaces
Component implementation Delegation
Trang 9Building Reliable Componentbased Systems
Chapter 19 Industrial Experience with Dassault Système Component Model
Implementations
DS components are typically developed by different
teams in different companies
Components are in fact a collection of elementary
pieces of code, called implementations
Trang 10Building Reliable Componentbased Systems
Chapter 19 Industrial Experience with Dassault Système Component Model
Extensions
Has two kinds of implementations:
Base implementations and extensions
A component is defined by a base implementation
An extension has two advantageous properties:
It does not change the identity of the component being extended
It does not change the code of the component being extended
Trang 11Building Reliable Componentbased Systems
Chapter 19 Industrial Experience with Dassault Système Component Model
Component inheritance
Single inheritance
Inherits all its interfaces and all its implementations
Trang 12Building Reliable Componentbased Systems
Chapter 19 Industrial Experience with Dassault Système Component Model
Conditional interfaces
The interface will be returned to the client only if this
expression evaluates to true
2D or 3D
Trang 13Building Reliable Componentbased Systems
Chapter 19 Industrial Experience with Dassault Système Component Model
Discussion
Has not develop a new language:
The OM can be seen as a layer superimposed on the C++ language
Interfaces and implementations are represented as C++
classes.
OM constructions are indeed represented as code patterns and macros in C++ source code
Trang 14Building Reliable Componentbased Systems
Chapter 19 Industrial Experience with Dassault Système Component Model
Different Kinds of Architecture
Frameworks Dependency
OM elements
Other entities
Trang 15Building Reliable Componentbased Systems
Chapter 19 Industrial Experience with Dassault Système Component Model
Framework Evolution
A good component framework:
Satisfies development / maintenance needs
Is easily mastered and understood by developers
It is incorrect to believe that if a concept is simple, its
use will also be simple:
“goto” and pointers AddRef and Release
Trang 16Building Reliable Componentbased Systems
Chapter 19 Industrial Experience with Dassault Système Component Model
Evolution
An incremental process
Model evolved permanently while CATIA software was
in development
Required different concepts and constructs to coexist, which created problems.
A bug may be due to:
Faulty implementation of the concept, Undefined semantic hole
Inherent complexity
Specific training courses should be employed to ensure
the correct use of the component model.
Trang 17Building Reliable Componentbased Systems
Chapter 19 Industrial Experience with Dassault Système Component Model
Industrial Perspective
Should Connectors be regarded as first class citizens?
Reexamination of the definitions of:
Connectors Behavior Architecture Components
Trang 18Building Reliable Componentbased Systems
Chapter 19 Industrial Experience with Dassault Système Component Model
Summary
The design of a powerful component model is shown to
be a complex task
The model has improved progressively over the years
Very large systems must live with inconsistencies.
Training is needed to prevent misuse.
Tools for tracking invalid constructions
We have still to invent the CBSE environments of the
future