Valores de las métricas de códigoCode metrics values

La mayor complejidad de las aplicaciones de software moderno también aumenta la dificultad de hacer que el código confiable y fácil de mantener.The increased complexity of modern software applications also increases the difficulty of making the code reliable and maintainable. Las métricas de código son un conjunto de medidas de software que proporcionan a los programadores una mejor visión del código que están desarrollando.Code metrics is a set of software measures that provide developers better insight into the code they are developing. Aprovechando las ventajas de las métricas del código, los desarrolladores pueden entender qué tipos o métodos deberían rehacerse o más pruebas.By taking advantage of code metrics, developers can understand which types and/or methods should be reworked or more thoroughly tested. Los equipos de desarrollo pueden identificar los posibles riesgos, comprender el estado actual de un proyecto y realizar un seguimiento del progreso durante el desarrollo de software.Development teams can identify potential risks, understand the current state of a project, and track progress during software development.

Los desarrolladores pueden usar Visual Studio para generar datos de métricas de código que medir la complejidad y el mantenimiento del código administrado.Developers can use Visual Studio to generate code metrics data that measure the complexity and maintainability of their managed code. Datos de métricas de código pueden generarse para una solución completa o un proyecto único.Code metrics data can be generated for an entire solution or a single project.

Para obtener información sobre cómo generar datos de métricas de código en Visual Studio, consulte Cómo: generar datos de métricas de código.For information about how to generate code metrics data in Visual Studio, see How to: Generate code metrics data.

Medidas de softwareSoftware measurements

En la lista siguiente se muestra el código de los resultados de las métricas que se calcula de Visual Studio:The following list shows the code metrics results that Visual Studio calculates:

  • Índice de mantenimiento -calcula un valor de índice entre 0 y 100 que representa su relativa facilidad de mantenimiento del código.Maintainability Index - Calculates an index value between 0 and 100 that represents the relative ease of maintaining the code. Un valor alto significa mayor facilidad de mantenimiento.A high value means better maintainability. Las clasificaciones de colores, pueden utilizarse para identificar rápidamente los puntos conflictivos en el código.Color coded ratings can be used to quickly identify trouble spots in your code. Una clasificación en verde entre 20 y 100 e indica que el código tiene buen mantenimiento.A green rating is between 20 and 100 and indicates that the code has good maintainability. Una calificación amarilla es entre 10 y 19 e indica que el código es moderadamente fácil de mantener.A yellow rating is between 10 and 19 and indicates that the code is moderately maintainable. Una clasificación de color rojo es una clasificación entre 0 y 9 e indica un mantenimiento baja.A red rating is a rating between 0 and 9 and indicates low maintainability.

  • Complejidad ciclomática -mide la complejidad del código estructural.Cyclomatic Complexity - Measures the structural complexity of the code. Se crea, calculando el número de rutas de acceso de código diferente en el flujo del programa.It is created by calculating the number of different code paths in the flow of the program. Un programa que tiene el flujo de control complejo requerirá más pruebas para lograr una buena cobertura de código y será más difícil de mantener.A program that has complex control flow will require more tests to achieve good code coverage and will be less maintainable.

  • Profundidad de herencia -indica el número de definiciones de clase que se extienden a la raíz de la jerarquía de clases.Depth of Inheritance - Indicates the number of class definitions that extend to the root of the class hierarchy. La profundidad la jerarquía más difícil comprender donde se definen los campos y métodos determinados podría ser o / y ha vuelto a definir.The deeper the hierarchy the more difficult it might be to understand where particular methods and fields are defined or/and redefined.

  • Acoplamiento de clases -mide el acoplamiento a las clases únicas a través de parámetros, variables locales, tipos de valor devuelto, llamadas a métodos, las creaciones de instancias genérica o de plantilla, clases base, implementaciones de interfaz, los campos definidos en los tipos externos, y decoración de atributo.Class Coupling - Measures the coupling to unique classes through parameters, local variables, return types, method calls, generic or template instantiations, base classes, interface implementations, fields defined on external types, and attribute decoration. Buen diseño de software dicta que deben tener alta cohesión y acoplamiento bajo los tipos y métodos.Good software design dictates that types and methods should have high cohesion and low coupling. El significativo acoplamiento indica un diseño que es difícil reutilizar y mantener debido a sus interdependencias en otros tipos.High coupling indicates a design that is difficult to reuse and maintain because of its many interdependencies on other types.

  • Líneas de código -indica el número aproximado de líneas del código.Lines of Code - Indicates the approximate number of lines in the code. El recuento se basa en el código IL y, por tanto, no es el número exacto de líneas en el archivo de código fuente.The count is based on the IL code and is therefore not the exact number of lines in the source code file. Un número muy alto podría indicar que un tipo o método está intentando hacer demasiado trabajo y debe dividirse.A very high count might indicate that a type or method is trying to do too much work and should be split up. También podría indicar que el tipo o método podría ser difícil de mantener.It might also indicate that the type or method might be hard to maintain.

    Note

    El versión de línea de comandos del código herramienta métricas recuentos reales líneas de código ya que analiza el código fuente en lugar de IL.The command-line version of the code metrics tool counts actual lines of code because it analyzes the source code instead of IL.

Métodos anónimosAnonymous methods

Un método anónimo es simplemente un método que no tiene nombre.An anonymous method is just a method that has no name. Métodos anónimos se utilizan con más frecuencia para pasar un bloque de código como parámetro delegado.Anonymous methods are most frequently used to pass a code block as a delegate parameter. Resultados de métricas para un método anónimo que se declara en un miembro, como un método o el descriptor de acceso, se asocian con el miembro que declara el método.Metrics results for an anonymous method that is declared in a member, such as a method or accessor, are associated with the member that declares the method. No se asocian con el miembro que llama al método.They are not associated with the member that calls the method.

Para obtener más información acerca de cómo tratan las métricas de código los métodos anónimos, consulte métodos anónimos y análisis de código.For more information about how Code Metrics treats anonymous methods, see Anonymous Methods and Code Analysis.

Código generadoGenerated code

Algunas herramientas de software y los compiladores generan código que se agrega a un proyecto y que el programador del proyecto no ve o no debe cambiar.Some software tools and compilers generate code that is added to a project and that the project developer either does not see or should not change. Principalmente, las métricas del código omite el código generado cuando calcula los valores de métricas.Mostly, Code Metrics ignores generated code when it calculates the metrics values. Esto permite que los valores de las métricas reflejar lo que el desarrollador puede ver y cambiar.This enables the metrics values to reflect what the developer can see and change.

No se omite el código generado para Windows Forms, porque es código que el desarrollador puede ver y cambiar.Code generated for Windows Forms is not ignored, because it is code that the developer can see and change.

Pasos siguientesNext steps