Reusable Software Component Life Cycle

Reusable Software Component Life Cycle

INTERNATIONAL JOURNAL OF COMPUTERS Issue 2, Volume 5, 2011 Reusable Software Component Life Cycle Anas Bassam AL-Badareen, Mohd Hasan Selamat, Marzanah A. Jabar, Jamilah Din, Sherzod Turaev packaging and scope of the functions that programs perform Abstract— In order to decrease the time and effort of the software [12]. Bitar [13] showed that, the reusability has to be development process and increase the quality of the software product considered as it is the most significant factor to improve the significantly, software engineering required new technologies. productivity and quality of the software development. Nowadays, most software engineering design is based on reuse of The concept of the software reuse is used to reduce the existing system or components. Also, it is become a main development approach for business and commercial systems. The effort, cost, and time to develop a new system. Mohaghehi concept of reusability is widely used in order to reduce cost, effort, [14] and Philippow [15] state that the reusability is used to and time of software development. Reusability also increases the increase the productivity and reduce the developing time, productivity, maintainability, portability, and reliability of the which leads to complete the development faster and cheaper. software products. That is the reusable software components are According to Poulin [16], the US department of defense alone evaluated several times in other systems before. The problems faced could save 300$ million annually by increasing its level of by software engineers is not lack of reuse, but lack of widespread, systematic reuse. They know how to do it, but they do it informally. reuse as little as 1%. Moreover, software reusability aimed to Therefore, strong attention must be given to this concept. improve productivity, maintainability, portability and therefore This study aims to propose a systematic framework considers the the overall quality of the end product [17]. reusability through software life cycle from two sides, build-for-reuse Most software engineering design is based on reuse of and build-by-reuse. Furthermore, the repository of reusable software existing system or components [5]. However, in order to components is considered, and the evaluation criteria from both sides achieve the benefits of the software reuse significantly it must are proposed. Finally, an empirical validation is conducted by apply the developed framework on a case study. be systematic [18]. Large organization need to introduce a systematic reuse in phases [19]. Keywords— Software Reusability, Build for Reuse, Build by According to Ouyang [20], software reusability can be Reuse, Reusability Criteria, Software Quality, Quality Evaluation. considered from two view points: design-by-reuse and design- for-reuse. Software-by-reuse is the use of existing application I. INTRODUCTION or its components to build new applications. Software-for- n order to decrease the time and effort of the software reuse is the ability of building applications that can be used all Idevelopment process and increase the quality of the software or part of it in other applications. product significantly, software engineering required new According to Prieto-Diaz [21], the concept of the software technologies [2]. New horizons are opened, since the idea of reuse is not only applied to source code fragment, but can also software reuse appeared in 1968 [3]. Software reuse is an mean all of the information that are related to the product important and relatively new approach to software engineering generating processes, including software requirements, [4]. It is become a main development approach for business analysis, design, and any information required by the and commercial systems [5]. Moreover, it is considered as one developers to build a software. Moreover, Ramamoorthy [22] of the most important aspect used to improve the productivity mentions that the reusability is not limited to the source code, of the software development [6]. but it has to include the requirements, design, documents, and Reusability is the degree to which a thing can be reused [7]. test cases besides the source code. Software reusability represents the ability to use part or the Hence, the problem faced in software engineering is not whole system in other systems [8-11] which are related to the lack of reuse, but lack of widespread, systematic reuse. Further, software engineers know how to adapt and reverse- engineer systems, but they do all of these processes informally. Anas Bassam AL-Badareen is with the University Putra Malaysia, 43400 Sommerville [5]state that one of the main problems faced in UPM, Serdang, Selangor, Malaysia. Phone: 601-72301530; e-mail: software reuse is a lack of tools and reusable component [email protected]. Mohd Hasan Selamat is a professor of software engineering with library. University Putra Malaysia, 43400 UPM, Serdang, Selangor, Malaysia. This study aims to propose a systematic framework Phone: 603-89471720; e-mail: [email protected]. considers the reusability through software life cycle from two Marzanah A. Jabar PhD is with University Putra Malaysia, 43400 UPM Serdang Selangor, Malaysia; e-mail: [email protected]. sides, build-for-reuse and build-by-reuse. Furthermore, a Jamilah Din PhD is with University Putra Malaysia, 43400 UPM Serdang repository of reusable software components is considered. Selangor, Malaysia; e-mail: [email protected]. Also, the evaluation criteria from both sides are proposed. Sherzod Turaev is a Postdoctoral Researcher with University Putra Malaysia, 43400 UPM, Serdang Selangor, Malaysia; e-mail: Finally, an empirical validation is conducted by apply the [email protected]. 191 INTERNATIONAL JOURNAL OF COMPUTERS Issue 2, Volume 5, 2011 developed framework on a case study. In the system analysis and design, after the decision to build reusable components for specific requirements is made, the II. REUSABLE COMPONENTS EXTRACTION generality, portability, and coherence and coupling are the Poor quality components may be unsuited for a reuse library main issues of this phase. These characteristics are considered [23]. Therefore, software product has to be designed and in designing reusable components and integrating these developed in certain method even it is requires an extra effort components to work together in order to perform the intended in order to be able to reuse it later [22]. The process of requirement. extraction of reusable component starts from project planning Implementation phase, the independent sub-systems are and match with all of the software development stages (see developed, and the relationships among these sub systems are Figure 1). Thus it increases the quality of the reusable considered. Moreover, in the test phase, the evaluation of each components and reduces the efforts required to build-by-reuse sub system is independently conducted, and the ability of the software. sub-systems to work together and produce the expected result In planning phase, the objective of the reusability is defined. is also considered. Furthermore, in system documentation, The planning of component extraction identifies which more attention is given to the ability of the sub-system to work component is needed to be extracted, how the process of and its requirements to perform its goals. extraction will be conducted, and when and where the As a result of the project, two software products are extracted components can be used. Furthermore, the delivered instead of one. The first one is the required system, dependency and generality of the system goals are considered. which is deployed in the market. The second product is the Requirement phase is the most important phase in build for reusable components that are considered in the system. These reuse process, which makes the decision of build for reuse. components are sent to pre-store process in order to be According to the user requirements, software developers processed and stored in the reusable software component decide which subsystem can be built for reuse. Moreover, the library. reusable components library is checked to see whether these Pre-store process is a process of evaluate and enhance components exist. The decision is made when the required reusable components according to certain standard. component does not exist in the library. Ramamoorthy [22] proposed a method of reusability-driven development. The concept of this method is adopted in the proposed framework (Figure 1), while the characteristics Build for Reuse evaluated in this method are modified. The reusability test consists of formal conditions that are Identify the reusability required in the library. The process of reusable components is Planning objectives conducted till it passes the reusability test. Finally, when the component passes the reusability test, it is saved in the library Identify the requirements Check Requirements to be used in other systems. that are considered for reuse Library Library III. REUSABLE COMPONENTS ADOPTION Analysis Consider the component & adaptability and The reusability is a concept of managing on how to use a independability Design system or some of it is components in the new system. As shows in figure 2, based on business objectives, software Develop independent sub- systems developers identify components that are able to be adopted in Implementation new system. Integrate the sub-systems In requirement phase, system analyst checks the library Evaluate the sub-system

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    9 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us