Identification Of Software Performance Bottleneck ...

4 downloads 232 Views 194KB Size Report
systematic application of software performance engineering techniques throughout the development process can help to ... and testing phases to predict and manage the performance ... nobody is applying any tools to identify the bottleneck.
Identification Of Software Performance Bottleneck Components In Reuse based Software Products With The Application Of Acquaintanceship Graphs Jasmine K.S1, Dr. R. Vasantha 2 1

2

Lecturer, Dept. of MCA, R.V.C.E., Bangalore-560 059, India (Ph: 080-28600184 Extn.274) [email protected]

Professor, Dept. of Information Science & Engineering, R.V.C.E., Bangalore-560 059, India

(Ph: 080-28600184) [email protected]

Abstract Component-Based software engineering provides an opportunity for better quality and increased productivity in software development by using reusable software components [9]. Also performance is a make-or-break quality for software. The systematic application of software performance engineering techniques throughout the development process can help to identify design alternatives that preserve desirable qualities such as extensibility and reusability while meeting performance objectives [1]. Implementing the effective performance-based management of software intensive projects has proven to be challenging task now a days. This paper aims at identifying the major reasons of software performance failures in terms of the component communication path. My work focused on one of the applications of discrete mathematics namely graph theory. This study makes an attempt to predict the most used components to the least used with the help of acquaintanceship Graphs and also the shortest communication path between any two components with the help of adjacency matrix. Experiments are conducted with four components and the result shows a promising approach towards component utilization and bottleneck determination that describe the major areas in the component communication to concentrate in achieving success in cost-effective development of highly performance software. Keywords: Software Performance; SPE; Reusable components; Acquaintanceship Graph.

1.0 Introduction The design and construction of future software systems will require the integration of software analysis and design methods with Software Performance Engineering (SPE) in reuse based software development. This integration allows software designers to explore design alternatives and select a design that provides the best overall combination of understandability, reusability, modifiability and performance so that software systems can meet performance goals [1]. Central to improve the practice of performance implementation is the understanding that good design and management of resources will avoid the component communication bottleneck. Effective planning enables the organization to identify what type of practices is required for their products and plan ahead of time [2].

1.1 What Is Software Reuse? Software reuse is the use of existing assets in some form within the software product development process. More than just code, assets are products and by-products of the

software development life cycle and include software components, test suites, designs and documentation. Leverage is modifying existing assets as needed to meet specific system requirements. Because reuse implies the creation of a separately maintained version of the assets, it is preferred over leverage. Leveraging involves the modification of previously developed software for a new product. When managed correctly, leveraging can be advantageous over creating software from scratch in that it requires less time and effort Current thinking is that reuse is most effective when it is practiced systematically. Systematic reuse is when reuse of assets is planned with well-defined processes and life cycles, commitments for funding, staffing, and incentives for production and use of the reusable assets.

1.2 Software Performance Engineering (SPE) SPE is a method for constructing systems to meet performance objectives [11]. The process begins early in development and uses quantitative techniques to identify satisfactory designs and to eliminate those that are likely

to have unacceptable performance before developers invest significant time in their implementation. SPE continues through the detailed-design, implementation and testing phases to predict and manage the performance of the evolving software and to monitor and report actual performance against specifications and predictions.

1.3 Present state in software reuse world & SPE In the research community, there are notable approaches to software performance engineering. Recent interest in software architectures has underscored the importance of architecture in achieving software quality objectives, including performance. While decisions made at every phase of the development process are important, architectural decisions have the greatest impact on quality attributes such as modifiability, reusability, reliability, and performance [10]. As with any long-term investment, the companies have to reassure the investors that things are progressing according to plan, and this requires an effective feedback loop. In this context, it is critical to learn everything about growing a reuse program the right way. But the facts that nobody is applying any tools to identify the bottleneck components of reuse implementation. In this paper, we are suggesting a mathematical solution for this purpose.

2.0 Methods used

Between a and c (a Between a and d (a Between b and d (b Between c and b (c Between c and d (c

b d) c b) d)

c) d)

Here a occurs 3 times, b occurs 4 times, c occurs 4 times and d occurs 3 times in the communication paths. It means b and c are most used components among a, b, c and d [13].

2.2 Counting Paths Between vertices The number of paths between any two vertices in a graph can be determined using its adjacency matrix [4]. According to the theorem about adjacency matrix, the number of different paths of length r from vertex vi to vj, where r is a positive integer, equals the (i, j) th entry of A r. The solution for the graph depicted in figure 1 can be given as follows. The adjacency matrix of the graph (ordering the vertices a, b, c, d) is

A=

0110 1001 1001 0110

Hence, the number of paths of length 4 from a to d is the (1,4) th entry of A 4. Since

2.1 Acquaintanceship Graphs The Graph models can be used to represent various relationships between any two reusable components in their inter communication process. A vertex can represent each component and an undirected edge can be used to represent the communication path between them. A sample acquaintanceship graph can be represented as follows.

a •

2. 3. 4. 5. 6.

b •

8008 0880 A 4= 0 8 8 0 8008 There are exactly eight paths of length 4 from a to d. So the above theorem can be used to find the length of the shortest path between any two vertices of a graph. In this study, since vertices represent the components, we can find out the shortest communication path between any two components using this method.

3.0 Conclusion

• c

• d

Fig 1: An Acquaintanceship Graph

Communication paths are as follows: 1. Between a and b (a b)

The cost of a software product is determined more by how well it achieves its objectives for quality attributes such as performance, reliability, availability or maintainability than by its functionality. So to identify the major causes for performance failures due to the failure of bottleneck components, which determines the quality of the software, is very important.

By conducting the empirical study using four components, it is found that the graph theory can play an important role in predicting software performance and by appropriately handling the factors which leads the failure of these bottleneck components, one will be able to costeffectively build performance into software and avoid performance failures to a certain extend. In addition, there is a continuous requirement that real –time systems meet performance criteria. Once a performance-engineered component-based software system has been designed it can be reused to evaluate and enhance the performance of existing software system components.

4.0 Future Work The paper addresses the problem associated with the reuse based software development scenario, to connect the given ‘n’ components in the best possible way (i.e. with the help of finding the shortest path between every pair of components) and also to identify the bottleneck components in the communication path. In this study, the undirected graph with no weight assigned to their edges is considered. But assigning the weights to the edges to find out the shortest as well as cheapest possible path can extend the study. Prim’s algorithm and Kruskal’s algorithm can be applied in these directions to find the cheapest path and Dijkstra’s algorithm can be applied to find the shortest path from a source component to all other components[12].

Fig 3: Simulation Result showing the shortest path from a to b

Appendix Fig 4: Simulation Result showing the shortest path from a to c

Fig2: Simulation Result showing the most used component among a, b, c, d The figure 2 shows the simulation result, which represents the most used component in the communication. The number which appears along with vertices a, b, c and d shows the number of times each component is used.

Fig 4: Simulation Result showing the shortest path from a to d For the figure 3,4 and 5 ,the source is considered as the component ‘a’

5.0 References [1]Mangano, “An Approach to Performance Evaluation of Software Architectures”, Workshop on Software and Performance, Santa Fe, NM, ACM, 1998, pp. 178-190. [2] B. W. Boehm, "Verifying and Validating Software Requirements and Design Specifications," IEEE Software, vol. 1, no. 1, pp. 75-88, 1984. [3] P. C. Clements and L. M. Northrup, "Software Architecture: An Executive Overview," Technical Report No. CMU/SEI-96TR-003, Carnegie Mellon University, Pittsburgh, PA, February, 1996. [4] Kenneth H. Rosen, Discrete Mathematics and its Applications, Fifth Edition, Tata-McGraw-Hill ltd.,2003. [5] C. U. Smith, Performance Engineering of Software Systems, Reading, MA,Addison-Wesley, 1990. [6] C. U. Smith and L. G. Williams, Performance Solutions: A Practical Guide to Creating Responsive, Scalable Software, Boston, MA, Addison-Wesley, 2002. [7] D.S. Hoskins, C.J. Colbourn, and D.C. Montgomery, “Software Performance Testing Using Covering Arrays”, Fifth International Workshop on Software and Performance (WOSP 2005), Palma de Mallorca, Illes Balears, SPAIN, July 2005, pp. 131-137. [8] M.M. Coahran and C.J. Colbourn, “Maximum and average access cost in double erasure RAID disk arrays”, Proc. 35th Southeastern Conference on Combinatorics, Graph Theory, and Computing, Boca Raton FL, 2004, Congressus Numerantium 167 (2004), 209-219. [9] X.Wu and M. Woodside, “Performance Modeling from Software components”, proceedings of the Fourth International Workshop on Software and Performance,pp.290-301,2004. [10] Balsamo and Mangano 1998] S. Balsamo, P. Inverardi, and C. Mangano, An Approach to Performance Evaluation of Software Architectures Workshop on Software and Performance, Santa Fe, NM, ACM, 1998, pp. 178-190. [11] C. U. Smith, Performance Engineering of Software Systems, Reading, MA,Addison-Wesley, 1990. [12] Analysis and Design of Algorithms for Combinatorial Problems, G. (Giorgio) Ausiello, M. (Mario)Lucertini, NorthHolland,1985

[13]www.mathworks.com

Suggest Documents