Software Component Technology and Component Tracing CSC532 Presentation Developed & Presented by...

Preview:

Citation preview

Software Component Technology and

Component Tracing

CSC532 PresentationDeveloped & Presented by

Feifei Xu

Introduction

• The software industry is facing both economical and technical challenges.

• As the rapid increase of software programs in the size and complexity, it is very important to reduce high software cost and complexity while increasing reliability and modifiability.

• Software component technology attracts more people in the software engineering community because it can reduce developmental costs and realize the improvement of the entire system’s reliability.

What is the software component?

• A software component is a unit of composition with a contractually specified interface and explicit context dependences only.

• A software component can be deployed independently and is subject to composition by third parties.

Component-based development technology is based on building complex software systems from reusable simpler components.

Drivers for component-based development• Requirement changes

• Software grow larger and more complex

• Fast cycle time for the market reasons

• Development of the www and internet

• Rapid pace of technological change

• Economic necessity of reuse

Two major elements of Component-based development

• The component architecture

• Component-based development process

Main elements of component architecture

• Component framework

• Component

• Component contracts

• Coordination service

• Glue code

Component-based development process

• Requirement gathering

• Analysis

• Design

• Implementation

• Testing

• Component brokerage

Component-based development process puts the reuse of components on the center of entire development process

Component Technology – Industry Initiatives

• Microsoft’s COM

• OMG’s CORBA

• SUN’s Java Beans

• SUN’s Enterprise Java Beans

Monitoring Software Components

When more and more third-party software components are available in the market,software workshops begin to develop component-based programs by using the component engineering. Many people emphasize the issues in building component-based programs, very few people address the challenges in maintenance and testing problems of software components

Issues in testing and maintenance of component-based software

• Hard to understand component behaviors in a system

• Difficulty on component error isolation, tracking and debugging

• High costs on performance testing and tuning for components

• Lack in system resource validation for components

Two major challenges in developing component-based software

• Design software components with consistent mechanisms and interfaces to support the tracking and monitoring of component behaviors, functions, performance, and resources.

• Develop a systematic method and environment to monitor and analyze component behaviors and system performance

What does “tracking” mean?

• According to IEEE standard: “tracking” refers to the process of following a moving object or a variable input quantity, using a servomechanism.

• A trace routine refers to a program routine that provides a historical record of specified events in the execution of a program

Traceability of a component

• Behavior traceability --- It is the degree to which a component facilitates the tracking of its internal and external behaviors.

· track internal behaviors of components

· track external behaviors of components• Trace controllability --- It refers to the extent of

the control capability in a component to facilitate the customization of its tracking function.

Five types of component traces:

• Operational trace

• Performance trace

• State trace

• Event trace

• Error trace

State Trace

Performance TraceEvent Trace

Error TraceOperational Trace

Operational trace:· Internal operation trace· external operation trace

It records the interactions of component operations, such as function invocation.

Performance trace

It records the performance data and benchmarks for each function of a component in a given platform and environment

State trace

It tracks the object states or data or data states in a component.

In component black box testing it is very useful for testers to track the public visible objects of components

Event trace It records the events and sequences

occurred in a component.

Error trace

It records the error messages

generated by a component.

Three different systematic tracking mechanisms

• Framework-based tracking

• Automatic code insertion

• Automatic component wrapping

Frame-based tracking

A well-defined tracking framework is provided for component engineers to add program tracking code according to the provided programming reference manual

Automatic Code Insertion

We can insert tracking code into component source code to track the values of its input data and output data

Automatic Component Wrapping

We adds tracking code to monitor the external interface and behaviors of components by wrapping them as black boxes.

Conclusion

• Component-based technology is trend• High quality of component is most important• Tracing technology of the software • How to provide well-defined tracking framework

effective tracking mechanisms with minimum

programming

Thank You

October. 2003

Recommended