Software Component Technology and Component Tracing CSC 532

  • Slides: 28
Download presentation
Software Component Technology and Component Tracing CSC 532 Presentation Developed & Presented by Feifei

Software Component Technology and Component Tracing CSC 532 Presentation Developed & Presented by Feifei Xu

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

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

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.

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

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 Componentbased development • The component architecture • Component-based development process

Two major elements of Componentbased development • The component architecture • Component-based development process

Main elements of component architecture • • • Component framework Component contracts Coordination service

Main elements of component architecture • • • Component framework Component contracts Coordination service Glue code

Component-based development process • • • Requirement gathering Analysis Design Implementation Testing Component brokerage

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

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

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

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

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

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

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

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

Five types of component traces: • • • Operational trace Performance trace State trace Event trace Error trace

Operational Trace Error Trace Event Trace Performance Trace State Trace

Operational Trace Error Trace Event Trace Performance Trace State Trace

Operational trace: · Internal operation trace · external operation trace It records the interactions

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

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 states in a component. In

State trace It tracks the object states 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

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

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

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

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

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

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

Thank You October. 2003