Software Reuse Library

DOI : 10.17577/IJERTV1IS5206

Download Full-Text PDF Cite this Publication

Text Only Version

Software Reuse Library

Amandeep Kaur1, Raman Goyal2

1,2Lala Lajpat Rai College of Engineering & Technology, India, Moga amansandhu89@gmail.com

Abstract

Software Reuse is an approach to reuse the pre builds artifacts and assets of existing software to create new software rather than creating it from the scratch; this approach was used to embed some new and advanced features over existing one to create new one. In Software Reuse Taxonomy an abstract design view model was planned, analyzed and categorized before creating a software so that in future any changes persist or need to embed any extra feature , then that should introduced easily & with less complexity by using the pre-build assets; i.e. Software System is developed such that it can reused again. Certain approaches such as Design Patterns, Aspect Oriented Integration, Generator Reuse, Object Oriented Programming Structure, and Software Reuse Libraries are, Framework Integration etc. are keeping in mind while developing Software Reuse System.

  1. Introduction

    Software Reuse is the Process of creating software systems from existing software systems rather than creating it from scratch. Software Reuse concept was first introduced in the 1968 at N.A.T.O Conference by Dougles Mcllroy. Basically this Conference was introduced to have focus on Software Crisis; it is referred to as the problem of development of big and reliable software in a cost effective way. A Seminal report was introduced in the conference; Mass Produced Components by Dougles Mcllroy. Dougles Mcllroy of Bell laboratories proposed a Software Component Library or referred as Software Reuse Library which can be used again and again and can be used to customize the components to different degrees of precision and robustness. Mcllroy felt that component libraries can be reused could be effectively used for the numerical computation, I/O conversion, text processing and dynamic storage allocation. However this approach was used later after a decade during its idea of existence [1].

    Software Reuse in nothing but set of assets and artifacts which cause it to use again and again, this artifacts may be at documentation level or at design

    level or may be at Software Code level. Various approaches has been introduced to create a reused system such as framework integration, Aspect oriented Structure, Generator Reuse, Object Oriented Programming, Cots Integration etc. This paper presents a simple approach on Software Reuse to create software artefacts, store and retrieve software components effectively. A software reuse library for android operating system at application level, written in Java, is developed in order to support reuse concepts.

  2. Software Reuse Approaches

    Software Reuse approach is a way to create software reuse components or artefacts to recur it. Many approaches has been taken into mind while creating software reuse system such as Generator Reuse, Aspect oriented approach, Cots Integration, Framework Integration , Program Libraries , Design Patterns , application product lines , service oriented

    Application Product Lines

    Design Pattern

    Software Reuse Library

    Component Based

    Cots Integration

    Configurable Vertical

    Application Framework

    Reuse

    Legacy System Wrapping

    Program Generators

    Service Oriented

    Aspect Oriented

    Figure.1 various approaches used for the creation of Software and Software Components on the basis of Software Reuse.

    Different activities performed in the life cycle of a project. The activities are: –

    Study the problem and available solution.

    Develop a reuse plan.

    Identify the structure of a solution for the problem.

    Reconfigure the structure of a solution to check that structure is suitable for next phase of a project.

    Acquire instantiating or modify existing reusable components.

  3. Experimental Setup

    In Experimental Set Up, on the base of Software Reuse approach, a QR-CODE Software reuse library for android operating System at application level which is written in Java, has been created. QR CODE referred to as Quick Response Code which is developed by the Japanese. QR is currently the highest capacity general two dimensional matrix semiology available (up to ~7Kb numeric data can be encoded) and it is designed to encode full 256 ASCII character set as well as the Shift character set. QR – Code belongs to the modern two dimensional codes that is designed for both high capacity as well as to be efficient for scanner equipment and this is also the reason for its name Quick Response Code.

    During software development, the software programmer focuses on those reusable resources that easily adopt the new environment. The main objective in this paper is to explain how one can make new libraries by reuse pre-build libraries. Mobile learning is a major field of research in education. QR code is a very latest technology in mobile phones. QR code very famous day by day. The idea of creating QR code comes from bar code. There is some limitation of bar code because it does not hold much more data as compared to QR code. Let us try to know how QR code can be used for building a new application.

    QR code similar to bar code .The QR Code is a Matrix 2D Bar Code that was developed by the Denso Company in Japan in September 1994. The main reasons to discover QR code are: –

    It encodes information in both vertical and horizontal direction but the barcode store data only in one direction. The traditional 1D barcode store upto 30 numbers, while 2D barcode store upto 7,089 numbers. The following diagram shows the difference [3].

    It is also capable of storing different data types which traditional barcode is not capable of doing.

    CONTAIN DATA CONTAIN DATA

    It can scan data faster than barcode. The main quality of QR code is that there is no need to scan the data from one particular direction. The QR scanner scans the data from any direction (360 degrees). QR scanner decodes the content within the QR code due to three specific squares that are placed in the corner of the symbol.

    An advantage of QR code is relatively the small size for a given amount of information.

    Figure.2 QR image

    The above QR image in which red lines indicate finder pattern that QR code scanner device used to scan the image and search the appropriate information from the image. Each pattern is based on a 3×3 matrix of black modules surrounded by white modules that are again surrounded by black modules. The finder pattern recognizes the QR code and finds the correct orientation. The green lines indicate horizontal and vertical synchronization.

    QR code is popping up all over the world. With the help of QR reader, one can get the information anytime, anywhere. It is used to share information quickly whether it is a website, a survey for giving feedback, rating or review on a product.

    Once the QR image is created, one can print this image on any surface and location like newspaper, TV ads, billboards, temporary tattoos, product packaging, clothing labels, magazines etc.

    QR code work as a marketing vehicle like advertising. It solves the problem of advertisement.

    One of the biggest problems with advertising is publishing and printing cost. The cost of printing ten thousand copies of a single brochure is a lot. And when crucial information changes the advertisers would have to make the change +and reprint. The same QR Code can be used for multiple promotions because all you need to do is to change the mobile webpage that the link leads to. So, no need for reprint. In future any changes persist; you can easily change the information. Therefore, QR code is loved by marketers.

    QR reader pre-installed in latest mobile phones like smartphones both iPhones and Android devices. so growing the awareness among the consumers about QR code. The figure 2 demonstrate the QR image, the red color patterns in the image are finder patterns that QR code scanner equipments use to scan the image and find the appropriate information from the image and the blue coloured lines are used for the vertical and horizontal synchronization.

    The QR code is available in 40 different square sizes each with a user selectable error correction level in four steps (referred to as error correction level L, M, Q and H). With the highest level of error correction used up to

    ~30% of the code words can be damaged and still be restored.

    QR code is extensively used in some Asian countries and is finding more and more usage to transfer medium sized information onto mobile phones where the QR codes are interrelated by first taking a photo of the barcode with the mobile and then running a QR decoding program on the cell phone.

    1. QR Standard

      The QR code standard is fully described in the ISO/IEC 18004E International Standard and is available for purchase from the ISO Standard Organization.

    2. Structure and capacity of QR Code

      QR barcode is basically squared structured made up of equal spaces between them. Depending upon the size and structure of QR code certain number of finder patterns is included in the scan for scanner decoding. QR Standard specifies 40 versions or 40 sizes range starting from 21*21 squares to 177*177 modules in size [4].

    3. Principal to Encode Data into QR Image

      1. The input string (which can be any ASCII values between 0-255) is encoded using the selected encoding or encodings (it is possible to switch encoding mid-way through the string). The primary purpose of the encoding is to compress the data into a much shorter form. If needed the data is padded to fill up to the capacity of the selected symbol size.

      2. Once the string has been encoded (and possible padded) a number of error correcting code words are added so that the data can be recovered even if part of the printed symbol have been destroyed.

      3. Finally the encoded data and the error correcting words are placed in the symbol according to an algorithm specified in the standard. This is done by placing each bit of every data byte in a specific position in the QR matrix symbol.

      The above mentioned is the information of the QR- Code, now on the behalf of this Barcode library written in various languages is developed Google which is basically called zxing library for mobile devices. Modifying such library for QR Code for Android operating systems can be used for QR code scanning purpose for mobiles devices having the android operating system and Camera and be used again and again at application level. This customized library follows the OOP Structure to reuse it again and again and more referred to as Software Reuse Library at various QR Based applications Level.

    4. Use of QR code with mobile phones:

      The growth of QR code increases in many countries. Let us check the growth of QR code in 2012 (figure 3).

      Figure: 3 QR Growth

      Given the growth of QR Codes, we wanted to find out whos using them. 10,000 U.S. consumers were asked

      about it. It turns out that 24% of consumers are already using QR Codes. Not surprisingly, the use is heavily weighted towards younger consumers. About one-third of consumers younger than 40 years old use QR Codes at least a couple of times per month.QR code extensively used in Asian countries [5].

  4. Advantages of Software Reuse

    1. Increased dependability:

      Software Reuse makes the Reuse components thoroughly tested again and again which reduces the error Detection and improves or increase the component dependability. Because the more the component is used again and again more it will be tested and chances of getting errors are less. [6]

    2. Reduced process risk

      If software exists, there is less uncertainty in the costs of reusing that software than in the costs of development. This is an important factor for project management as it reduces the margin of error in project cost estimation. This is particularly true when relatively large software components such as sub-systems are reused. [6]

    3. Effective use of specialists:

      The experienced or specialized person is effective in the development of software systems. Since they have lot of experience so they well known that which components or software sub-systems can be reused again and again, so they make the software system such that it can be reused again and again thus improves the productivity and performance. For Increasing the productivity and performance we need a group of specialist persons [6].

    4. Accelerated development:

      Now the Software Reuse increase the productivity, because the components that are prebuild can be used while development of new system. This reduces the time and cost for the development for the organization for software system development. [6]

  5. Disadvantages of Software Reuse

    1. Standards compliance

      Some standards, such as user interface standards, can be implemented as a set of standard reusable components. For example, if menus in a user interfaces are implemented using reusable components, all applications present the same menu formats to users. The use of standard user interfaces improves dependability as users are less likely to make mistakes when presented with a familiar interface. [7]

    2. Need Proper Documentation

      Since while development of the Software Reuse Components required full documentation so that other person who is not part of that development can understand the working of component easily, but imagine if that documentation is not properly implemented then this will cause lot of complexity to understand it and it is one of disadvantage of software reuse. [7]

    3. Creating and maintaining a component library

      Creating and maintaining a software reuse library become also expensive because the maintenance needs some sort expertise person at every time and also our current techniques for classifying, cataloguing and retrieving software components are immature. Also if there are developers who are not well experienced then the result may be in reverse order due to lack of understanding the software system. [7, 8]

    4. Finding, understanding and adapting reusable components

      Software components have to be discovered in a library, understood and, sometimes, adapted to work in a new environment. Engineers must be reasonably confident of finding a component in the library before they will make routinely include a component search as part of their normal development process. [9, 10]

  6. Conclusion

The overall result and the conclusion for the software reuse is that, in today era software reuse plays a very important role for the developers while creating and

developing any software or framework. Because whenever any software is developed, it is developed according to the future reference in mind, there may be some advancement or new features that may needs to add in software future, new versions for the software continue to be coming in the market or industry. Now for instance if the developers or organization does not keep in mind the software reuse they had create software with respect to the new features again and again which will result in the wastage of time , wastage of money an also wastage of resources. On the other hand if software reuse concept is keep in mind while developing software then it will save money, save time and resources because the software is designedsuch that it can meet the future requirements easily and properly with less time and money complexity. Simple examples are mobile platform versions, day to day new language versions, day to day new framework versions etc. Today people uses various software, with respect to time their advance versions are also in the market whether that software belongs to social networking, entertainment related, business related, sports related etc. Now what the developers do with respect to those new versions, do they use to develop it again? No they designed it such that they can use the components of the software again and make it customizable. Thats it.

REFERENCES

  1. Charles W. Krueger Software Reuse http://www.cin.ufpe.br/~esa2/papers/abstracts/art12.htm

  2. Denso (2010b). About 2D Code. Retrieved June 21, 2010, from http://www.densowave.com/qrcode/aboutqr-e.html

  3. Peter Kieseberg, Manuel Leithner, Martin Mulazzani, Lindsay Munroe, Sebastian Schrittwieser, Mayank Sinha,

    Edgar Weippl,Qr Code Security 2010

  4. Thony, Retrieving Datahttp://www.thonky.com/qr-code- tutorial/introduction/#general-overview-of-creating-a-qr- code

  5. So, S. (2008). A Study on the Acceptance of Mobile Phones for Teaching and Learning with a group of Pre- service teachers in Hong Kong. Journal of Educational Technology

  6. Johanes Sametinger Software Engineering with Reuseable Components Book publish on March 2007

  7. Johanes Sametinger Software Engineering with Reuseable Components Book publish on March 2007

  8. ID Automation retrieving barcode library http://www.idautomation.com/java/font-encoder.html [9]Thonky QR code retrieving data http://www.thonky.com/qr- code-tutorial/introduction/

[10] JISC (2010). JIS X 0510:2004. Retrieved May 15, 2010,

fromhttp://www.jisc.go.jp/app/pager?id=12766 (written in Japanese)

International Journal of Engineering Research & Technology (IJERT)

ISSN: 2278-0181

Vol. 1 Issue 5, July – 2012

Leave a Reply