Object-Oriented Metrics in Practice: Using Software Metrics to Characterize, Evaluate, and Improve the Design of Object-Oriented Systems

Front Cover
Springer Science & Business Media, May 16, 2007 - Computers - 207 pages

Metrics are paramount in every engineering discipline. Software engineering, however, is not considered a classical engineering activity for several reasons. In general, if a software system is seen to deliver the required functionality, only few people if any care about the internals. Moreover, defining, understanding and applying software metrics often looks like an overly complex activity, recommended only to 'trained professionals'.

Lanza and Marinescu demystify the design metrics used to assess the size, quality and complexity of object-oriented software systems. Based on statistical information from many industrial projects and generally accepted semantics they deduce many single and combined threshold values. They show in detail how to identify collaboration and classification disharmony patterns in code, how to visualize their results using the freely available CodeCrawler visualization tool, and how to devise possible remedies.

The combination of theoretically sound results and practically tested procedures and solution paths makes this book an ideal companion for professional software architects, developers and quality engineers. The pattern-oriented description of disharmonies offers easy access to detecting shortcomings and applying solution strategies.

"This well-written book is an important piece of work that takes the seemingly forgotten art of object-oriented metrics to the next level in terms of relevance and usefulness." Richard C. Gronback, Chief Scientist, Borland Software Corporation.

 

What people are saying - Write a review

We haven't found any reviews in the usual places.

Contents

Introduction
1
Facts on Measurements and Visualization
10
21 Metrics and Thresholds
13
22 Visualizing Metrics and Design
18
23 Conclusions and Outlook
21
Characterizing the Design
23
31 The Overview Pyramid
24
32 Polymetric Views
33
Collaboration Disharmonies
115
62 Overview of Collaboration Disharmonies
118
63 Intensive Coupling
120
64 Dispersed Coupling
127
65 Shotgun Surgery
133
66 Recovering from Collaboration Disharmonies Where to Start
137
Classification Disharmonies
139
72 Overview of Classification Disharmonies
143

33 Metrics at Work
40
34 Conclusions and Outlook
44
Evaluating the Design
45
41 Detection Strategies
48
42 The Class Blueprint
58
43 Conclusions and Outlook
70
Identity Disharmonies
73
52 Overview of Identity Disharmonies
78
53 God Class
80
54 Feature Envy
84
55 Data Class
88
56 Brain Method
92
57 Brain Class
97
58 Significant Duplication
102
59 Recovering from Identity Disharmonies Where to Start
109
73 Refused Parent Bequest
145
74 Tradition Breaker
152
75 Recovering from Classification Disharmonies Where to Start
159
Catalogue of Metrics Used in the Book
163
A2 Alphabetical Catalogue of Metrics
167
iPlasma
175
B3 Industrial Validation
179
B4 Tool Information
180
CodeCrawler
181
C3 Industrial Validation
183
C4 Tool Information
184
Figures in Color
185
References
194
Index
201
Copyright

Other editions - View all

Common terms and phrases

About the author (2007)

Michele Lanza is an Assistant Professor at the University of Lugano, Switzerland. His main research interests lie in software (re)engineering and software evolution with a special focus on software visualization and metrics. He was the creator of CodeCrawler, a freely available language-independent software visualization tool. His Ph.D. work won the Ernst Denert Software Engineering Award in 2003. Michele is a member of the ACM and IEEE.

Radu Marinescu is an Assistant Professor at the University of Timisoara, Romania. Radu’s research focuses on object-oriented reengineering and quality assurance. Several of his published research ideas have been applied in the well-known "Borland Together Control Center" CASE Tool. He also acted as a reviewer in several phases of the IEEE's SWEBOK (Software Engineering Body of Knowledge) project.

Bibliographic information