Component-Based Software Engineering ComponentBuilding reliable componentcomponent-based systems Overview www.idt.mdh.se/cbse--book www.idt.mdh.se/cbse CBSE – graduate course Page 1, April 8, 2009 The Book Organization Book Introduction Part 1 Chapter 1 Chapter 2 Part 2 Chapter 3 Chapter 4 Part 3 Chapter 5 Chapter 6 Chapter 7 Part 4 Chapter 8 Chapter 9 Chapter 10 Part 5 Chapter 11 Chapter 12 Part 6 Chapter 12 Chapter 13 Chapter 14 Part 7 Chapter 15 Chapter 16 Chapter 17 CBSE – graduate course Chapter 18 Page 2, April 8, 2009 The Book Organization Part 1 Basic definitions and concepts of component specification Part 2 Component models and architecture Part 3 Developing Software Components (development process) Part 4 Using components (evaluation (evaluation, test test, composition) Part 5 Software Product-Lines Part 6 Real-time components, real-time systems and components Part 7 Case studies – real–time, industrial and office component-based systems CBSE – graduate course Page 3, April 8, 2009 The Book Organization II Part 1 Component Theoretical parts (definitions) General for components Compositions Processes dependability/reliability Systems Domain specific processes Real-time requirements Safety-critical requirements Complex systems Case studies Specific cases Part 2 Part 3 Part 4 Part 5 Part 6 Part 7 CBSE – graduate course Page 4, April 8, 2009 PART 1 CONCEPTS OF CBSE What is a software component? Chapter 1 Basic Concepts p in CBSE Chapter 2 Specification p of Software Components How to define a component? Component specification Component Specification Interface Interface Specification Contracts UML Component C t Specification S ifi ti Patterns Specifying extra functional p components Frameworks F k CBSE – graduate course Page 5, April 8, 2009 Part 1 - Interesting questions What are the relations between objects and components? How o does itt work o in different d e e t technologies? tec o og es What are component frameworks in different component models? Which types of design patterns can be implemented as components. Examples of some patterns and their implementation in a component technology How are interfaces implemented in different technologies? UML and component specification (UML components) z In particular UML 2.0 CBSE – graduate course Page 6, April 8, 2009 PART 2 - SOFTWARE ARCHITECTURE AND COMPONENTS Chapter 3 Architecting Componentbased Systems Chapter 4 Component Models and Technology Relation between Software architecture and CBSE Different component technologies from architectural pointt of po o view e Architecture – design issue – identify components Redesign system depending of components availability Type of components z “architectural” architectural components z already existing components ADL (architectural definition language) JavaBeans, CORBA Component model, .NET Component Model and “Open Service Gateway I iti ti ” Component Initiative” C t Model M d l CBSE – graduate course Page 7, April 8, 2009 Part 2 2-- Interesting questions Dynamic software architecture z D Dynamic i replacement l off components z Dynamic restructuring of resources Different Diff t ADLs ADL and d their th i relations l ti to t components t UML 2.0 Containers C t i and dF Frameworks k iin diff differentt technologies t h l i CBSE – graduate course Page 8, April 8, 2009 Part 3 - Developing Software Components Chapter 5 CBD Life-Cycles Chapter 6 Semantic S i Integrity I i in i Component C - based Development System & Application development Separation of processes z Component development z Component-based development de e op e t Different phases and emphasize on parts specific for CBD Importance of semantics Different levels of semantic specifications Addressing semantic questions in CBSE literature – a statistic survey CBSE – graduate course Page 9, April 8, 2009 Part 3 - Developing Software Components Ch Chapter 7 Role-Based Component Engineering Relations class/object – role – framework – components Role – parts of interface having a particular “role” in a framework together with other components How a role is implemented in OO languages? CBSE – graduate course Page 10, April 8, 2009 Part 3 3-- Interesting questions parts Component-based C tb d processes z Component-based databases – problems and examples z H How and d when h tto ttestt components t z Component documentation z C Component t certification tifi ti Semantic integrity z UML OCL and UML, d specification ifi ti off pre- and d post-conditions t diti Role-Based components z C Component tF Frameworks k and d Roles R l CBSE – graduate course Page 11, April 8, 2009 Part 4 - USING SOFTWARE COMPONENTS Chapter Ch t 8 Dispelling the Myth of Component Evaluation Chapter Ch t 9 Component Composition and Integration How to evaluate and select components? t ? Integration – putting components t together t th (complied to component models) What should we evaluate? Components or component compositions? How component properties behave in compositions? Composition – reasoning about compositions attributes Predictable assembly from “certificated” components CBSE – graduate course Page 12, April 8, 2009 Part 4 - USING SOFTWARE COMPONENTS (cont) Chapter 10 Ch Predicting System Trustworthiness from Software Component Trustworthiness Predictable assembly assembl Can be predict reliability of a composition from reliability from components How to test assemblies? Fault injection method – Interface Propagation Analysis - send invalid data between connected components CBSE – graduate course Page 13, April 8, 2009 Part 4 4-- Interesting questions Component C t evaluation l ti z Component repositories z C Component td documentations t ti z Automatic test of components Fault F lt injection i j ti models d l z Managing exception handlings in components Component C t and d system t properties ti z Reliability, Safety, Security, etc. z E Experience i ffrom h hardware d systems t and d components t CBSE – graduate course Page 14, April 8, 2009 Part 5 - SOFTWARE PRODUCTPRODUCT-LINES Chapter 11 Components p in product p line architectures What is “Software Software product lines” How to make reusable parts in in-house development for different ff ffamilies off products? Ch t 12 Chapter KOALA –component component model implemented at Philips z CBSE – graduate course Requirements, model architecture, interface definitions, experience Page 15, April 8, 2009 Part 5 5-- Interesting questions/additional parts Software S ft product d t lines li z Overview z P Process challenges h ll – how h tto develop d l platforms l tf z What is a component in PLA z Pl tf Platform-based b dd development l t z Configuration Management and PLA Integration I t ti principles i i l z Type of bindings/compositions (functions, libraries, shared libraries dynamic binding libraries, binding,…)) CBSE – graduate course Page 16, April 8, 2009 Part 66- REAL REAL--TIME SOFTWARE COMPONENTS Chapter Ch t 13 Components in Real-Time Systems Chapter Ch t 14 Test of Reusable Software Components in Safety-Critical Real-Time Systems Real-time requirements Real-time components (OS) Safety-critical S f systems Designing real-time component-based systems Large costs for testing Reusing RT components Can we reuse components? What is the minimum of tests we must repeat CBSE – graduate course Page 17, April 8, 2009 Part 66- REAL REAL--TIME SOFTWARE COMPONENTS (cont) Chapter 15 Providing real-time services for COTS components Using non-real time system (Windows NT) for real time application Can we adjust non-real time systems to use it as a real-time p component RT characteristics of Windows NT Adding a new RT component – what is the behavior of the entire system CBSE – graduate course Page 18, April 8, 2009 Part 6 6-- Interesting questions RT components z Interface required for RT components z RT component components z RT CORBA z Timing aspects of using indirect (or dynamic) bindings z Why component models such as COM, CORBA cannot be used in hard RT systems? z RT UML - overview Testing safety-critical components z What is a reliability of a component (hardware /software comparison) z Dependability p y of components p in relation of dependability p y of systems CBSE – graduate course Page 19, April 8, 2009 Part 7 - CASE STUDIES COMPONENT--BASED DEVELOPMENT IN INDUSTRIAL APPLICATIONS COMPONENT Chapter 16 Component-Based y Embedded Systems How to use components in small embedded systems? Chapter 17 Architectural Support for Reuse: A Case Study in Industrial Automation Whi Which h componentt model d l to t use? ABB’s next generation of automation system architecture p Which composition environment? AspectObjects Which run-time environment? C Case study t d – ABB embedded b dd d systems Aspect directories y in integration g and data Flexibility mining CBSE – graduate course Page 20, April 8, 2009 Part 7 7-- Interesting questions Embedded systems and component-based systems z Identification of configuration environment/framework and runtime environment z OS for embedded systems and possibility of using CBSE for them (example Rubus) z OPC overview z Interesting services of a RT component-based framework CBSE – graduate course Page 21, April 8, 2009 Part 7 - CASE STUDIES (cont.) COMPONENT--BASED DEVELOPMENT IN INDUSTRIAL APPLICATIONS COMPONENT Chapter 18 A Framework for Integrating Business Applications Similar to chapter 16, but standards used (Microsoft) Office Information systems Issue Management Systems Integration of large applications Chapter 19 Industrial Experience with the Dassault Système Component Model Reuse, dynamic configuration of applications (CAD/CAM) Internal component model From different applications to common Interface Problems and experiences CBSE – graduate course Page 22, April 8, 2009