Las métricas son un buen medio para entender, monitorizar, controlar, predecir y probar el desarrollo software y los proyectos de mantenimiento.
En general, la medición persigue tres objetivos fundamentales:
a) Ayudarnos a entender qué ocurre durante el desarrollo y el mantenimiento
b) Permitirnos controlar qué es lo que ocurre en nuestros proyectos
c) Poder mejorar nuestros procesos y nuestros productos.
Las métricas del software es un término que se asigna a un amplio rango de actividades diversas, por ejemplo:
· Medidas y modelos de estimación de coste y esfuerzo.
· Modelos y medidas de productividad
· Aseguramiento y control de calidad.
· Recogida de datos.
· Medidas y modelos de calidad.
· Modelos de fiabilidad.
· Modelos y evaluación de ejecució.
· Complejidad computacional o algorítmica.
M2 Resource Standard Metrics
M2 Resource Standard Metrics, es una herramienta que analiza la calidad del código fuente y sus métricas. RSM proporciona un método estándar para el análisis de C, ANSI, C++, C# y código fuente Java. Ofrece a los usuarios de la herramienta la posibilidad de estandarizar la medición de la calidad del código fuente y el análisis de métricas a través de su organización. RSM proporciona métodos fáciles, rápidos y flexibles para ayudar en la medición de la calidad del código y el cálculo de métricas.
RSM puede funcionar como herramienta independiente, pero también puede estar integradaen varios entornos de desarrollo como son Eclipse, Visual Studio 6, Visual Studio .NET, jBuilder, UltraEdit/Studio y Return. Puesto que se analiza la versión independiente de RSM, no se especifica como sería la instalación y manejo de la herramienta en los diferentes IDE’s en los que puede funcionar. La información necesaria para proceder a la integración de la herramienta en los diferentes entornos mencionados anteriormente se podrá encontrar en la dirección http://msquaredtechnologies.com/m2rsm/docs/ide_menu.htm.
Como ya se ha dicho en la presentación de la herramienta, RSM analiza código fuente escrito en C, C++, C# y Java. No admite la comparación de distintas versiones de código ya que no es posible realizar un análisis comparativo entre dos o más versiones de un mismo trabajo. En cuanto a su representación interna, no se ha encontrado información sobre la herramienta que especifique cómo se lleva a cabo, aunque según la estructura de la herramienta y su modo de trabajar es posible pensar que se trate de un object model.
Ejemplo
Report Banner - Edit rsm.cfg File
Resource Standard Metrics™ for C, C++, C# and Java
Version 7.75 - mSquaredTechnologies.com
License Type: Shareware Evaluation License
Licensed To : Shareware End User - Distribute Freely
License No. : SW1380 License Date: Dec 05, 1998
Build Date : Sep 2 2009 Run Date: Jul 19, 2011
©1996-2009 M Squared Technologies LLC™
________________________________________________________________________
License File: C:\Archivos de programa\MSquared\M2 RSM\rsm.lic
Config. File: C:\Archivos de programa\MSquared\M2 RSM\rsm.cfg
Command Line: -H -OC:\Documents and Settings\fprado\M2 RSM Wizard\output
\output.htm -STotal All Metrics -Ta -Tl -TN -FC:\Documents
and Settings\fprado\M2 RSM Wizard\input\rsm_file_list.lst
UDQN File : C:\Archivos de programa\MSquared\M2 RSM\rsm_udqn.cfg
Total All Metrics
------------------------------------------------------------------------
~~ Total Metrics For 20 Files ~~
------------------------------------------------------------------------
~~ Project Functional Metrics ~~
Total: Functions
LOC 2516 eLOC 2159 lLOC 1584 InCmp 483 CycloCmp 401
Function Points FP(LOC) 47.5 FP(eLOC) 40.7 FP(lLOC) 29.9
------------------------------------------------------------------------
~~ Project Functional Analysis ~~
Total Functions .......: 249 Total Physical Lines ..: 3301
Total LOC .............: 2516 Total Function Pts LOC : 47.5
Total eLOC ............: 2159 Total Function Pts eLOC: 40.7
Total lLOC.............: 1584 Total Function Pts lLOC: 29.9
Total Cyclomatic Comp. : 401 Total Interface Comp. .: 483
Total Parameters ......: 163 Total Return Points ...: 320
Total Comment Lines ...: 1335 Total Blank Lines .....: 173
------ ----- ----- ------ ------ -----
Avg Physical Lines ....: 13.26
Avg LOC ...............: 10.10 Avg eLOC ..............: 8.67
Avg lLOC ..............: 6.36 Avg Cyclomatic Comp. ..: 1.61
Avg Interface Comp. ...: 1.94 Avg Parameters ........: 0.65
Avg Return Points .....: 1.29 Avg Comment Lines .....: 5.36
------ ----- ----- ------ ------ -----
Max LOC ...............: 170
Max eLOC ..............: 159 Max lLOC ..............: 139
Max Cyclomatic Comp. ..: 8 Max Interface Comp. ...: 7
Max Parameters ........: 6 Max Return Points .....: 5
Max Comment Lines .....: 19 Max Total Lines .......: 211
------ ----- ----- ------ ------ -----
Min LOC ...............: 2
Min eLOC ..............: 1 Min lLOC ..............: 0
Min Cyclomatic Comp. ..: 1 Min Interface Comp. ...: 1
Min Parameters ........: 0 Min Return Points .....: 1
Min Comment Lines .....: 0 Min Total Lines .......: 3
------------------------------------------------------------------------
~~ Project Class/Struct Metrics ~~
Parent LOC Metrics Include Nested LOC Metrics
Total: All Parent Classes/Structs
Attributes Publ 90 Prot 0 Private 277 Total 367
Methods Publ 379 Prot 0 Private 114 Total 493
Complexity Param 163 Return 320 Cyclo Vg 401 Total 884
LOC 3913 eLOC 3452 lLOC 2351 Comment 1561 Lines 5674
------------------------------------------------------------------------
~~ Project Class/Struct Analysis ~~
Total Classes/Structs .: 14
Total Nested Classes ..: 2 Total Methods .........: 493
Total Public Methods ..: 379 Total Public Attributes: 90
Total Protected Methods: 0 Total Protected Attrib.: 0
Total Private Methods .: 114 Total Private Attrib. .: 277
Total Physical Lines ..: 5674 Total LOC .............: 3913
Total eLOC ............: 3452 Total lLOC ............: 2351
Total Cyclomatic Comp. : 401 Total Interface Comp. .: 483
Total Parameters ......: 163 Total Return Points ...: 320
Total Comment Lines ...: 1561 Total Blank Lines .....: 439
------ ----- ----- ------ ------ -----
Avg Physical Lines ....: 405.29 Avg Methods ...........: 35.21
Avg Public Methods ....: 27.07 Avg Public Attributes .: 6.43
Avg Protected Methods .: 0.00 Avg Protected Attrib. .: 0.00
Avg Private Methods ...: 8.14 Avg Private Attributes : 19.79
Avg LOC ...............: 279.50 Avg eLOC ..............: 246.57
Avg lLOC ..............: 167.93 Avg Cyclomatic Comp. ..: 28.64
Avg Interface Comp. ...: 34.50 Avg Parameters ........: 11.64
Avg Return Points .....: 22.86 Avg Comment Lines .....: 111.50
------ ----- ----- ------ ------ -----
Max Physical Lines ....: 1260 Max Methods ...........: 162
Max Public Methods ....: 122 Max Public Attributes .: 36
Max Protected Methods .: 0 Max Protected Attrib. .: 0
Max Private Methods ...: 40 Max Private Attributes : 84
Max LOC ...............: 838 Max eLOC ..............: 752
Max lLOC ..............: 500 Max Cyclomatic Comp. ..: 118
Max Interface Comp. ...: 190 Max Parameters ........: 46
Max Return Points .....: 144 Max Comment Lines .....: 398
------ ----- ----- ------ ------ -----
Min Physical Lines ....: 2 Min Methods ...........: 0
Min Public Methods ....: 0 Min Public Attributes .: 0
Min Protected Methods .: 0 Min Protected Attrib. .: 0
Min Private Methods ...: 0 Min Private Attributes : 0
Min LOC ...............: 2 Min eLOC ..............: 1
Min lLOC ..............: 0 Min Cyclomatic Comp. ..: 0
Min Interface Comp. ...: 0 Min Parameters ........: 0
Min Return Points .....: 0 Min Comment Lines .....: 4
------------------------------------------------------------------------
~~ Class Inheritance Tree ~~
D - Depth where base class depth = 0
C - Number of direct child classes
P - Number of direct parents, Multiple Inheritance > 1
+ PlainDocument [D0.C1]
- sgpoe.limitNumbers [D1.C0.P1]
- sgpoe.limitNumbers [D1.C0.P1]
+ javax.swing.JFrame [D0.C1]
- sgpoe.frmMain [D1.C0.P1]
- sgpoe.frmMain [D1.C0.P1]
+ javax.swing.JInternalFrame [D0.C3]
- sgpoe.frmCargos [D1.C0.P1]
- sgpoe.frmConfigurar [D1.C0.P1]
- sgpoe.frmDepartamentos [D1.C0.P1]
- sgpoe.frmCargos [D1.C0.P1]
- sgpoe.frmConfigurar [D1.C0.P1]
- sgpoe.frmDepartamentos [D1.C0.P1]
+ sgpoe.errors [D0.C0]
+ sgpoe.forms [D0.C0]
+ sgpoe.jado [D0.C0]
+ sgpoe.messBox [D0.C0]
+ sgpoe.tables [D0.C0]
+ sgpoe.vars [D0.C0]
+ sgpoe.vars.defCargos [D0.C0]
+ sgpoe.vars.defDeptos [D0.C0]
+ sgpoe.where [D0.C0]
Total Classes : 17
Total Base Classes : 12
Total Derived Classes: 5
Derived/Based Ratio : 0.42
Maximum Depth of Inheritance: 1
Average Depth of Inheritance: 0.29
Maximum Number of Direct Child Classes: 3
Average Number of Direct Child Classes: 0.29
------------------------------------------------------------------------
~~ Project Namespace/Package Metrics ~~
Total: All Namespaces/Packages
Total Classses 14 Total Functions 493 Avg Func/Class 35.21
Attributes Publ 90 Prot 0 Private 277 Total 367
Methods Publ 379 Prot 0 Private 114 Total 493
Complexity Param 163 Return 320 Cyclo Vg 401 Total 884
LOC 3913 eLOC 3452 lLOC 2351 Comment 1561 Lines 5674
------------------------------------------------------------------------
~~ Project Namespace/Package Analysis ~~
Total Namespace/Package: 1
Total Classes/Structs .: 14 Total Methods .........: 493
Total Public Methods ..: 379 Total Public Attributes: 90
Total Protected Methods: 0 Total Protected Attrib.: 0
Total Private Methods .: 114 Total Private Attrib. .: 277
Total Physical Lines ..: 5674 Total LOC .............: 3913
Total eLOC ............: 3452 Total lLOC ............: 2351
Total Cyclomatic Comp. : 401 Total Interface Comp. .: 483
Total Parameters ......: 163 Total Return Points ...: 320
Total Comment Lines ...: 1561 Total Blank Lines .....: 439
------ ----- ----- ------ ------ -----
Avg Classes/Structs ...: 14.00 Avg Methods ...........: 493.00
Avg Public Methods ....: 379.00 Avg Public Attributes .: 90.00
Avg Protected Methods .: 0.00 Avg Protected Attrib. .: 0.00
Avg Private Methods ...: 114.00 Avg Private Attributes : 277.00
Avg LOC ...............: 3913.00 Avg eLOC ..............: 3452.00
Avg lLOC ..............: 2351.00 Avg Cyclomatic Comp. ..: 401.00
Avg Interface Comp. ...: 483.00 Avg Parameters ........: 163.00
Avg Return Points .....: 320.00 Avg Comment Lines .....: 1561.00
------ ----- ----- ------ ------ -----
Max Classes/Struct ....: 14 Max Methods ...........: 493
Max Public Methods ....: 379 Max Public Attributes .: 90
Max Protected Methods .: 0 Max Protected Attrib. .: 0
Max Private Methods ...: 114 Max Private Attributes : 277
Max LOC ...............: 3913 Max eLOC ..............: 3452
Max lLOC ..............: 2351 Max Cyclomatic Comp. ..: 401
Max Interface Comp. ...: 483 Max Parameters ........: 163
Max Return Points .....: 320 Max Comment Lines .....: 1561
------ ----- ----- ------ ------ -----
Min Classes/Structs ...: 14 Min Methods ...........: 493
Min Public Methods ....: 379 Min Public Attributes .: 90
Min Protected Methods .: 0 Min Protected Attrib. .: 0
Min Private Methods ...: 114 Min Private Attributes : 277
Min LOC ...............: 3913 Min eLOC ..............: 3452
Min lLOC ..............: 2351 Min Cyclomatic Comp. ..: 401
Min Interface Comp. ...: 483 Min Parameters ........: 163
Min Return Points .....: 320 Min Comment Lines .....: 1561
------------------------------------------------------------------------
~~ Project Quality Profile ~~
Type Count Percent Quality Notice
________________________________________________________________________
1 458 41.86 Physical line length > 80 characters
13 12 1.10 "switch" statement does not have a "default"
14 4 0.37 "case" conditions do not equal "break"
17 4 0.37 Function comment content less than 10.0%
22 60 5.48 if, else, for or while not bound by scope
27 37 3.38 Number of function return points > 1
35 94 8.59 Class specification contains public data
38 46 4.20 Exception Handling "try"- "catch" has been identified
46 132 12.07 Function/Class Blank Line content less < 10.0%
47 8 0.73 File Blank Line content < 10.0%
48 3 0.27 Function lLOC <= 0, non-operational function
49 116 10.60 Function appears to have null or blank parameters
50 19 1.74 Variable assignment to a literal number
51 79 7.22 No comment preceding a function block
121 22 2.01 class name not proper cased
________________________________________________________________________
1094 100.00 Total Quality Notices
~~ Quality Notice Density ~~
Basis: 1000 (K)
Quality Notices/K LOC = 275.8 ( 27.58%)
Quality Notices/K eLOC = 312.1 ( 31.21%)
Quality Notices/K lLOC = 455.1 ( 45.51%)
------------------------------------------------------------------------
~~ Total Language Profile ~~
Language LOC % eLOC % lLOC % Comments % Blanks % Lines %
*.java 100.0 100.0 100.0 100.0 100.0 100.0
------------------------------------------------------------------------
~~ Language Summary ~~
Java Source File *.jav*
LOC 3966 eLOC 3505 lLOC 2404 Comment 1681 Lines 5990
Average per File, metric/20 files
LOC 198 eLOC 175 lLOC 120 Comment 84 Lines 299
------------------------------------------------------------------------
~~ Total Project Summary ~~
LOC 3966 eLOC 3505 lLOC 2404 Comment 1681 Lines 5990
Average per File, metric/20 files
LOC 198 eLOC 175 lLOC 120 Comment 84 Lines 299
------------------------------------------------------------------------
~~ File Summary ~~
C Source Files *.c ....: 0 C/C++ Include Files *.h: 0
C++ Source Files *.c* .: 0 C++ Include Files *.h* : 0
C# Source Files *.cs ..: 0 Java Source File *.jav*: 20
Other Source Files ....: 0
Total File Count ......: 20
Shareware evaluation licenses process only 20 files.
Paid licenses enable processing for an unlimited number of files.
________________________________________________________________________
Report Banner - Edit rsm.cfg File
No hay comentarios:
Publicar un comentario