200 likes | 441 Views
Part 2. Metrics Reloaded. "If you can not measure it, you can not improve it.“ – Lord Kelvin "Not everything that can be counted counts, and not everything that counts can be counted.“ - Albert Einstein. Remember this quotes?. Software Productivity Center, Inc. suggests an 8 step approach:
E N D
Part 2 Metrics Reloaded
"If you can not measure it, you can not improve it.“ – Lord Kelvin • "Not everything that can be counted counts, and not everything that counts can be counted.“ - Albert Einstein Remember this quotes?
Software Productivity Center, Inc. suggests an 8 step approach: • Document the Software Development Process • State the Goals • Define Metrics Required to Reach Goals • Identify Data to Collect • Define Data Collection Procedures • Assemble a Metrics Toolset • Create a Metrics Database • Define the Feedback Mechanism How do we collect metrics?
Software Metric Tools Presentation by: TimiDosumu
Introduction • Categories of Metric Tools • Static metric based tool • Dynamic metric based tool • Comparing Software Metrics Tools • Conclusion Overview
Metrics • Importance of Metrics & Metric Tools • Metric Measurement drawback • Still not used in most software companies[6] • Lack of knowledge • Cumbersome and time consuming • Takes time and effort away from project • Too expensive for small and middle companies Introduction
Licensed • Integrated into Development Environment(IDE) • Available as plugins to IDE Metric Tools
Static metric based tool – This category of metric tools studies the behavior of software before runtime by processing the source code and calculating various static metric values • Dynamic metric based tool - These tools analyze the behavior of software at runtime; the following are examples of static metric tool Categories of Metric Tools
Microsoft Visual Studio Code Metrics Power Tool 10.0 • Integrated into Visual studio 2010 ultimate, premium versions • Available as plugin to other version • Metrics covered –Maintainability index, Cyclomatic complexity, Depth of inheritance class coupling and Lines of Code • Code metrics can be generated for the whole solution or single project • Does not provide information on how to interpret the information Static metric based tool
Metrics Eclipse Plug-in • Provides 23 object-oriented metrics for java • Including – lines of code cyclomatic complexity, Chidamber & Kemerer metrics, etc • Does not provide description and tips on how to use the metrics Static metric based tool
Rational Metrics One • Works as plugin to Rational Rose • Provides up to 46 object-oriented and design metrics • Class metrics, use-case metrics, package metrics, etc • Can be customized based on developer’s discretion • Provides tips on how to use and interpret the metrics • Results that exceeded suggested limits appears in red • Needs Excel or any other spread sheet program Static metric based tool
Embarcadero RAD Studio 2010 • Can gather up to 89 different metrics • Including Chidamber & Kemerer metrics, Halstead metrics, etc • Also provides documentation metrics like CR • Provides tips for using and interpreting metrics • Up to developer to set the red flag • Result can show which part of the program needs redesigning Static metric based tool
Together MetricsLevel • also provides object oriented metrics in Java, C#, Visual Basic .NET, C++ and Visual Basic 6 • availability of metric features depends on the project language • Also provides documentation metrics(CR und TCR) • five metrics for management (CDBC, PPkgM, PPrivM, PProtM, PPubM) [6] • Parts of code that need to be redesigned can be highlighted in the code Static metric based tool
Insure++ • a runtime memory analysis and error detection tool for C and C++ • Gather metrics on errors such as Errors such as memory corruption, memory leaks, access outside of array bounds, invalid pointers • Rational PurifyPlus • is also a dynamic software metrics tool developed by IBM • Gather metrics for memory errors such as uninitialized memory access, buffer overflow and improper freeing of memory, memory leak, etc • supported on Windows, Linux, Solaris, and AIX Dynamic metric based tool
DynaMetrics • calculates the metric values for Java/C++ programs • evaluate the class-level, object-level and method-level runtime metrics • analyzes the metric values and makes assessment about software’s quality attributes like reusability, maintainability, fault-tolerance etc • Supports multiple platform Dynamic metric based tool
Values and interpretation of metrics generated are tool dependent[4] • Studies show wide variations among the values of the same metric, on the same input with different metric tools • Little variation on simple metric but large variation on complex ones • some tools do not implement the metrics as intended • More work needs to be done to explain the difference • Further works needs to be done on specifying the metrics and measurement process to make result more comparable and generalizable Comparing Software Metrics Tools
Software metric tools (both static and dynamic) provides developers with valuable software metrics that help in developing a reliable and easily maintainable software • Developers can embraces the use of software metrics tools the more • Having the knowledge of what metrics a tool can measure or analyze • the interpretation of the measured metrics • languages supported by the tools • availability of the tools • results provided by the metric tools are tool dependent • More works need to be done on comparing and generalizing metrics Conclusion
?????????????????????? Questions