Ir al contenido principal

Desarrollo de Software: Auditoría de Código Fuente Microsoft.Net

Auditoría de Código Fuente Microsoft.Net


El objetivo de esta Auditoría es corroborar la integridad del código fuente escrito, además de la coherencia y propiedades de mantenimiento del código fuente desarrollado bajo la plataforma .Net Web de Microsoft.

Es muy común que obviemos los estándares o practicas recomendadas, causando problemas al ser liberados en el ambiente de producción. Por lo tanto en este documento se pretende hacer una última revisión de todos los objetos a liberar.

Se emplearán herramientas que ya están incorporadas dentro de Visual Studio 2012, o bien existen de forma externa tales como FxCorp, CAT .Net, StyleCop, CloneDR los cuales nos permitirán darle los parámetros siguientes:

Validación de Detección de Violación de Código


Se efectuará análisis de código estático de código .Net., para lo cual se analizarán las bibliotecas de clases.  Lo que se buscará es que cumpla con las mejores prácticas de .Net Framework de Microsoft, para lo cual se podrán dar diversos tipos de análisis:

·         Diseño
·         Globalización
·         Interoperabilidad
·         Mantenibilidad
·         Movilidad

·         Rendimiento
·         Portabilidad
·         Confiabilidad
·         Seguridad
·         Uso

Métricas de Calidad

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.  Al aprovechar las métricas de código, los programadores pueden entender qué tipos y métodos se deben rehacer o probar más a fondo. Los equipos de desarrollo pueden identificar los riesgos potenciales, entender el estado actual de un proyecto y seguir el progreso durante el desarrollo del software.

Las métricas que se medirán son las siguientes:

  • Índice de Mantenimiento: Facilidad relativa de mantenimiento del código. 
  • Complejidad Ciclomática: Complejidad estructural del código calculando el número de rutas de acceso del código diferente del flujo del programa.
  • Profundidad de Herencia: Cantidad de definiciones de clase que se extienden a la raíz de la jerarquía de clases. 
  • Acoplamiento de Clases: Nivel de acoplamiento a las clases únicas a través de parámetros, variables locales, tipos de valores devueltos, llamadas a métodos, instancias genéricas o de plantillas, clases base, implementaciones de interfaces, campos definidos en tipos externos y decoración de atributos. 
  • Líneas de Código: Número aproximado de líneas del código.  El recuento se basa en el código IL y, por consiguiente, no representa el número exacto de líneas en el archivo de código fuente.

Performance

Se efectuarán corridas de cada opción del sistema, dividiéndolo por módulos, de tal forma que se puedan trazar los tiempos de ejecución de cada objeto, método, función, componente o clase en el código fuente.

Este nos dará una estadística de todos aquellos objetos en el código fuente que deberían revisarse para distribuir o mejorar las prácticas de codificación que mejoren el performance de la aplicación.

Estilo (Nomenclaturas)

Se revisarán la nominación de las interfaces, que permitirán especificar qué normas de denominación deberían aplicarse a ciertas declaraciones.  Normas de denominación incluyen:

·         Prefijos obligatorios
·         Sufijos obligatorios
·         Los prefijos que se deben evitar.
·         Los sufijos que deben ser evitados.
·         Reglas de la carcasa: Camel, Pascal, en mayúsculas.
·         Reglas de expresiones regulares.

Las declaraciones a las que se debe aplicar una regla de denominación, se revisará por una o más normas de congruencia.  Se puede especificar en una regla que coinciden:

·         Tipo de declaración.
·         Visibilidad
·         Declaración de atributo se marca con.
·         Clase base de la interfaz (para las clases y las interfaces).
·         Para una regla de denominación reglas también los no coincidentes se pueden especificar en forma similar.

Arquitectura

Se verifica que se haya empleado modelos de capas, sin importar la arquitectura del código fuente.  Para ello, se realizarán:

·         Generación de Diagrama de Clases
·         Generación de Estándar del cliente respecto a la Capa de Presentación
·         Nombres de las Interfaces con el Usuario
·         Estándar del cliente respecto a la Capa de Negocio
·         Reglas de negocio y componentes de negocio independientes del servidor
·         Lógica de acceso a Datos (ya sea Bases de Datos o Archivos de Datos)




Comentarios

Entradas más populares de este blog

AMS (Application Management Services)

Definición Soporte de Aplicaciones y Mantenimiento (AMS). AMS (Application Management Services) es la tercerización de los servicios de gestión, soporte y mantenimiento de aplicaciones capaz de proporcionar a los clientes mejoras operacionales relevantes . El modelo AMS (Application Management System) representa un enfoque avanzado de servicios TI mediante el cual Tasisoft asume la responsabilidad a medio/largo plazo del conjunto de tareas y actividades relativas tanto al desarrollo y mantenimiento de aplicaciones como al soporte y evolución de las mismas. Bajo el concepto de Tasi software ofrece servicios dedicados y compartidos para outsourcing de aplicaciones con desarrolladores altamente calificados y experiencia en las más variadas tecnologías del mercado. Las líneas de servicios ofrecidas dentro del Desarrollo y Mantenimiento de Aplicaciones (AMS), son: Mantenimiento Preventivo y Normativo Mantenimiento Correctivo Mantenimiento Evolutivo / Nuevos De

Desarrollo de Software: EDT (Estructura de desglose de trabajo) o WBS (Work Breakdown Structure)

Definición La EDT es una descomposición jerárquica-orientada a los entregables del proyecto- de los trabajos que ejecutara  el equipo de trabajo, para crear los productos requeridos. Es un paso muy importante en la definición del alcance de un proyecto. La EDT organiza y define el alcance total del proyecto, mediante la subdivisión de trabajo en piezas más pequeñas y manejables. En cada nivel inferior de la estructura se tiene un incremento en el detalle de los trabajos del proyecto. El trabajo incluido en el nivel más bajo de la WBS se le denomina paquetes de trabajo, los cuales pueden ser programados, monitoreados y supervisados. Principios Básicos de una EDT Una unidad de trabajo deberá aparecer en un solo lugar en la EDT . El contenido del trabajo de un elemento de la EDT es la suma de los elementos inferiores. Un elemento de la EDT es responsabilidad de una sola persona , a pesar de que muchas personas pueden estar trabajando en él. El EDT debe ser coherent

Business Intelligence Proceso de Carga de Datos ETL, Vista modo Componente

Este componente consiste en crear procesos que se ejecutan por medio de un programador de tareas de manera nocturna o por medio de una aplicación en ejecución manual por demanda,  cuya función es la de ayudar en el proceso de transporte de datos de un origen a un destino incluyendo procesos de limpieza, transformación de datos en caso de ser necesarios y generación de cálculos. El objetivo principal es contar con una base de datos diseñada bajo un esquema estrella, que facilite la carga de información a los modelos OLAP y la explosión de reportes. Normalmente se debe tener contemplado la realización de 1 proceso de carga de tipo transaccional (Tablas de Hechos) y de los catálogos (Tablas de Dimensiones). Es importante mencionar que este componente es importante para la validación de la integridad de los datos. El proceso funcionara bajo los siguientes pasos: a.      Extraer . La primera parte del proceso consiste en extraer los datos desde los sistemas de origen. Una parte