calidad de codigo

20
.1 Calidad de Código Calidad de Código Guillermo Rugilo Guillermo Rugilo Diego Ferreyra Diego Ferreyra

Upload: diego-ferreyra

Post on 20-Jan-2015

1.002 views

Category:

Documents


3 download

DESCRIPTION

Tuve el honor de dar esta presentación con el excelente profesional, colega y amigo Guillermo Rugilo. La publico para que la puedan ver a quien le sirva e interese.

TRANSCRIPT

Page 1: Calidad De Codigo

.1

Calidad de CódigoCalidad de Código

Guillermo RugiloGuillermo RugiloDiego FerreyraDiego Ferreyra

Page 2: Calidad De Codigo

.2

AgendaAgenda• Qué es Calidad de Código?• Aspectos a considerar• Herramientas• Conclusiones

Page 3: Calidad De Codigo

.3

¿QUÉ ES CALIDAD DE CÓDIGO?¿QUÉ ES CALIDAD DE CÓDIGO?

Page 4: Calidad De Codigo

.4.4Definiciones de CalidadDefiniciones 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”

Page 5: Calidad De Codigo

.5.5Precondiciones para definir CalidadPrecondiciones para definir Calidad

Público

Requerimientos

Características

Page 6: Calidad De Codigo

.6.6Público y RequerimientosPúblico y Requerimientos

Desarrollador

Operaciones

Usuario Final Tester

Arquitecto

Cerveeeza…

•0 bugs•Adaptabilidad al negocio•Usabilidad•Que haga lo que quiero

•Deployment simple•Disponibilidad•Instrumentación•Escalabilidad

•Lineamientos•Convenciones•Uso de

herramientas•Métricas

•Simple promoción entre ambientes•Requerimientos claros•Pocas regresiones

Page 7: Calidad De Codigo

.7.7

• Ideas que nos gustan… establezcamos un contexto– Kent Beck: Implementation Patterns

CaracterísticasCaracterísticas

Values

Principles

Patterns

Page 8: Calidad De Codigo

.8.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ísticasCaracterísticas

Page 9: Calidad De Codigo

.9.9Características – Kent BeckCaracterísticas – Kent Beck

• Valores1. Communication

– Pensar en otros– Fundamento económico

2. Simplicity– Complejidad esencial vs. Exceso de complejidad

3. Flexibility– Simplicidad + tests vs. Diseño especulativo

• Principios– Local Consequences– Minimize Repetition– Logic and Data Together– Symmetry– Declarative Expression– Rate of change

Page 10: Calidad De Codigo

.10.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?Características – ¿Por qué esas?

Page 11: Calidad De Codigo

.11.11Nivel de CalidadNivel de Calidad

• Objetivos de calidad• Métricas• Herramientas

Page 12: Calidad De Codigo

.12.12Objetivos de calidadObjetivos de calidad

• Valores y Principios• Requerimientos del

Público• Requerimientos del

proyecto• Requerimientos

corporativos• Limitaciones

Page 13: Calidad De Codigo

.13.13MétricasMétricas

• Usos– Caracterizar Sistemas.– Entender su estructura.– Encontrar problemas.

• Tipos– Tamaño y complejidad– Acoplamiento– Herencia– Polimétricas

Page 14: Calidad De Codigo

.14.14PolimétricasPolimétricas

Page 15: Calidad De Codigo

.15.15HerramientasHerramientas

• FxCop • Resharper• Reflector+AddIns• Ncover• NDepend• CodeIt.Right• DocumentX• VS TS• CodeCity• FxArch

Page 16: Calidad De Codigo

.16.16CodeCityCodeCity

• 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

Page 17: Calidad De Codigo

.17

CONCLUSIONESCONCLUSIONES

Page 18: Calidad De Codigo

.18.18ConclusionesConclusiones

• Setear objetivos• Revisiones de código• Leemos más código del que escribimos• Codificamos para otro desarrollador

Page 19: Calidad De Codigo

.19

ReferenciasReferencias

• 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

Page 20: Calidad De Codigo

.20