Introduction to CBSE: Definitions, Concepts, and Principles

33
COP 4009 4 th Lecture September 26, 2005 COP 4009 COP 4009 Component-Based Software Engineering Component-Based Software Engineering Fall 2005 Instructor: Masoud Sadjadi ttp://www.cs.fiu.edu/~sadjadi/Teaching/COP-4009-Fall-2005/index.htm Introduction to CBSE: Introduction to CBSE: Definitions, Concepts, and Definitions, Concepts, and Principles Principles

description

Introduction to CBSE: Definitions, Concepts, and Principles. Acknowledgements. Dr. George T. Heineman - PowerPoint PPT Presentation

Transcript of Introduction to CBSE: Definitions, Concepts, and Principles

Page 1: Introduction to CBSE: Definitions, Concepts, and Principles

COP 4009 4th Lecture September 26, 2005

COP 4009 COP 4009 Component-Based Software EngineeringComponent-Based Software Engineering

Fall 2005Instructor: Masoud Sadjadi

http://www.cs.fiu.edu/~sadjadi/Teaching/COP-4009-Fall-2005/index.html

Introduction to CBSE:Introduction to CBSE:Definitions, Concepts, and PrinciplesDefinitions, Concepts, and Principles

Page 2: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 2COP-4009: Component-Based Software Engineering

AcknowledgementsAcknowledgements

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_/CS509/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

Page 3: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 3COP-4009: Component-Based Software Engineering

AgendaAgenda

Component Based Software Engineering

Definitions

Component Infrastructure

Component Model

Tasks and Responsibilities

Page 4: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 4COP-4009: Component-Based Software Engineering

Other Engineering FieldsOther 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…

Page 5: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 5COP-4009: Component-Based Software Engineering

Some ExcusesSome 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…

Page 6: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 6COP-4009: Component-Based Software Engineering

CBSE MethodologyCBSE 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

Page 7: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 7COP-4009: Component-Based Software Engineering

AgendaAgenda

Component Based Software Engineering

Definitions

Component Infrastructure

Component Model

Tasks and Responsibilities

Page 8: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 8COP-4009: Component-Based Software Engineering

Software ComponentSoftware 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

Page 9: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 9COP-4009: Component-Based Software Engineering

Component ModelComponent Model

A Component Model defines specific interaction and composition standards.

An interaction standard is the mandatory requirements employed and enforced to enable software elements to directly and indirectly interact with other software elements.

Component

interface

SoftwareEntity

supply

manage

consume

Page 10: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 10COP-4009: Component-Based Software Engineering

comp

Interaction StandardInteraction Standard

Based on the concept of an interface– “An abstraction of the behavior of a component”

Provided interface– component implements the interface

Required interface– component interactions with other

software elements are captured

Context Dependency

in

out

Page 11: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 11COP-4009: Component-Based Software Engineering

Composition StandardComposition Standard

Composition– the combination of two or more software

components yielding a new component behavior

Defines several important concepts– Packaging Installing Instantiating– Deploying Configuring

Page 12: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 12COP-4009: Component-Based Software Engineering

CMICMI

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

Page 13: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 13COP-4009: Component-Based Software Engineering

AgendaAgenda

Component Based Software Engineering

Definitions

Component Infrastructure

Component Model

Tasks and Responsibilities

Page 14: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 14COP-4009: Component-Based Software Engineering

Big PictureBig Picture

Decompose problem into projects and subprojects

Design logical component infrastructure

Problem to be

Solved

Problem to be

Solved

• Select suitable component model

• Provided by vendor; or, if a proprietary component model, must be implemented.

Legend

Subproject

Project

PerformanceRequirements

Evaluate Success of Software System

Evaluate Success of Software System

Master SoftwareDevelopment Plan

Page 15: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 15COP-4009: Component-Based Software Engineering

Increasingly detailed refinement of design leads to an implemented component infrastructure

Evaluate Success of Software System

Evaluate Success of Software System

Analyze component infrastructure from multiple viewpoints

Legend

Interaction

Component

Logical ComponentInfrastructure

Component Model Implementation

Component Infrastructure

Page 16: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 16COP-4009: Component-Based Software Engineering

Component InfrastructureComponent 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

Page 17: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 17COP-4009: Component-Based Software Engineering

Designing a Component InfrastructureDesigning a Component Infrastructure

The Component Infrastructure is layered

Layering is a strategy for decomposing complex structures

Page 18: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 18COP-4009: Component-Based Software Engineering

Four LayersFour Layers

User

Workflow and Process Control

Business Services

Data and Operating System Services

Page 19: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 19COP-4009: Component-Based Software Engineering

UserUser

User components provide the external interface– graphical user interfaces (GUI), Web-based, or batch-

oriented

Understand user interactions

Request services from other components in response to commands issued by the user

Page 20: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 20COP-4009: Component-Based Software Engineering

Workflow and Process ControlWorkflow and Process Control

Workflow and process control components manage complex, automated business processes that interact with (potentially) many business services

Page 21: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 21COP-4009: Component-Based Software Engineering

Business ServicesBusiness 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

Page 22: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 22COP-4009: Component-Based Software Engineering

Design Layers and DesignersDesign Layers and Designers

User

Business Services &Legacy Wrapping

Data/Operating System Services

Workflow and ProcessControl

Solution

Component Designers

Business

Component Designers

Data/Infrastructure

Component Designers

Supply

Consume

Supply Consume

Page 23: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 23COP-4009: Component-Based Software Engineering

AgendaAgenda

Component Based Software Engineering

Definitions

Component Infrastructure

Component Model

Tasks and Responsibilities

Page 24: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 24COP-4009: Component-Based Software Engineering

Component ModelComponent Model

Interfaces

Naming

Meta data

Composition

Customization

Interoperability

Evolution Support

Packaging & Deployment

Specification of component behavior and properties

Definition of Interface Description Language (IDL)

Page 25: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 25COP-4009: Component-Based Software Engineering

Component ModelComponent Model

Interfaces Naming

Meta data

Composition

Customization

Interoperability

Evolution Support

Packaging & Deployment

Global unique names for interfaces and components

Interface YComponent X

Page 26: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 26COP-4009: Component-Based Software Engineering

Component ModelComponent 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 YComponent X

X Meta dataY Meta data

Page 27: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 27COP-4009: Component-Based Software Engineering

Component ModelComponent 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

Interface YComponent X

Component Z???

Page 28: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 28COP-4009: Component-Based Software Engineering

Component ModelComponent Model

Interfaces

Naming

Meta data

Composition Customization

Interoperability

Evolution Support

Packaging & Deployment

Interfaces for customizing components

User-friendly customization tools will use these interfaces

Interface YComponent X

CustomizationAPI

Interface YComponent X’

Page 29: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 29COP-4009: Component-Based Software Engineering

Component ModelComponent 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

Component XVB Impl.

Component ZJava Impl.

???

Page 30: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 30COP-4009: Component-Based Software Engineering

Component ModelComponent Model

Interfaces

Naming

Meta data

Composition

Customization

Interoperability Evolution Support

Packaging & Deployment

Rules and services for replacing components or interfaces by newer versions

Interface YComponent X

X Meta dataVersion 1

Version 1.1

Y Meta dataVersion 1.0

Version 2.0

Page 31: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 31COP-4009: Component-Based Software Engineering

Component ModelComponent Model

Interfaces

Naming

Meta data

Composition

Customization

Interoperability

Evolution Support Packaging &

Deployment

Packaging implementation and resources needed for installing and configuring a component

Interface YComponent X

X Meta dataY Meta data

Page 32: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 32COP-4009: Component-Based Software Engineering

AgendaAgenda

Component Based Software Engineering

Definitions

Component Infrastructure

Component Model

Tasks and Responsibilities

Page 33: Introduction to CBSE: Definitions, Concepts, and Principles

Fourth Lecture on September 26, 2005 33COP-4009: Component-Based Software Engineering

Tasks and ResponsibilitiesTasks and Responsibilities

Component Factory– Three primary groups (AD, CD, CMID)

Tasks and Responsibilities

ApplicationDevelopment

Provides CD with component requests and designsProvides CMID with requirements for infrastructure services

ComponentDevelopment

Builds components to specification and provides to ADProvides feedback on CMI and its services

Component Model ImplementationDevelopment

Provides AD with a component model implementation that satisfies application criteria

Provides CD with suitable tools and an environment for component development

Tasks and Responsibilities

ApplicationDevelopment

Provides CD with component requests and designsProvides CMID with requirements for infrastructure services

ComponentDevelopment

Builds components to specification and provides to ADProvides feedback on CMI and its services

Component Model ImplementationDevelopment

Provides AD with a component model implementation that satisfies application criteria

Provides CD with suitable tools and an environment for component development