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

A Model and Its Algorithm For Software Reuse Optim

This document presents a model and algorithm for optimizing software reuse by considering both cost and reliability. The model defines six reuse modes based on application and domain engineering activities. It then formulates cost and reliability models corresponding to these modes. An optimization model is developed as a bi-objective 0-1 integer program to select reuse scenarios that minimize cost, maximize reliability, and satisfy requirements. A three-phase algorithm is presented to solve for the set of efficient solutions to the optimization problem.

Uploaded by

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

A Model and Its Algorithm For Software Reuse Optim

This document presents a model and algorithm for optimizing software reuse by considering both cost and reliability. The model defines six reuse modes based on application and domain engineering activities. It then formulates cost and reliability models corresponding to these modes. An optimization model is developed as a bi-objective 0-1 integer program to select reuse scenarios that minimize cost, maximize reliability, and satisfy requirements. A three-phase algorithm is presented to solve for the set of efficient solutions to the optimization problem.

Uploaded by

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

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

net/publication/267405703

A model and its algorithm for software reuse optimization problem with
simultaneous reliability and cost consideration

Article  in  International journal of innovative computing, information & control: IJICIC · May 2011

CITATIONS READS

7 156

4 authors, including:

Jiafu Tang C.K. Kwong


Northeastern University (Shenyang, China) The Hong Kong Polytechnic University
229 PUBLICATIONS   3,125 CITATIONS    177 PUBLICATIONS   3,474 CITATIONS   

SEE PROFILE SEE PROFILE

C. Y. Chan
The Hong Kong Polytechnic University
63 PUBLICATIONS   498 CITATIONS   

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Computational Intelligence for Affective Product Design View project

PhD project: Machine Learning-based generative hyper-heuristics View project

All content following this page was uploaded by Jiafu Tang on 13 January 2015.

The user has requested enhancement of the downloaded file.


International Journal of Innovative
Computing, Information and Control ICIC International ⃝2011
c ISSN 1349-4198
Volume 7, Number 5(B), May 2011 pp. 2611–2621

A MODEL AND ITS ALGORITHM FOR SOFTWARE REUSE


OPTIMIZATION PROBLEM WITH SIMULTANEOUS
RELIABILITY AND COST CONSIDERATION

Zhiqiao Wu1 , Jiafu Tang1 , Chun Kit Kwong2 and Ching Yuen Chan2
1
Department of Systems Engineering
Key Lab of Integrated Automation of Process Industry of MOE
Northeastern University
No. 11, Lane 3, Wenhua Road, Heping District, Shenyang 110819, P. R. China
[email protected]; [email protected]
2
Department of Industrial and Systems Engineering
The Hong Kong Polytechnic University
Hung Hom, Kowloon, Hong Kong, P. R. China
{ mfckkong; mfcychan }@polyu.edu.hk

Received January 2010; revised May 2010

Abstract. In this paper, a model is proposed where the cost and reliability of activities
of reuse-based development can be predicted or measured, and all possible reuse scenarios
can be analyzed and compared to support the selection of alternative scenarios. A scheme
of typical reuse mode is designed from the perspectives of application engineering and do-
main engineering activities. According to the scheme, six reuse modes are addressed from
the sequences of activities. Alternative industry reuse scenarios can be derived from the
modes. An optimization model is proposed that can assist decision-makers in selecting
a reuse scenario for minimizing cost, maximizing reliability and satisfying system re-
quirements. To solve efficiently the bi-objective 0-1 integer programming involved in the
model, a new algorithm is presented that can find the entire set of efficient solutions.
Keywords: Software reuse, Reuse models, Optimization models, Bi-objective program-
ming problems, Efficient solution

1. Introduction. In recent years, a significant number of efforts have been spent on


techniques and methods to define the “grain” of software reuse components, such as the
recent research on Software Product Line (SPL) [1,2]. However, selecting an appropriate
set of components to satisfy the functional and non-functional requirements of a system
is difficult. The task is dependent on the experience, especially on the non-functional
requirements such as cost and reliability. Non-functional requirements are important to
develop a successful software application. As shown by Tomer [3], software reuse is not
merely a technical issue. The organizational challenges of software reuse outweigh the
technical questions. The functional properties of component assemblies are usually easier
to model and validate compared with non-functional properties. The reuse activities in
software design should be systematically measured or estimated, and alternative reuse
scenarios should be evaluated and compared for effective support of the whole reuse
process. However, only a few methodologies were developed to support the automation
of an assembly process on the non-functional requirements. Many selection models of
reuse strategy are aimed to address the issue of systematically increasing the efficiency
of software reuse [4-7]. Very few studies provide a method for precisely analyzing and
evaluating alternative scenarios of various reuses. Therefore, a systematic framework of

2611
2612 Z. WU, J. TANG, C. K. KWONG AND C. Y. CHAN

software development process to support analyzing, comparing and selecting particular


development scenarios and to guide the component implementation is required [8].
One of the major constraints of software development projects in the industry is the
limited budget. The best solution for software development may not be feasible due to
high costs. Some software systems are adapted to human life. Thus, a trifling fault
of the components of large-scale reuse components would largely affect the functions of
the entire software systems. Therefore, the reliability of software component and its
reuse implementation is important. Thus, nearly all the optimal methods developed in
previous research focus on weighing the system cost or reliability. The objective functions
considered in the models can be categorized into two classes: maximizing reliability [9-11]
and cost-minimization [12-14]. However, previous works did not provide methods that
consider the two objective functions simultaneously. In fact, the relationship between
system cost and reliability is complex and nonlinear. The current research attempts to
deal with the selection problem of reuse scenario with consideration of cost and reliability
in a reuse-based software development.
Although no previous studies directly investigated the aforementioned issue, related
studies were conducted by Tomer. These studies showed that the major sticking point in
software reuse is not the implementation technique but the outstanding organization in
the entire development process [3]. Main discussions focused on reuse strategy decision
for supporting the reuse activity and proposed a variety of formal approaches [4]. How-
ever, all the approaches of the previous studies only provide outlines in selecting reuse
strategy based on qualitative analysis, and only a few support automation of the task in
a quantitative way. As an extended work of the previous studies, a systematic definition
of various reuse scenarios that can be used to weigh the different alternatives for scenario
choice is developed in this study.
An important breakthrough in this field is the introduction of optimization techniques
[9,15], which quickly drew the attention of scholars [12]. Jung proposed a 0-1 knapsack
model to select a set of software requirements to yield maximum value while minimiz-
ing costs. The concept of value can be interpreted as an implementation priority [15].
Considering the reliability growth as a function of cost, Berman and Cutler proposed an
optimization model to maximize the reliability of an assembly of assignments under a
budget constraint [9]. Thereafter, a number of studies considered the setback as a cost-
minimization problem within a reliability constraint. Cortellessa developed a model that
treats component selection as a cost-minimization problem under delivery time and qual-
ity constraints [13]. Cortellessa further introduced goal-oriented requirement engineering,
which describes the satisfaction level of system requirements in the requirement analysis
process [16]. For this reason, this research adopts the approach of Cortellessa to ensure
the satisfaction of the system requirements under constraints.
In this paper, a model for identifying possible reuse activities and scenarios involved
in reuse process is proposed. The scheme of a typical reuse mode is described from the
perspectives of application engineering and domain engineering. According to the scheme,
six reuse modes are identified. The formulation of cost and reliability model corresponding
to these modes is presented. By defining the variables to represent alternative industrial
reuse scenarios, a bi-objective 0-1 integer programming model can be developed to help
decision-makers simultaneously select reuse scenarios for minimizing cost and maximizing
reliability, and satisfy system requirements. To solve the model, a three-phase based
entire efficient solution algorithm is developed. In the first two phases, all supported
efficient solutions are obtained. In the third phase, the non-supported efficient solutions
are determined.
A MODEL AND ITS ALGORITHM FOR SOFTWARE REUSE OPTIMIZATION PROBLEM 2613

The paper is organized as follows. Section 2 describes the typical reuse modes and their
cost and reliability formulation. In Section 3, a model of Cost and Reliability Optimization
under a goal Satisfaction constraint (CROS) is described. The model is expected to
achieve the highest reliability and the lowest cost while keeping the satisfactory values of
system requirements. Section 4 describes an entire efficient solution method to solve the
problem. Finally, conclusions and future work directions are given in Section 5.
2. Typical Reuse Modes and Their Cost and Reliability Formulation. In this
section, all possible reuse modes from the viewpoints of the product line [17] are formu-
lated. Clements summarized the activities in a product line using two main circles: core
asset development and product development [2]. As the issue of reuse strategies has been
introduced [3], operations categorization is reinvestigated and a logic map is created for
a common SPL process as shown in Figure 1.

Figure 1. Operations in an SPL


The track in Figure 1 denotes a product line where artifact assets circulate. The gray
range in the two circles are assets that have the ability to rebuild components, codes or
other resources for any specific reuse (i.e., ➆, ➄). The two circles are not isolated and
allow asset exchange using some operations (i.e., ➂, ➃) as well as build a new asset for
reuse (i.e., ➁, ➅). Furthermore, an organization can obtain assets from the outside (i.e.,
➀). However, no matter in which mode an asset is gained, the terminal aim is to reuse
them (i.e., ➇, ➈) for a specific target system. The categories are operations of asset
acquisition and asset development from the perspectives of domain engineering and ap-
plication engineering respectively [8]. To summarize the aforementioned operations, the
authors contrive and identify six typical reuse modes: pure development (PD), oppor-
tunistic reuse (OR), controlled reuse (CR), systematic reuse-COTS (SRC), systematic
reuse-adapted (SRA) and systematic reuse-new (SRN) (Figure 2).
2614 Z. WU, J. TANG, C. K. KWONG AND C. Y. CHAN

Figure 2. Typical reuse modes

The node denoted by a circle refers to an operation with a specific number. An edge
between two nodes indicates the presence of an arc between the two operations. The star
(*) indicates that operational costs and the failure rate accumulate in case of operation
repetitive execution in an SPL. Each typical reuse mode corresponds to a route from a
leaf node, such as nodes 1, 2, 3, 5 and 6, to the root node, such as asset, through one or
several operations. For example, the low-level reuse mode, PD, represents a reuse case in
which a module is developed from scratch through white-box reuse. The high-level reuse
mode, SRC, indicates that the COTS asset is bought from the market. Subsequently,
the COTS asset will undergo modifications and adaptations to convert it to a reusable
asset for the product line. In a software development project, each reuse scenario can be
derived from a special mode. Considering the characteristics of assets possessed by an
organization, software developers can directly produce and weigh alternative scenarios’
cost (c) and failure rate (η) based on the above mentioned operations.

3. Mathematical Modeling for Selecting Reuse Scenario. In this section, the prob-
lem formulation and modeling of goal satisfaction constraints as well as cost and reliability
are described.

3.1. Problem formulation and notations. Assuming an SPL to be developed has n


modules. Each module can be built using an optional alternative reuse scenario belonging
to one of the six typical modes from PD to SRC. Referring to the goal-oriented requirement
engineering approach [18], the functional or non-functional requirements are referred to as
goals. The goal-oriented requirement engineering approach matches the goals of system
and the features of reuse scenarios through modules as shown in Figure 3. With this
approach coupled with the hierarchical scheme, the problem to be addressed by software
developers will be how to select a reuse scenario for building each module by minimizing
total developing cost and maximizing system reliability under the constraints of goal
satisfaction.
A MODEL AND ITS ALGORITHM FOR SOFTWARE REUSE OPTIMIZATION PROBLEM 2615

Figure 3. Hierarchical scheme of the goal-oriented requirement approach

To formulate the reuse scenario selecting problem, the following notations are used
throughout this paper:
n Number of modules within a target SPL system
mj Number of reuse scenarios available for module j
cij Cost of reuse scenarios i for module j
ηij Failure rate of reuse scenarios i for module j
sij The average of invocations on module j with reuse scenarios i
Satij (k) Satisfaction level of goal k when module j is implemented by using
scenario i
xij Decision variable, which is equal to 1 when module j is implemented
by using scenario i and 0, otherwise

3.2. Modeling of goal satisfaction constraints. Many methods of requirement anal-


ysis were proposed to evaluate functional and non-functional attributes [18-22]. In this
paper, the goal-oriented requirements engineering, widely used by researchers and prac-
titioners [20-22], is applied to reflect the goals of a target system.
Assuming that satisfaction level Satij (k) is obtained by matching scenario preference
up to a certain pattern, and its value corresponds to integer number within the range [0,
1], the overall performance of module j can be obtained as

K
Satij = τk × Satij (k) (1)
k=1

where τk is the weight of goal k. The targeted software system should at least meet an
overall satisfaction level R. The formulation can be shown as

n ∑
mj

ωj Satij xij ≥ R (2)


j=1 i=1

where ωj is the weight of module j. The analytic hierarchy process (AHP) is used to
determine the ωj of the module based on the access frequencies of the modules [23].
2616 Z. WU, J. TANG, C. K. KWONG AND C. Y. CHAN

3.3. Modeling of cost and reliability. The objective functions of the reuse scenario
selection problem are to minimize overall cost of a software system and to maximize
system reliability.
Let cij be the cost of reuse scenarios i for module j. The overall cost of a software
system can then be given as follows:

n ∑
mj

min cij xij . (3)


j=1 i=1

The parameter cij is depended on its reuse mode as discussed in Section 2. Similarly,
for a module j with the reuse scenario i, reliability of a module can be formulated in
terms of failure rate ηij , which is also depended on its reuse mode. The formulation of
the reliability of an entire SPL is described as follows.
Let pj define the probability of at least one failure occurrence when the module j is in-
voked in system execution. Referring to the work of Berman [9], the effect of failures from
a module can be represented in an exponential function. One can obtain the probability
that no failure occurs during an execution of module j as follows:
[ mj ]

1 − pj = exp − sij ηij xij , ∀j. (4)
i=1

In view of the Poisson probability principle, which states that the probability of a
failure occurring is proportional to the length of sojourn time, and the assumption that
an operation of each module is independent, the probability of the occurrence of no failure
in a software system may be formulated as
[ n mj ]
∏n ∑∑
(1 − pj ) = exp − sij ηij xij . (5)
j=1 j=1 i=1

Accordingly, to maximize the reliability of a software system, the probability of at least


one failure occurrence in a system during the execution of a call run should be minimized.
It can be expressed as follows:
( ) ( [ n mj ])
∏n ∑∑
min 1 − (1 − pj ) = min 1 − exp − sij ηij xij . (6)
j=1 j=1 i=1

Based on the above equation, it can be concluded that an optimization model for
reuse scenario selection problem with minimized cost and maximized reliability under
constraints of goal satisfaction (CROS) can be formulated as follows:

n ∑
mj

min cij xij (7)


j=1 i=1
( [ ])

n ∑
mj

min 1 − exp − sij ηij xij (8)


j i


n ∑mj

s.t. ωj Satij xij ≥ R (9)


j=1 i=1
mj

xij = 1, ∀j (10)
i=1
xij = 0/1, ∀i, j. (11)
A MODEL AND ITS ALGORITHM FOR SOFTWARE REUSE OPTIMIZATION PROBLEM 2617

4. Development of Three-phase Algorithm for Obtaining Effective CROS So-


lutions.
4.1. Algorithm concept. Assuming that the failure that occurred in a module is equiv-
alent to a failure in the SPL, then the objective function (8) of minimizing the probability
is equally interpreted as minimizing the failure rate of SPL. Subsequently, the optimal
solution to the objective function can be determined by the following equation:

n ∑
mj

min sij ηij xij . (12)


j i

In contrast to the single-objective optimization, solution to the multi-objective problem


is not in the form of a simple unique solution. Often, the solution should be represented
by a set of points that satisfies the predetermined conditions. The predominant concept
in defining an optimal point is the Pareto optimality, where the corresponding solution
called non-dominated solution is defined below.
Definition 4.1. A feasible solution x is said to be efficient if and only if there is no feasible
solution y, such that zk (y) ≤ zk (x), k = COS, REL, and zk (y) < zk (x) for at least one
k. The image of an efficient solution in the criterion space is called a non-dominated
solution.
Given a preference value λ in [0, 1], let
z(x, λ) = λzCOS (x) + (1 − λ)zREL (x) (13)
be the weighted-sum of the two original objective functions, where preferences refer to
the opinions of the decision-maker concerning points in the criterion space.
In this paper, a method to obtain the entire efficient solutions (Pareto optimal set) and
to provide the trade-off information on solutions is presented. This is done by minimizing
the weighted-sum of the objective function (13) subject to the defined constraints of Equa-
tions (9), (10) and (11); this is called the Supported Efficient Solutions (Supported-ES).
However, the non-supported efficient solutions (Non-supported-ES) cannot be obtained
this way because they are located in the dual gaps of consecutive supported non-dominated
solution [24].
Dantzig [25] showed that an optimal solution for the continuous 0-1 knapsack problem
could not be obtained by sorting the items according to their non-increasing profit-to-
weight ratios (also called efficiencies) and by adding them to the knapsack until the
capacity is reached. Clearly, CROS is similar to the bi-objective 0-1 integer knapsack
problem. Thus, this paper proposes a three-phase based entire efficient solution method
for the bi-objective 0-1 integer programming. For the purpose of effectively presenting
the proposed methodology, some basic concepts and notions are given as follows.
ij c
Definition 4.2. Cost-satisfaction ratio: αij = ωj Sat ij
. It represents the payment for
enhancing a unit satisfaction of requirements when module j is accomplished by reusing
in scenario i.
s η
Definition 4.3. Reliability-satisfaction ratio: βij = ωjijSatijij . It represents the decreased
reliability (failure rate increased) for increasing one unit satisfaction of requirements when
module j is accomplished by reusing in scenario i.
For a module j using the reuse scenario i, aggregated efficiency eij (λ) is defined as a
function of λ:
eij (λ) = αij λ + βij (1 − λ) = βij + (αij − βij )λ. (14)
2618 Z. WU, J. TANG, C. K. KWONG AND C. Y. CHAN

It becomes the jointed effort on cost and reliability to enhance one unit of satisfaction of
requirements in module j when used in scenario i.
For any module j with given λ′ , an aggregated efficiency can be ordered as
el1 j (λ′ ) ≤ . . . ≤ eli j (λ′ ) ≤ eli+1 j (λ′ ) ≤ . . . ≤ elmj j (λ′ ), where ⟨l1 , . . . , lmj ⟩ = ⟨1, . . . , mj ⟩.
(15)
To determine the efficient solution, the efficiency ratios have to be sorted using Equa-
tion (15). Certain efficient/non-dominated solutions can be obtained by minimizing the
weighted-sum of the objective functions (i.e., Supporting-ES). The corresponding sorting
is called Efficient Order (EO).
4.2. The first phase: Determination of module efficient orders (EOs). The EO
of the subintervals for λ of each module will be determined. As λ changes within [0, 1], the
order defined in Equation (15) is not stable [24,26]. Hence, dividing λ into subintervals
([0, u1j ], . . . , [utj , ut+1j ], . . . , [u−j , 1]) for every module j such that the order of Equation
(15) has to be maintained, the procedure is as follows:

Procedure-1: Determine EOs and subintervals for module j


Begin
Step 1: Initiation: t ← 0, λt ← 0, utj ← 0
Step 2: Sort items according to relation in (15) with λt
Step 3: Solve the upper bounds problem
Max λ
s.t. eli j (λ) ≤ eli+1 j (λ), i = 1, . . . , mj − 1, 0 ≤ λ ≤ 1
Let λmax be the optimal solution.
If λmax ≥ 1, then t ← t + 1, utj ← 1.
If (all intervals have been determined), then stop,
else go to Step 4.
Step 4: t ← t + 1, utj ← λmax , λt ← λmax + ε (perturbation factor, ε > 0).
Go to Step 2.
End

Using Procedure-1, we can obtain all EOs (l1 , l2 , . . . , lmj ) and their corresponding subin-
tervals for λ for every module (j = 1, . . . , n). The intervals ([0, v1 ], . . . , [vg , vg+1 ], . . . , [vG , 1])
can then be determined by combing the subintervals of every module while keeping the ag-
gregated efficiency of all the modules unchanged. Due to the parallel nature of Procedure-
1, the intervals of each module regarding λ can be executed on separated processors [27].
4.3. The second phase: Obtaining supported efficient solution set. Once the
EOs of the module have been constructed, the next step is to obtain the Supported-ES
set. This is done by using a greedy procedure traversing on the intervals of λ determined
in the first phase. The detailed operation is shown below.

Procedure-2: Determination of Supported-ES set by greedy procedure


Begin
Step 1: Initiation h ← 0, g ← 0, λh ← 0, Ef f icientSet ← {ϕ}, ExploreSet ← {ϕ}.
Step 2: Find xli j where min eli j and λh ⊆ {utj , ut+1j }, according to the corresponding
li
EO. Update ExploreSet ∪ {xli j }, Ef f icientSet ∪ {xli j } for all j.
Step 3: Loop up to accepted level of satisfaction R (requirements):
Find xli+1 j and xli j where min(eli+1 j − eli j ) and unlocked, according to the
j
corresponding EO.
A MODEL AND ITS ALGORITHM FOR SOFTWARE REUSE OPTIMIZATION PROBLEM 2619

If xli+1 j = non, then set xli j locked


else update ExploreSet ∪ {xli+1 j }, Ef f icientSet ← {xli+1 j }.
Step 4: If Dantzig rule [25] is not satisfied
Save the Supported-ES,
Set Ef f icientSet ← {ϕ},
ExploreSet ← {ϕ}.
Step 5: λh = vg+1 + ε (perturbation factor, ε > 0).
If λh ≥ 1, then Stop (all the intervals have been determined),
else go to Step 2.
End

Using Procedure-2 for every module, the entire set of Supported-ES can be obtained.
Each solution can associate with the trade-off information of λ.
4.4. The third phase: Determination of non-supported efficient solutions (non-
supported ESs). Based on the experimental results, the Supported-ES set is very close
to all efficient solutions [26]. However, dropped Non-supported-ESs are located in the
triangular sectors generated in the objective space by two successive Supported-ES [24].
These are represented in Figure 4.

Figure 4. Method of obtaining efficient solutions

Therefore, an exact procedure starts with the Supported-ES set, which can be employed
to determine the Non-Support ESs. The additional step is to guarantee that the decision
space is explored completely.

Procedure: Determining Non-Supported ESs


Begin
Step 1: Obtain the Supported-ES set constructed.
Step 2: Limit the search space in the objective space – The lower bound of the objec-
tive space is the stepped line that connects the solutions from the Supported-
ES set, and the upper bound is the line connecting the extreme non-dominated
solutions from the linear relaxation (region Znon in Figure 4).
Step 3: Select the branch-and-bound [24] or dynamic programming method [28] to
explore the reduced objective space; the reduced problems can be solved by
using general approaches (or their adaptations) for solving multi-objective 0-1
integer programming problems.
End
2620 Z. WU, J. TANG, C. K. KWONG AND C. Y. CHAN

In addition, the aggregated functions can be used to define bounds to cover the entire
reduced objective space. The upper and lower bounds for these functions (the limits
for the rooms) can be derived to provide “optimal” value for some variables to obtain
non-dominated solutions within the rooms (Figure 4). When all the rooms have been
completely explored, the result is in the ES set. Using the three phases cited above, the
ESs found are the “optimal” solution to the CROS model.

5. Conclusions and Future Work Directions. This paper presents a method to ex-
amine the cost and reliability of reusing modules in the creation of software products by
employing the product line approach. The CROS model based on binary non-linear pro-
gramming was developed to assist the decision-maker to select alternative reuse scenarios
towards simultaneous cost minimization and reliability maximization while satisfying sys-
tem requirements to a certain degree. A three-phased algorithm for finding all efficient
solutions was discussed, and preference-based decision and budget constrained decision
method were provided to support the decision-maker in choosing a good solution from
the entire range of efficient solutions.
This paper focuses on the optimization of cost and reliability, which are generally the
important factors in product line development. However, other factors, such as time-to-
market and component supplier selection, are also expected to be included in the reusing
software assets. We are currently working on extending our model to include these factors.

Acknowledgment. This work was financially supported by the National Natural Sci-
ence Foundation of China (NSFC) (70721001, 70625001), the National 973 Basic Research
Project (2009CB320601) and the Fundamental Research Funds for the Central Univer-
sities (N090604004). This work was also supported by a grant from The Hong Kong
Polytechnic University, Hong Kong, China (Project No. G-YJ09). The authors would
like to thank the reviewers for their valuable comments and suggestions that helped us
improve this paper.

REFERENCES

[1] F. Ahmed and L. F. Capretz, The software product line architecture: An empirical investigation of
key process activities, Information and Software Technology, vol.50, no.11, pp.1098-1113, 2008.
[2] P. C. Clements, L. G. Jones and L. M. Northrop, Project management in a software product line
organization, IEEE Computer Society, vol.22, no.5, pp.54-62, 2005.
[3] 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, pp.601-612, 2004.
[4] M. A. Rothenberger, K. J. Dooley, U. R. Kulkarni and N. Nada, Strategies for software reuse: A
principal component analysis of reuse practices, IEEE Transactions on Software Engineering, vol.29,
no.9, pp.825-837, 2003.
[5] B. Morel and P. Alexander, SPARTACAS automating component reuse and adaptation, IEEE Trans-
actions on Software Engineering, vol.30, no.9, pp.587-600, 2004.
[6] R. V. Ommering, Software reuse in product populations, IEEE Transactions on Software Engineer-
ing, vol.31, no.7, pp.537-550, 2005.
[7] R. W. Selby, Enabling reuse-based software development of large-scale systems, IEEE Transactions
on Software Engineering, vol.31, no.6, pp.495-510, 2005.
[8] Z. Q. Wu, J. F. Tang and L. Y. Wang, An optimization framework for reuse scenarios selection in
software product line, Proc. of Chinese Control and Decision Conference, Guilin, China, pp.1880-
1884, 2009.
[9] O. Berman and M. Cutler, Optimal software implementation considering reliability and cost, Com-
puters & Operations Research, vol.25, no.10, pp.857-868, 1997.
[10] O. Berman and N. Ashrafi, Optimization models for reliability of modular software systems, IEEE
Transactions on Software Engineering, vol.19, no.11, pp.1119-1123, 1993.
A MODEL AND ITS ALGORITHM FOR SOFTWARE REUSE OPTIMIZATION PROBLEM 2621

[11] Y. Liu, C. Wei and S. Gao, Research on software reliability modeling based on stochastic petri nets
and module level software rejuvenation, ICIC Express Letters, vol.3, no.3(B), pp.607-613, 2009.
[12] V. Cortellessa, F. Marinelli and P. Potena, Automated selection of software components based on
cost/reliability tradeoff, Lecture Notes in Computer Science, vol.4344, pp.66-81, 2006.
[13] V. Cortellessa, F. Marinelli and P. Potena, An optimization framework for “build-or-buy” decisions
in software architecture, Computers & Operations Research, vol.35, no.10, pp.3090-3106, 2008.
[14] B. W. Boehm and R. Valerdi, Achievements and challenges in Cocomo-based software resource
estimation, IEEE Software, vol.25, no.5, pp.74-83, 2008.
[15] H. W. Jung, Optimizing value and cost in requirements analysis, IEEE Software, vol.15, no.4, pp.74-
78, 1998.
[16] V. Cortellessa, I. Crnkovic, F. Marinelli and P. Potena, Experimenting the automated selection of
COTS components based on cost and system requirements, Journal of Universal Computer Science,
vol.14, no.8, pp.1228-1255, 2008.
[17] B. Boehm, Managing software productivity and reuse, IEEE Computer Society, vol.32, no.9, pp.111-
113, 1999.
[18] A. V. Lamsweerde and E. Letier, Handling obstacles in goal-oriented requirements engineering, IEEE
Transactions on Software Engineering, vol.26, no.10, pp.978-1005, 2000.
[19] L. Lin and H.-M. Lee, A new algorithm of software quality evaluation for user satisfaction, Inter-
national Journal of Innovative Computing, Information and Control, vol.4, no.10, pp.2639-2647,
2008.
[20] C. Alves, COTS-based requirements engineering, Component-Based Software Quality: Methods and
Techniques, vol.2693, pp.21-39, 2003.
[21] E. Letier, J. Kramer, J. Magee and S. Uchitel, Deriving event-based transition systems from goal-
oriented requirements models, Automated Software Engineering, vol.15, no.2, pp.175-206, 2008.
[22] D. Amyot, Introduction to the user requirements notation: Learning by example, Computer Net-
works, vol.42, no.3, pp.285-301, 2003.
[23] H. W. Jung and B. Choi, Optimization models for quality and cost of modular software systems,
European Journal of Operational Research, vol.112, no.3, pp.613-619, 1999.
[24] M. Visee, J. Teghem, M. Pirlot and E. L. Ulungu, Two-phases method and branch and bound
procedures to solve the bi-objective knapsack problem, Journal of Global Optimization, vol.12, no.2,
pp.139-155, 1998.
[25] G. B. Dantzig, Discrete-variable extremum problems, Operations Research, vol.5, no.2, pp.226-288,
1957.
[26] C. G. D. Silva, J. Climaco and J. R. Figueira, Core problems in bi-criteria {0, 1}-knapsack problems,
Computers & Operations Research, vol.35, no.7, pp.2292-2306, 2008.
[27] T.-Y. Lee, Y.-H. Fan, Y.-M. Cheng and C.-C. Tsai, Hardware-software partitioning for embedded
multiprocessor FPGA systems, International Journal of Innovative Computing, Information and
Control, vol.5, no.10(A), pp.3071-3083, 2009.
[28] C. Bazgan, H. Hugot and D. Vanderpooten, Solving efficiently the 0-1 multi-objective knapsack
problem, Computers & Operations Research, vol.36, no.1, pp.260-279, 2009.

View publication stats

You might also like