Vous êtes sur la page 1sur 5

International Journal of Engineering Trends and Technology (IJETT) - Volume4Issue5- May 2013

ISSN: 2231-5381 http://www.ijettjournal.org Page 2030



Architecture Based Optimization Incorporating
Component Reuse Effort
M.Yuvaraju
#1
, V.Nimmi
*2
#
Assistant Professor, Dept. of IMER Anna University Regional Centre, Coimbatore, India
*Final Year ME, Dept. of CSE Anna University Regional Centre, Coimbatore, India

Abstract--Architecture based optimization considers the
architecture of the application in the optimization process. An
optimization framework systematically determines the amount of
effort allocated to each component in order to achieve a specified
reliability target with minimal effort. The framework
incorporates the impact of component reliabilities, architectural
context and effort to reliability relationship in an integrated
manner. The best solution for software development may not be
feasible due to high costs. Thus, 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 .Based on
historical effort metric repositories we proposed that the
component reuse effort can be integrated into the optimization
model.
Keywords Architecture based optimization, software
architecture, software reliability, and historical effort metric
repositories.
I. INTRODUCTION
Architecture of software is the software behaviour with
respect to the manner in which different modules of software
interact. Interactions occur by execution control transfer.
Software architecture also includes information about
execution time of each module. Failure behaviour of the
modules and the interfaces between the modules can be
specified in terms of reliabilities or failure rates. Architecture
based approach is used in order to understand how the system
reliability/performance depend on its component
reliabilities/performance and their interactions [1].
This approach can also be used to allocate effort to
components that have greatest impact on system level
reliability. This lead to the development of a system of desired
reliability level on the basis of reuse of specific set of
components. One of the major constraints of software
development projects in the industry is the limited budget .The
faults in components of large scale reuse will affect the
functions of entire software system. Hence reliability of a
software component and its reuse implementation is very
important. 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. Many selection models of
reuse strategy are aimed to address the issue of systematically
increasing the efficiency of software reuse [2]. Therefore, a
systematic framework of software development process to
support analysing, comparing and selecting particular
development scenarios and to guide the component imple-
mentation is required.
Architecture based analysis is a strong method for
evaluating the reliability of an application software, and to
provide guidance for reliability improvement in a cost
effective manner. Thus the proposed method incorporates the
component reuse effort in optimization process. Therefore
specified reliability target can be achieved by efficiently
allocating the limited testing effort to critical components that
have greatest impact on system level reliability. By
incorporating the component reuse effort, reliability
improvement can be performed in a cost effective manner in
software application.
The layout of the paper is as follows. Section II presents
some related research. Section III describes architecture based
optimization. Section IV provides an overview of the
proposed method. Section V includes results and discussion
and Section VI offers conclusion and future works.
II. RELATED WORKS
In this section we briefly discuss the related works
addressing architecture based optimization in component
based software systems. The motivations for Architecture
Based Approach to Reliability assessment of software systems
[3] include the following: Developed techniques to analyse the
reliability and performance of applications built from reusable
and COTS software components. Understanding how the
system reliability/performance depends on its component
reliabilities/ performance and their interactions. Studying the
sensitivity of the application reliability to reliabilities of
components and interfaces. Guiding the process of identifying
critical components and interfaces. Developing techniques for
quantitative analysis that are applicable throughout the
software life cycle.
In optimal resource allocation and reliability analysis for
component based software system they proposed an analytical
method for evaluating the reliability of a component based
software system [4]. They also proposed the formulation and
efficient solutions of two resource allocation problems:1)
Minimization of the remaining faults when a fixed amount of
testing-effort is given, and 2) minimization of the required
amount of testing-effort when a specific reliability
requirement is given. Then they experimentally prove that the
International Journal of Engineering Trends and Technology (IJETT) - Volume4Issue5- May 2013
ISSN: 2231-5381 http://www.ijettjournal.org Page 2031

proposed technique can solve the testing-effort allocation
problems and improve the quality and reliability of a software
system.

Architecture based approach is used in the context of
software systems built as a heterogeneous mixture of reused
and newly developed COTS components. There are many
recent studies in effort reliability relationships, optimization
approaches and reusability of software components. The
important functional forms for effort reliability relationships
are exponential testing effort [5], Rayleigh testing effort [6] ,
Logistic Testing Effort [7] and Weibull Testing effort [8].

Mathematical programming techniques are used for effort
optimization [9]. Assessment of reliability of individual
components are based on factors such as whether the
component code is available or not, whether the component is
newly developed or reused and the testability of the
component. Classification of different techniques for
optimization and reuse of components are presented in [10].
III. ARCHITECTURE BASED
OPTIMIZATION
Architecture based optimization presents an optimization
framework which determines the level of effort allocated to
each component in-order to achieve a specific reliability target
with minimal effort. This method requires the system
reliability expression and effort to reliability function for each
component. The objective of the optimization and the
constraints on allocating effort to the component are as
follows [1].
Minimize = c
i
n
i=1
= e
Subject to : R R

i( c

0), and
c

inf { c

R : r

1.0} (1)
Where e is the total effort expended on all the components and
c

be the effort expended on component i. R and R



are the
component reliability vector and application reliability target
respectively.
System reliability is a function of the transition
probabilities between the components and the component
reliabilities. The component reliabilities are functions of the
efforts. Therefore, the system reliability explicitly considering
architecture through the transition probability matrix P and
component efforts through the composition of system and
component level modelling techniques.
A. Markov Process to Model the Architecture of a Component
Based Software System
When the architecture is available, one can build a
simulation model and conduct studies and investigate the
impact of components on system reliability and performance
for a given architecture. Not only the failure behaviour [2] of
each component can be specified but also the architecture of a
component-based software system can be modelled as a
Markov process. A software system contains a collection of
logically independent components which can be implemented
and tested individually. The transfer of control among the
components follows the rules of Markov Process. The
probability of transition from one component to another is
determined from the operational profile of a system.
Operational profile represents how the application will be
used in the field. Transfer of control between components is
independent of the past history and depends only on present
component. Architecture of a software system describes the
system behaviour with respect to the manner in which
different modules of a system interact. We consider systems
with different architecture styles and utilize the Markov
process to model the failure behaviours of the applications.
Architecture based approach is used to calculate the system
reliability from component information. There are three
different approaches to combine architecture with failure
behaviour (i).state based models (ii) path based models and
(iii) additive approach. State based models use control flow
graph to represent the architecture of a system. Architecture of
an application can be modelled as a Discrete Time Markov
Chain (DTMC), Continuous Time Markov Chain (CTMC) or
Semi Markov Process (SMP).

i) System Level Modelling
Architecture of an application is represented by a program
flow graph with single entry and exit points. Where an
absorbing Discrete Time Markov Chain matrix [11] represent
the transfer of control among the modules, with a transition
probability matrix P=[p

]
]. Reliability of a module i is the
probability Ri, that the module performs its functions
correctly. Application begins execution in module one,
produces correct output then transfers controls to next module
and terminate after module n completes. Two absorbing state
C and F are added to the DTMC matrix of the application
architecture, representing the correct output and failure of the
application. Then the transition probability is modified
toR

P
]
, which is the modification of original transition
probability between modules i and j. which denotes that
module i produces the correct output and control transfers to
module j. Reliability of an application is the probability of
reaching the absorbing state C of the application. To denote
the correct execution, create a directed edge from final state n
to the absorbing state C with transition probabilityR
n
.
Similarly failure behaviour is denoted by creating a directed
edge from final state to absorbing state F with transition
probability ( 1-R

). Let Q be the matrix obtained from the


DTMC matrix by deleting rows and columns corresponding to
the absorbing states C and F. Let
n
(1,n) denotes the
probability of reaching state n from state 1 through k
transitions. Values of k varies from 0 to during the
transition from state 1 to state n .So the overall system
reliability can be computed as
R=S(1,n) R
n
(2)
International Journal of Engineering Trends and Technology (IJETT) - Volume4Issue5- May 2013
ISSN: 2231-5381 http://www.ijettjournal.org Page 2032

This modelling is used to estimate the reliability of various
heterogeneous software architectures such as batch-
sequential/pipeline, call-and-return, parallel/pipe-filters, and
fault tolerance .After the development of the composite
model, execution of following sequence of matrix operations
computes the system reliability.
1) Set p
n,n
=0
2) Define diagonal matrix
nn
with J
,
=r


3) Let
nn
=D . P
4) Compute S
nn
=(I )
-1

5) R =s
1,n
r
n

Where P is the nn probability transition matrix and S is
nn visit statistics matrix. Q is a matrix obtained by deleting
rows and columns corresponding to C and F.
B. Component Level Modelling
Above section indicates that component reliability is
essential for the determination of system reliability. Each
component of a software system has different characteristics
and hence each of them produces different reliability values
even though same amount of effort is expended. Therefore it
is very essential to capture the relationship between effort and
reliability of every component. Two approaches to model the
effort reliability relationships are presented below.

(i)Software Reliability Models (SRMs):
Two important functions used in SRM [5] are Mean Value
Function and Conditional Reliability Function. Mean Value
Function relates the expected number of faults detected and
the effort or testing time. Mean value function [12] is used by
Conditional reliability function to compute the reliability for a
particular mission time.

m

(t) = o

(1 - c
-b
i
t
i
) (3)
r

= R (t

+t
m,n
l t

) (4)
= c
-(m
i
(t
i
+ t
m,n
)- m

(t
i
))


Where m

(t) is the mean value function of component i at


time t. And a, b, t are number of faults, fault detection rate and
testing time of components. r

is the reliability of component


i.

The total mission time of the system is as follows.
t
m,n
i
= t
m,n

s
1,i
s
1,]
n
]=1
(5)
Where t
m,n
i
is the mission time of component i and t
m,n
is
the total mission time.
(ii)Log Linear Process Function (LLP):
Several failure counting models from mechanical systems
reliability provide a number of functions to capture the
relationship between effort and reliability. This section uses
the Log Linear Process function [13] to model the effort to
reliability relationship. LLP models the minimal repair in
mechanical systems by replacing a failed component when a
system failure occurs. When LLP is used to model the effort
reliability relationship, the dependent and independent
variables are the units of effort and the reliability of the
component respectively. LLP based approach is more
advantageous over conventional SRM based approach since it
provides a direct effort reliability relationship rather than via
mission time. The mean value function of component i
provide the expected effort in terms of its reliability, and have
the form

c

=
cxp[u
i
](cxp[[
i

i
] -1)
[
i
n
=1
(6)
Whereo

,[

are the baseline complexity and the rate of


increase in difficulty to improve reliability of component i.
Solving the above for r
i
produces

r

=
Iog( 1+

i
c
i
ex [o
i
]
)
[
i
( 7)

IV. OVERVIEW OF THE PROPOSED
METHOD

A. Reusable System Modelling
Fig.1. shows the schematic overview of the proposed
model [2] adapted for the design process of software
components. The main focus on Component Based Software
Engineering (CBSE) process is the component development
process. From the figure it can be viewed that the design
process can be assumed as a waterfall model with four steps,
design, realization, test execution, and finally delivery to the
component repository. The main characteristics of proposed
model are:

(i)Preparation step/design decisions: This step is an entrance
step into the process. The outcome of this stage is a work-
order, guiding design and verification efforts.
(ii)Verification step/defect detection: This step results in the
detection of unplanned side effects. Regression testing used
for this purpose.
(iii)Metadata: The model is based on metadata. Hence the
need for manual intervention is very small.

The two important stages in the model are preparation and
verification. Algorithms used in these stages are described
below. At the preparation stage when a component is needed
the central decision regarding the component is based on reuse
or adaptation of the component.
AR
i
derives all requirements shared by all variants
and versions of a component. It is the intersection of
all requirements addressed by all entities of a certain
component
C
i
: AR
i
={
jk
Req(C
ijk
)}
International Journal of Engineering Trends and Technology (IJETT) - Volume4Issue5- May 2013
ISSN: 2231-5381 http://www.ijettjournal.org Page 2033

BRi is the set containing the requirements addressed
only by a sub-set of the variants and versions of a
certain component C
i
. BR
i
={
jk
Req (C
ijk
)} AR
i

CR(r) gives the set of versions and variants that
address the requirement r, of CR(r) ={C
ijk
| {r}
Req (C
ijk
)}
Expressions above give overall information about the
different variants and versions of the components. From this
information divide the requirements into those addressed by
variants, versions and sub set of variants and versions. This
information helps the developers to find out a suitable
component for reuse. This information also helps to derive a
work order for each concrete component. Work orders are
used to estimate the amount of works applied to each
component in order to adapt to a new application.


Fig. 1 Overview of the model
At the verification stage unplanned side effects are
detected. Regression testing is used to detect unplanned side
effects based on the information from work order. Unplanned
changes during the development must be found and corrected
by the developers. To achieve a continuous improvement of
decision supporting relations, undocumented dependencies in
the relations between components should be updated and
added.
V. RESULTS AND DISCUSSION
This section shows the effectiveness of architecture based
optimization framework to obtain a desired system level
reliability target with minimal testing effort. By incorporating
component reuse effort in the optimization framework the
testing effort will be minimized compared to the recent
literature works [1].

In system level modelling, architecture of the application
is represented by DTMC matrix. DTMC shows the flow of
control among the components with transition probability
matrix. Fig 2 shows the architecture and transition
probabilities of an example application. A real time
application consists of four components is taken for the sake
of illustration. System level modelling is used to calculate the
overall system reliability. Estimates of component reliabilities
are essential to compute the overall system reliability.
Assessing the reliability of individual components depends on
whether or not the component code is available, the testability
of the component and whether it can be reused or not.
Component level modelling is used to capture the effort
reliability relationship of a component.

Architecture based optimization procedure needs the
system reliability expression and effort reliability function for
each component. The proposed model focuses on
incorporating component reuse effort in the optimization
procedure. It is based on associating metadata with the
components. Main focus in this system is the component


Fig.2 Application architecture

development process. During design phase the different
versions and variants of components are identified and they
are analysed to record the used and unused versions of the
components, test cases covered and the various requirements
of each of the components in the component repository. When
a new component is needed, central decision regarding
whether the component is reused or a new component is to be
constructed based on metadata. Component reusability
reduces the testing time or testing effort and the memory
utilization.

A. Performance Evaluation
Performance of the proposed system with the existing
system is evaluated by considering some of the performance
characteristics such as reliability, efficiency, complexity etc.
The following is the graph that depicts time and memory
utilized by both existing and proposed system. It can be
inferred from the graph that due to component reusability
model suggested in the proposed system, the memory and
time required for the completion of process in proposed
system is remarkably less compared to that of existing system.
Figure 2 shows the performance of proposed system with
existing system by considering the time constraint.

Testing time or testing effort needed in proposed system is
reduced to a much lower value compared to the testing time of
existing system. Here the blue colour bar indicates the testing
International Journal of Engineering Trends and Technology (IJETT) - Volume4Issue5- May 2013
ISSN: 2231-5381 http://www.ijettjournal.org Page 2034

time in existing system and green bar shows the testing time
of proposed system.


Fig. 2 Time Comparison Graph

Figure 3 shows the memory utilization in existing
system and proposed system. Memory utilization of proposed
method also shows considerable decrease from memory
usage of existing system.



Fig. 3 Memory Comparison Graph

VI. CONCLUSIONS, FUTURE WORK
This paper presents an architecture based optimization
framework to efficiently allocating the testing effort to critical
components to get a specified level of reliability target with
minimum effort. The framework considers the impact of
components in system reliability, which is governed by the
system architecture and effort reliability relationship. Log
Linear Process Function from mechanical system reliability is
used to model the effort reliability relationship. This system
also proposed a model that supports embedded software
components developers to use optimized variants of
components.

The advantageous of this model is achieved by
introducing a start and a completion step into a regular design
flow. The completion-phase provides automatic detection of
accidentally introduced side effects in redesign. The starting
phase supports the selection of the best matching candidate
from a repository of components given a set of requirements.
This promotes the reusability in the effort allocation model.

Future work is concerned with applying the optimization
framework when the parameters representing component
effort to reliability relationships are uncertain.

REFERENCES

[1] Lance Fiondella, Swapna S.Gokhale,Optimal Allocation Of
Testing Effort Considering Software Architecture,IEEE
Transactions on SoftwareReliability,Vol.61,No.2,J une 2012.
[2] Mikael Akerholm,J oakim Froberg,Kristian Sandstorm,Ivica
Crnkovic,A Model For Reuse And Optimization Of Embedded
Software Components
[3] Goseva-Popstojanova.K and K. Trivedi, Architecture based
approach to quantitative assessment of software systems,
Performance Evaluation, vol. 45, no. 2/3, pp. 179204, J un2001.
[4] Huang.C and J . Lo, Optimal resource allocation for cost and
reliability of modular software systems in the testing phase,
J ournal of Systems and Software, vol. 79, no. 5, pp. 653664,
May 2006.
[5] Yamada.S, H. Ohtera, and H. Narihisa, Software reliability
growth models with testing-effort, IEEE Trans. Rel., vol. R-35,
no. 1, pp. 1923, Apr. 1986.
[6] Yamada.S,H.Ohtera,Software Reliability Growth Modelfor
testing effort control,European J ournal of Operational
Research,vol 46,pp,343-349,1990
[7] Huang.C and S.Kuo,Analysis of incorporating logistic testing
effort function into software reliability
modelling,IEEETrans.Rel.,vol.51,no..3,pp.261-270,sep.2002.
[8] Yamada.S,Software quality reliability measurement and
assessment: Software reliability growth models and data
analysis, J ournal of internationalProcessing,vol.14,no.3,pp.254-
266,1991
[9] Winston.W and M. Venkataramanan, Introduction to
Mathematical Programming, 4th ed. Florence, KY: Cengage
Learning, 2002.
[10] Heineman G.H ,An evaluation of component adaptation
techniques,2
nd
ICSE workshop on component based software
engineering,1999
[11] Trivedi. Probability and Statistics with Reliability, Queuing and
Computer Science Applications, 2nd ed. New York, NY: J ohn
Wiley & Sons, Inc., 2002.
[12] Goel.A, Software reliability models:
Assumptions,limitations,and applicability, IEEE Trans.
Software Eng., vol. 11, no. 12, pp. 14111423, Dec. 1985

[13] Pulcini.G, Handbook of Reliability Engineering. NewYork,NY:
Springer-Verlag, 2003, ch. chapter Mechanical reliability and
maintenance models, pp. 317348.

Vous aimerez peut-être aussi