Component-Based Software Engineering

31

description

Component-Based Software Engineering. Aaron J Miller Software Engineering UW-Platteville [email protected]. Overview. 1. Introduction 2. Development Life-Cycle 3. Current Component Technologies 4. Component Quality Assurance 5. Advantages and Disadvantages. Introduction. - PowerPoint PPT Presentation

Transcript of Component-Based Software Engineering

Page 1: Component-Based Software Engineering
Page 2: Component-Based Software Engineering

1. Introduction 2. Development Life-Cycle 3. Current Component Technologies 4. Component Quality Assurance 5. Advantages and Disadvantages

Page 3: Component-Based Software Engineering

What is component based software engineering (CBSE)?› Components› Component Model› Component Framework

Page 4: Component-Based Software Engineering
Page 5: Component-Based Software Engineering

An abstract implementation of functionality that conforms to a component model.

Small systems for small pieces of functionality.

Designed by third party developers.

Page 6: Component-Based Software Engineering

Specify rules that must be obeyed by the components

Standardized Assumptions› Control Flow› Synchronization

Needed to remove sources of interface mismatches.

Page 7: Component-Based Software Engineering

Software services to support and enforce a component model.

Usually designed by the developer using the component model.

Can be viewed as a mini operating system

Page 8: Component-Based Software Engineering
Page 9: Component-Based Software Engineering
Page 10: Component-Based Software Engineering

1. Requirements Analysis 2. Software Architecture Selection 3. Component Identification and

Customization 4. System Integration 5. System Testing 6. Software Maintenance

Page 11: Component-Based Software Engineering

Determine what functionality is required by client.

Look at requirements with possible components in mind.

Page 12: Component-Based Software Engineering

Choosing a component model to be used in your solution.

Determines what components will be available to you.

Different software architectures can be more appropriate than others based on the application.

Page 13: Component-Based Software Engineering

Most important phase of CBSE Two main parts of this phase

› 1. Evaluation of each component canidate› 2. Customization of the chosen

components Need to look at included functionality

and customization options of each component.

Page 14: Component-Based Software Engineering

Bring all the chosen components together

Components are built on top of chosen architecture framework.

Other Tasks› Testing› Change and Reintegration

Page 15: Component-Based Software Engineering

Tests are needed for each individual component

Tests for the system framework Testing of the components is limited Less testing required for software

components

Page 16: Component-Based Software Engineering

Correcting faults, improving system performance, and adapting the system.

Most controllable maintenance is done on the component architecture/framework

Maintenance of components handled primarily by developer of the component.

Page 17: Component-Based Software Engineering

Visual Basic Controls (VBX) ActiveX controls Class Libraries JavaBeans CORBA COM

Page 18: Component-Based Software Engineering

Common object request broker architecture

Allows for communication between applications developed separately.

A server object call ORB controls things.

ORB locates the objects that clients call to use.

Page 19: Component-Based Software Engineering

Model consists of two parts› The clients side component development› Server side component development

Uses portable Java bytecodes and java applets trust security.

Offers a portable, secure, and reliable environment for developing robust components.

Page 20: Component-Based Software Engineering

Component object model Defines how clients and components

will interact Provides a binary standard that

components and clients must follow. Extension of COM known as DCOM or

distributed COM.

Page 21: Component-Based Software Engineering
Page 22: Component-Based Software Engineering

Quality Characteristics of Components› Size› Complexity› Reuse Frequency› Reliability

Page 23: Component-Based Software Engineering

Components cannot be too large

Large components are costly and may not be cost effective until used multiple times.

Page 24: Component-Based Software Engineering

Makes the components difficult to use.

Overly simple components may not be beneficial for reuse.

Quality is more difficult to ensure with a complex system.

Page 25: Component-Based Software Engineering

The number of times that a component is used is a very valuable indicator of how useful a component is.

Offer financial saving, which can allow resources to be used elsewhere to improve quality.

Page 26: Component-Based Software Engineering

Probability of failure free operations.

Failing components can be easily replaced.

Page 27: Component-Based Software Engineering

How to certify quality of a component?

How to certify quality of software systems based on components?

Page 28: Component-Based Software Engineering

Independent extensions Component Market Component models lessen

unanticipated interactions between components

Reduced time to market Reduced Costs

Page 29: Component-Based Software Engineering

Time to develop software components takes a big effort.

Components can be pricey. Requirements in component

technologies lacking Conflict between usability and

reusability of components. Maintenance cost for components

increased.

Page 30: Component-Based Software Engineering

Component-Based Development Components Look at the quality of the components Independent Extensions Reduced Time-to-Market Conflict between reusability and

usability

Page 31: Component-Based Software Engineering