extracted complexity

advertisement
IEEE TRANSACTIONS ON JOURNAL NAME, MANUSCRIPT ID
1
Metrics Classification
Metrics are the independent variable used to building a defect prediction model. A metric is defined as quantitative
measure of the degree to which a system, component or process possesses a given attribute [11]. A metric or combination of metrics provides insight into the software process, project, or product itself. They were used as the factors to be
consided will impact the predicted objectives. There are many metrics have been presented and used in long software
engineering history. In order to summarize the existing metrics, we classifyed metrics into six categories according to
software development lifecycle, and each category includes 3-9 metric types. One type represents a set of similiar metrics.
 Requirement metrics.
Requirement metrics reports information at requirement pahse. The metrics indicated the attribite of requirement that may be measured from requirement specifications. We divided this group into four types: requirement-content, requirement-relation, requirement-size and requirement quality.
 Design metrics.
The design metrics are extracted from design phase artifacts, design diagrams such as flowgraphs (data flow
graphs and control flow graphs) and UML diagrams. For example, Ohlsson and Alberg extract design metrics
such as McCabe cyclomatic complexity from Formal Description Language (FDL) graphs in [12]. We divided
this group into four types: design_FG, CK (Chidamber-Kemerer) [13], Design-size, and design-quality.
 Code metrics.
The code metrics are the features extracted from source code or the action of coding phase. Code metrics, such
as size and complexity metrics, lines of code, Halsted (1977) [14] and McCabe (1976) [15] shown to be useful,
easy to use and widely employed in several research. Code metrics can be divided into nine types of metrics:
loc_count metrics, elements_count metrics, code content metrics, McCabe metrics, Halstead, cohesion metrics,
coupling metrics, network-related, and code-change metrics.
 Testing metrics
Testing metrics are extracted from testing phase. This category of metrics can be divided into three tyoes: testcase metrics, test-quality metrics and review-efficiency metrics.
 Human metrics.
Human metrics are the metrics related to developers, and we divided this category of metrics into three types:
developer-network, developer-skill and effort.
 Other metrics
This group includes the metrics that can not be classifies to other five group of metrics. It includes metrics related to organizations or some qualitative metrics.
Table 1 listed the classification and description of metrics.
TABLE 1
Category
Type
Requrement
metrics
RequirementContent
RequirementRelation
RequirementSize
RequirementQuality
Design_FG
Design metrics
Code metrics
CLASSIFICATION OF METRICS
Description
measures the inter attributes of a requirement, eg. the number of actions the requirement needs to be
capable of performing.
measures the relationship between requirements.
measures the size of reuqirments, eg. number of requirements, and requirement pages.
describes the quality of requirements, eg. requirement error.
includes the attributes calculated from flowgraphs, such as node count, edge count and complexity.
CK
measures complexity of the design, and it used for object-oriented program.
Design-Size
measures the size of design, eg. design pages.
Design-Quality
decribes the quality of the design, eg. design error.
measures the different kinds of lines of code/function points, eg. lines of comments lines and blank
lines.
measures the number of elements used in code, the elements may be the classes, attributes, etc.
measures the words or other attributes calculated by natural language processing or search techniques.
directly measures the number of linearly independent paths through a program's source code
Loc_Count
Elements_Count
Code Content
McCabe
Halstead
Cohesion
identify measurable properties of software, and the relations between them
measures the relationships among the elements within a single model, eg. tight class cohesion, and
conceptual cohesion of classes
Coupling
measures the relationships between entities, eg FANIN and FANOUT
2
Testing metrics
Human metrics
IEEE TRANSACTIONS ON XXXXXXXXXXXXXXXXXXXX, VOL. #, NO. #, MMMMMMMM 1996
NetworkRelated
Code-Change
contains the metrics which described the attributes of a network, eg. Indefree, outdegree and betweenness.
contains the metrics related to lines of code/function points that modified, added, or deleted.
Test-Case
metrics related to test cases, eg. number of test cases, and test cases/total lines of code.
Test-Quality
metrcis related to the quality of test, eg. Weekly defects, and test plan error.
ReviewEfficiency
DeveloperNetwork
Developer Skill
Effort
measures the efficiency of review, eg.test lines.
measures the actors related to development and defect fixing, eg. number of developers who modified the file.
measures the skill of a developer, eg.developer experience, testing experience, familiarity with envionment, familiarity with testing method, and testng characteristics.
includes the factors related to effort, eg. effort, number of developers, number of testers, and testing
effort.
includes the metrics related to organizations or some qualitative metrics, eg. management level,
Others
management experiences, and process level
comment:The "developer" in "developer-network" and "developer skill" are not only the people who developed the project, but contained
all the people involved in the project.
IEEE TRANSACTIONS ON JOURNAL NAME, MANUSCRIPT ID
3
IEEE TRANSACTIONS ON JOURNAL NAME, MANUSCRIPT ID
4
AUTHOR ET AL.: TITLE
5
Download