0% found this document useful (0 votes)
6 views

Reusability Issues in Component-Based Development

Uploaded by

bishtbhanu2718
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

Reusability Issues in Component-Based Development

Uploaded by

bishtbhanu2718
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/220631386

Reusability Issues in Component-based Development

Article in ACM SIGSOFT Software Engineering Notes · July 2003


DOI: 10.1145/882240.882255 · Source: DBLP

CITATIONS READS
66 413

1 author:

Nasib Singh Gill


M D University Rohtak, Haryana, India
170 PUBLICATIONS 1,333 CITATIONS

SEE PROFILE

All content following this page was uploaded by Nasib Singh Gill on 18 November 2015.

The user has requested enhancement of the downloaded file.


Reusability Issues in Component-Based Development
Nasib S. Gill
Department of Computer Science & Applications
M.D. University, Rohtak – 124 001
Haryana (India)
Phone: +91 (0) 1262 294416 Fax : +91 (0) 1262 294640
[email protected], [email protected]

Abstract
Component-based software engineers intend to define and
Component-based development (CBD) advocates the acquisition, describe the processes required to assure timely completion of
adaptation, and integration of reusable software components to high quality, complex software systems that are composed of a
rapidly develop and deploy complex software systems with variety of pre-produced software components. Evidence of the
minimum engineering effort and resource cost. Software wide spread interest in CBD within industry and academies
reusability is an attribute that refers to the expected reuse include [11]:
potential of a software component. Software reuse not only • The continuing adoption of COTS software solutions to
improves productivity but also has a positive impact on the on-going complex software development projects across
quality and maintainability of software products. The paper first all application domains.
discusses CBD and its associated challenges, and later outlines • The continuing push for standardisation of protocols,
the issues concerning component reusability and its benefits in frameworks, and semantics among product vendors to
terms of cost and time-savings. Guidelines are presented to support better interoperability and integration between
further assist software engineers in the development of reusable COTS products.
software products and to extract reusable components from • The continuing dominance of CBD-related issues being
existing software. Quality and productivity improvement presented, published, and addressed at prestigious
activities within organisations adopting CBD can also benefit software engineering conferences, symposia, and
from the adoption of these guidelines. workshops.
• The continuing increase in effort and improvement for
Keywords: Software components, component-based the development of better component-level design,
development (CBD), software reuse. implementation, testing, packaging, and documentation
techniques.
Introduction
Potential CBD quality attributes include: reusability,
maintainability, accuracy, clarity, replaceability, interoperability,
Component-based development (CBD) has received considerable
scalability, performance, flexibility, adaptability, and reliability
attention among software developers, vendors and IT
[14].
organisations. A marketplace for software components is
emerging [6]. Component-based development has evolved from
Enabling technologies have the potential to accelerate time-to-
previous design and programming paradigms. CBD is both a
market, integrate disparate applications, and ensure consistency
subset as well as an extension of current software engineering
and connectivity across the supply chain. Although the enabling
practices. The prospect of increased product reliability and
technologies are still maturing and there are complex market
stability with shorter development time and reduced cost
forces at work, the state of the practice in many organisations
continues to fuel the on-going interest in CBD. This approach
falls well short of realizing the potential of these technologies [1].
advocates the acquisition, adaptation, and integration of reusable
software components, including commercial-off-the-shelf
The adoption of component-based development brings with it
(COTS) products, to rapidly develop and deploy complex
many changes. The following are a few significant lessons learnt
software systems with minimum engineering effort and resource
through past experiences of component-based development [11]:
cost [12]. Although component-based development offers many
potential benefits, such as greater reuse and a commodity-
• CBD can be based on a component reference model.
oriented perspective of software, it also raises several issues that
developers need to consider [3]. • CBD facilitates parallel development.
• CBD requires pros and cons of reuse to be analyzed.
Reuse of software has been cited as the most effective means for • CBD offers immutability of components.
improvement of productivity in software development projects • CBD adoption offers prototypes, which are quite
[2, 9]. Reuse of software in a development project is generally advantageous.
assumed to increase productivity, improve product reliability, and • CBD encourages a two-tier error message structure.
lower overall costs. In fact, several software development • Testing strategies are altered to support changes that
projects have reported productivity increase up to 50% with high CBD makes to the project life cycle.
levels of software reuse.

1
In particular, developers of large-scale and mission-oriented • Quality of the reusable components.
applications require many additional capabilities including [4]:
• Re-engineer legacy applications to harvest existing Reusability Guidelines for CBD
components reusable in other applications, or
replaceable by newer technologies. Productivity and low quality are still the biggest problems in
• Find suitable components both locally and externally. software engineering. The fundamental cause of “software
• Integrate components implemented in a variety of bottleneck” is that new software systems are usually developed
different technologies. from scratch [7]. However, all of the already designed,
• Validate a component’s behavior before using it. implemented, documented, and tested software contains very
• Manage multiple implementations of the same much knowledge and experience. Remarkable benefits could be
component in different technologies, and as it evolves gained if useful information from the enormous mass of existing
over time. software could be extracted somehow. For a long time, software
developers have realised that software reuse is the way to utilise
This paper is structured into three remaining sections. Section 2 the existing knowledge and work already done when building
provides an overview of software reusability and discusses its new applications. Software reuse not only improves productivity;
pros and cons. Section 3 proposes some reusability guidelines for it also has a positive impact on the quality and maintainability of
CBD. Conclusions are presented in section 4. software products [7, 10].

Software Reusability Overview It is generally assumed that the reuse of existing software will
enhance the reliability of a new software application. This
Software reusability is an attribute that refers to the expected concept is almost universally accepted because of the obvious
reuse potential of a software component. The software fact that a product will work properly if it has already worked
development community is gradually drifting toward the promise before. Some general reusability guidelines, which are quite
of widespread software reuse, in which any new software system often similar to general software quality guidelines, include [10]:
can be derived virtually from the existing code. As a result, an • Ease of understanding
increasing number of organisations are using software not just as • Functional completeness
all-inclusive applications, as in the past, but also as component • Reliability
parts of larger applications. In this new role, acquired software • Good error and exception handling
must integrate with other software functionality. • Information hiding
• High cohesion and low coupling
The move toward reuse is becoming so widespread that it has • Portability
even changed software industry’s vocabulary. For example,
• Modularity
software acquired externally is described with such terms as
commercial-off-the-shelf (COTS) or third-party software,
CBD lacks appropriate reusability guidelines that could further
commercially available software (CAS), and non-developmental
benefit component-based development from cost-savings, time-
item (NDI). When used as parts of systems, they are called
savings, quality and productivity improvements, reliability
components, componentware, and so on. The systems themselves
improvements, etc.
are known as component-based software or systems of systems
[13].
In order to augment the level of software reusability in CBD, the
following high-level guidelines are suggested:
There are good reasons why the industry is moving toward large-
scale reuse, including savings in time and money. The cost to
• Conducting software reuse assessment
develop a new system from scratch is significant. This has made
custom software development very expensive. Embedding large- • Performing cost-benefit analysis for reuse
grained software components into multiple applications also lets • Adoption of standards for components
one spread component development costs across each • Selecting pilot project(s) for wide deployment of reuse.
application. This allows for a wider variety of software systems • Identifying reuse metrics
to enter the market at lower costs.
Conducting Software Reuse Assessment
Reuse of software components is justifiable if the cost of reuse is
less than the cost of developing new components. Hence one Software reuse assessment is the first step to be initiated by a
empirical attribute for reusability is the effort or cost required to software development organisation. Software reuse assessment is
reuse a certain software component. The amount of work needed performed to measure the potential for practicing reuse in an
to reuse a component in another system of the same domain may organisation, to determine if the organisation is ready to embark
be determined on the basis of the scale provided in [7,8]. Similar on a reuse programme and to define where to focus its reuse
considerations are taken into account by Caldiera and Basili [5] efforts in order to gain the maximum benefit from practicing
who propose a model defining three reusability factors: reuse. The result of reuse assessment can be used as the basis for
defining the organisation’s reuse goals, reuse adoption strategies,
• Cost of reuse the domains in which to practice reuse and the reuse programme
• Usefulness of reusable components implementation plan [15].

2
Reuse Assessment is performed to help successfully introduce where Cs is the cost of the project developed from scratch, Cr is
reuse into software development organisations. The purposes of the overhead costs associated with reuse, and Cd is the actual
the reuse assessment are to: cost of the software as delivered.

• Evaluate the organisation’s current reuse Cs can be determined by applying one of the many cost
strategy and the implementation of that strategy estimation models. The overhead costs associated with Cr
in current software projects and various include:
systems groups.
• Use the results of the assessment to determine • Domain analysis
an organisation’s reuse goals, elements of reuse • Increased documentation to facilitate reuse
program to achieve those goals, and domains in • Maintenance and enhancement of reuse artifacts
which to focus reuse efforts. (documents and components)
• Recommend actions to take to implement its • Royalties and licenses for externally acquired
reuse strategy. components
• Creation (or acquisition) and operation of a reuse
Instituting the practice of reuse across an organisation is a large repository
and complex task, and its success requires careful planning, • Training of personnel in design for reuse and design
cooperation and good management practices. To ensure success with reuse.
an organisation needs to determine how ready, willing and able it
is to practice a reuse-driven development approach and what The actual cost of the software, C , will include project-related
d
actions it needs to take to prepare itself to accomplish its reuse reuse costs, such as the adaptation and integration of reuse
objectives and goals. artifacts.

The assessment should investigate both technical and A cost-benefit analysis can also be viewed from two perspectives
management/organizational reuse issues. On the technical side, [17]:
some important issues include: • That of the producer, a creator of reusable components,
and
• Identifying and defining core business objects • That of the consumer, a user of these components in the
and other kinds of reusable components creation of other software.
• Defining guidelines and standards for reuse
• Defining the organizational structure and It is possible for a component to be economically feasible for the
classification scheme for the reuse consumer but not for the producer. Producer costs include those
incurred from creating and maintaining a reuse program and
On the management/organizational side, issues include: reusable components. In the case where the producer does not
explicitly charge for its components or services, its benefits are
simply those that are enjoyed by its consumers, namely, reduced
• Defining personnel support for core business costs, avoided costs, and in some cases, increased profits.
objects/reusable components
• Establishing reuse training programs The Net Present Value (NPV) technique is a well-established and
• Establishing the reuse infrastructure (i.e. reuse popular method for conducting a cost–benefit analysis [17]. The
metrics and measurements, corporate reuse NPV method determines the present value of a stream of cash
policy, reuse incentives). flows that result from creating a component or establishing a
reuse program. The technique can be used to determine the
Performing Cost-benefit Analysis for Reuse attractiveness of reuse as an investment compared with other
software development strategies.
Cost-benefit analysis of software reuse provides valuable
information that helps organizations decide whether or not reuse Here, costs refer to total life cycle costs, or those incurred from
is a worthwhile investment. Such an analysis can be conducted investigating, designing, coding, testing, debugging and
using well-established economic techniques. Cost-benefit maintaining the components. Similarly, benefits include total life
analysis alone should not serve as the sole criterion in deciding cycle costs saved. Benefits also include additional profits
whether or not to pursue reuse. resulting from earlier completion of the product.

The net cost savings for reuse can be estimated as [17] below in In many organizations, a software developer may have both
equation (1): consumer and producer roles. This distinction between
producers and consumers is important because the costs and
benefits of each may differ. Thus, it is possible that reuse is
Csave = Cs - Cr - Cd (1) economically feasible for the consumer but not for the producer.

3
Consumers incur the costs of locating, understanding, adapting Selecting Pilot Project(s) For Wide Deployment of Reuse
and integrating reusable components into their software. Benefits
can be derived in two ways: Pilot project(s) are necessary to implement and demonstrate the
• From the reduction and avoidance of costs that accrue viability of reuse for its wider deployment [16]. The choice of
from not having to create and maintain all the equivalent pilot project(s) is important because it:
functionality provided by the components and
• From increased profit in completing the product and • Serves as a test site for proposed reuse practices
delivering it to the market earlier.
• Upon completion, may serve as a showcase for
wide deployment of reuse throughout the
For producers, the costs consist of start-up and on-going organisation
expenses. Start-up costs include the expense of creating a
• May determine the scope and extent of
reusable components or making an existing component reusable,
allocated resources for reuse
standardisation costs, and the cost of setting up a library.

For reuse to be economically feasible, total benefits should The following considerations may be helpful in selecting pilot
exceed total costs: project(s):

Producer Costs < Consumer Benefits • Identify the success factors for reuse.
• Identify the inhibitors to reuse and the way these can be
In monetary terms, overcome.
• Determine what makes reuse an appropriate strategy for
Cash outflow < Cash inflow an organization

Cash outflows will typically include one-time start-up costs (e.g. Identifying Reuse Metrics
library, guidelines, component creation) and ongoing costs (e.g.
library and component maintenance). Cash inflows result from
Appropriate reuse metrics should be developed and identified.
reduced costs, avoided costs and increased profits. Reduced costs
Several software metrics have been developed for measuring
result when the cost to develop and maintain software, using
code reuse and the benefits of reuse. The benefit associated with
reuse is less than that using the current method. Reuse may lead
reuse within a system S can be expressed as a ratio [17] below in
to a shortened time to market and thus, additional revenues and
equation (2):
profits that the organisation might not have received otherwise.

Adoption of Standards for Components Rb(S) = [Cno_reuse - C reuse]/Cno_reuse (2)

Reusability requires a set of software standards so as to facilitate where


a better and faster understanding of a component, and faster
integration into a system. Different levels of standards for Cno_reuse is the cost of developing S with no
components can be identified. reuse, and
Creuse is the cost of developing S with reuse.
The cost of standardizing a component must be taken into
account when performing a cost-benefit analysis of reuse. To It follows that Rb(S) can be expressed as a non-dimensional value
determine whether or not a component is a standard, both in the range
interface and functionality should be taken into account. A
component without an interface will cost adaptation and 0 <= Rb(S) <= 1.
integration of the components.
It has been suggested [18] that
Software standards mainly include standardizing the interface of
software components. While the interface for higher-level 1. Rb(S) is affected by the design of a system, and
components is simply a protocol for concepts with a low degree 2. Since Rb(S) is affected by design, Rb(S) may be used to
of formalization, it becomes more important as the level of assess design alternatives.
abstraction of the component decreases and the component itself
is used mostly.
A general measure of reuse in object-oriented systems, termed
reuse leverage [19] is defined as:
Software managers hesitate to use software reuse being a cost
intensive investment. Therefore, it is necessary to understand the
cost impact of software reuse. Other factors that can affect the Rlev = OBJreused/OBJbuilt
success of reuse are the design and realization of the components
likely to be reused, and particularly their adequate where
standardization.

4
OBJreused is the number of objects reused in a Conference on Automated Software Engineering, 13-16 October,
system 1998, pp. 84-93.
OBJbuilt is the number of objects built for a [9] Paul R.A (1995): Metric-Guided Reuse. In proceedings of 7th
system International Conference on tools with artificial Intelligence
(TAI’95), 5-8 November, 1995, pp. 120-127.
It follows (hopefully) that as Rlev increases, Rb also increases. [10] Poulin Jeffrey S. (1994): Measuring Software
Reusability. In proceedings of 3rd International Conference on
As for code reuse metrics, several attributes can be selected, they Software Reuse, Brazil, 1-4 November 1994, pp. 126-138.
[11] Sparling Michael (2000): Lessons Learned – Through
are reuse level (RL), reuse frequency (RF), and reuse density
(RD) and each of them is defined as follows [17]: Six Years of Component-Based Development”, Communications
of the ACM Journal, Vol. 43 No. 10, October 2000, pp. 47-53.
[12] Tran Vu N. and Liu Dar-Biau. Application of CBSE to
• RL, reuse level, in a repository is the percentage of Projects with Evolving Requirements – A Lesson-learned.
different items coming from a given source. http://www.computer.org/proceedings/apsec/0509/0509toc.htm.
• RF, reuse frequency, in a repository is the percentage of [13] Voas Jeffrey M. (1998): The Challenges of Using COTS
reference to items coming from a given source. Software in Component-Based Development. In IEEE Computer
• RD, reuse density, in a repository is the normalized Journal, June 1998, pp. 44-45.
number of items coming from a given source. [14] Woodman Mark, Benediktsson Oddur, Lefever Bruno,
Stallinger Friedrich. Issues of CBD Product Quality and Process
Quality. http://www.sei.cmu.edu/pacc/CBSE4_papers/
Conclusions Woodman+-CBSE4-15.pdf.
[15] http://www.reusability.com/serv1.html
Software reuse not only improves productivity but also has a [16] http://www.db.stanford.edu/cs446/Assignments/TUTV3.
positive impact on the quality and maintainability of software DOC (for pilot-projects)
products. This paper represents an attempt to highlight the [17] Li Bin (1998): Software Reuse.
relevant issues related to software reusability for component- http://sern.ucalgary.ca/courses/seng/693/W98/lib/reuse.htm
based development. Challenges related to reusability issues in [18] Devanbu, P. et al. (1995): “Analytical and empirical
CBD have been outlined. Considering the important issues evaluation of software reuse metrics”. In Technical Report,
related to software reusability, some high-level reusability Computer Science Department, University of Maryland, August,
guidelines have been suggested, which will further help in 1995.
enhancing quality and productivity activities within organisations [19] Basili, V.R., et al. (1994): Domain analysis for the reuse
adopting CBD. of software development experiences. In proc. 19th Annual
Software Engineering Workshop, NASA/GSFC, Greenbelt, MD,
December, 1994.
References

[1] Allen Paul (2001): The State of the Practice. In Component


Development Strategies Journal, March 2001, Vol. XI, No. 3. pp.
1-16.
[2] Boehm B.W., Pendo M., Pyster A., Stuckle E.D., and
William R.D. (1984): An Environment for Improving Software
Productivity. In IEEE Computer, June 1984.
[3] Brereton, B. and Budgen, D. (2000): Component-Based
Systems: A Classification of Issues. In IEEE Computer,
November 2000, pp. 54-62.
[4] Brown Alan (1998): From Component Infrastructure to
Component-Based Development. In
http://www.sei.cmu.edu/cbs/icse98/ papers/p21.html.
[5] Caldiera G. and Basili V.R. (1991): Identifying and
Qualifying Reusable Software Components. In IEEE Computer,
February 1991, pp. 61-70.
[6] Councill Bill and Heineman George T. (2000): Component-
Based Software Engineering and the Issue of Trust. In
Proceedings of International Conference on Software
Engineering (ICSE 2000), pp. 661-664.
[7] Itkonen Juha: Measuring Object-Oriented Software
Reusability. In http://www.soberit.hut.fi/~tony/seminaari/reports/
juho_anttila.doc.
[8] Mao Y., Sahraui H.A., and Lounis H. (1998): Reusability
Hypothesis Verification Using Machine Learning Techniques: A
Case Study. In Proceedings of the 13th IEEE International

5
View publication stats

You might also like