5 research outputs found
Barriers to Refactoring: Issues and Solutions
Refactoring mechanism is commonly used in software development. Though Object oriented programming promotes ease in designing reusable software but the long coded methods makes it unreadable and enhances the complexity of the methods. The common code defects are associated with large classes and methods. To ease up the code comprehension Extract method, Extract class serves as a comfortable option to reduce the disorganization and duplication of the code to produce more fine grained methods and classes. Though refactoring serves as an important mechanism to improve the software quality whether performed manually or in an automated way with the help of tools or IDEs but there are umpteen cases where refactoring could lead to deterrent effect. This paper intends to explore the various problems and barriers associated with refactoring and specifically while extracting the code (extract method, extract class, extract interface) and their solutions
Cohesion Metrics for Improving Software Quality
Abstract
Software product metrics aim at measuring the quality of software. Modu-
larity is an essential factor in software quality. In this work, metrics related
to modularity and especially cohesion of the modules, are considered. The
existing metrics are evaluated, and several new alternatives are proposed.
The idea of cohesion of modules is that a module or a class should consist
of related parts. The closely related principle of coupling says that the
relationships between modules should be minimized.
First, internal cohesion metrics are considered. The relations that are
internal to classes are shown to be useless for quality measurement. Second,
we consider external relationships for cohesion. A detailed analysis using
design patterns and refactorings confirms that external cohesion is a better
quality indicator than internal. Third, motivated by the successes (and
problems) of external cohesion metrics, another kind of metric is proposed
that represents the quality of modularity of software. This metric can be
applied to refactorings related to classes, resulting in a refactoring suggestion
system.
To describe the metrics formally, a notation for programs is developed.
Because of the recursive nature of programming languages, the properties of
programs are most compactly represented using grammars and formal lan-
guages. Also the tools that were used for metrics calculation are described.Siirretty Doriast