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.
Chapter 19 Industrial Experience with Dassault Système Component Model Building Reliable Componentbased Systems Overview Introduction The OM Component Model Discussion Lessons Learned Building Reliable Componentbased Systems Introduction CATIA Dassault Systèmes main software product millions lines of code 19 000 clients 180 000 work places 50000 C++ classes 8000 components Object Modeller: Own component model Building Reliable Componentbased Systems 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 Componentbased Systems 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 Componentbased Systems External view of OM components Interfaces OM components Other software entities Dependencies (a) External view of an OM component (b) Heterogeneous application Building Reliable Componentbased Systems 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 Componentbased Systems Component implementation Interfaces Bases Extensions Component inheritance ? c c ? Component implementation Delegation Building Reliable Componentbased Systems 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 Componentbased Systems 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 Componentbased Systems Component inheritance Single inheritance Inherits all its interfaces and all its implementations Building Reliable Componentbased Systems Conditional interfaces The interface will be returned to the client only if this expression evaluates to true 2D or 3D Building Reliable Componentbased Systems 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 Componentbased Systems Different Kinds of Architecture Frameworks Dependency OM elements Other entities (a) Physical architecture (b) OM components vs frameworks Building Reliable Componentbased Systems 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 Componentbased Systems 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 Componentbased Systems Industrial Perspective Should Connectors be regarded as first class citizens? Reexamination of the definitions of: Connectors Behavior Architecture Components Building Reliable Componentbased Systems 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 Componentbased Systems ... components Object Modeller: Own component model Building Reliable Component based Systems Dassault Systèmes The DS objective was not primarily: To sell isolated OM components To sell the OM component. .. Building Reliable Component based Systems 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. ..Overview Introduction The OM Component Model Discussion Lessons Learned Building Reliable Component based Systems Introduction CATIA Dassault Systèmes main software product millions