COP 4009 ComponentBased Software Engineering Introduction to CBSE
COP 4009 Component-Based Software Engineering Introduction to CBSE: Definitions, Concepts, and Principles Fall 2005 Instructor: Masoud Sadjadi http: //www. cs. fiu. edu/~sadjadi/Teaching/COP-4009 -Fall-2005/index. html COP 4009 4 th Lecture September 26, 2005
Acknowledgements Dr. George T. Heineman – This course is based on the “CS 509 Design of Software Systems Spring 2005” by Dr. Heineman with some adjustments to become appropriate for undergraduate students. Dr. Heineman has generously offered his course material (including the slides) and his help during preparation of this course. I am very grateful to him. – The original slides and the course material can be found at: http: //www. cs. wpi. edu/~heineman/html/teaching_/CS 509/index. html Dr. William Councill and other authors of the main textbook Dr. Clemens Szyperski Drs. Betty Cheng, Peter Clarke, Bernd Bruegge, and Allen Dutoit COP-4009: Component-Based Software Engineering Fourth Lecture on September 26, 2005 2
Agenda Component Based Software Engineering Definitions Component Infrastructure Component Model Tasks and Responsibilities COP-4009: Component-Based Software Engineering Fourth Lecture on September 26, 2005 3
Other Engineering Fields Every other engineering profession – divides problems into sub-problems Ready-made solutions Sub-contracted to conform to specifications – conforms to standards – self-imposed industrial regulation – certification regiment for engineers But not Software Engineering… COP-4009: Component-Based Software Engineering Fourth Lecture on September 26, 2005 4
Some Excuses Software is different from hardware My software needs are unique We don’t trust software written elsewhere Users can live with defective software We want something better… COP-4009: Component-Based Software Engineering Fourth Lecture on September 26, 2005 5
CBSE Methodology At its core, CBSE is a methodology that: – constructs applications from software units – supports vendors in producing reusable software units – develops core technologies that support the run -time execution of these units – defines agreed-upon standards – engenders trust among participants We will participate in most of these tasks during this semester COP-4009: Component-Based Software Engineering Fourth Lecture on September 26, 2005 6
Agenda Component Based Software Engineering Definitions Component Infrastructure Component Model Tasks and Responsibilities COP-4009: Component-Based Software Engineering Fourth Lecture on September 26, 2005 7
Software Component A Software Component is a software element that conforms to a component model and can be independently deployed and can be composed without modification all above according to a composition standard COP-4009: Component-Based Software Engineering Fourth Lecture on September 26, 2005 8
Component Model A Component Model defines specific interaction and composition standards. consume supply manage An interaction standard is the mandatory requirements employed and enforced to enable software elements to directly and indirectly interact with other software elements. Software Entity COP-4009: Component-Based Software Engineering Component interface Fourth Lecture on September 26, 2005 9
Interaction Standard Based on the concept of an interface – “An abstraction of the behavior of a component” Provided interface – component implements the interface in Required interface – component interactions with other software elements are captured comp Context Dependency out COP-4009: Component-Based Software Engineering Fourth Lecture on September 26, 2005 10
Composition Standard Composition – the combination of two or more software components yielding a new component behavior Defines several important concepts – Packaging – Deploying Installing Configuring COP-4009: Component-Based Software Engineering Instantiating Fourth Lecture on September 26, 2005 11
CMI A Component Model Implementation is the dedicated set of executable software elements required to support the execution of components that conform to the model The “Plumbing” that enables components to connect and interact with each other COP-4009: Component-Based Software Engineering Fourth Lecture on September 26, 2005 12
Agenda Component Based Software Engineering Definitions Component Infrastructure Component Model Tasks and Responsibilities COP-4009: Component-Based Software Engineering Fourth Lecture on September 26, 2005 13
Big Picture Master Software Development Plan Problem to be Solved Performance Requirements Decompose problem into projects and subprojects Evaluate Success of Software System Design logical component infrastructure • Select suitable component model Legend Project Subproject COP-4009: Component-Based Software Engineering • Provided by vendor; or, if a proprietary component model, must be implemented. Fourth Lecture on September 26, 2005 14
Logical Component Infrastructure Evaluate Success of Software System Increasingly detailed refinement of design leads to an implemented component infrastructure Analyze component infrastructure from multiple viewpoints Legend Component Interaction Component Infrastructure Component Model Implementation COP-4009: Component-Based Software Engineering Fourth Lecture on September 26, 2005 15
Component Infrastructure A software component infrastructure is – a set of interacting software components The infrastructure is designed to ensure that a software system constructed using those components will satisfy clearly defined performance requirements COP-4009: Component-Based Software Engineering Fourth Lecture on September 26, 2005 16
Designing a Component Infrastructure The Component Infrastructure is layered Layering is a strategy for decomposing complex structures COP-4009: Component-Based Software Engineering Fourth Lecture on September 26, 2005 17
Four Layers User Workflow and Process Control Business Services Data and Operating System Services COP-4009: Component-Based Software Engineering Fourth Lecture on September 26, 2005 18
User components provide the external interface – graphical user interfaces (GUI), Web-based, or batchoriented Understand user interactions Request services from other components in response to commands issued by the user COP-4009: Component-Based Software Engineering Fourth Lecture on September 26, 2005 19
Workflow and Process Control Workflow and process control components manage complex, automated business processes that interact with (potentially) many business services COP-4009: Component-Based Software Engineering Fourth Lecture on September 26, 2005 20
Business Services Business service and legacy wrapping components provide the implementation of the business rules and the operational activity This is accomplished using internal business object implementations, or by wrapping legacy systems behind the component interface COP-4009: Component-Based Software Engineering Fourth Lecture on September 26, 2005 21
Design Layers and Designers User Workflow and Process Control Business Services & Legacy Wrapping Solution Component Designers Consume Business Supply Component Designers Consume Data/Operating System Services COP-4009: Component-Based Software Engineering Supply Data/Infrastructure Component Designers Fourth Lecture on September 26, 2005 22
Agenda Component Based Software Engineering Definitions Component Infrastructure Component Model Tasks and Responsibilities COP-4009: Component-Based Software Engineering Fourth Lecture on September 26, 2005 23
Component Model Interfaces Naming Meta data Composition Customization Interoperability Evolution Support Packaging & Deployment COP-4009: Component-Based Software Engineering Specification of component behavior and properties Definition of Interface Description Language (IDL) Fourth Lecture on September 26, 2005 24
Component Model Interfaces Naming Meta data Composition Customization Interoperability Evolution Support Packaging & Deployment Global unique names for interfaces and components Interface Y COP-4009: Component-Based Software Engineering Component X Fourth Lecture on September 26, 2005 25
Component Model Interfaces Naming Meta data Composition Customization Interoperability Evolution Support Packaging & Deployment Information about components, interfaces, and their relationships Interfaces to services providing such information Interface Y COP-4009: Component-Based Software Engineering Component X Fourth Lecture on September 26, 2005 X Meta data Y Meta data 26
Component Model Interfaces Naming Meta data Composition Customization Interoperability Evolution Support Packaging & Deployment Interfaces and rules for combining components to create larger structures and for substituting and adding components to existing structures Component Z ? ? ? Interface Y COP-4009: Component-Based Software Engineering Component X Fourth Lecture on September 26, 2005 27
Component Model Interfaces Naming Meta data Composition Customization Interoperability Evolution Support Packaging & Deployment Interfaces for customizing components User-friendly customization tools will use these interfaces Customization. API Interface Y Component X Interface Y COP-4009: Component-Based Software Engineering Component X’ Fourth Lecture on September 26, 2005 28
Component Model Interfaces Naming Meta data Composition Customization Interoperability Evolution Support Packaging & Deployment Communication and data exchange among components from different vendors, implemented in different languages ? ? ? Interface Y COP-4009: Component-Based Software Engineering Component Z Java Impl. Component X VB Impl. Fourth Lecture on September 26, 2005 29
Component Model Interfaces Naming Meta data Composition Customization Interoperability Evolution Support Packaging & Deployment Rules and services for replacing components or interfaces by newer versions Y Meta data Version 1. 0 Version 2. 0 X Meta data Interface Y COP-4009: Component-Based Software Engineering Component X Fourth Lecture on September 26, 2005 Version 1. 1 30
Component Model Interfaces Naming Meta data Composition Customization Interoperability Evolution Support Packaging & Deployment Packaging implementation and resources needed for installing and configuring a component Interface Y COP-4009: Component-Based Software Engineering Component X Fourth Lecture on September 26, 2005 X Meta data Y Meta data 31
Agenda Component Based Software Engineering Definitions Component Infrastructure Component Model Tasks and Responsibilities COP-4009: Component-Based Software Engineering Fourth Lecture on September 26, 2005 32
Tasks and Responsibilities Component Factory – Three primary groups (AD, CMID) Tasks and Responsibilities Application Development Provides CD with component requests and designs Provides CMID with requirements infrastructure Provides CMID with requirements forfor infrastructure services Component Development Builds components specification and provides Builds components to to specification and provides to to AD Provides feedback on CMI and its services Component Provides AD with a component model implementation that Model implementation that satisfies Model satisfies application criteria Implementati CD with suitable tools and anan environment Implementation Provides CD with suitable tools and environment for on componentdevelopment Development forcomponent Development COP-4009: Component-Based Software Engineering Fourth Lecture on September 26, 2005 33
- Slides: 33