International Journal of Engineering Trends and Technology (IJETT) - Volume4Issue5- May 2013 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 largescale 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 ISSN: 2231-5381 support analysing, comparing and selecting particular development scenarios and to guide the component implementation 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 http://www.ijettjournal.org Page 2030 International Journal of Engineering Trends and Technology (IJETT) - Volume4Issue5- May 2013 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 = ∑ Subject to : R ≥ = e ∗ ∀ ( ≥ 0),and ≤ inf { ⋲ : ≥ 1.0} (1) Where e is the total effort expended on all the components and be the effort expended on component i. R and ∗ 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 ISSN: 2231-5381 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=[ ]. 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 to , 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 probability . Similarly failure behaviour is denoted by creating a directed edge from final state to absorbing state F with transition probability ( 1- ). Let Q be the matrix obtained from the DTMC matrix by deleting rows and columns corresponding to the absorbing states C and F. Let (1, ) 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= (1, ) (2) http://www.ijettjournal.org Page 2031 International Journal of Engineering Trends and Technology (IJETT) - Volume4Issue5- May 2013 This modelling is used to estimate the reliability of various heterogeneous software architectures such as batchsequential/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 , = 0 2) Define diagonal matrix × with , = 3) Let × = D . P 4) Compute × = ( − ) 5) R = , × Where P is the n×n probability transition matrix and S is n×n visit statistics matrix. Q is a matrix obtained by deleting rows and columns corresponding to C and F. 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 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. Solving the above for ri produces (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. 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: (t) = (1 = R( + = ( , ) ) , (3) (4) ( )) Where (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. is the reliability of component i. The total mission time of the system is as follows. , = , ×∑ , ]( [ ] ) (6) Where , are the baseline complexity and the rate of increase in difficulty to improve reliability of component i. ( IV. = [ ) ] (7) OVERVIEW OF THE PROPOSED METHOD (i)Preparation step/design decisions: This step is an entrance step into the process. The outcome of this stage is a workorder, 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. (5) , Where , is the mission time of component i and the total mission time. , is (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 ISSN: 2231-5381 [ = ∑ 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. ARi 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 Ci: ARi = {∩jk Req(Cijk)} http://www.ijettjournal.org Page 2032 International Journal of Engineering Trends and Technology (IJETT) - Volume4Issue5- May 2013 BRi is the set containing the requirements addressed only by a sub-set of the variants and versions of a certain component Ci. BRi = {∩jk Req (Cijk)} – ARi CR(r) gives the set of versions and variants that address the requirement r, of CR(r) = {Cijk | {r} ∈ Req (Cijk)} 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. 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 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 ISSN: 2231-5381 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 http://www.ijettjournal.org Page 2033 International Journal of Engineering Trends and Technology (IJETT) - Volume4Issue5- May 2013 time in existing system and green bar shows the testing time of proposed system. Future work is concerned with applying the optimization framework when the parameters representing component effort to reliability relationships are uncertain. REFERENCES [1] [2] [3] [4] 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. [5] [6] [7] [8] [9] [10] [11] 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. [12] [13] Lance Fiondella, Swapna S.Gokhale,”Optimal Allocation Of Testing Effort Considering Software Architecture”,IEEE Transactions on SoftwareReliability,Vol.61,No.2,June 2012. Mikael Akerholm,Joakim Froberg,Kristian Sandstorm,Ivica Crnkovic,”A Model For Reuse And Optimization Of Embedded Software Components” Goseva-Popstojanova.K and K. Trivedi, “Architecture based approach to quantitative assessment of software systems,” Performance Evaluation, vol. 45, no. 2/3, pp. 179–204, Jun2001. Huang.C and J. Lo, “Optimal resource allocation for cost and reliability of modular software systems in the testing phase,” Journal of Systems and Software, vol. 79, no. 5, pp. 653–664, May 2006. Yamada.S, H. Ohtera, and H. Narihisa, “Software reliability growth models with testing-effort,” IEEE Trans. Rel., vol. R-35, no. 1, pp. 19–23, Apr. 1986. Yamada.S,H.Ohtera,”Software Reliability Growth Modelfor testing effort control”,European Journal of Operational Research,vol 46,pp,343-349,1990 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. Yamada.S,”Software quality reliability measurement and assessment: Software reliability growth models and data analysis,” Journal of internationalProcessing,vol.14,no.3,pp.254266,1991 Winston.W and M. Venkataramanan, Introduction to Mathematical Programming, 4th ed. Florence, KY: Cengage Learning, 2002. Heineman G.H ,”An evaluation of component adaptation techniques,2nd ICSE workshop on component based software engineering”,1999 Trivedi. Probability and Statistics with Reliability, Queuing and Computer Science Applications, 2nd ed. New York, NY: John Wiley & Sons, Inc., 2002. Goel.A, “Software reliability models: Assumptions,limitations,and applicability,” IEEE Trans. Software Eng., vol. 11, no. 12, pp. 1411–1423, Dec. 1985 Pulcini.G, Handbook of Reliability Engineering. NewYork,NY: Springer-Verlag, 2003, ch. chapter Mechanical reliability and maintenance models, pp. 317–348. 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. ISSN: 2231-5381 http://www.ijettjournal.org Page 2034