Analogous Study of Component-Based Software

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