Top Banner
Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University email: [email protected] URL: http://www.engr.sjsu.edu/gaojerry Sept., 2001
23

Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University email: [email protected] URL: .

Dec 23, 2015

Download

Documents

Franklin Hodge
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University email: jerrygao@email.sjsu.edu URL: .

Component-Based Software Engineering (CBSE)

Speaker: Jerry Gao Ph.D.

San Jose State Universityemail: [email protected]

URL: http://www.engr.sjsu.edu/gaojerry

Sept., 2001

Page 2: Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University email: jerrygao@email.sjsu.edu URL: .

Topic: Component-Based Software Engineering

- Introduction to Component-Based Software Engineering - The CBSE Process

- Design Principles for CBSE

- Classification and Retrieving Software Components

- Component Technologies- CORBA- COM+- Enterprise JavaBeans

- Management of CBSE

Jerry Gao Ph.D. 9/2001

Presentation Outline

All Rights Reserved

Page 3: Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University email: jerrygao@email.sjsu.edu URL: .

Topic: Component-Based Software Engineering

During system analysis, we ask the following questions relating to software components:

- Are commercial off-the-shelf (COTS) components available to implement the requirements?- Are internally developed reusable components available to implement the requirements?- Are the interfaces for available components compatible in the targeted system architecture?

Component adaptation:

Component composition:

Component update:

Jerry Gao Ph.D. 9/2001

Engineering of Component-Based Systems

All Rights Reserved

Page 4: Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University email: jerrygao@email.sjsu.edu URL: .

Topic: Component-Based Software Engineering

What is Component-Based Software Engineering?

Component-Based Software Engineering is a process that emphasizes the design and construction of computer-based systems using reusable software “components”. CBSE is changing the way large software systems are developed. CSBE shifts the emphasis from programming software to composing software systems based on reusable components.

In CBSE, reusable component construction and component integration for software system are the major focus.

Why Component-Based Software Engineering ?

People believes that constructing software systems based on reusable high quality components is a cost-effective approach --> short development time, cost-reduction projects, high quality products.

Jerry Gao Ph.D. 9/2001

Introduction To Component-Based Software Engineering

All Rights Reserved

Page 5: Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University email: jerrygao@email.sjsu.edu URL: .

Topic: Component-Based Software Engineering

Who are involved in Component-Based Software Engineering?- System analyst- Software engineers

- Component software developers - Application software integration engineers- Test engineers and QA

- Project and product managers

The major concerns of CBSE and software engineering:

- Developing software from pre-produced parts

- The ability to reuse those parts in other applications

- Easily maintaining and customizing those parts to produce new functions and features

Jerry Gao Ph.D. 9/2001

Introduction To Component-Based Software Engineering

All Rights Reserved

Page 6: Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University email: jerrygao@email.sjsu.edu URL: .

Topic: Component-Based Software Engineering

- Lack of reusability due to:- Developed based the specific requirements- Use an ad hoc mechanisms to add reusability

- Lack of standardized component interfaces between components- Component interfaces are designed for a specific project- No consistent mechanism for supporting component interactions

- Lack of component interoperability- Lack consistent data exchange mechanism between components- Lack consistent interaction mechanism between components

- Lack of customization- Lack of support of customization of component features and interfaces.- Poor component user interface support

- Lack of development environment to support

-No language, and develop tools, and service facilities for component development

Jerry Gao Ph.D. 9/2001

Engineering of Software Components- Issues of Traditional Software Modules

All Rights Reserved

Page 7: Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University email: jerrygao@email.sjsu.edu URL: .

Topic: Component-Based Software Engineering

- Component interface specification based on IDL (interface description language)

- Consistent component naming

- Meta data about component information, such as interfaces, relationships.

- Interoperability - communication and data exchange among various components

- Customization - interfaces for customizing components.

- Composition - interfaces and rules for building assembled components based on given components

- Evolution Support - rules and services for replacing components or upgrades

- Packaging and deployment - packaging resources and deployment support

Jerry Gao Ph.D. 9/2001

Engineering of Software Components- Basic Elements of a Component Model

All Rights Reserved

Page 8: Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University email: jerrygao@email.sjsu.edu URL: .

Topic: Component-Based Software Engineering

Different descriptions of software components:

- Component: a nontrivial, nearly independent, and replaceable part of a system that fulfills a clear function in the context of a well-defined architecture.

- Run-time software component:a dynamic bindable package of one or more programs managed as a unit and accessed through documented interfaces that can be discovered in run time.

- System component a unit of composition with contractually specified and explicit context dependencies only.

- Business component:the software implementation of an “autonomous” business concept or business process.

Jerry Gao Ph.D. 9/2001

Engineering of Software Components

All Rights Reserved

Page 9: Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University email: jerrygao@email.sjsu.edu URL: .

Topic: Component-Based Software Engineering

In addition to COTS components, the CBSE process yields:

- Qualified components:- assessed by software engineers to ensure that not only functionality, but performance, reliability, usability, and other quality factors conform to the requirements of the target system.

- Adapted components:- adapted to modify unwanted or undesirable features

- Assembled components:- integrated into an architectural style and interconnected with an appropriate infrastructure

- Updated components:- replacing existing software by new versions of software components

Jerry Gao Ph.D. 9/2001

Engineering of Component-Based Systems

All Rights Reserved

Page 10: Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University email: jerrygao@email.sjsu.edu URL: .

Jerry Gao Ph.D. 9/2001

Domain Engineering

Topic: Component-Based Software Engineering

DomainAnalysis

SoftwareArchitectureDevelopment

StructuralModel

DomainModel

ReusableComponent

DevelopmentRepositoryReusableArtifacts/

Components

Page 11: Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University email: jerrygao@email.sjsu.edu URL: .

Jerry Gao Ph.D. 9/2001

Component-Based Development Process

Topic: Component-Based Software Engineering

AnalysisArchitectural

Design

Component Qualification

ComponentAdaptation

ComponentComposition

ComponentEngineering

Testing

ComponentUpdate

Application Software

Page 12: Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University email: jerrygao@email.sjsu.edu URL: .

Topic: Component-Based Software Engineering

Component qualification:

--> ensure that a candidate component will - perform the required functions- fit into the architectural style for the system- exhibit the quality characteristics (such as performance, …)

During component qualification, many factors should be considered:

- application programming interface (API)- the required development and integration tools or package- run-time requirements, such as storage, speed, network protocol- service requirements, such as OS, programming language,..- security features, including access control, ...- embedded design assumptions- exceptional handling

Jerry Gao Ph.D. 9/2001

Engineering of Component-Based Systems

All Rights Reserved

Page 13: Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University email: jerrygao@email.sjsu.edu URL: .

Topic: Component-Based Software Engineering

Component adaptation:

--> ensure that a candidate component will - perform the required functions- fit into the architectural style for the system- exhibit the quality characteristics (such as performance, …)

During component qualification, many factors should be considered:

- application programming interface (API)- the required development and integration tools or package- run-time requirements, such as storage, speed, network protocol- service requirements, such as OS, programming language,..- security features, including access control, ...- embedded design assumptions- exceptional handling

Jerry Gao Ph.D. 9/2001

Engineering of Component-Based Systems

All Rights Reserved

Page 14: Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University email: jerrygao@email.sjsu.edu URL: .

Topic: Component-Based Software Engineering

Component composition:

--> assembles qualified, adapted, and engineered components to forman application system based on a well-defined architecture.

Major task: --> establish an infrastructure to bind the components into an operational system.

The infrastructure provides a model for the coordination of components and their interaction protocols, and specific common services

There are four mechanisms for creating an effective infrastructure:- Data exchange model- Automation- Structured storage- Underlying object model

Jerry Gao Ph.D. 9/2001

Engineering of Component-Based Systems

All Rights Reserved

Page 15: Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University email: jerrygao@email.sjsu.edu URL: .

Jerry Gao Ph.D. 9/2001

Topic: Component-Based Software Engineering

Engineering of Component-Based Systems- Component Composition

Component i Component j

Data exchange model provides mechanisms to support:- human-to-software data transfer- component-to-component data transfer

Component -to-componentdata transfer

Human-to-software interactions e.g. drag and drop, cut and paste

Page 16: Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University email: jerrygao@email.sjsu.edu URL: .

Jerry Gao Ph.D. 9/2001

Topic: Component-Based Software Engineering

Engineering of Component-Based Systems- Component Composition

Component i

Automation facilities and tools support:-interactions between components- installation, configuration for deployment- instantiation, run, and testing- management and service

Component execution and management environment

Automation facility

Automation facility

Page 17: Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University email: jerrygao@email.sjsu.edu URL: .

Jerry Gao Ph.D. 9/2001

Topic: Component-Based Software Engineering

Engineering of Component-Based Systems- Component Composition

Component i

Structured storage model provides mechanisms to support heterogeneousdata and resources of software components in a single structure:

- various data resources, voice/video, text, data- various documents of components- creation, navigation, edition of component content

documents

data

text

Componentrepository

Page 18: Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University email: jerrygao@email.sjsu.edu URL: .

Jerry Gao Ph.D. 9/2001

Topic: Component-Based Software Engineering

Engineering of Component-Based Systems- Component Composition

Underlying object model provides mechanisms to supportcomponent-to-component interactions over a network to achieve:

- platform and language independent supporting component communications- regulate component interaction protocols- standardized component interoperability

networkComponent Component

Page 19: Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University email: jerrygao@email.sjsu.edu URL: .

Topic: Component-Based Software Engineering

Myth #1: It’s important to know what COTS components can do for you.

Realty: It’s important to know what COTS components can do to you..Myth #2: COTS-based systems can be designed “top-down”.

Realty: COTS-based systems are built “bottom-up”.

Myth #3: An “Open System” architecture solves the COTS component interoperability problem.

Reality: There is no standard definition for “open system”, and “plug-in-and-play” doesn’t always work.

Jerry Gao Ph.D. 9/2001

COTS Myths and Others- Myths on infrastructure issues:

All Rights Reserved

Page 20: Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University email: jerrygao@email.sjsu.edu URL: .

Topic: Component-Based Software Engineering

Myth #4: You don’t need to test COTS components.

Reality: You need to test COTS components more thoroughly because you don’t understand how they were built.

Myth #5: COTS product selections are often based on extensive evaluation and analysis..

Realty: COTS product selections are often based on slick demos, web search, or reading trade journals.

Myth #6: COTS components come with adequate documentation.

Realty: Features sell COTS components, not documentation.

Myth #7: You can configure a COTS-based system to meet your requirements.

Realty: You can configure your process to meet the COTS component’s capabilities.

Jerry Gao Ph.D. 9/2001

COTS Myths and Others- Myths on infrastructure issues:

All Rights Reserved

Page 21: Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University email: jerrygao@email.sjsu.edu URL: .

Topic: Component-Based Software Engineering

Myth 8: The processes COTS products utilize reflect our industry’s best practice.

Reality: The processes COTS products utilize often only reflect the market schedule and domain experience of the producer.

Myth 9: You buy COTS component.

Realty: You buy the right to use a version of a COTS component.

Myth 10: Vendors will fix problems in the current release of the software component.

Realty: Vendors may fix problems in the next version of the product.

Myth 11: If you are a large enough customer you can influence COTS component supplier.

Realty: The market influences COTS component supplier.

Jerry Gao Ph.D. 9/2001

COTS Myths and Others- Managerial Issues:

All Rights Reserved

Page 22: Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University email: jerrygao@email.sjsu.edu URL: .

Topic: Component-Based Software Engineering

A reusable software component can be described in many ways. An ideal description encompasses: (3C model)

(a) concept (b) content (c ) context

Three classification schemes: - enumerated classification- faceted classification- attribute-value classification

Jerry Gao Ph.D. 9/2001 All Rights Reserved

Classifying and Retrieving Components

Description of what the component does

Concept

Content

ContextDescription of howthe concept is realized

Description of its domain application

Page 23: Component-Based Software Engineering (CBSE) Speaker: Jerry Gao Ph.D. San Jose State University email: jerrygao@email.sjsu.edu URL: .

Topic: Component-Based Software Engineering

Jerry Gao Ph.D. 9/2001

Classifying and Retrieving Components

All Rights Reserved

Indexingvocabularies

UncontrolledControlled

Classed Keyword Terms extractedfrom text

Terms not extracted from text

Enumerated

Faceted

Descriptors

Subject headings

With syntax

Without syntax

There are three types of component classification methods: -- library and information science methods

-- artificial intelligence methods-- hypertext systems