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

Springer Science & Business Media
1
Free sample

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.

Read more
Collapse

About the author

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.

Read more
Collapse
5.0
1 total
Loading...

Additional Information

Publisher
Springer Science & Business Media
Read more
Collapse
Published on
May 16, 2007
Read more
Collapse
Pages
207
Read more
Collapse
ISBN
9783540395386
Read more
Collapse
Read more
Collapse
Read more
Collapse
Language
English
Read more
Collapse
Genres
Business & Economics / Information Management
Computers / Information Technology
Computers / Software Development & Engineering / General
Computers / Systems Architecture / General
Read more
Collapse
Content Protection
This content is DRM protected.
Read more
Collapse

Reading information

Smartphones and Tablets

Install the Google Play Books app for Android and iPad/iPhone. It syncs automatically with your account and allows you to read online or offline wherever you are.

Laptops and Computers

You can read books purchased on Google Play using your computer's web browser.

eReaders and other devices

To read on e-ink devices like the Sony eReader or Barnes & Noble Nook, you'll need to download a file and transfer it to your device. Please follow the detailed Help center instructions to transfer the files to supported eReaders.
Jack the Ripper and legacy codebases have more in common than you'd think. Inspired by forensic psychology methods, you'll learn strategies to predict the future of your codebase, assess refactoring direction, and understand how your team influences the design. With its unique blend of forensic psychology and code analysis, this book arms you with the strategies you need, no matter what programming language you use.

Software is a living entity that's constantly changing. To understand software systems, we need to know where they came from and how they evolved. By mining commit data and analyzing the history of your code, you can start fixes ahead of time to eliminate broken designs, maintenance issues, and team productivity bottlenecks.

In this book, you'll learn forensic psychology techniques to successfully maintain your software. You'll create a geographic profile from your commit data to find hotspots, and apply temporal coupling concepts to uncover hidden relationships between unrelated areas in your code. You'll also measure the effectiveness of your code improvements. You'll learn how to apply these techniques on projects both large and small. For small projects, you'll get new insights into your design and how well the code fits your ideas. For large projects, you'll identify the good and the fragile parts.

Large-scale development is also a social activity, and the team's dynamics influence code quality. That's why this book shows you how to uncover social biases when analyzing the evolution of your system. You'll use commit messages as eyewitness accounts to what is really happening in your code. Finally, you'll put it all together by tracking organizational problems in the code and finding out how to fix them. Come join the hunt for better code!

What You Need:

You need Java 6 and Python 2.7 to run the accompanying analysis tools. You also need Git to follow along with the examples.
©2018 GoogleSite Terms of ServicePrivacyDevelopersArtistsAbout Google|Location: United StatesLanguage: English (United States)
By purchasing this item, you are transacting with Google Payments and agreeing to the Google Payments Terms of Service and Privacy Notice.