Facilitating Reuse of Software Components using Repository Technology - PowerPoint PPT Presentation

1 / 20
About This Presentation
Title:

Facilitating Reuse of Software Components using Repository Technology

Description:

... is integrated in the tree style component-browsing repository, and ... Each tab represents a bean. Displays interface names, JNDI, and method signatures ... – PowerPoint PPT presentation

Number of Views:41
Avg rating:3.0/5.0
Slides: 21
Provided by: mat171
Category:

less

Transcript and Presenter's Notes

Title: Facilitating Reuse of Software Components using Repository Technology


1
Facilitating Reuse of Software Components using
Repository Technology
  • J. Lee, J. Kim, and G.S. Shin
  • Electronics Telecommunications Research
    Institute
  • Tenth Asia-Pacific SE Conference (APS03EC)
  • Presentation by Matthew Choi

2
Summary
  • Component-Based Development provides many
    benefits through its component reuse
  • Savings in development effort and time
  • Increase in modifiability and maintainability
  • Component repository is required to facilitate
    storing and maintaining reusable software
    components efficiently
  • Functional requirements need to be considered for
    an effective component reuse
  • Description and implementation of the component
    repository for an EJB component (CRECOR)

3
Background
  • What is a software component?
  • Unit of software that has business logic, and
    interfaces to interact with others
  • Highly cohesive units provide low coupling when
    integrated
  • Component Based Development
  • Approach in which software systems are developed
    by assembling preexisting components under
    well-defined architecture or framework
  • Notable benefits include reusability, easy
    maintainability, and faster time-to-market

4
Implementation of Services in CBD
  • Basic steps involved in implementing a range of
    services in component-based software
  • Identify a set of compatible components from
    existing components
  • Components that do not operate correctly together
    should be modified according to dependencies b/w
    other components
  • Modified components are tested to check for
    functionality and correctness of the changes

5
Challenges with CBD
  • Difficulty in identifying and locating reusable
    components
  • What components to reuse, and where to find them
  • Poor quality of component documentation and
    specification
  • How should the components be used?
  • Are there dependencies with other components?
  • Difficulty in governance and management of
    components inventory
  • Especially as the number of components grow and
    the complexity of components become greater

6
Solution Component Repository
  • Allows convenient access to reusable components
  • Provides reuse functionalities
  • Selection
  • Analysis
  • Adaptation
  • Test
  • Deployment
  • Components should be collectively stored and
    maintained for future reuse
  • To be implemented and integrated with COBALT
    (Component-based application development tool)

7
Requirements of Reuse Software Component
Repository
  • For reuse functionality, requirements include
  • Storing and browsing of components
  • Ease of access and availability of components
  • Detailed documentation with specifications
  • Well-defined interfaces and connectors
  • Relationships and dependencies with other
    components
  • Additional supports needed in reuse process
  • Organizational requirements
  • Provide categorizations of components
  • Components to be newly generated
  • Components to be modified

8
Reuse Process with CBD
  • 2 main activities involving component reuse
  • For component reuse
  • Composed of purchase, development, and store
    tasks
  • With component reuse
  • Composed of search, selection, analysis,
    adaptation, assemble, deployment, and test tasks
  • Use specification to determine reusable scope of
    the component
  • Can be further divided into
  • With component reuse
  • With component reuse to be adapted

9
Reuse Process (Illustration)
LEFT With-component reuse CENTER With-compone
nt reuse to be adapted RIGHT For-component reuse
  • Figure 1 Component-based development process

10
Example Component Repository for Facilitating EJB
Component Reuse
  • EJB component (physically packaged JAR file)
  • Class files (interfaces and beans)
  • Deployment descriptors
  • Information such as JNDI and class names, methods
    signatures of interfaces, referencing resources,
    etc.
  • Manifest file
  • Component Repository for facilitating EJB
    Component Reuse (CRECOR)
  • Provides functions - component browse, selection,
    analysis, adaptation, deployment, and test
  • Its GUI provides easy-to-use interface

11
COBALT (CB app. development tool)
  • Available functions
  • A For-component reuse
  • ADD
  • B With-component reuse
  • VIEW
  • TEST
  • ADAPT
  • DEPLOY
  • Figure 2 The stitched box represents CRECOR

12
Implementation of CRECOR
  • Functions in CRECOR
  • For-component reuse
  • ADD
  • With-component reuse
  • VIEW, TEST, ADAPT, and DEPLOY
  • The individual function is integrated in the tree
    style component-browsing repository, and is
    operated with its own user interface
  • The with-component reuse functions are
    implemented and produced in component viewer,
    analyzer, adapter, deplorer, and tester

13
CRECOR - Component Analyzer
  • Analyzes component information, and shows
    component structure and its interface methods
  • Used to determine the reusable part and scope of
    the selected components
  • Each tab represents a bean
  • Displays interface names, JNDI, and method
    signatures
  • Figure 3 Analyze component information

14
CRECOR - Component Adapter
  • Supports component modification for mismatched
    interfaces
  • Unmatched interface method is adapted in
    following viewpoints return type, parameter
    type, parameter order, and method name
  • Also allow addition of new attributes or
    interfaces
  • Figure 3 Add new attributed activated view

15
CRECOR - Component Deplorer
  • Supports component packaging and deployment
  • Input values are used for component packaging,
    deployment descriptor writing, and deploying in
    various J2EE-based application servers
  • Figure 4 J2EE-based component deplorer

16
CRECOR - Component Tester
  • Supports testing interface methods for determined
    reusable parts of a specific component without
    manual coding
  • Available for automatic client program generating
    and interface method self-testing with parameter
    values provided at runtime
  • Figure 5 Automatically generates web-based
    client program

17
Architecture Diagram Editor
  • Provides visualization of component architecture
  • Use drag-and-drop to show interconnection of
    reusable components involved
  • Figure 6 Visual representation of the CB
    architecture

18
Conclusion
  • CRECOR is designed and implemented to support
    process for component reuse
  • Provides reuse facilities that are almost
    necessary for CBD
  • Provides useful functionalities to facilitate a
    successful CBD such as specification viewing,
    component adaptation for compatibility, etc.
  • Overall savings in development time, effort, and
    costs

19
Critique
  • Strengths
  • General idea and concept of utilizing repository
    technology with CBD was very interesting
  • The description of the tools used for the
    discussion (COBALT CRECOR) were well organized
    and illustrated
  • Weaknesses
  • Limitations of these tools were not discussed
  • Found grammatical errors, and some sentences were
    not easily comprehensible (attributed to ESL)

20
Discussion Topics
  • The tools described in the paper seems to only
    focus on storing and managing the actual
    components. How else can these types of tools be
    leveraged to improve CBD using this repository
    concept? For example, what other types of
    artifacts should be in the repository? Or what
    other features of the repository might be useful?
  • These tools do not seem to address potential
    security and administrative restriction issues.
    Are these necessary? If so, how should it be
    administered?
  • Have any of you had exposure to CBD component
    repository? What are some of the recent
    repository systems available today?
Write a Comment
User Comments (0)
About PowerShow.com