[go: up one dir, main page]

0% found this document useful (0 votes)
14 views9 pages

Metrics Project

The Software Metrics Project analyzes the maintainability of the ArtOfIllusion software using object-oriented metrics such as coupling, cohesion, and complexity. It employs tools like Metrics Reloaded and CodeMR for data collection and analysis, utilizing the GQM framework to evaluate various software versions. The findings aim to provide insights into software quality and guide future improvements in development practices.

Uploaded by

get2priyanshu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views9 pages

Metrics Project

The Software Metrics Project analyzes the maintainability of the ArtOfIllusion software using object-oriented metrics such as coupling, cohesion, and complexity. It employs tools like Metrics Reloaded and CodeMR for data collection and analysis, utilizing the GQM framework to evaluate various software versions. The findings aim to provide insights into software quality and guide future improvements in development practices.

Uploaded by

get2priyanshu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

Software Metrics Project

Sai Shreya Spurthi Dantu Vaishnavi Soni Surya Bhagavan Raju Pericherla Lakshmi Ashritha Annadata
sadp21@student.bth.se vaso21@student.bth.se supe22@student.bth.se laad21@student.bth.se
20020211-T043 20001205-T207 20020302-T035 20001017-T205

I. I NTRODUCTION best suitable in this study as an experiment is conducted in a


Software metrics are a very important factor in deciding the controlled environment where the variables are manipulated to
quality of a software. In recent times object oriented metrics test a hypothesis which is not applicable in this case. Similarly
have become an essential part of development []. OO metrics survey is the process of collecting data and insights on a
focuses on measuring class and design. Metrics should be used targeted group of population which is also the case here.
from early stages of development as it reduces efforts and im- B. Data Collection
proves quality. Software quality is a very important aspect with
Tools used:CodeMR and Metrics reloaded.
today’s growing technology. It provides an idea about how well
the developed product is and what further improvements and
Metrics Reloaded: IntelliJ IDEA is a platform that
changes can be performed. Specifically it is very important for
provides plugins with various functionalities; one such plugin
the development team to know about maintenance of software
is metrics reloaded; it is used to provide the wealth of the
where the concept of maintainability comes into play. Various
metrics used. It gives a keen insight about the project. After
object oriented metrics like coupling,cohesion,complexity etc
the installation of this software it shows us various options
can help achieve this. This project focuses on studying the
to fine tune and analyze different parts of code be it certain
maintainability of ArtOfIllusion. An analysis on several differ-
projects, module files etc. Metrics such as dependency,
ent versions like 3.2.0, “nightly-2020-06- 25”, 3.1.0, “nightly-
complexity, class count, lines of code etc can be calculated.
47c3f74”, “nightly-6d119b1”, “nightly-187a2b3” and 3.0.3 a
There is also an option to generate your own selection of
keen study on these version is done to see the quality change
metrics based on the project. Pie charts, histograms and
over the period of time. GQM empirical methodology is used
distribution diagrams can also be drawn with the help of
to understand the internal attributes of the goal like code
metrics reloaded. .
structure,complexity,size and understandability and conclude
which classes are difficult to maintain. [?].
CodeMR: CodeMR is an integration of eclipse and IntelliJ
This paper consists of the first section having the intro-
IDEA and a quick and easy tool to understand the quality of
duction followed by research methodology along with data
software. One can visualize high level object oriented metrics
collection and analysis and the next section containing GQM
like complexity, cohesion, coupling etc to see the state of
tree with relevant questions, suitable metrics, tools and justi-
the project. We can divide into customized working sets and
fications. The fourth section has the discussion about results
extract information. Metrics can be observed in various views
which is answering all the GQM questions and visualizing the
like package structure, graph views and dependency etc. It
data obtained and finally the last section discusses the analysis
saves all the files to the local machine and no third party is
of results, reflection of the study and related work for further
involved. Visualiton can be done on a keen level with various
extension.
distribution diagrams..
II. R ESEARCH M ETHODOLOGY Both Metrics Reloaded and CodeMR produces code at both
class level and package level and sometimes methods as well.
A. Study type Metrics that we cannot get from packages are individually
The methodology that is well suited for this project calculated from each class and then average is calculated.
would be case study. A case study is a systematic study on
a specified subject by focusing on extracting an in-depth C. Data Analysis
knowledge from real time context. It is a flexible approach Data is collected in Excel sheets as it has strong
which aims to investigate contemporary situations using computational power to store and analyze large data sets. It
multiple pieces of evidence. is an easy and accessible tool. Large data visualization can
also be done in simple ways.
Justification: Here our aim is to study the maintainability
of art of illusion to achieve this we used metrics extraction Statistical Measures: Most of the metrics considered were
tools collected relevant metrics and then later analyzed the evaluated from class level. The sums are calculated followed
results for all the given versions for software. Case study is the by mean for all the classes thereby packages. Therefore we
can normalize the data. For some package level analysis will with each other. And is used to calculate the coupling with
be directly provided by the tool. The central tendency is each other classes. If the CBO value is zero, it indicates no
based on the scale we fix upon. relationship between the classes.

Visualization: The data we collected is in the form of Justification - The number of classes, coupled with other
tables to make it more readable and understandable. We make classes, is the count of the CBO. If that value is in between
use of the visualization features of excel sheets. Various data 1 and 4, then the class or modules are perfect, i.e. loosely
visualizations like barcharts, histograms, scatter plots etc can coupled and if the value is high that leads to high coupled
be illustrated. Here we used scatter plots where each version is and increases the complexity. In the research paper “can we
stored in different sheets and x axis is for the packages and y predict types of code changes? And empirical analysis” by E
for the versions. Each metrics and their corresponding values Giger, M Pinzger and Harald C.G in 2012, they concluded
are plotted in a similar manner for analysis. that the CBO values provide the strong coupling with source
code changes, which showed proneness change in code.
III. GQM T REE
Goal Question Metric framework is an approach adopted Efferent coupling –Ce is defined as the total count of
to improve the quality of business products or processes by classes in the packages which is dependent on the other
measuring them using different metrics. The famous Basili’s classes in that package. In other words, it is defined as the
GQM process contains five phases:Develop goals, Formulate no. of incoming arrows to the class.
questions relevant to goals (each question containing an entity
and an attribute),identify and specify metrics to answer the Justification - It is a count of the no. of inner classes that
above questions, validate and analyze the collected data. The are dependent on external classes. If the Ce values are zero
results will help in achieving the goal and in depicting future or low value that is defined as the module being more stable.
improvements[2]. Also, if the value of Ce is higher, then the module is unstable.
If the Ce value is low then the module is more stable, and
TABLE I also the maintenance would be easy.
R ESEARCH Q UESTIONS

Goal
Afferent coupling – Ca is meant by total count of classes
To examine maintainability of ArtOfIllusion present in other packages which are dependent on the
Question Attribute classes in the package, by this the Afferent coupling is been
Q1 Which Art Of Illusion module has least Coupling calculated.
coupling ?
Q2 Which Art of Illusion module is highly Cohesion
cohesive? Justification – afferent coupling is used to calculate number
Q3 Which Art Of Illusion module has the least Complexity classes in the exterior classes which are dependent on inner
complexity?
Q4 Which Art Of Illusion module is easier to Understan- classes. It is also known as the number of arrows coming
understand ? inside of a class. High Afferent coupling values indicate
dability good coupling which in turn increases the difficulty of
Q5 Which Art Of Illusion module is the small- Size
est in size ? maintenance. Afferent coupling is used to calculate the no.
of class in the exterior classes, those who are dependent on
inner classes. In other words, no. of arrows which are coming
TABLE II
inside of a class. High Afferent Coupling value indicates a
M ETRICS U SED good coupling which makes difficult to maintain.
Metrics
M1 CBO Coupling Between Objects LCOM – It represents the number of non-connected method
M2 Ce Efferent Coupling pairs in a class, which represent the independent parts with no
M3 Ca Afferent Coupling cohesion. It is calculated as
M4 LCOM Lack of cohesion metric
LCOM = No. of method pairs that share no common
M5 LTCC Lack of Tight class cohesion
M6 DIT Depth of Inheritance Tree instance variable - No. of method pairs that share common
M7 LOC Lines of Code instance variables.
M8 Comment ra- Comment ratio
tio
M9 NOM Number of methods Justification – According to the jehad Al Dallal research
M10 RFC Response for a class paper “Improving the applicability of object-oriented class
cohesion metrics”, defined as the cohesion metrics that
improves the applicability and increases in the code quality
A. Metrics in every suitable case. If the value of cohesion is high
CBO – Coupling between objects is used in representing that indicates a better code understandability, reusability,
how many data types are present in the class and are coupled and analyzing. If that LCOM value also decreases the
maintainability, portability, and efficiency. NOM – NOM is defined as the total no. of methods present
in a given class.
LTCC – The lack cohesion between the public methods of
a class is measured using LTCC.That is the number of public Justification – : NOM is used to measure the size of the
methods in the class that are directly related. Classes with a class by calculating the no. of methods present in the class.
high lack of cohesiveness imply design flaws. If the count of the NOC is high, the code is size increases,
which makes it hard to maintain and similarly if that value is
Justification—It is used for measuring cohesion as lack of comparatively less,then the size is less and which is easy to
cohesion will disturb the design and knowing this value will maintain
indicate the efficiency of the system.
TABLE III
C APTION
RFC – The number of different methods and Constructors
Entity Attribute Metric
Introduced by a Class is known as the RFC. It measures Understandability Comment Ratio
the range of various methods that can be executed when a CBO
message is received by an object of that class. Coupling Ce
Ca
RFC
Justification –If the RFC value is greater than the no. of Package Complexity
DIT
methods that can invokes from a class, that leads to more LOC
Size
NOM
complexity in the class. If that value is the less then that LCOM
leads to the less complex and more easy to maintain. Cohesion LTCC

DIT – : DIT is used to measure the complexity. It can B. Scale types:


also be used the calculate the path with the maximum
length from a class to the root. This can also be measured by In general, there are five scale types: Nominal Scale: This
counting the modes present between root and the subject node. scale is used to categorize entities into unordered classes
Ordinal Scale: This scale is used to categorize entities into
ordered classes. Ratio Scale: This scale is used to measure
Justification – If the value of DIT increases the distance
entities which are quantitative in nature and a zero element
between the classes and the root will also increase. By which
exists. Interval Scale: This scale is also a quantitative
the complexity of the code will also increase, which becomes
measurement scale but zero element is random. Absolute
harder to maintain with high DIT.
Scale: This scale is used for counting the number of elements
in the dataset.
Common Ratio– The comments in the code assist us in
understanding what the code does, how well it works, and Justification:
also what the code is all about. It’s the number of lines
of code divided by the total number of lines of code. CR CB0-Absolute Justification:CBO as mentioned above is the
=Comment lines of code / Source lines of code. total count of classes coupled to a given class. So Absolute
scale is the most appropriate one to measure this metric.
Justification – A good comment ratio makes the code
easier to read and maintain. If the Comment Ratio is too low, Ca-Absolute Justification:Ca is the absolute value of the
the code will be hard to maintain and understand, and if it is total number of packages the given package is dependent
too high, the code will be difficult to understand. The best on.So Absolute scale is the most appropriate one to measure
comment ratio is 0 (zero). A good CR is when you write this metric.
the fewest comments possible while still comprehending the
code. The CR is an appropriate measure for determining the Ce-Absolute Justification:Ce is the absolute value of total
product’s understandability and maintainability number packages that are dependent on the given package
and is similar to Ca metric. Therefore, Absolute scale is the
LOC – Lines Of Code is a size measurement that most appropriate one to measure this metric.
determines the size of a program by counting the number of
lines it contains. The complexity of a program can sometimes LCOM-Ratio Justification:Since it measures the cohesion
be increased by adding more lines of code. based on methods that are linked to each other in a class and
the values are numerical, Ratio scale is the most appropriate
Justification – :For calculating the lines of the code, a few scale.
things are considered, such as the number of methods in that
class and the number of lines the code has. LTCC-Ratio Justification: It measures the cohesion based
on directly connected methods in a class. Therefore, the Ratio
scale is the most appropriate scale to measure TCC. TABLE V
VARYING SIZE
RFC-Ratio Justification:RFC gives the count of number of version number number Lines
classes that can be executed in response to a call.So,the most of packages of classes of code
suitable metrics would be Ratio. 3.2.0 16 523 73016
nightly- 16 524 72920
2020-06- 25
DIT-Absolute Justification: This metric shows the position 3.1.0 16 522 72465
of the class in the inheritance tree. Hence, the appropriate nightly- 16 522 72464
47c3f74
metrics would be Absolute. nightly- 16 520 72292
6d119b1
Comment Ratio-Ratio Justification: Comment ratio shows nightly- 16 516 70995
the understandability of the code. It is calculated as- Comment 187a2b3
3.0.3 16 509 69207
ratio= (No. of commented lines) CLOC/ (Total lines of code)
TLOC Hence, the appropriate scale type would be Ratio.
number of classes increased from the first version till the
LOC-Absolute Justification: LOC gives the total number latest version.Only the latest version is an exception as number
of lines in a code; it is related to the size of the code. Hence, of classes reduced by one from nightly-2020-06-25 to 3.3.0.
the suitable scale type would be Absolute. Similarly, there is an increase in LOC of about 4k LOC in the
latest version when compared to the first version.
NOM-Absolute Justification:NOM gives the total number
of methods in the code. It tells about the size of the code.
TABLE VI
Hence, the appropriate scale type would be Absolute. S IZE OF PACKAGES IN THE LATEST VERSION

Package Lines number


IV. R ESULT of code of classes
artofillusion 22573 1361
A. Art of illusion artofillusion.animation 9062 34
Art Of Illusion is a program that is used to create finest artofillusion.animation.distortion 2140 45
artofillusion.image 3231 9
images and animations coded in Java Language.In this section
artofillusion.image.filter 787 4
,we present a complete overview of Art Of Illusion and show artofillusion.keystroke 314 9
how it evolved over different versions. All the Seven versions artofillusion.material 701 5
of Art Of Illusion are thoroughly analyzed and compared to artofillusion.math 1836 1
artofillusion.object 11189 33
achieve the stated goal .Each version contains 16 packages artofillusion.procedural 7012 64
or modules and we analyzed each one of them across all the artofillusion.script 962 5
versions. The packages identified are listed below along with artofillusion.texture 5069 21
their Lines Of Code (LOC) and Number Of Classes (NOC) in artofillusion.ui 3675 60
artofillusion.unwrap 312 0
the latest version 3.2.0 of Art Of Illusion. artofillusion.util 1297 0
artofillusion.view 2856 13
TABLE IV
S IZE OF PACKAGES IN THE LATEST VERSION

Package Lines number B. GQM answers


of code of classes
artofillusion 22573 1361 1) Which Art Of Illusion module has least coupling ?:
artofillusion.animation 9062 34 Coupling is the measure of dependency of one module over
artofillusion.animation.distortion 2140 45 the other.Since Coupling is a measure of interconnections, it
artofillusion.image 3231 9
can be considered as a good indicator of the structure. Low
artofillusion.image.filter 787 4
artofillusion.keystroke 314 9 Coupling indicates less dependency and interlinks between
artofillusion.material 701 5 modules.. Thus there will be less connectivity among the
artofillusion.math 1836 1 modules which makes it easier to maintain them. To answer
artofillusion.object 11189 33
artofillusion.procedural 7012 64
this question, we selected relevant metrics such as CBO,Ca
artofillusion.script 962 5 and Ce.We used the Code MR tool to extract each of these
artofillusion.texture 5069 21 metrics for individual packages in different versions. For each
artofillusion.ui 3675 60 of these metrics , the tool provides class level values. So we
artofillusion.unwrap 312 0
artofillusion.util 1297 0 aggregated them to obtain package level values by taking the
artofillusion.view 2856 13 mean of all the values(since ratio scale is most appropriate to
measure the above metrics.
As we can see in the above table, the number of packages As far as CBO values are considered from fig1,
i.e 16 remained consistent throughout all the versions.The artofillusion.util has zero CBO value and this value is
consistent throughout all the versions.This lowest coupling Ca is the measure of the number of packages outside
value makes it very easier to maintain. the class that are dependent on a given package. Packages
such as artofillusion.osspecific , artofillusion.raster, artofillu-
sion.raytracer ,artofillusion.tools , artofillusion.translators and
artofillusion.unwrap have zero Ca values and thus are easier to
maintain. artofillusion.script and artofillusion.image.filter have
next lowest values. Artofillusion.math has highest ca values
and is the hardest to maintain among all the modules.

Fig. 1. CBO

Among all the packages, the art of illusion package has the
low coupling values in the initial versions. But we observe
that it increased to a considerable amount in the latest version.
So this module is difficult to maintain now when compared
to previous versions.As far as latest version is considered
,art of illusion.object has highest CBO value.On the whole, Fig. 4. Ca graph
the CBO values of majority of modules is increased making
them difficult to maintain. Ce is the measure of the number of classes in the given
package that depend on other packages.

Fig. 2. CBO graph Fig. 5. Ce

Ce values for artofillusion.math reduced to zero in the latest


version and is very easier to maintain compared to all other
modules.

Fig. 3. Ca Fig. 6. Ce Graph


artofillusion.util also has a zero value Modules such as and artofillusion.keystroke have similar but high values of
artofillusion.keystroke and artofillusion.osspecific have the LCOM .Since these packages have high values of LCOM,
next lowest Ce values and are consistent throughout all the they have less cohesion and are very tough to maintain. The
versions. artofillusion package has highest Ce values followed artofillusion.image.filter package has the least LCOM value
by artofillusion.rayster and artofillusion.osspecific making and is consistent across all the versions.
these packages difficult to maintain compared to others. It has highest cohesion and is very easier to maintain
On the whole, artofillusion.util has zero CBO values and Ce when compared to other modules. In fig 5, LTCC values
values and lower Ca values as well .So we can conclude
that artofillusion.util package has the least coupling and thus
is very easier to maintain as it has less dependency over others.

2) Which Art of Illusion module is highly cohesive?


: Cohesion is a measure of relationship between different
methods of a given class.If methods are related to each
other(for example: if they share same instance local variables)
, then that particular module has high cohesion and is
easily maintainable. To answer this question, we selected
two relevant metrics namely LCOM (Lack Of Cohesion of
Methods) and LTCC (Lack of Tight Class Cohesion). Fig. 9. LTCC
We used the Code MR tool to extract both the metrics. We
of all the packages across all the versions are given.
LTCC is a measure of lack of cohesion between public
methods of a class. If LTCC values are high,cohesion
is Low and it becomes difficult to maintain the module.
artofillusion.util and artofillusion.object have high values of
LTCC leading to low cohesion.They are the most difficult
ones to maintain. artofillusion.unwrap package has a zero

Fig. 7. LCOM

extracted the values at method level and aggregated them by


taking the average or Mean of all the values.
In fig 7 ,LCOM values of all the packages across all the
versions are given.LCOM is a measure of unrelated methods
of a class, so high LCOM values lead to low cohesion
and low maintainability. The artofillusion.util package
Fig. 10. LTCC Graph

LTCC value. So it has highest cohesion and is most easiest


to maintain. Artofillusion.image.filter, artofillusion.math and
artofillusion.script modules have next lowest LTCC values
but are quite high compared to artofillusion.unwrap package.
Artofillusion.keystroke package also has low values of LTCC
but has a high value in one of the versions. It is also easier
to maintain compared to most of the other modules.
On the whole, artofillusion.image.filter has highest cohesion
since it has minimal LCOM and TLCC values which makes it
easier to maintain.We can conclude the same from the graphs
also. While artofillusion.unwrap has a zero LTCC value,it
Fig. 8. LCOM-Graph has high LCOM value.So we cannot comment on its cohesion.

has highest LCOM value followed by packages such as 3) Which Art Of Illusion module has the least com-
artofillusion.unwrap,artofillusion.object , artofillusion.image plexity?: Complexity , as the name suggests, is the measure
of how complex the given code of a module is. As the
complexity increases, it gets very difficult to maintain the
code .This complexity can be measured using various metrics
and parameters which can help in determining the complexity
of a given module.To answer this question, we selected two
relevant metrics namely DIT and RFC.

Fig. 13. RFC

Therefore we conclude that artofillusion is more complex and


thus is very difficult to maintain. The packages artofillusion.ui
and artofillusion.view have least values of RFC, Thus they
are less complex and easier to maintain. On the whole,

Fig. 11. DIT

In fig 11, DIT values for all packages across all the
versions are given. As Depth of Inheritence Tree Increases,
it is obvious that the code becomes more complex. This will
lead to decrease in maintainability. We observed that there is
a lot variation in the values for each package across different
versions. We also observed that for each package, the DIT
values are low in the versions 3.0.1, Nightly- 47c3f and
Nightly-187a2b3 . The artofillusion and artofillusion.keystroke

Fig. 14. RFC Graph

we conclude that artofillusion.view module is the module


with least complexity Since it has both low DIT and low
RFC values. Therefore artofillusion.view module is easier To
maintain and has higher maintainability.
4) Which is the most understandable module of Art
Of Illusion?: Understandability is a measure of how easier
it is to understand the code of a given module. More
understandable code is definitely easier to maintain as it takes
less time to repair more more comprehensible code. It will
Fig. 12. DIT Graph

packages have high values of DIT when compared to other


modules. They have high complexity ,hence have low values
of maintainability. We also observed that artofillusion.unwrap
, artofillusion.view and artofillusion.math have least values of
DIT. Among them,artofillusion.unwrap has the lowest com-
plexity and thus is easier to maintain.
In fig 13, RFC values for all packages across all the versions
are given. As RFC value increases, the complexity increases
and maintainability decreases.Similar to DIT values, There
is a lot of variation in RFC values across different versions Fig. 15. Comment Ratio
for each package.The versions Nightly- 47c3f and Nightly-
187a2b3 have very low RFC values when compared to RFC also be easier to identify the errors and hence to maintain.
values of the same package in other versions. Among all the To answer this question, we selected Comment Ratio as the
packages,artofillusion package has very high RFC values . relevant metrics since comments in the code are written so
that both developers and readers can understand the code
clearly. If ratio of commented lines to total Lines of code
increases , understandability automatically.We used Metrics
Reloaded tool to extract the values for this metric at package
level directly across all the versions increases. As per fig 15,

Fig. 17. LOC

LOC and thus it is the smallest module in terms of LOC .This


package is followed by packages such as Artofillusion.filter,
artofillusion.keystroke and artofillusion.material which have
second lowest LOC values.

Fig. 16. Comment Ratio Graph

the artofillusion.icons has a zero commented ratio value. This


suggests that no comments have been made while writing the
code for this module. So it is least understandable module
and most difficult to maintain when compared to others.We
also observed that packages in the latest versions have slightly
higher comment ratio when compared to same package in
the previous versions.But More or less these values are the
same. Among all the packages , artofillusion.util package has
the highest comment ratio (i.e about 11Of LOC belong to
commented lines).These comments will make the code more
understandable and thus easier to maintain.The packages such Fig. 18. LOC-Graph
as artofillusion.tools and artofillusion.math have next highest
comment ratio values .These are also easier to understand Secondly, we consider the values of NOM in fig 10.We
and thus are easier to maintain. observed that there is a lot variation in the values of NOM
We conclude that artofillusion.util is the most understandable for each package across different versions.
package since it has high comment ratio. Thus, maintenance
of this module is easier when compared to others.

5) Which Art Of Illusion Module is smallest in size?: Size


is often considered as the most appropriate internal measure
to measure maintainability. As the size of a module increases,
it becomes difficult to maintain the module. Therefore smaller
modules are easier to maintain and understand. To answer this
question , we selected two relevant metrics namely LOC and
NOM. These two metrics tell about the total number of lines
and methods in the code.
We used Code MR tool to extract both the metrics and
found out the values for all the packages across different Fig. 19. NOM
versions of Art Of Illusion. As per the LOC values given in
fig 18, artofillusion.util package has highest number of LOC Two of the seven versions namely Nightly- 47c3f and Nightly-
followed by artofillusion.object package when compared with 187a2b3 versions have low values of NOM for almost every
other modules .These values of LOC are consistent across package when compared with other versions.
all the versions for both the packages. We also observed that We also observed artofillusion.object has highest values of
artofillusion.script package has least LOC values. Even though NOM in most of the versions, this makes it very difficult
these values are very low In previous versions when compared module to maintain. The artofillusion.script package has least
to latest one, it still remains the module with least number of values of NOM especially in both the above specified versions.
While analyzing individual attributes we also found out that
there are few versions which have Abnormal values such as
Nightly- 47c3f and Nightly-187a2b3. For the metrics DIT,
NOM and RFC , these metrics values for every package is
very low compared to their values in different versions.
We also observed a relation between complexity and Un-
derstandability. They are always inversely related. Artofillu-
sion.math package is most understandable and less complex.
Thus complexity and understandability are inversely propor-
tional.
V. D ISCUSSION
A. Related work
Fig. 20. NOM Graph
Not much data is available on this topic in any of the
reputed databases but in [1] they discussed the object oriented
So it is the smallest module in terms of NOM also. This class maintainability prediction using internal attributes by
package is followed by packages such as artofillusion.view taking the concepts of art of illusion.
, artofillusion.image.filter etc.
On the whole ,the artofillusion.script has the least values
both in terms of LOC and NOM.Therefore We can conclude B. Reflections
that artofillusion.script is the smallest module and thus is
easiest to maintain when compared to other packages. Maintenance of software is very important factor for the
development of a software project in this assigmnet we got to
C. overall analysis use object oriented metrics and tools like codeMR and metrics
reloaded to analyse important information about art of illusion
Overall analysis is done taking the values of all the metrics
for each package into consideration. From the analysis of VI. R EFERENCES
individual questions we observed the following: The packages [1]Jehad Al Dallal, Object-oriented class
that are easier to maintain or have high maintainability based maintainability prediction using internal quality
on Internal attributes are: attributes,Information and Software Technology,Volume
Artofillusion.util has least coupling Artofillu- 55, Issue 11,2013,Pages 2028-2048,ISSN 0950-5849,
sion.image.filter has high cohesion Artofillusion.view has https://doi.org/10.1016/j.infsof.2013.07.005.
least complexity Artofillusion.util has more understandability
Art.illusion.script is small in size V. R. Basili and D. M. Weiss, ”A Methodology for Collecting
Out of 5 internal attributes , artofillusion.util has more Valid Software Engineering Data,” in IEEE Transactions on
favourable values for two of them. So we can conclude that Software Engineering, vol. SE-10, no. 6, pp. 728-738, Nov.
artofillusion.util might be more easier to maintain compared to 1984, doi: 10.1109/TSE.1984.5010301
other modules. We believe that artofillusion.script can also be
considered as an easier to maintain module since It has more
favourable coupling values, size and cohesion values.
The most difficult to maintain module would be artofillusion
and artofillusion.keystroke since they have more complexity
and coupling which makes them very difficult to maintain.
Thus we tried to aggregate the results of individual questions
to evaluate our goal which is to understand which of our
modules are easier to evaluate.

D. Reflections
In this section, we try to further investigate the relationship
between different internal attributes. Considering the size and
structure, we found out few similarities which are as follows:
artofillusion.script has low coupling,high cohesion and less
size . Thus it is very easier to maintain because of its good
size and structure values. Also,artofillusion.object has high
coupling,low cohesion and more size. These values of size
and structure decrease the maintainability of this module.

You might also like