A Novel Fuzzy Logic Based Software Component ... - Semantic Scholar

1 downloads 42396 Views 960KB Size Report
Keyword: Software component; reusability of component;. Fuzzy Logic ... software development is searching different off the ..... best choice for selection.
A Novel Fuzzy Logic Based Software Component Selection Modeling Shah Nazir

Muhammad Amir Khan

Institute of Management Sciences I-A Sector E-5 Phase-VII, Hayatabad, Peshawar, Pakistan E-mail: [email protected]

E-mail: [email protected]

Sajid Anwar Institute of Management Sciences I-A Sector E-5 Phase-VII, Hayatabad, Peshawar, Pakistan E-mail: [email protected]

Humaira Khan Institute of Management Sciences I-A Sector E-5 Phase-VII, Hayatabad, Peshawar, Pakistan E-mail: [email protected]

Muhammad Nazir E-mail: [email protected]

Abstract- Software component selection is the most important part of component based software development. A large amount of time is invested in searching and selecting the most appropriate component from component repository. Different methods are used to select components quickly and efficiently. In the proposed method we have used part of off the shelf option and fuzzy logic methodology for components selection. The proposed methodology incorporates several important factors such as efficiency, reusability, portability, functionality, security, testability and maintenance. The methodology is illustrated and evaluated using hypothetical case study. Keyword: Software component; reusability of component; Fuzzy Logic;membership function.

I. INTRODUCTION Software development involves different phases for customer requirements and development of software system. The first and the most important step in software development is searching different off the shelf (COTS) components in the repository and then selecting the most appropriate and suitable component for software system. Components based software development is the integration of pre existing software components which leads to software system that fulfill client specific requirements [1]. A component is a unit of composition with contractually specified interfaces and explicit dependencies only. Component is a service provider and is independent executable entity. The services offered by a component are made available through an interface and all the components having provided and required

interface through which the component communicate among components. Integrating n COTS product involves potentially n (n-1)/2 interfaces [2]. Components are built to be used and reused in many applications and should thus be well specified, easy to understand, sufficiently general, easy to adopt, easy to deliver, deploy and easy to replace. These components must be designed, implemented, verified, validated and deliver. Components are combined dynamically through ports to make complete process by interface types. [3]. Interfaces are the physical realization for component service provide and required [4]. In components off the shelf (COTS), the final system requirements are represented by a set and these requirements are satisfied by a subset of components that are taken from a set of components. Each component ci can satisfy a subset of the requirements from SR, SRci= { ri1, ri2, ….,rik}The goal is to find a set of components Sol in such a way to every requirement r j from the set SR can be assigned a component ci from Sol where r j is in SR ci [1], all the components should be selected carefully not randomly. The life cycle of component base software system is different from that of traditional software system. Summery for the life cycle of component based software system is 1) requirement analysis, 2) software architecture selection, 3) component identification, 4) components system integration, 5) software maintenance. Components customization, identification and integration are complex activity in component based system life cycle. It has two main

978-1-4673-1401-5/12/$31.00 ©2012 IEEE

parts: 1) evaluation of each COTS based on quality and function that will be used to evolve that component, 2) customization of COTS components that will be modified before integrated into newly component based software systems [5]. To evaluate a component, we must determine how to certify the quality of component. The quality attributes of components are the foundation to guarantee the quality of the components, and ultimately to guarantee the quality of the whole component based software system. A suggested list of quality attributes of COTS components are: 1) Functionality; 2) Interface; 3) Usability; 4) Testability; 5) maintainability; 6) reliability. [6]. For reusable software component developer needs two things to know that whether the system will tolerate the component and whether the component itself is reliable [7]. COTS software has been successfully use in many system for the general domain and subsequent to the transition [8]. it is always suggested to go for software reuse, it save time to develop the system from start and also deliver error free code because the code is always tested for many reuse [9]. The contribution of this paper is to propose a methodology for reusable software components selection using fuzzy logic. The methodology incorporates several factors such as efficiency, reusability, portability, functionality, security, testability and maintenance. In the proposed methodology the selection is based on part of OTSO and fuzzy inference system for the selection of components. The rules for fuzzy inference system are based on two concept, fuzzy implication and compositional rule, a rule is formed as “if A then B” A is true and implication for “if A then B” and conclusion where B is true [10]. If the knowledge is in the form of fuzzy then it is generally understandable [11]. In fuzzy set theory the range of the membership function is set of {0, 1} interval [12]. The remainder of this paper organized as follows. Next section represents related work. Propose method is discussed in section III, evaluation of the proposed method in section IV and the paper is concluded in section V. II. RELATED WORK Software engineering community has proposed different methodologies for components selection. A. Kaur and K. S. Mann proposed Component selection for component based software engineering which uses off the shelf option. OTSO consists of six different phases which are searching, screening, evaluation, analysis, development and assessment. The main goal of this methodology is to identify potentiality in

components [13]. B. Boehm, D. Port, and Y. Yang proposed Win Win spiral approach for the development of COTS based applications. In this method case based application is distributed among three activities which are 1) COTS assessment 2) COTS tailoring and 3) COTS glue code [14]. S. A. Fahmi and C. Ho-Jin has provide a comparison of different methods already used for components selection [15]. K. Jyrki has designed a case study for COTS software selection. This case study consists of four phases. In the first phase, a team for evaluation is formed, the goal of evolution are identified in second phase, project plan agreement is obtained in third phase and in the process of filtering components are obtained in fourth phase. Finally the obtained components are analyzed and evaluated [16]. A. Aamodt and E. Plaza suggested Case based reasoning (CBR) which is based on previous experience reasoning. It has mainly four tasks which are retrieve the task, reuse, revise and retain [17]. COTS is a systematic based requirements engineering and goal oriented method which consists of templates in each phases which provide the basic guidelines for each phase [15]. Earlier the work done by K. Seth, A. Sharma, and A. Seth focused on software component selection effort estimation. This method also uses fuzzy logic to estimate the different effort required for component selection [18]. X. Cai, M. R. Lyu, etc al. suggested Component based software engineering: technologies, development framework, and quality assurance schema. The model proposed mainly focus on quality assurance of component analysis, component development, component customization, component design and integration in component based software development [5]. III. PROPOSED METHOD The proposed method can be discussed as shown in figure 1. The selection of components can be done on the basis of different phases which are 1) searching 2) screening 3) analyzing 4) evolution etc. First components are searched in the data base of available software components repository, then according to required criteria the components are evaluated and checked and thus should be selected. The selected components should be checked that weather the selection is done according to required criteria or not and then the selected components can be used in the development of components based software system. The proposed method can be further elaborated by figure 2. The methodology proposed by Kontio [13] was integrated with the fuzzy logic methodology for components selection.

A. Efficiency Efficiency is the appropriate ability of a component which is needed to fulfill customer needs. For efficiency and good result, components can be checked on various available platforms. To make a component efficient it may be checked on various perspectives of its functions. Efficiency can mathematically express as below;

μ( Efficiency )

⎧0 < x ≤ 0.33 = low ⎫ ⎪ ⎪ = ⎨0.30 < x ≤ 0.62 = Medium ⎬ ⎪ ⎪ ⎭ ⎩0.58 < x ≤ 1 = High

Figure 1 Components Based Software Development Process

The main activities in the OTSO process of reusable components selection are shown using data flow diagram, in which process is represented by circle and artifacts are represented by storage symbol. The goal is to identify potentiality in the search phase In search phase the components can be searched very well and analyzed for next phase. In screening phase, the main goal is to select the most appropriate and promising candidates for detail evaluation using fuzzy logic

Figure 3. Membership Function Graph for Efficiency

B. Portability Portability means adoptable from one system to another system, it means that from one system a component may be shifted to other system [6] and that new system will easily adopt it with a little modification and porting cost if need and these components may be platform independent. If there is high portability in components then its selection will be very high and is expressed as;

μ( Portabality )

⎧0 < x ≤ 0.34 = low ⎫ ⎪ ⎪ = ⎨0.31 < x ≤ 0.62 = Medium ⎬ ⎪0.56 < x ≤ 1 = High ⎪ ⎭ ⎩

Figure 2 Main Phases in OTSO and Proposed Fuzzy Logic

In the next step OTSO and then fuzzy inference system rules can evaluate the inputs and will provide results. In fuzzy inference system, fuzzy rules are built form expert domain called fuzzy expert system [19]. Fuzzy set characteristics function which represent the input range is mathematically represented as

0 ≤ μ F ( x) ≤ 1 The basic factors which are used as inputs in fuzzy logic for software component selection are described as below.

Figure 4. Membership Function Graph for Portibility

C. Reusability Reusability is the process of reusing the existing software components in newly developing software system. If there are so many available components then the most appropriate component will be that one which is used so many times in a software system and selection will be easy for such type of components. Reusability increases productivity, quality and maintenance of the software. Reusability is one of the important principles of component based software development [18]. Mathematically can be written as;

μ( Reusability )

⎧0 < x ≤ 0.33 = low ⎫ ⎪ ⎪ = ⎨0.31 < x ≤ 0.62 = Medium ⎬ ⎪0.57 < x ≤ 1 = High ⎪ ⎭ ⎩

Figure 6. Membership Function Graph for Functionality

E. Security Security is the protection from unauthorized access. For secure components, users have reasonable expectations that the details about the software components are stable and secret. If the components are highly secure then the selection of components will be high and is shown mathematically as;

μ( Security )

⎧0 < x ≤ 0.34 = low ⎫ ⎪ ⎪ = ⎨0.32 < x ≤ 0.65 = Medium ⎬ ⎪0.60 < x ≤ 1 = High ⎪ ⎭ ⎩

Figure 5. Membership Function Graph for Reusability

D. Functionality Functionality is the factor of quality which is being useful, functional and workable. It means that the functionality and service of a system should be according to the requirement of both system and customers. For highly functional components, the selection will be very easy and can be easily adoptable. If the functionality of a system is high then the selection will high. Mathematically can be written as;

μ( Functionality )

⎧0 < x ≤ 0.35 = low ⎫ ⎪ ⎪ = ⎨0.32 < x ≤ 0.65 = Medium ⎬ ⎪0.56 < x ≤ 1 = High ⎪ ⎭ ⎩

Figure 7. Membership Function Graph for Security

F. Testability Testability is the process of how easily a software component can be tested. Testability of a component is determined by the factors such as understandability, observability and controllability. Testability can be improved by test driven development and design for testability. Testability has greater importance in the development of system. A system having high degree of testability, leads to easy selection of software components. It is shown mathematically as;

μ(Testability )

⎧0 < x ≤ 0.35 = low ⎫ ⎪ ⎪ = ⎨0.31 < x ≤ 0.62 = Medium ⎬ ⎪0.56 < x ≤ 1 = High ⎪ ⎭ ⎩

Figure 8. Membership Function Graph for Testability

G. Maintainability The most important and critical phase in software development is its maintenance. Once software is designed it goes to a crucial phase known as software maintenance. The development team develops the system and hand over to customer. Later on some modifications may be needed for system which has high cost and time consuming and also chances of its failure. Maintenance process goals deal with issues such as cost of maintenance and who will be responsible for maintenance of components based software system [1]. In software maintenance activities are categorized into adaptive, perfective, corrective and preventive. A software component that has high maintainability leads to high selection of component and is expressed as;

μ( Ma int ainabality )

⎧0 < x ≤ 0.34 = low ⎫ ⎪ ⎪ = ⎨0.32 < x ≤ 0.65 = Medium ⎬ ⎪0.60 < x ≤ 1 = High ⎪ ⎭ ⎩

All the linguistic variables under consideration are represented in terms of three fuzzy set {low, medium, high} = {L, M, H} defined in the domain [0, 1] interval and the evaluation of the input is based by the expertise by means of appropriate questionnaires. The first stage transforms the table of classification to continuous classification which is called fuzzification. After fuzzification, it is processed in the domain of fuzziness by inference engine based on rules base and data base which is supplied by domain expert. Then it is translated to real world values which are called defuzzification [18]. For this a total of 37rules can be obtained for three MF and seven inputs. 1. If (Efficiency is Low) and (Portability is Low) and (Reusability is Low) and (Functionality is Low) and (Security is Low) and (Testability is Low) and (Maintainability is Low) then (Selection is Very_Low) 2. If (Efficiency is Low) and (Portability is Low) and (Reusability is Low) and (Functionality is Low) and (Security is Low) and (Testability is Medium) and (Maintainability is Low) then (Selection is Low) 3. If (Efficiency is Low) and (Portability is Low) and (Reusability is Low) and (Functionality is Low) and (Security is Medium) and (Testability is Low) and (Maintainability is Low) then (Selection is Very_Low) 4. If (Efficiency is Low) and (Portability is Low) and (Reusability is Low) and (Functionality is Medium) and (Security is Low) and (Testability is Low) and (Maintainability is Low) then (Selection is Very_Low) . . . . 2187 rules of Fuzzy inference system. IV. EVALUATION OF PROPOSED METHOD

Figure 9. Membership Function Graph for Maintainability

Overall probability of selection is

Selection = ∑ μi i∈P

P= {efficiency, portability, reusability, functionality, security, testability and maintainability}

After defining the rules some evaluation results are obtained for given inputs. On the basis of these evaluation results we may select different components from the component repository. Evaluation can be done on the basis of different defined rules as 1. If (Efficiency is Low) and (Portability is Low) and (Reusability is Low) and (Functionality is Low) and (Security is Low) and (Testability is Low) and (Maintainability is Low) then (Selection is Very_Low)

Eg evaluation obtained from fuzzy rules: suppose Available Efficiency Portability Reusability components Component 1 0.2 0.1 0.3

Functionality

Security

Testability

Maintenance

Selection

0.2

0.3

0.3

0.1

0.1150

Component 2

0.5

0.5

0.5

0.5

0.5

0.5

0.5

0.5100

Component 3

0.8

0.9

0.8

0.7

0.9

0.9

0.7

0.9018

Component 4

0.9

0.8

0.6

0.5

0.2

0.4

0.1

0.5100

Component 5

0.2

0.1

0.3

0.3

0.9

0.5

0.4

0.5000

Table- 1 Quality attributes of available components (Inputs & Outputs) Software Engineering Conference, Washington, DC, USA, 2000, pp. 372-379. [6] M. F. Bertoa and A. Vallecillo, "Quality attributes for COTS components," vol. 1, pp. 128-144, Noviembre 2002. [7] J. M. Voas, "Certifying off-the-shelf software components," Computer, vol. 31, pp. 53-59, June 1998. [8] E. Kesseler, "Assessing COTS software in a certifiable safety critical domain," Information Systems Journal, vol. 18, pp. 299-324, 2008. [9] P. S. Sandhu and H. Singh, "A neuro-fuzzy based software reusability evaluation system with optimized rule selection," in 2nd International Conference on Emerging Technologies Peshawar, Pakistan, 2006, pp. 664-669 [10] L. L. Machacha and P. Bhattacharya, "A fuzzy-logicFigure 10. Graphical Representation of Original Inputs and based approach to project selection," IEEE Transactions Results on Engineering Management, vol. 47, pp. 65-73, From above table 1, it is clear that component 3 is Febuary 2000. best choice for selection. [11] D. H. Anderson and L. O. Hall, "MR. FIS: Mamdani rule style fuzzy inference system," in IEEE International Conference on Conference Proceedings, V. CONCLUSION Tokyo , Japan, 1999, pp. 238-243. [12] D. Ramot, M. Friedman, G. Langholz, and A. Kandel, The proposed method is one of the simple methods for "Complex fuzzy logic," IEEE Transactions on Fuzzy component selection for a software system and is easy Systems vol. 11, pp. 450-461, August 2003. to implement. It integrates part of off the shelf option [13] J. Kontio, "OTSO: A Systematic Process for Reusable (OTSO) and fuzzy logic to select the most suitable Software Component Selection," Citeseer December 1995. and appropriate component based on knowledge [14] B. Boehm, D. Port, and Y. Yang, "WinWin spiral provided by domain expert. The method is validated approach to developing COTS-based applications," in using a hypothetical case study. However, in future, 5th International Workshop on Economics-Driven we are planning to validate the results using some real Software Engineering Research (EDSER-5), Oregon, U.S.A, 2003. life component repository. [15] S. A. Fahmi and C. Ho-Jin, "A study on software component selection methods," in 11th International REFERENCES Conference on Advanced Communication Technology, Phoenix Park 2009, pp. 288-292. [1] A. Kaur and K. S. Mann, "Component Selection for [16] J. Kontio, "A case study in applying a systematic Component Based Software Engineering," International method for COTS selection," in 18th International Journal of Computer Applications IJCA, vol. 2, pp. Conference on Software Engineering, 1996, pp. 201109-114, 2010. 209. [2] V. R. Basili and B. Boehm, "COTS-based systems top [17] A. Aamodt and E. Plaza, "Case-based reasoning: 10 list," 0018-9162, May 2001. Foundational issues, methodological variations, and [3] K. Gary, T. Lindquist, H. Koehnemann, and J. C. system approaches," vol. 7, pp. 39-59, March 1994. Derniame, "Component-based software process [18] K. Seth, A. Sharma, and A. Seth, "Component support," in 13th IEEE International Conference on Selection Efforts Estimation–a Fuzzy Logic Based Automated Software Engineering Honolulu, HI , USA, Approach," International Journal of Computer Science 1998, pp. 196-199. and Security (IJCSS), vol. 3, pp. 210-215, 2009. [4] A. W. Brown and K. C. Wallnau, "The current state of [19] S. Guillaume, "Designing Fuzzy Inference Systems CBSE," IEEE Software, vol. 15, pp. 37-46, September/ from Data: An Interpretability-Oriented Review," IEEE October 1998. TRANSACTIONS ON FUZZY SYSTEMS, vol. 9, pp. [5] X. Cai, M. R. Lyu, K. F. Wong, and R. Ko, 426-443, 2001. "Component-based software engineering: technologies, development frameworks, and quality assurance schemes," in Proceedings of the Seventh Asia-Pacific