International Journals of Advanced Research in Computer Science and Software Engineering ISSN: 2277-128X (Volume-7, Issue-6) Research Article June 2017 Analogous Study of Component-Based Software Engineering Models Sandeep Chopra Research Scholar Uttarakhand Technical University Dehradun, India M.K.Sharma Professor Amrapali Institute Haldwani, India Lata Nautiyal Assistant Professor Graphic Era University Dehradun, India Abstract: In this modern world of development of software, CBD “Component based development” is a methodology dependent upon the novel and innovative thought to produce new software product by picking a number of off-theshelf modules “components” and then after to integrate and bind them all together with a suitable software product. The ultimate objective of component based software engineering is to generate a large computer program termed as module or component by using pre-existing software components therefore reducing and development time. CBSE is also helping in upgrading and maintaining the large software system. This concept is essential because it's assumed that common components can be written once and it can be used indifferent components by using common interface .This paper compares the performance of various models in CBSE on the bases activity provided by that model. Keywords: Component-based systems, life cycle models, domain analysis, component testing, component reliability, component certification I. INTRODUCTION A component or a module is a collection of software packages that can be developed independently , delivered as a single unit and provides us common path ”interfaces” by which it can be joined, to other modules to build a huge system. In component based software engineering a component is a collection of more than one software and provides a common interface and explicit context dependencies only. A module of software would be independently deployed and its composition of software will be done by another group [1]. A module is a group of software elements that adapts a certain model of components. According to composition standard [2] a component without any changes or modification can be organized independently. Meyer [3] defined a component or module as: Following conditions are satisfied to be a module which is a computer software element or program: One software element can be used by other components (software elements), called as its „clients‟. Client author can use this component because it contains necessary and sufficient description. Component can not be bound to any certain or fixed set of client. A software module ”component” [4] is a collection of software packages i.e: A module of software should be independently generated to achieve some functional requirement and joined with some other module with the help of clearly defined interfaces for the future use. Reusing the component or module is the important function of this concept. It has clearly specified interfaces for the requirement and services it expects from the third party. It can be connected to other components without any changes in the components themselves perhaps adding some other features. Following details are the characteristic of a component [5]: a) A component is called as a capsule of data . Hiding of information is the most important principle for the core construction which is underlying the components. b) Implementation of a component can be done or developed in any language, not only in any object-oriented or module-oriented languages but also in conventional languages. c) Module of a component interface is developed or generated by using an interface description language (IDL). d) Adaptations can be obtained by changing of one component to other component by using framework architectures which form the enabling technology of plug & play software. In a component based software engineering, software system can have number of “components” which contains mnemonic codes using assembly language instructions, tasks or jobs, sub-routines, functions, modules, classes, objects and entity, processes, software packages, sub-systems, etc. The main objective of module-based product development is to develop or generate computer programs by using already defined software modules and maintaining them also. Reusable components means that it can be used again and again in many systems programs or module “component” and the component must interact with each other with in the domain of a system. Component based software engineering has four orthogonal properties for a reusable component : © www.ijarcsse.com, All Rights Reserved Page | 597 Chopra et al., International Journals of Advanced Research in Computer Science and Software Engineering ISSN: 2277-128X (Volume-7, Issue-6) a. Common specific interface, b. Strong implicit context dependency, c. Deployment of independent component , d. Composition of another party. 1.1 Architecture of CBSE Development approach of component based software module ”component” depends on the thought to generate software system module by picking suitable ready made modules and combining them in a package which should be well-defined .The entire architecture of component based software engineering (CBSE) is based upon two key factors or activities. 1) Domain engineering 2) Component-based development (CBD) Basically Domain engineering is used to analyze the domain of application with an idea of finding or identifying the common properties between various software systems and develop components so that they can be reused in various systems according to the need. Data components and functional behavior are the candidates for reuse which domain engineering places them in a library for future reuse. Component-based development (CBD)takes demand from the end user or customer and pick the most suitable architecture. On the basis of that architecture ,system can be build from the base. Module1 Module Repository Module 2 Systems software Integrate Module n Pick COTS Modules Figure1: Architecture of CBSE In a traditional approach software can be developed or implemented only from the scratch. On the other hand this new software development approach is entirely different from the traditional one in which the component can be developed or generated by different software developers using different platforms and different languages known as commercial off-the shelf (COTS) shown in Figure 1.Commercial off-the shelf modules can be verified out from a module repository, and integrate into a desired software system. A normal procedure is followed to pick and combined different modules. With the help of a component-based software development system, it can be tremendously reduced the cost and time of generating a software and improve the total performance of CBD based software system. It also help in improving the quality of software systems [6] [7]. These are the following principles of CBSE ”Component based software engineering” to develop software [8]: A. Development of software independently Software systems can be developed and assembled by many computer professionals to form components and implementation of the specific requirements play an important role. A good software component should have minimum coupling an maximum cohesion and this is the core concept of software engineering so the end result of that module should be of excellent quality and provide transparent path of communication . By abstraction we can help the developers and users of components to develop independent software and providing them to common neutral interface to form a huge system. B. Software reusability In a huge software system some tiny part of that system is very crucial known as special purpose software. This important computer program software is very crucial to design and integrate pre-existing modules across the entire domain in developing new modules. To develop a new module “component”, it is very important to assemble them in a pre-existing component which will allow inter-component communication. © www.ijarcsse.com, All Rights Reserved Page | 598 Chopra et al., International Journals of Advanced Research in Computer Science and Software Engineering ISSN: 2277-128X (Volume-7, Issue-6) C. Quality of software Enhancing the quality of enterprise software systems, domain experts develop components and it can assemble by software professionals to form large software systems. The enterprise software system or a domain requirement is shown to have required behavior, either through tracing, logical reasoning, or testing. The approach of quality assurance should be easy and scalable. D. Software maintainability Now a days the maintenance of software is globally accepted part of software life cycle. It includes all the updated and modifications done after the delivery of software product. There are so many reasons why changes are required in a software. A component based software system should be user friendly , and easy to understand [9]. II. RELATED WORK DONE AND LITERATURE SURVEY OF CBSE MODELS There are so many component based software engineering process models which have been designed by a computer scientists and researchers. These models appear in many fields like academia and in software industry. Some of them are studied and discussed in the following section 1. The V Model To built a system from reusable software components the V model [10] is used based on traditional software development technique. It has a number of steps and gives the necessary information at the design phases. The V model emphasis on component development lifecycle. The development of Component lifecycle is considered as entirely different process. Selection of component is totally dependent on the input from the selection phase which will be evaluated to build a large computer system. The V Model is more flexible than the traditional waterfall model although all other things in the model are approximately the same. In a V model next phase begins after the first phase has completed. As in a waterfall model , requirements starts the life cycle model. In this model emphasis on testing is more than the waterfall model. Before starting the coding, first testing procedures should be developed and the test plan emphasis on meeting the functionality specified in requirements gathering in the life cycle at every phase of the implementation.. 2. The Y Model Y model was developed by Capretz [11], a new life cycle model for component-based development. It is used in software development by change and instability, so this Component based software life cycle model helps in over lapping and iteration whenever required.. This model contains the following phases; 1) Domain engineering, 2) Frame working, 3) Integrating, 4) Archiving, 5) Analysis of system, 6) Design and implementation, 7) Testing and deployment 8) Maintenance. This model proposes a new phases like domain engineering, frame working, assembly and archiving with the other phases of traditional life cycle models. Software reusability is the main concern and putting more emphasis on reusability during component based software development. Reusability is based on the assumption that it will facilitate or help in the future projects. 3. The W Model V plus V forms the W lifecycle model [12] in which one is for component life cycle (CLC) and the other for system lifecycle (SLC). CLC and SLC are the part of module based development procedure. It is the sole of this model. This is a fresh concept of CBD process call as W Model. This is basically based on the concept of V Model. In a W model first V defines the “component development process” and second V defines “system development process” and then these two processes merge into a single CBD process. In CBD process the life cycle of module “component” is little different from other one[13]. It fulfills all the need of CBD process. The component lifecycle contains two major phases: 1. Component design 2. Component deployment According to the domain knowledge or requirements [14], software components are identified and developed in the design phase and placed in a software component repository which is a domain-specific not a system-specific. 4. The X Model The X Model was developed by Tomar and Gill [15].In this model, process starts in a normal way by: 1) Requirement engineering © www.ijarcsse.com, All Rights Reserved Page | 599 Chopra et al., International Journals of Advanced Research in Computer Science and Software Engineering ISSN: 2277-128X (Volume-7, Issue-6) 2) Requirement specification. Reusability is the main concern of X model software life cycle model where software is developed by using reusable software and provides common interface to develop the large component system and that component should be testable There are basically two methods to build component based software development 1) Generic software components 2) To develop a module “component” of software for further use which can be within the module or it can be connected with other modules to build a large computer system. It is up the software developer whether he wants some changes in the module or taken as it is. Component based software development deals in three different aspects 1) Reuse the software module 2) Modify the existing software module for future , then use it 3) Without any changes in the existing software module , develop for future use The main advantage of this model is that modules are developed to be reused in many different component based system program and it is also good for large software development. 5. The COTS Based Model Recognizing the square activity vital change in a conventional system development life-cycle [16],is the most important key factors or an activities in this existing development model. In a company there is a chance that some of these might have already been created and some of them have adopted to an associate degree which will be based on architecture line of product method to reuse and some of the others are going to be new to most organizations. Commercial off-the shelf an associate degree adaptation of a high-level process model developed specifically for the Domain Specific Software Architectures Program(DARPA). 6. Umbrella Model There are three stages in an umbrella [17] components based software life cycle model: (1) Design phase (2) Integration phase (3) Run-time phase, In a design phase components are designed or selected from the repository . In an integration phase components are joined with others components. In a run-time phase binaries of component are initialized and executed in the dynamic system. Life cycle model of a software component defines (i) In which sequence the composition of components follows. (ii) What is the purpose of these sequences (iii) Composition of components. There are many CBSD methodologies had appeared in the last three decades. These methodologies of software life cycle reflects few or all phases of cycle ranging from requirements to maintenance. In response to the new idea regarding way to address the inherent complexity of software systems, these methodologies have been created. Over the last sixteen years the concept of reusing the software has been increasing. Due to this methodologies the modules based development of computer program has become a growing area of research. 7. The Knot Model Reusability is the prime important factor in the Knot model [18]although feedback and risk factor is analyzed in each and every phase. For larger or medium advanced system‟s development this model is used and its supports three states of the components. 1) If the repository does not contain new component in its pool then it generates a fresh new module ”component” for future use and place them in the repository. 2) If a software module is not available or some part of the module is available, then modify the module and place them in the repository for future utilization. 3) If the component is available in the domain pool of the repository then reuse the component throughout the new development system. In a component base software system when a component is developed it is not for specific or explicit application rather than it should carry general specification. Risk is resolved in the beginning stages of every phase in this model. Due to this cost and time of developing a component is reduced and making the software more efficient and reliable. Feedback is taken at the end of every phase ends up and new modification or improvement can be done in a component. Time and price can be reduced by good management because it rectifies the errors and conflicts, if any, during that phase. a) No provision of out sourcing of components. b) Choosing a right component may be difficult. c) Managing the reservoir can also be tough. © www.ijarcsse.com, All Rights Reserved Page | 600 Chopra et al., International Journals of Advanced Research in Computer Science and Software Engineering ISSN: 2277-128X (Volume-7, Issue-6) 8. Elite Model Testing and verification are the two most important factors of this Elite model [19]and these two factors are used as a continuous process. For a component based software development (CBSD) Elite model has described a number of activities that make a framework of a life cycle. In this new technology of component based development (CBD) system, selection of a module ”component” and combine with other modules are the two most vital activities and these two things are joined with each other. During this context for component based software engineering a novel model is proposed a life cycle model referred as ELCM i.e Elite Life Cycle Development Model. It provides a component based software engineering life cycle perspective on election and development issues. 9. Elite Plus Model The prime objective of this model is to just go through and analyze the existing component based development(CBSD) model .On the basis of the study researcher had presented a novel model called as Elite plus model. The prime and the most vital factor of this model is the reusing of components. These reusable components can be used in already existing components or it can be connected with other components via common interfaces to from the giant system. The Elite Plus CBSD model has the following steps [20] A. Requirement B. Analysis of risk factor C. Domain engineering D. Testing – Combining - Testing E. New version F. Product evaluation by the customer G. Product delivery In this model every phase will be transferable called as “versions” of the system. When it is implemented, the first version is known as a core product “module”. This module is used by the end user or customer. On the basis of end user evaluation a novel strategy is developed for, the new version. This entire exercise is basically used for the enhancement of our module “core product” to just satisfy our customer requirement. This exercise continues in every phase of the version until we find the desired end product which will satisfy the end user or customer. If the end user or customer says which is not feasible to fulfill the demand to that version, try to create a new version to meet the requirement of the customer. Table 1 – Comparative analysis of existing CBSE models Model Activity AOD SOC CE CS CSP RAOAC RAOIC CC CT ICST ROC UCI ROS RRC V Y W X COTS Umbrella Knot Elite Elite plus Yes No Yes Yes No No No Yes Yes No Yes No No No Yes No Yes Yes No No No No Yes No Yes No Yes No Yes Yes Yes Yes No No No No Yes No Yes No Yes No Yes Yes Yes Yes No No No No Yes No Yes Yes Yes No Yes Yes Yes Yes No No No No Yes No Yes No Yes No Yes No Yes Yes No No No No Yes No Yes No No No Yes No Yes Yes No Yes No No Yes No Yes No Yes No No No No Yes Yes No No No No Yes Yes Yes No No Yes Yes Yes Yes Yes Yes Yes Yes Yes No Yes Yes Yes No Meaning of Activities AOD: Analysis of domain SOC: Searching of component CE: Component evaluation CS: Component selection CSP: Component selection procedure RAOAC: Risk analysis of a components RAOICS: Risk analysis of integrated componenets CC: Component certification CT: Component testing ICST: Integrated CBSE software testing © www.ijarcsse.com, All Rights Reserved Page | 601 ROC: UCI: ROS: RRC: Chopra et al., International Journals of Advanced Research in Computer Science and Software Engineering ISSN: 2277-128X (Volume-7, Issue-6) Reliability of components User customer involvement Reusability of Software Recent requirement changes On the basis of our research I have found number of activities in different CBSE models and made a columnar chart. ACTIVITIES REPRESENTATION OF DIFFERENT CBSE MODELS I have suggested fourteen different activities in nine CBSE models. Number of activity found in V model = 6 Number of activity found in Y model = 6 Number of activity found in W model = 7 Number of activity found in X model = 8 Number of activity found in COTS model = 7 Number of activity found in Umbrella model = 5 Number of activity found in knot model = 7 Number of activity found in Elite model = 5 Number of activity found in Elite Plus model = 12 On the basis of activities we can draw a pie chart which tells the efficiency of a model. By using this formula : % of activity = (Number of activities in a model) X 100 / ( Total number of activities) Percentage of activity in a V model = (6) X 100 / (14) = 42.85% Percentage of activity in a Y model = (6) X 100 / (14) = 42.85% Percentage of activity in a W model = (7) X 100 / (14) = 50% Percentage of activity in a X model = (8) X 100 / (14) = 57.14% Percentage of activity in a COTS model = (7) X 100 / (14) = 50% Percentage of activity in a Umbrella model = (5) X 100 / (14) = 35.71% Percentage of activity in a knot model = (7) X 100 / (14) = 50% Percentage of activity in a Elite model = (5) X 100 / (14) = 35.71% Percentage of activity in a Elite Plus model = (12) X 100 / (14) = 85.71% © www.ijarcsse.com, All Rights Reserved Page | 602 Chopra et al., International Journals of Advanced Research in Computer Science and Software Engineering ISSN: 2277-128X (Volume-7, Issue-6) III. CONCLUSION This paper gives an analysis of many CBSE models. On the basis of activity we analyzed and did comparative analysis and made a columnar chart . The activity was based on the reasoning from the researcher and considered as subjective. On the basis of our research we made a pie diagram that will suggest Elite Plus model is the best suitable for the software project for the activity based in Table1. In the coming years it will show that in order to keep CBSE an attractive field of research we could also suggest to include cost and time in the above research. REFERENCES [1] Szyperski C., (1998). ”Component Software, Beyond Object-Oriented Programming”, ACM Press, AddisonWesley, NJ. [2] G.T. HeinemanandW.T.Councill, editors. Component-Based Software Engineering : Putting the Pieces Together. Addison-Wesley, 2001 [3] B. Meyer. “The grand challenge of trusted components”. In Proc. ICSE 2003, pages 660–667. IEEE, 2003 [4] D‟Souza D. F. and Wills A.C., (1997).” Objects, Components, And Frameworks with UML – the Catalys is Approach", Addison-Wesley, Reading, Mass [5] Kung-KiuLau, MarioOrnaghi and ZhengWang, “A Software Component Model and its Preliminary Formalisation”, Springer-Verlag Berlin Heidelberg, 2006 [6] G. Pour, “Enterprise JavaBeans, JavaBeans & XML Expanding the Possibilities for Web-Based Enterprise Application Development,” Proceedings Technology of Object-Oriented Languages and Systems, TOOLS 31, pp.282-291 1999. [7] G.Pour, M. Griss, J. Favaro, “Making the Transition to Component-Based Enterprise Software Development: Overcoming the Obstacles – Patterns for Success,” Proceedings of Technology of Object Oriented Languages and systems, 1999, pp.419 – 419. [8] IqbaldeepKaur, Parvinder S. Sandhu, Hardeep Singh, and VandanaSaini, “World Academy of Science, Engineering and Technology 50”, 2009 [9] M. Sitaraman and B. W. Weide , “Special Feature Component-Based Software Using RESOLVE”, ACM SIGSOFT Software Engineering Notes 19, No. 4, 21-67, October 1994. [10] “International Journal of Scientific & Engineering Research”, Volume 3, Issue 2, Februaryy-2012 1 ISSN 2229-5518 [11] Luiz Fernando Capretz, “Y: A New Component-based software life cycle model”, Journal of Computer Science 1 (1): 76-82, 2005, ISSN 1549-3636 © Science Publications, 2005 [12] The” W Model “for Component-based Software Development [online]. Online Available: http://www.cs.man.ac.uk/~kung-kiu/pub/seaa11b.pdf. [13] Kotonya G; Sommerville I; Hall S, “Towards A Classification Model for Component- Based Software Engineering”, in Proceedings of 2003, Euromicro Conference, 29th, Dept. of Computer., Lancaster Univ., UK, 1-6. [14] Ivica Crnkovic, “Component-based software engineering for embedded systems”, ICSE '05 Proceedings of the 2005, 27th international conference on Software engineering, ACM New York, NY, USA. [15] Tomar, P. Gill, N.S. , “Verification & Validation of Components with New X Component-Based Model”,in Proceedings of 2010 , Software Technology and Engineering (ICSTE), 2nd International Conference, San Juan, PR, 3-5 Oct [16] Christine L. Braun, “A lifecycle process for the effective reuse of commercial off-the-shelf (COTS) software” in Proceedings of SSR '99 Proceedings of the 1999 symposium on Software reusability ACM New York, NY, USA, Pp. 29-36 [17] Anurag Dixit and P.C. Saxena, “Umbrella: A New Component-Based Software Development Model” International Conference on Computer Engineering and Applications2009IPCSIT vol.2 (2011) (2011) IACSIT Press, Singapore. [18] Rajender Singh Chhillar, ParveenKajla, “A New Knot Model for Component Based Software Development”, International Journal of Computer Science Vol: 8 Issue: 3 Pp: 480-484, 2011 [19] LataNautiyal and Dr.Neena Gupta “Elite - A New Component based Software Development Model.” International Journal of Computer Applications (IJCA), Vol. 63 – no.- 21, pp. 53-57, February 2013. [20] LataNautiyal and Dr.Neena Gupta “Elite Plus - Component Based Software Process Model.” International Journal of Computer Applications (IJCA)(0975- 8887), Vol. 90 – no.- 5, pp. 1-7, March 2014 © www.ijarcsse.com, All Rights Reserved Page | 603
© Copyright 2025 Paperzz