Need For Maintenance - : 1 - CK Metrics - Proposed by Chidamber and Kemerer
Need For Maintenance - : 1 - CK Metrics - Proposed by Chidamber and Kemerer
delivered to the customer. The main purpose of software maintenance is to modify and
update software application after delivery to correct faults and to improve performance.
Need for Maintenance –
Software Maintenance must be performed in order to:
Correct faults.
Improve the design.
Implement enhancements.
Interface with other systems.
Accommodate programs so that different hardware, software, system features,
and telecommunications facilities can be used.
Migrate legacy software.
Retire software.
Assignment 2
Types of OO Metrics:
1• CK Metrics
2• LK Metrics
3 • MOOD Metrics
• class-based
CK Metrics
CK metrics in 1991, Chidamber and Kemerer proposed a first version of these metrics and later the
definition of some of them were improved and presented in 1994. The six metrics can be summarized as
in Table 1.
2.1 CK metrics
In 1991, Chidamber and
Kemerer[1] proposed a
first version of these
metrics and later the
definition of some of
them were improved and
presented in 1994[2]. The
six metrics can be
summarised as in Table 1.
Table1: CK Metrics
Metric Name Definition
WMC
(Weighted
Method Per
Class)
Sum of Complexities of local
methods
of a class.
DIT (Depth of
Inheritance)
The depth of a class within the
inheritance hierarchy is the
maximum
number of steps from the class
node to
the root of the tree and is
measured by
the number of ancestor classes.
NOC (Number
of Children)
A count of the number of direct
children
of a given class.
CBO (Coupling
Between
Objects)
This metric is a count of the
number of
other classes to which the
current class
is coupled, via non-inheritance-
related
couples. Two classes are
coupled when
the methods of one class use
metho
2.1 CK metrics
In 1991, Chidamber and
Kemerer[1] proposed a
first version of these
metrics and later the
definition of some of
them were improved and
presented in 1994[2]. The
six metrics can be
summarised as in Table 1.
Table1: CK Metrics
Metric Name Definition
WMC
(Weighted
Method Per
Class)
Sum of Complexities of local
methods
of a class.
DIT (Depth of
Inheritance)
The depth of a class within the
inheritance hierarchy is the
maximum
number of steps from the class
node to
the root of the tree and is
measured by
the number of ancestor classes.
NOC (Number
of Children)
A count of the number of direct
children
of a given class.
CBO (Coupling
Between
Objects)
This metric is a count of the
number of
other classes to which the
current class
is coupled, via non-inheritance-
related
couples. Two classes are
coupled when
the methods of one class use
metho
Objective of CK metrics were defined to measure design complexity in relation to their impact on
external quality attributes such as maintainability, reusability, etc.
https://www.aivosto.com/project/help/pm-oo-ck.html
https://www.slideserve.com/jayden/course-notes-set-12-object-oriented-metrics-powerpoint-ppt-
presentation
https://www.researchgate.net/publication/236616349_An_Overview_of_Various_Object_Oriented_Me
trics
The original suite has later been amended by RFC´, LCOM2, LCOM3 and LCOM4 by other authors.
5. https://www.tutorialspoint.com/software_engineering/case_tools_overview.htm
26 Development of CASESine the early days of writing software there has been
a need for automated tools to help the software developerAs computer became
more powerful ad the software that ran on them grew larger and more complex,
power tools with increasing functionality were required
30 Lower CASE ToolsThese focus on the architecture of the system and its
implementation and maintenanceThese tools are effective in helping with the
generation of the program code and are referred to as Code GeneratorsA code
generator is a tool that enables automatic generation of code from the analysis
and design specificationsGenerating code this way ensures that all code is
produced with identical naming conventions
34 UML CASE tools offer automatic code generation from the UML diagram
This tool produces a framework for the code which contains objects and classes.
An Executable Prototype is producedThis is an executable source code program
obtained directly from UMLOne of the main features in UML is Reverse
Engineering where existing source code is reversed engineered into a set of UML
diagrams
Object Oriented Analysis (OOA) begins by looking at the problem domain (the
area of expertise or application that needs to analyze in order to solve a
problem). Its aim is to produce a conceptual model of the information that exists
in the area being analyzed. For the analysis there are a variety of sources. It can
be a formal document, a written requirements statement, interviews with
stakeholders/other interested parties, other methods, etc. The final result of
object-oriented analysis will appear in the form of a conceptual model that
describes what the system is functionally required to do.
Functionalities of OOA
The core activities in OOA are given bellow:
o Find the objects
o Organize the objects by creating object model diagram
o Explain how the objects communicates with each other.
o Set the characteristic or behavior of the objects
o Set the internal of the objects
Advantages of OOA
The OOA provides better performance. Some common advantages of OOA are
given bellow:
o Its focuses on data rather than the procedures as in Structured Analysis
o The objectives of encapsulation and data hiding help the developer to
develop the systems that cannot be tampered by other parts of the system
o It allows effective software complexity management by the virtue of
modularity
o It can be upgraded from small to large system easily.
public:
void setMyValues(int n, char c) {
num = n; ch = c;
}
void getMyValues() {
cout<<"Numbers is: "<<num<< endl;
cout<<"Char is: "<<ch<<endl;
}
};
int main () {
AbstractionExample obj;
obj.setMyValues(100, 'X');
obj.setMyValues();
return 0;
}
#include<iostream>
class Encapsulation
{
private:
// data hidden from outside world
int x;
public:
// function to set value of
// variable x
void set(int a)
{
x =a;
}
// main function
int main()
{
Encapsulation obj;
obj.set(5);
cout<<obj.get();
return 0;
}
In the above program the variable x is made private. This variable can be accessed and
manipulated only using the functions get() and set() which are present inside the class. Thus,
we can say that here, the variable x and the functions get() and set() are binded together which
is nothing but encapsulation.
assignment-3
assignment-4
assignment-5
Forward engineering and Reverse engineering are part of the re-engineering
process and closely related. The crucial difference between the forward engineering
and reverse engineering is that forward engineering employs the change in the
subject system during restructuring. Conversely, reverse engineering whole sole
purpose is to examine the system to obtain its more abstract design.
Ques:1 https://www.informit.com/articles/article.aspx?p=23692&seqNum=6
Ques:4 file:///C:/Users/sweta%20umrao/Downloads/Documents/2006267758.pdf
Ques:2