ARCHITECTURE SUPPORT
FOR COMPONENT REUSE
Chand Anand : 2K11/SE/020
Rishabh Harit : 2K11/SE/060
Swati Kandhari : 2K11/SE/079
Hyderabad
Bangalore
Gurgaon
INDEX
• What is Software Reuse?
• Types of Software Reuse
• Importance of Software Reuse
• Types of Architecture to support Software Reuse
• Product – Line Architecture
• COTS Architecture
• In most engineering disciplines, systems are designed by
composition (building system out of components that have
been used in other systems).
• Software engineering has focused on custom development
of components.
• To achieve better software quality, more quickly, at lower
costs, software engineers are beginning to adopt systematic
reuse as a design process
• Application System Reuse
• reusing an entire application by incorporation of one
application inside another (COTS reuse)
• development of application families (e.g. MS Office)
• Component Reuse
• components (e.g. subsystems or single objects) of one
application reused in another application.
• Function Reuse
• reusing software components that implement a single
well-defined function.
• Increased Reliability
• components already exercised in working systems
• Reduced Process Risk
• less uncertainty in development costs
• Effective Use of Specialists
• reuse components instead of people
• Standards Compliance
• embed standards in reusable components
• Accelerated Development
• avoid custom development and speed up delivery
• Product – Line : It identifies an abstract set of requirements
that cover all applications you want to build in the domain;
provides software engineering methods for creating a
collection of similar components from a shared set of
software assets using a common means of production.
• The products can be managed as a group, planning the whole
set consistently, allocating funding and developers to several
of the products at the same time and advertising the
products as a set, highlighting their common and varying
features.
• Product-line CBSE delivers the promise of large-scale
software reuse by promoting the use of software
components built by commercial vendors or in-house
developers.
• While examining different applications in the same product-
line or problem domain, comparison among applications is
done on the basis of their features.
• A feature is a product characteristic that users and customers
view as important in describing and distinguishing members
of the product-line. A feature can be:
• a specific requirement
• a selection among optional or alternative
requirements
• A product-line can be built around the set of reusable
components by analysing the products to determine the
common and variable features using a technique called
domain analysis.
• Domain analysis is a technique to systematically extract
features from existing or planned members of a product-line.
• This is followed by development of a product structure and
implementation strategy around a set of reusable
components that can be composed to implement several
different products.
• Reduce significantly the cost and time-to-market of
enterprise software systems by allowing the systems to be
built by assembling reusable components rather than from
scratch.
• Enhance the reliability of enterprise software systems
because each reusable component has gone through several
review and inspection stages in the course of its original
development and previous use; and because CBSE relies on
explicitly defined architecture and interfaces.
• Improve the maintainability of enterprise software systems
by allowing new (higher) quality components to replace old
ones.
• Enhance the quality of enterprise software systems by
allowing application-domain experts to develop components,
and software engineers specialized in component-based
software development to assemble the components and
build enterprise software systems.
• IBM SanFrancisco project which delivers application
frameworks and Java Bean components is based on Product –
Line Architecture.
• One way of approaching the issue of reuse is to develop
systems by a Component-Based Software Engineering, CBSE,
paradigm: assembling software systems from components.
• COTS : Reusing components made for earlier products as an
approach to new system development is a promising way of
achieving the instantaneous development and system
improvements. The possibility to buy software components
from component vendors, so called Commercial-Off-The-
Shelf, COTS, components.
A middleware is a layer of software that separates application
software from system software and other types of run-time
environment specific software. The two most known
middleware solutions and de-facto standards are:
• Object Management Group’s (OMG) Common Object
Request Broker Architecture (CORBA).
• Microsoft’s Component Object Model (COM).
• Using COTS Components can save valuable development
time, but insight in the COTS component functionality and
properties must be evaluated for its intended use.
• In order to integrate a COTS component in a system, the
developers must consider relevant properties of the
component like operational limitations, temporal behavior,
preconditions, robustness and many forms of underlying
assumptions on the intended environment.
• To determine its properties, extensive testing of the
component may be necessary.
• Functionality is instantly accessible to the developer.
• Components may be less costly than those developed in-
house.
• The component vendor may be an expert in the particular
area of the component functionality.
• Industrial competition for delivering more reliable systems in shorter
time frames.
• A demand for larger and more complex software solutions, which often
can not be effectively implemented in a timely manner by a single
software development organization.
• Increase in availability of reusable COTS components.
• Increased degree of standard compliance among COTS software
products that enables reduction of product integration time.
• Increasing research in better software component “packaging”
techniques and approaches.
• Increasing recognition that software reuse is one of the most important
means to achieve better software solutions with minimum
development cost.
• Often, only a brief description of its functionality is provided
with a COTS component.
• A component, often, carries no guarantee of adequate
testing for the intended environment.
• There is no, or only a limited description of the quality of the
component and the quality must be assessed in relation to its
intended use.
• The developer, typically, does not have access to the source
code of the component.
• Assure COTS components are applied within their intended
profile.
• Understand and document how the COTS components
behave in a faulty situation.
• Use guidelines and tools to deal with supplier changes and
upgrades of the COTS component.
• Determine if future releases of the COTS component are
backward compatible.
• Investigate what development procedure has been used and
if it complies with any reliability standards.
Architecture support for component

Architecture support for component

  • 1.
    ARCHITECTURE SUPPORT FOR COMPONENTREUSE Chand Anand : 2K11/SE/020 Rishabh Harit : 2K11/SE/060 Swati Kandhari : 2K11/SE/079
  • 2.
    Hyderabad Bangalore Gurgaon INDEX • What isSoftware Reuse? • Types of Software Reuse • Importance of Software Reuse • Types of Architecture to support Software Reuse • Product – Line Architecture • COTS Architecture
  • 3.
    • In mostengineering disciplines, systems are designed by composition (building system out of components that have been used in other systems). • Software engineering has focused on custom development of components. • To achieve better software quality, more quickly, at lower costs, software engineers are beginning to adopt systematic reuse as a design process
  • 4.
    • Application SystemReuse • reusing an entire application by incorporation of one application inside another (COTS reuse) • development of application families (e.g. MS Office) • Component Reuse • components (e.g. subsystems or single objects) of one application reused in another application. • Function Reuse • reusing software components that implement a single well-defined function.
  • 5.
    • Increased Reliability •components already exercised in working systems • Reduced Process Risk • less uncertainty in development costs • Effective Use of Specialists • reuse components instead of people • Standards Compliance • embed standards in reusable components • Accelerated Development • avoid custom development and speed up delivery
  • 6.
    • Product –Line : It identifies an abstract set of requirements that cover all applications you want to build in the domain; provides software engineering methods for creating a collection of similar components from a shared set of software assets using a common means of production. • The products can be managed as a group, planning the whole set consistently, allocating funding and developers to several of the products at the same time and advertising the products as a set, highlighting their common and varying features.
  • 7.
    • Product-line CBSEdelivers the promise of large-scale software reuse by promoting the use of software components built by commercial vendors or in-house developers. • While examining different applications in the same product- line or problem domain, comparison among applications is done on the basis of their features. • A feature is a product characteristic that users and customers view as important in describing and distinguishing members of the product-line. A feature can be: • a specific requirement • a selection among optional or alternative requirements
  • 8.
    • A product-linecan be built around the set of reusable components by analysing the products to determine the common and variable features using a technique called domain analysis. • Domain analysis is a technique to systematically extract features from existing or planned members of a product-line. • This is followed by development of a product structure and implementation strategy around a set of reusable components that can be composed to implement several different products.
  • 9.
    • Reduce significantlythe cost and time-to-market of enterprise software systems by allowing the systems to be built by assembling reusable components rather than from scratch. • Enhance the reliability of enterprise software systems because each reusable component has gone through several review and inspection stages in the course of its original development and previous use; and because CBSE relies on explicitly defined architecture and interfaces.
  • 10.
    • Improve themaintainability of enterprise software systems by allowing new (higher) quality components to replace old ones. • Enhance the quality of enterprise software systems by allowing application-domain experts to develop components, and software engineers specialized in component-based software development to assemble the components and build enterprise software systems.
  • 11.
    • IBM SanFranciscoproject which delivers application frameworks and Java Bean components is based on Product – Line Architecture.
  • 12.
    • One wayof approaching the issue of reuse is to develop systems by a Component-Based Software Engineering, CBSE, paradigm: assembling software systems from components. • COTS : Reusing components made for earlier products as an approach to new system development is a promising way of achieving the instantaneous development and system improvements. The possibility to buy software components from component vendors, so called Commercial-Off-The- Shelf, COTS, components.
  • 13.
    A middleware isa layer of software that separates application software from system software and other types of run-time environment specific software. The two most known middleware solutions and de-facto standards are: • Object Management Group’s (OMG) Common Object Request Broker Architecture (CORBA). • Microsoft’s Component Object Model (COM).
  • 14.
    • Using COTSComponents can save valuable development time, but insight in the COTS component functionality and properties must be evaluated for its intended use. • In order to integrate a COTS component in a system, the developers must consider relevant properties of the component like operational limitations, temporal behavior, preconditions, robustness and many forms of underlying assumptions on the intended environment. • To determine its properties, extensive testing of the component may be necessary.
  • 15.
    • Functionality isinstantly accessible to the developer. • Components may be less costly than those developed in- house. • The component vendor may be an expert in the particular area of the component functionality.
  • 16.
    • Industrial competitionfor delivering more reliable systems in shorter time frames. • A demand for larger and more complex software solutions, which often can not be effectively implemented in a timely manner by a single software development organization. • Increase in availability of reusable COTS components. • Increased degree of standard compliance among COTS software products that enables reduction of product integration time. • Increasing research in better software component “packaging” techniques and approaches. • Increasing recognition that software reuse is one of the most important means to achieve better software solutions with minimum development cost.
  • 17.
    • Often, onlya brief description of its functionality is provided with a COTS component. • A component, often, carries no guarantee of adequate testing for the intended environment. • There is no, or only a limited description of the quality of the component and the quality must be assessed in relation to its intended use. • The developer, typically, does not have access to the source code of the component.
  • 18.
    • Assure COTScomponents are applied within their intended profile. • Understand and document how the COTS components behave in a faulty situation. • Use guidelines and tools to deal with supplier changes and upgrades of the COTS component. • Determine if future releases of the COTS component are backward compatible. • Investigate what development procedure has been used and if it complies with any reliability standards.