Industrial Experience with the Dassault Système Component

advertisement
Chapter 19
Industrial Experience with
Dassault Système Component Model
Building Reliable Component-based Systems
Chapter 19 - Industrial Experience with Dassault Système Component Model
Page 1
Overview
 Introduction
 The OM Component Model
 Discussion
 Lessons Learned
Building Reliable Component-based Systems
Chapter 19 - Industrial Experience with Dassault Système Component Model
Page 2
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
Building Reliable Component-based Systems
Chapter 19 - Industrial Experience with Dassault Système Component Model
Page 3
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.
Building Reliable Component-based Systems
Chapter 19 - Industrial Experience with Dassault Système Component Model
Page 4
The OM Component Model
 The OM is quite similar to COM.
 Interfaces: a set of method signatures

Component may support more than one interface.
Building Reliable Component-based Systems
Chapter 19 - Industrial Experience with Dassault Système Component Model
Page 5
External view of OM components
Interfaces
OM components
Other software entities
Dependencies
(a) External view of an OM component
(b) Heterogeneous application
Building Reliable Component-based Systems
Chapter 19 - Industrial Experience with Dassault Système Component Model
Page 6
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.
Building Reliable Component-based Systems
Chapter 19 - Industrial Experience with Dassault Système Component Model
Page 7
Component implementation
Interfaces
Bases
Extensions
Component inheritance
?
c
c
Component implementation
?
Delegation
Building Reliable Component-based Systems
Chapter 19 - Industrial Experience with Dassault Système Component Model
Page 8
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.
Building Reliable Component-based Systems
Chapter 19 - Industrial Experience with Dassault Système Component Model
Page 9
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
Building Reliable Component-based Systems
Chapter 19 - Industrial Experience with Dassault Système Component Model
Page 10
Component inheritance
 Single inheritance
 Inherits all its interfaces and all its implementations.
Building Reliable Component-based Systems
Chapter 19 - Industrial Experience with Dassault Système Component Model
Page 11
Conditional interfaces
 The interface will be returned to the client only if this
expression evaluates to true.

2D or 3D
Building Reliable Component-based Systems
Chapter 19 - Industrial Experience with Dassault Système Component Model
Page 12
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.
Building Reliable Component-based Systems
Chapter 19 - Industrial Experience with Dassault Système Component Model
Page 13
Different Kinds of Architecture
Frameworks
Dependency
OM elements
Other entities
(a) Physical architecture
(b) OM components vs. frameworks
Building Reliable Component-based Systems
Chapter 19 - Industrial Experience with Dassault Système Component Model
Page 14
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
Building Reliable Component-based Systems
Chapter 19 - Industrial Experience with Dassault Système Component Model
Page 15
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.
Building Reliable Component-based Systems
Chapter 19 - Industrial Experience with Dassault Système Component Model
Page 16
Industrial Perspective
 Should Connectors be regarded as first class citizens?
 Reexamination of the definitions of:

Connectors

Behavior

Architecture

Components
Building Reliable Component-based Systems
Chapter 19 - Industrial Experience with Dassault Système Component Model
Page 17
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.
Building Reliable Component-based Systems
Chapter 19 - Industrial Experience with Dassault Système Component Model
Page 18
Download