martes, 26 de julio de 2011

5. Explique con ejemplos que son las métricas de diseño de software.

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]

  + javax.swing.JFrame [D0.C1]
    - 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.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