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

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

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

Arquitectura Básica de un Data Warehouse

Concepto Data Warehousing Data warehousing soporta el procesamiento informático al proveer una plataforma sólida, a partir de los datos históricos para hacer el análisis. Facilita la integración de sistemas de aplicación no integrados. Organiza y almacena los datos que se necesitan para el procesamiento analítico, informático sobre una amplia perspectiva de tiempo. Un Data Warehouse o Depósito de Datos es una colección de datos orientado a temas, integrado, no volátil, de tiempo variante, que se usa para el soporte del proceso de toma de decisiones gerenciales. Se puede caracterizar un data warehouse haciendo un contraste de cómo los datos de un negocio almacenados en un data warehouse, difieren de los datos operacionales usados por las aplicaciones de producción. Base de Datos Operacional Data Warehouse Datos Operacionales Datos del negocio para Información Orientado a la aplicación Orientado al sujeto