0% found this document useful (0 votes)
7 views8 pages

Term Paper On Software - Reuse - Research - and - Practice

The paper discusses the current state of software reuse, emphasizing its potential to enhance productivity and reduce costs, while noting that it remains underdeveloped despite decades of research. It outlines various models for assessing reuse, including cost productivity and return on investment, and highlights the importance of effective repository retrieval systems for successful component-based software reuse. The authors also explore different approaches to software reuse, such as component-based development and domain engineering, and address challenges related to managing and retrieving reusable components.

Uploaded by

nsundaybasilica
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views8 pages

Term Paper On Software - Reuse - Research - and - Practice

The paper discusses the current state of software reuse, emphasizing its potential to enhance productivity and reduce costs, while noting that it remains underdeveloped despite decades of research. It outlines various models for assessing reuse, including cost productivity and return on investment, and highlights the importance of effective repository retrieval systems for successful component-based software reuse. The authors also explore different approaches to software reuse, such as component-based development and domain engineering, and address challenges related to managing and retrieving reusable components.

Uploaded by

nsundaybasilica
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

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

net/publication/220840676

Software Reuse: Research and Practice

Conference Paper · April 2007


DOI: 10.1109/ITNG.2007.182 · Source: DBLP

CITATIONS READS
41 3,722

2 authors, including:

S. Shiva
University of Memphis
91 PUBLICATIONS 2,306 CITATIONS

SEE PROFILE

All content following this page was uploaded by S. Shiva on 27 October 2014.

The user has requested enhancement of the downloaded file.


Software Reuse: Research and Practice

Sajjan G. Shiva Lubna Abou Shala


Department of Computer Science Department of Computer Science
The University of Memphis The University of Memphis
[email protected] [email protected]

Abstract 2.1. Cost Productivity Model


It has been more than three decades since the idea of
software reuse was proposed. Many success stories have This model was presented by Gaffney and Durek in
been told, yet it is believed that software reuse is still in 1989 [1] and uses cost benefit analysis. In general, cost
the development phase and has not reached its full benefit analysis weighs all the positive factors (the
potential. How far are we with software reuse research benefits) against all the negative factors (the costs) to
and practice? This paper is an attempt to answer this decide if a process or project is profitable. The same
question. Keywords: Software Reuse, Architecture, economical concept is applied to software development.
Domain Engineering, Metrics, Component. Benefits here are the expected increase in productivity
and performance while costs include developing the
software components and integrating them into the
1. Introduction system. Since developing a reusable component requires
Software Reuse is defined as the process of building or extra effort in generalizing the interface and satisfying
assembling software applications and systems from more requirements, testing and documentation, reusable
previously developed software. It has been associated software development costs more than developing
with software engineering since its early days as the software that is not intended for reuse. On the other hand,
NATO Software Engineering Conference in 1968 marked integrating a reusable component into the system usually
the birth of the idea of systematic software reuse. Since costs less than developing a new one from scratch [3].
then, reuse has become an important research area in 2.2. Return on Investment Model
software engineering. Reuse has gained additional
popularity recently due to the popularity of global Poulin Developed IBM’s first return on investment
software development. (ROI) model in 1991 [3]. Even though, the measures in
This paper is a summary of some important aspects of this model are based on the same principles of the cost
software reuse research. As the major goal of reuse is productivity model, ROI metrics are more business
increasing productivity and reducing cost, reuse oriented and provide a finer breakdown for some
economics are discussed first. Then three approaches to calculations [1]. Poulin presents three metrics as the base
software reuse are summarized followed by reuse to the ROI models. These metrics are: Reuse Percent
successful stories in industry. (Reuse%), Reuse Cost Avoidance (RCA), and Reuse
Value Added (RVA). Poulin offers an online tool
2. Reuse Metrics and Economics (ReuCalc) to calculate these metrics.
From organizations’ point of view, software reuse is an 2.3. Maturity Assessment
investment. Before committing resources to reuse,
management must see its potential positive economical Maturity assessment models are used by organizations
impacts on quality and productivity. Organizations must to assess current reuse program advancement and identify
be able to measure that impact and evaluate the the issues most critical to improvement [4]. These models
effectiveness of different reuse techniques to identify and are essentially a variation of the original Capability
enforce the most successful ones. Therefore, reuse metrics Maturity Model developed by the Software Engineering
and economical models have become an essential focus of Institute [1]. Several reuse maturity models have been
the software reuse research. proposed. For example, Koltun and Hudson developed a
Software metric is a quantitative indicator of an model in 1991 with five maturity levels: initial,
attribute of a software product or process. The monitored, coordinated, planned, and ingrained. Then, in
relationships among several metrics are specified by 1993, the Reuse Capability Model (RCM) was introduced
metric models [1] [2]. Numerous reuse related metric at the Software Productivity Consortium which consists
models have been discussed in literature. This section of four levels described in [4]: opportunistic, integrated,
briefly presents some of these models. leveraged, and anticipated. Another model has been

International Conference on Information Technology (ITNG'07)


0-7695-2776-0/07 $20.00 © 2007
proposed by Basset in 1996 contains five similar levels: survey each of these approaches and some of their
ad-hoc, latent, project, systematic and cultural [5]. common methods and techniques.
2.4. Failure Modes 4. Component-Based Software Reuse
Failure mode analysis is a systematic method of The notion of building software from reused
identifying and preventing service, process or product components the same way electronic circuits are built
failures before they occur. A failure mode analysis of the from prefabricated ICs was first published in the NATO
reuse process can identify the ways that an effort to reuse conference in 1968. The idea emerged from object-
an asset can fail. By collecting data about the frequency oriented development failure to support systematic reuse,
of reuse failure modes, an overall measure of the which needed more abstract components than detailed and
probability of reuse failure can be determined. This value specific object classes. Component-based development
is used to evaluate the overall quality of the reuse (CBD) allows the reuse of large and highly abstract
program [6]. enterprise components so fewer components are needed to
Successful reuse depends on the satisfaction of all build the application. This reduces the assembling and
seven conditions in the reuse success chain (intention to integration efforts required when constructing large
reuse, part exists, part available, part found, part applications [7].
understood, part valid, and part integratable). Failure of A software component is a prewritten element of
any of these seven conditions (No Attempt to Reuse, Part software with clear functionality and a well-defined
Does Not Exist, Part Is Not Available, Part Is Not Found, interface that identifies its behaviour and interaction
Part Is Not Understood, Part Is Not Valid, and Part Can mechanism. McClure [7] identifies several properties a
Not Be Integrated.) will cause reuse to fail [6]. software component is expected to have to be reusable.
These properties include a set of common functionality, a
2.5. Reusability Assessment
well-defined interface that hides implementation details,
The estimation of components’ potential reusability is the ability to inter-operate with other components, and the
another important reuse metric. The goal is to identify the ability to be reusable in several different software
measurable attributes of a component that makes it a applications and systems
better candidate for reuse. Knowing these attributes helps The biggest challenge facing component based
design and produce future component. Some of the software reuse is managing a large number of stored
attributes of high reusability software components include reusable components efficiently to allow fast allocating
fewer module calls per source line, fewer I/O parameters and retrieving. While all component-based development
per source line, fewer read/write statements per line, systems include a library or a repository to store pre-built
higher comment to code ratios, more utility function calls components, the best way to structure these repositories
per source line, and fewer source lines [1]. and implement the search interface has not been agreed
upon. Several methods have been proposed in literature
3. Different Approaches to Software Reuse since the early days of component reuse. Below is a
Since the concept of systematic software reuse was summary of the most common approaches.
proposed in 1968, several approaches have been 4.1. Component Repository Structuring and
suggested to achieve the promised potential of software Retrieval
reuse. Three of the major approaches are component-
based software reuse, software architecture and design The repository structure is an essential factor in
reuse, and domain engineering and software product lines. obtaining good retrieval results. Even though some
Component-based software development approach is retrieval algorithms can provide adequate effectiveness
based on the idea that there are so many similar with minimal indexing and structuring efforts, poorly
components in different software systems that new structured repository with insufficiently indexed
systems can be built more rapidly and economically by components will not have a good retrieval performance
assembling components rather than implementing each regardless of the retrieval algorithm [8].
system from scratch. Architecture-based reuse extends the Software repository structuring (indexing) methods
definition of reusable assets to a whole design or can be divided to two main categories: manual and
subsystem composing of components and relationship automatic indexing. Common examples of manual
among them. Domain engineering captures the indexing include enumerated and faceted classification.
commonalities and variabilities in a set of software Automatic indexing most common method is free-text
systems and uses them to build reusable assets. The three indexing.
approaches are not mutually exclusive and in many cases Enumerated Classification involves defining a
a combination is used. The following sections briefly hierarchical structure of categories and subcategories
where actual components are at the leaf level of the

International Conference on Information Technology (ITNG'07)


0-7695-2776-0/07 $20.00 © 2007
classification tree. The hierarchical structure is easy to use suggested that “no attempt to reuse” is the most common
and understand and provides a natural searching method failure mode in the reuse process. Because of the large
of navigating in the classification tree. However, the main and constantly changing component repositories,
problems with this classification include its inflexibility programmers often fail to correctly anticipate the
and difficulty to change as the indexing domain evolves. existence of reusable components. When developers do
Additionally, it requires extensive domain analysis before not believe that a component exists, they will not even
classifying components into exclusive categories. make an attempt to find it [11]. Therefore, the reuse
Furthermore, retrieving classified components is only process will never be initiated in the first place.
easy for users who understand the structure and contents A second issue with repository retrieval systems is
of the repository; users unfamiliar with the structure will vocabularies and ill-defined queries submitted by non-
most likely be lost. Finally, Single classification can not expert users. This issue is a consequence of another faulty
represent complicated domains as no one classification is assumption repository retrieval systems make that
correct under all circumstances. developers know exactly what they need and can translate
Faceted classification was proposed by Ruben Prieto- it into well-defined queries. Very often, searchers have a
Diaz in 1987 [9]. It defines a set of mutually exclusive vague idea of what they need to find and can not express
facets combine to completely describe all the components it in a clear set of terms. Even if users know what they are
in a domain. Each facet can be described by a group of looking for, they may not have the knowledge needed to
different terms. Users search for components by choosing express it in the terms and vocabularies the retrieval
a term to describe each of the facets. A faceted system uses. The same person might use different terms to
classification scheme gives freedom to create complex describe the same needed item at different times
relationships by combining facets and terms. It is much Furthermore, repositories are usually indexed by experts
easier to modify than a hierarchical classification because who might use terms that non-expert developers are not
one facet can be changed without affecting others in the familiar with [8]. According to a study conducted in 2006,
classification scheme. On the other hand, users must be novice developers are more likely to reuse than expert
familiar with the structure of the facets and their terms. ones [12]. Therefore, novice developers should be the
Also, sometimes it is not obvious what combination of target users for these systems.
terms to use in the search.
Free-text indexing uses the words in a document to 4.3. Existing Retrieval Tools
create index term lists that contain all words along with Several tools have been proposed in literature to
how many times they appear in the document. Most free- facilitate software reuse process. Expert system based
text indexing techniques work with a stop list that reuse tools were developed in mid 1990s [10]. Many other
prevents certain high-frequency words such as “a”, “the”, tools were also proposed to address the retrieval issues
and “is” from being indexed. To find a document that described above. This section presents two of these tools:
contains a set of keywords, users specify these keywords CodeFinder and CodeBroker.
that are matched against the index term list to find the CodeFinder was first proposed by Henninger in 1995
best matching documents. Even though easy to build and [8] to support the process of retrieving software
works very well in many applications including online components when information needs are ill-defined and
search engines, free-text indexing is not suitable for users are not familiar with terms used in the repository. It
indexing code and other software artifacts. Free-text employs two techniques: intelligent retrieval method that
indexing relies heavily on natural language rules and use finds information associatively related to the query, and
statistical measures that need large bodies of text to be query construction supported through incremental
accurate. However code has arbitrary rules of grammar refinement of queries. The main idea is to create a
and allows the use of non-words and abbreviation and retrieval method that utilizes minimal, low cost repository
may contain minimum or no documentation [8]. structure and evolves to adapt to user needs.
The proposed system is composed of three main parts:
4.2. Repository Retrieval Issues
a tool (PEEL) to initially populate the repository with
Effective repository retrieval interfaces are essential to reusable components, a searching mechanism, and an
the success of any component-base development system. adapting tool to refine the repository when needed.
These interfaces, however, must overcome several issues PEEL (Parse and Extract Emacs Lisp) is a semi-
before they can serve their purpose in supporting software automatic tool that translates Emacs Lisp (a variant of
reuse. One major issue is the reuse barrier. Most current Lisp) source code files into individual reusable,
reuse repository systems are designed as a separate components of functions and routines. These components
process, independent of current development processes are indexed in the repository using terms extracted from
and tools assuming that software developers will start the variable and function names and comments preceding
reuse process when they need to. This assumption, definitions.
however, is often incorrect. Several empirical studies

International Conference on Information Technology (ITNG'07)


0-7695-2776-0/07 $20.00 © 2007
The system provides a user interface that implements another. Architecture-based reuse extends the definition
the searching and browsing mechanism to allow the user of reusable assets to include these properties and
to view and brows the hierarchy of the repository as well relationships.
as submit search queries. Each time the user sends a Shaw classified software architecture into common
query, the system responds with the retrieved items and a architecture styles where every style has four major
list of terms used to index each item. This technique helps elements: components, connectors that mediate
users that are not familiar with the terms. As the user interactions among components, a control structure
explores the information space, they become more that governs execution and rules about other
familiar with repository structure and terms and properties of the system, and a system model that
incrementally refine their queries based on of previous captures the intuition about how the previous
results. To address the ill-defined query problem, the elements are integrated. Some of the popular
CodeFinder retrieval method does not try to exactly match architecture styles in [13] are pipeline, data abstraction,
the user queries with the item descriptions. Applying implicit invocation, repository, and layered.
associative network, it uses association to retrieve items Applying a combination of architecture styles
that are relevant to a query but don’t exactly match it.
create architectural patterns [2]. An architectural
CodeFinder, however, does not address the reuse
pattern is a high-level structure for software systems
barrier issue. The user interface and tools are separated
that contains a set of predefined sub-systems,
from the Lisp development environment. It relies on the
developer to initiate the reuse process by switching defines the responsibilities of each sub-system, and
between the two environments whenever needed. Many details the relationships between sub-systems.
developers overestimate the cost of switching and Layers, Pipes and Filters, and Blackboard are some
searching for reusable item and do not attempt it. In 2001, of the common patterns described by Buscmann et
Yunwen proposed an active and adaptive reuse repository al in [14].
system called “CodeBroker” to address this issue [11]. Software systems in the same domain have
CodeBroker repository system is not a standalone tool; similar architectural patterns that can be describe
it is integrated into the development process running with a generic architecture (domain architecture).
continuously in the background of the development Domain architecture is then refined to fit individual
environment. It is an active system that presents application in the domain creating application
information when identifies a reuse opportunity without architecture [2].
waiting for users to submit explicit queries. It is also an
adaptive system that captures developer’s preferences and 6. Domain Engineering and Software
knowledge level and saves them to a profile used to adapt Product Lines
the system’s behaviour to each user. User profiles can be
explicitly modified by users (adaptable) or implicitly Domain engineering, use of specific knowledge and
updated by the system (adaptive). artifacts to support the development and evolution of
The system’s repository is composed of Java API and systems, has become a major aspect of disciplined
General Library. Its architecture consists of three software software reuse. Most organizations work only in a small
agents: listener, presenter, and fetcher. Listener is a number of domains. For each domain they build a family
background running process that captures developers’ of systems that vary based on specific customer needs.
needs for reusable components and formulates reuse Identifying the common features of existing systems
queries. Whenever a developer finishes a doc comment or within a particular domain and using these features as a
a function definition, Listener automatically extracts the common base to build a new system in the same domain
contents and creates a concept query and passes it to may result in higher efficiency and productivity.
fetcher. Fetcher executes the query retrieving relevant Domain engineering has two stages domain analysis
components based on concept similarity to the comment and domain implementation. Domain analysis is the
text or constraint compatibility to the function signature. process of examining the related systems in a domain to
Presenter displays retrieved components to the user in the identify the commonalities and variabilities. Domain
RCI-display taking into consideration user profile implementation is the employment of that information to
settings. develop reusable assets based on the domain
commonalities and use these assets to build new systems
5. Architecture-Based Software Reuse within that domain. Following is an overview of several
known domain engineering approaches.
Effective reuse depends not only on finding and
reusing components, but also on the ways those 6.1. DARE
components are combined [13]. System software
Domain Analysis and Reuse Environment (DARE) is a
architecture is composed of its software components, their
tool developed in 1998 to support capturing domain
external properties, and their relationships with one

International Conference on Information Technology (ITNG'07)


0-7695-2776-0/07 $20.00 © 2007
information form experts, documents, and code. Captured KobrA is “technology independent” in the sense that it
domain information is stored in a database (domain book) can be used with all three major component
that typically contains a generic architecture for the implementation technologies CORBA, JavaBeans and
domain and domain-specific reusable components. DARE COM.
also provides a library search facility with a windowed
interface to retrieve the stored domain information [15]. 6.5. PLUS
Product Line UML-Based Software Engineering
6.2. FAST
(PLUS) is a model-driven evolutionary development
Family-Oriented Abstraction, Specification and approach for software product lines. It was introduced by
Translation (FAST) is a system family generating method Gomaa in 2004 as an extension to the single system
based on an application modeling language (AML). It was UML-base modeling methods to address software product
developed by Weiss and Lai at AT&T and continued to lines [19]. In addition to analyzing and modeling a single
evolve at Lucent Technologies [16]. system, PULS provides a set of concepts and techniques
FAST is a systematic way of guiding software to explicitly model the commonality and variability in a
developers to create the tools needed to generate members software product line. With these concepts and
of a software product line using a two-phase software techniques, object oriented requirements, analysis, and
engineering method: domain engineering phase and design models of software product lines are developed
application engineering phase. The domain engineering using UML 2.0 notation.
phase defines the product line requirements and design
through a Commonality and Variability Analysis and 7. Software Reuse in Industry
develops a small special purpose language to describe Many organizations have been successful with
these commonalities and veriabilities. The application software reuse. Hewlett-Packard (HP), for example, has a
engineering phase uses the application modeling language long history with different levels of software reuse started
as the basis to generate the requirements and design of in 1989. It began with the development and networked
new family members. distribution of a family instrument modules and evolved
6.3. FORM in 1991 to a corporate reuse program that guided several
divisional reuse pilot projects for embedded instrument
Kyo C. Kang and others in Pohang University of and printer firmware [20][21].
Science and Technology presented a Feature Oriented AT&T’s BaseWorkX reuse program started in 1990 as
Reuse Method (FORM) as an extension to the Feature an internal, large-grain component-reuse and software-bus
Oriented Domain Analysis (FODA) method as FORM technology to support telephone-billing systems. By 1995,
incorporates a marketing perspective and supports AT&T was reusing 80 to 95% of its components [21].
architecture design and object oriented component A more recent example was implemented by ISWRIC
development [17]. FORM is a systematic method of (Israel SoftWare Reuse Industrial Consortium), a joint
capturing and analyzing commonalities and differences of project of seven leading Israeli industrial companies [22].
applications in a domain (features) and using the results to It was a two-phase, three-year project started in 2000.
develop domain architectures and components. It starts During the first phase, a common software reuse
with feature modeling to discover, understand, and methodology was developed to enable software
capture commonalities and variabilities of a product line. developers to systematically evaluate and compare all
possible alternative reuse scenarios. During the second
6.4. KobrA
phase, all seven participating companies implemented the
KobrA is a German acronym (Komponentenbasierte methodology in real projects. Each company modified the
Anwendungsentwicklung) stands for component-based model to better fit the specific needs of its pilot projects
application development [2]. The KobrA method offers a and evaluated the methodological aspects relevant to the
full life-cycle approach that integrates the advantages of pilot projects and the company.
several advanced software engineering technologies Another industrial application for software reuse that is
including product line development, component based becoming more popular is global software distribution
software development, and frameworks to provide a system development (GDSD). Skandia, one of the world’s
systematic approach to developing high-quality, top life insurance companies, collaborated with Tata
component-based application frameworks [18]. Consultancy Services (TCS) to create several IT-enabled
KobrA is based on the principle of strictly separating financial services in different countries by integrating
the product from the process. The products of a KobrA components developed independently by TCS and other
project are defined independently of, and prior to, the third-party vendors at their own sites [23].
processes by which they are created, and effectively The appearance of some promising software reuse
represent the goals of these processes. Furthermore, tools may lead to more successful industrial software

International Conference on Information Technology (ITNG'07)


0-7695-2776-0/07 $20.00 © 2007
reuse stories. One example is CodeSmith, the software yet become the norm. Reuse may not be the “silver
generating tool that can produce code for any text-based bullet” that solves all software productivity problems, but
language including C#, VB.NET, Java and FORTRAN. a combination of technology and discipline can give reuse
The tool has had a huge success in industry due to its a chance to show its potential.
advanced integrated development environment and its
extensible, template-driven architecture that give 9. References
developers full control over the generated code. [1] W. Frakes, and C. Terry, “Software Reuse: Metrics and
Another promising approach in software reuse is Models”, ACM Computing Surveys, vol. 28, no 2, 1996,
utilizing metadata repositories such as Logidex, a pp. 415-435.
collaborative software development asset (SDA) [2] W. Frakes, and Kyo Kang, “Software Reuse Research:
management tool that simplifies the creation, migration Status and Future”, IEEE Transactions on Software
and integration of enterprise applications. SDA may Engineering, vol. 31, no. 7, 2005, pp 529-536.
contain executables such as software components and [3] J J. Poulin, “An Agenda for Software Reuse Economics”,
services, software development lifecycle artifacts, and International Conference on Software Reuse, April, 2002.
knowledge assets such as best practices and design [4] T. Davis. “The reuse capability model: a basis for
improving an organization’s reuse capability”, the Second
patterns. Logidex has often been used to store the
International Workshop on Software Reusability, 1993, pp
organization reuse patterns and recommend candidate 126-133
components for reuse. [5] W. Lam, and M. Loomes. “Re-engineering for reuse: a
paradigm for evolving complex reuse artifacts,” Computer
8. Our Research Software and Applications Conference, Aug 1998, pp 507-
Our software reuse research is focus on two major 512.
areas: component retrieval systems, and enforcing reuse [6] William B. Frakes, Christopher J. Fox, "Quality
discipline in organizations. Improvement Using A Software Reuse Failure Modes
The first focus is building an efficient component Model," IEEE Transactions on Software Engineering, vol.
22, no. 4, Apr., 1996, pp. 274-279.
retrieval system that brings together the best of the two
[7] C. McClure. Software Reuse: A Standards-Based Guide,
retrieval systems previously discussed. Integrating the Wiley-IEEE Computer Society Pr, New York, 2001.
retrieval system with the development environment could [8] Henninger, S., “An Evolutionary Approach to
greatly contribute to increasing developer’s intention to Constructing Effective Software Reuse Repositories,”
reuse. Also, employing software agents that learn to adapt ACM Trans. On Software Engineering and Methodology,
to different users’ knowledge level and terminology helps 6(2), 1997, pp. 111-140.
users find the needed components faster and makes the [9] R. Prieto-Daz. "Classifying Software for Reusability".
reuse experience more rewording to developers which IEEE Software, vol. 4, no. 1, 1987, pp 6-16.
encourage them to attempt it again. Both systems, [10] P. Wang and S.G. Shiva, "A Knowledge-Based Software
however, used built-in or user-defined functions as Reuse Environment", IEEE Southeastern Symposium on
reusable components which limits the usability of the System Theory, March 1994, pp276-280.
systems. Employing reuse in industrial setting requires [11] Ye, Yunwen. “An Active and Adaptive Reuse Repository
expanding reusable components to include a whole System,” Proceedings of 34th Hawaii International
Conference on System Sciences (HICSS-34), Jan. 3-6,
system (collection of functions, classes…etc. that work 2001, pp 9065-9075.
together) where the system as whole or parts of it can be [12] Desouza, Kevin, Awazu, Yukika, and Tiwana, Amrit.
considered reusable components i.e., components are “Four Dynamics for Bringing Use Back into Software
composed of smaller components. We also have been Reuse.” Communications of the ACM, 49(1), pp97-100,
examining the possibility of using Google Desktop or 2006.
similar tools to facilitate the search for reusable [13] M. Shaw, Architectural issues in software reuse: It's Not
components. Just the Functionality, It's the Packaging, Proc IEEE
However, developing tools to facilitate the reuse Symposium on Software Reusability, April 1995, pp 3-6.
process is not enough; we also need tools to help [14] F. Buschmann et al., Pattern-Oriented Software
managers enforce reuse in organizations. We are Architecture. Chichester, UK; New York: Wiley, 1996.
interested in developing such tools by expanding common [15] W. Frakes, R. Prieto-Diaz, and C. Fox, “DARE-COTS. A
software process models to include reuse practices. These domain analysis support tool,” Computer Science Society,
1997. Proceedings, XVII International Conference of the
models help developers with standards they need to
Chilean 10-15, Nov. 1997, pp 73–77.
follow when creating reusable components. Properly [16] J. Coplien, D. Hoffman, and D. Weiss, “Commonality and
created components are, for example, easier to index and variability in software,” IEEE Software vol. 15, no 6,
searched for in the repository. Nov.-Dec. 1998, pp 37-45.
It is agreed upon that software reuse has not reached its [17] K. C. Kang, J. Lee, and P. Donohoe, “Featured Oriented
full potential. Even though more and more organizations Product Line Engineering,” IEEE Software vol. 15, No 6,
are adopting reuse successfully, systematic reuse has not pp 58-65, July-Aug. 2002.

International Conference on Information Technology (ITNG'07)


0-7695-2776-0/07 $20.00 © 2007
[18] C. Atkinson, J. Bayer and D. Muthig, “Component-Based
Product Line Development: The KobrA Approach,“ 1st
International Software Product Line Conference, Denver,
2000. pp 289-310.
[19] H. Gomaa, Designing Software Product Lines with UML:
From Use Cases to Pattern-Based Software Architectures.
Addison-Wesley, 2004.
[20] M. L. Griss, “Software Reuse at Hewlett-Packard,”
Hewlett-Packard Company Technical Repost, 1991.
[21] M. L. Griss and A. Wosser, “Making Reuse Work at
Hewlett-Packard.” IEEE Software, vol. 12, no. 1, Jan.,
1995, pp. 105-107.
[22] A. Tomer, L. Goldin, T. Kuflik, E. Kimchi, and S. R.
Schach, "Evaluating Software Reuse Alternatives: A
Model and Its Application to an Industrial Case Study,"
IEEE Transactions on Software Engineering, vol. 30, no.
9, Sept., 2004, pp. 601-612.
[23] O. Lee, P. Banerjee, K. Lim, K. Kumar, J. Hillegersberg,
and K. Wei, “Aligning IT components to Achieve Agility
in Globally Distributed System Development,”
Communications of the ACM, vol. 49, no 10, Oct. 2006,
pp 49-54.

International Conference on Information Technology (ITNG'07)


0-7695-2776-0/07 $20.00 © 2007

View publication stats

You might also like