190 likes | 316 Views
Chapter 19 Industrial Experience with Dassault Système Component Model. Overview. Introduction The OM Component Model Discussion Lessons Learned. Introduction. CATIA Dassault Systèmes main software product 5 millions lines of code 19 000 clients 180 000 work places
E N D
Chapter 19 Industrial Experience with Dassault Système Component Model Building Reliable Component-based SystemsChapter 19 - Industrial Experience with Dassault Système Component Model
Overview • Introduction • The OM Component Model • Discussion • Lessons Learned Building Reliable Component-based SystemsChapter 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 Building Reliable Component-based SystemsChapter 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. Building Reliable Component-based SystemsChapter 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. Building Reliable Component-based SystemsChapter 19 - Industrial Experience with Dassault Système Component Model
Interfaces OM components Other software entities Dependencies (a) External view of an OM component (b) Heterogeneous application External view of OM components Building Reliable Component-based SystemsChapter 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. Building Reliable Component-based SystemsChapter 19 - Industrial Experience with Dassault Système Component Model
Component implementation Interfaces Bases Extensions Component inheritance c Component implementation ? ? Delegation c Building Reliable Component-based SystemsChapter 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. Building Reliable Component-based SystemsChapter 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 Building Reliable Component-based SystemsChapter 19 - Industrial Experience with Dassault Système Component Model
Component inheritance • Single inheritance • Inherits all its interfaces and all its implementations. Building Reliable Component-based SystemsChapter 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 Building Reliable Component-based SystemsChapter 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. Building Reliable Component-based SystemsChapter 19 - Industrial Experience with Dassault Système Component Model
Different Kinds of Architecture Frameworks Dependency OM elements Other entities (a) Physical architecture (b) OM components vs. frameworks Building Reliable Component-based SystemsChapter 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 Building Reliable Component-based SystemsChapter 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. Building Reliable Component-based SystemsChapter 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 Building Reliable Component-based SystemsChapter 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. Building Reliable Component-based SystemsChapter 19 - Industrial Experience with Dassault Système Component Model