Calidad de Código Guillermo Rugilo Diego Ferreyra
Agenda Qué es Calidad de Código? Aspectos a considerar Herramientas Conclusiones
¿QUÉ ES CALIDAD DE CÓDIGO?
Definiciones de Calidad La Calidad es una propiedad inherente de cualquier cosa que  permite que  esta  sea comparada  con cualquier otra de su misma especie.  Conjunto de propiedades inherentes a un objeto que le confieren capacidad para  satisfacer necesidades  implícitas o explícitas.  Cumplimiento  de los  requisitos , ya sea que estos sean explícitos o implícitos, para la  satisfacción de un cliente   ISO 9000 : “ Calidad: grado en el que un conjunto de características inherentes cumple con los requisitos ”
Precondiciones para definir Calidad Público Requerimientos Características
Público y Requerimientos Cerveeeza… Lineamientos Convenciones Uso de herramientas Métricas Simple promoción entre ambientes Requerimientos claros Pocas regresiones Desarrollador Operaciones Usuario Final Tester Arquitecto 0 bugs Adaptabilidad al negocio Usabilidad Que haga lo que quiero Deployment simple Disponibilidad Instrumentación Escalabilidad
Ideas que nos gustan… establezcamos un contexto Kent Beck: Implementation Patterns Características Values Principles Patterns
Hablemos de programación… Estilos Entablando discusiones de calidad de código …  y de los programas en sí El código es leído mucho más seguido de lo que es escrito Los lectores necesitan entender el concepto y los detalles Nunca se llega a la perfección Construídos en torno a los mismos conceptos básicos Características
Características – Kent Beck Valores Communication Pensar en otros Fundamento económico Simplicity Complejidad esencial vs. Exceso de complejidad Flexibility Simplicidad + tests vs. Diseño especulativo Principios Local Consequences Minimize Repetition Logic and Data Together Symmetry Declarative Expression Rate of change
Motivación económica CostoTotal = CostoDesarrollo + CostoMantención Y el costo de mantener un software… CostoEntenderCódigo + CostoCambio + CostoTest + CostoDeploy Características – ¿Por qué esas?
Nivel de Calidad Objetivos de calidad Métricas Herramientas
Objetivos de calidad Valores y Principios Requerimientos del Público Requerimientos del proyecto Requerimientos corporativos Limitaciones
Métricas Usos Caracterizar Sistemas. Entender su estructura. Encontrar problemas . Tipos Tamaño y complejidad Acoplamiento Herencia Polimétricas
Polimétricas
Herramientas FxCop  Resharper Reflector+AddIns Ncover NDepend CodeIt.Right DocumentX VS TS CodeCity FxArch
CodeCity Análisis de software Sistemas vistos como ciudades en 3D Clases == Edificios Packages == lotes Los edificios muestran un set de métricas definidas para el código
CONCLUSIONES
Conclusiones Setear objetivos Revisiones de código Leemos más código del que escribimos Codificamos para otro desarrollador
Referencias MOOSE  http://moose.unibe.ch/ Code City     http://moose.unibe.ch/randomhighlight/codecity Implementation Patterns (Kent Beck) http://www.amazon.com/Implementation-Patterns-Addison-Wesley-Signature-Kent/dp/0321413091
 

Calidad De Codigo

  • 1.
    Calidad de CódigoGuillermo Rugilo Diego Ferreyra
  • 2.
    Agenda Qué esCalidad de Código? Aspectos a considerar Herramientas Conclusiones
  • 3.
    ¿QUÉ ES CALIDADDE CÓDIGO?
  • 4.
    Definiciones de CalidadLa Calidad es una propiedad inherente de cualquier cosa que permite que esta sea comparada con cualquier otra de su misma especie. Conjunto de propiedades inherentes a un objeto que le confieren capacidad para satisfacer necesidades implícitas o explícitas.  Cumplimiento de los requisitos , ya sea que estos sean explícitos o implícitos, para la satisfacción de un cliente   ISO 9000 : “ Calidad: grado en el que un conjunto de características inherentes cumple con los requisitos ”
  • 5.
    Precondiciones para definirCalidad Público Requerimientos Características
  • 6.
    Público y RequerimientosCerveeeza… Lineamientos Convenciones Uso de herramientas Métricas Simple promoción entre ambientes Requerimientos claros Pocas regresiones Desarrollador Operaciones Usuario Final Tester Arquitecto 0 bugs Adaptabilidad al negocio Usabilidad Que haga lo que quiero Deployment simple Disponibilidad Instrumentación Escalabilidad
  • 7.
    Ideas que nosgustan… establezcamos un contexto Kent Beck: Implementation Patterns Características Values Principles Patterns
  • 8.
    Hablemos de programación…Estilos Entablando discusiones de calidad de código … y de los programas en sí El código es leído mucho más seguido de lo que es escrito Los lectores necesitan entender el concepto y los detalles Nunca se llega a la perfección Construídos en torno a los mismos conceptos básicos Características
  • 9.
    Características – KentBeck Valores Communication Pensar en otros Fundamento económico Simplicity Complejidad esencial vs. Exceso de complejidad Flexibility Simplicidad + tests vs. Diseño especulativo Principios Local Consequences Minimize Repetition Logic and Data Together Symmetry Declarative Expression Rate of change
  • 10.
    Motivación económica CostoTotal= CostoDesarrollo + CostoMantención Y el costo de mantener un software… CostoEntenderCódigo + CostoCambio + CostoTest + CostoDeploy Características – ¿Por qué esas?
  • 11.
    Nivel de CalidadObjetivos de calidad Métricas Herramientas
  • 12.
    Objetivos de calidadValores y Principios Requerimientos del Público Requerimientos del proyecto Requerimientos corporativos Limitaciones
  • 13.
    Métricas Usos CaracterizarSistemas. Entender su estructura. Encontrar problemas . Tipos Tamaño y complejidad Acoplamiento Herencia Polimétricas
  • 14.
  • 15.
    Herramientas FxCop Resharper Reflector+AddIns Ncover NDepend CodeIt.Right DocumentX VS TS CodeCity FxArch
  • 16.
    CodeCity Análisis desoftware Sistemas vistos como ciudades en 3D Clases == Edificios Packages == lotes Los edificios muestran un set de métricas definidas para el código
  • 17.
  • 18.
    Conclusiones Setear objetivosRevisiones de código Leemos más código del que escribimos Codificamos para otro desarrollador
  • 19.
    Referencias MOOSE http://moose.unibe.ch/ Code City http://moose.unibe.ch/randomhighlight/codecity Implementation Patterns (Kent Beck) http://www.amazon.com/Implementation-Patterns-Addison-Wesley-Signature-Kent/dp/0321413091
  • 20.