Professional Documents
Culture Documents
Component Sytem
Component Sytem
Component Sytem
Abstract Today, softwares are influencing almost every process involved in our
day-to-day life. The dependence of our routine processes of software system makes
the reliability of these softwares a major concern of industry. Various metrics and
benchmark are designed to ensure the smooth design and implementation of soft-
ware, among which complexity is one. It is always a desire software architect to
design software with lesser complexity. In this paper, component-based software
is considered and metrics to measure the complexity of the software is proposed.
Complexity needs to be measured at component level and its relationship with other
components. UML diagram is drawn to propose a new metrics, and dependency
of one component to another component is measured. Various complexity metrics
namely Method Complexity MCOM, Number of Calls to Other Methods (NCOM),
Component Complexity (CCOM) is evaluated, and Emergent System Complexity
(ESCOM) and overall complexity of the system are evaluated incorporating the con-
tribution of each.
1 Introduction
Software complexity is one of the biggest challenges for the software industry to
maintain the quality of the software. As the software grows in size, software com-
plexity also increases and becomes difficult to measure [1]. The complexity of a
2 Related Work
Shin and Williams [1] perform the statistical analysis on nine software complexities
and analyze that the software complexity plays a major role in software quality.
Nagappan et al. [4] apply the principal component analysis to find out the cyclomatic
complexity which strongly affects the complexity of the code. D’Ambrogio et al. [2]
discussed a method of prediction of software reliability which predicts the reliability
at earlier stages in the development process using the fuzzy method. This paper
contains a more generalized approach, and the reliability is calculated using the fault
tree method. This approach principally makes use of UML diagrams developed in
the earlier stages of software development lifecycle making it easier to predict the
software reliability at the more initial stages saving cost, time, and money. Ali et al.
[5] discussed a technique for early reliability prediction of software components
using behavior models. The behavior models are the diagrams which predict the
reliability by showing the interaction between these components, and how these
components work with each other to perform the desired functionalities. Bernardi
et al. [6] predict the software reliability by using fuzzy methods. The paper contains
a more generalized approach, and the reliability is calculated using the fault tree
method with the use of UML diagrams. System dependability is defined as the degree
to which the system can be considered dependable. System dependability is measured
using the following factors, or it considers the following factors: fault tolerance, fault
prevention, fault removal, and fault forecasting. Sahoo and Mohanty [7] predict the
Complexity Metrics for Component-Based Software System 15
Sequence Diagram
Component Dependency
Graph
testing effort of software tester using UML Diagrams. Software testing is essential
to maintain the quality of the software. Accurate test cases defined for the system are
significant for checking as to what degree the software is reliable. Estimation of test
cases done at earlier stages of the SDLC [8] is very challenging and has its issues
because very less knowledge is available about the system in these initial phases
of SDLC [9], [10]. The functional requirements are ready during the requirement
phase. Hence, there is a need of the hour for early test prediction at the requirements
specification stage and are accomplished using UML diagrams. UML gives enough
information about the system which is necessary for the prediction of test cases [11].
In this study, various complexities are evaluated at various levels which include
(i) Level-1 Complexity called Method Complexity (MCOM).
(ii) Level-2 Complexity Component Complexity (CCOM).
(iii) Level-3 Complexity Emergent System Complexity (ESCOM) of a component-
based system is measured by using various design metrics which is given in
the literature.
(iv) Level-4 Complexity metrics is proposed by using the parameter coupling and
interaction probabilities between the components [12]. To evaluate this metric,
framework is given in Fig. 1.
16 R. Sehgal et al.
material button elevation effect circular material panel floating label material line field renderer material material ripple effect ripple animation
textfield combobox iconbutton
getlevel()
paint(g:Graphics)
update() materialcombobox()
getlevel() paint(g:Graphics)
paint(g:Graphics2D)
update()
setlevel() addRipple()
getlevel() libe(target:JComponent())
getwidth()
material color scrollbar popup
4 Methodology
(i) Level-1 Method Complexity (MCOM) is calculated as given in Eq. (1) and
shown in Table 1.
n
TMCOM(Cj) MCOM(mi ) 155 + 16 171
i1
where
NIMC Number of Internal Method Calls
NOIC Number of Interfaces of a Component
NCOC Number of Couplings to Other Components
The Total Component Complexity (TCCOM) based on all components Ci in a
component-oriented software system S is estimated as
TCCOM(S) ni1 CCOM (ci ) 16 + 14 + 14 44 for all components Ci of
a software system.
(iii) Level-3 Emergent System Complexity (ESCOM) of a component-oriented sys-
tem S could be represented by a function f for the two given values (i) Number
of Links Between Components (NLBC) and (ii) Depth Of the Composition
Tree (DOCT) can be calculated in Eq. 3 and shown in Table 3.
where Depth Of the Composition Tree (DOCT): It is the number of levels in the
entire system. Thus, emergent complexity is the summation of NLBC and DOCT
values, ESCOM 22 + 5 = 27.
Complexity Metrics for Component-Based Software System 19
Interact ci , cj
pij (5)
Interact ci , cj
where
Ci Coupling between the components
pij Interaction Probablities.
5 Results
6 Conclusion
References
1. Shin, Y., Williams, L.: Is complexity really the enemy of software security?. In: Proceedings
of the 4th ACM Workshop on Quality of Protection. ACM (2008)
2. D’Ambrogio, A., Iazeolla, G., Mirandola, R.: A method for the prediction of software reliability,
Department of Computer Science, S&P University of Roma, Italy Conference Paper, Nov 2012
22 R. Sehgal et al.