Download - Calidad De Codigo
![Page 1: Calidad De Codigo](https://reader033.vdocuments.site/reader033/viewer/2022061221/54bdbc7b4a7959192f8b4590/html5/thumbnails/1.jpg)
.1
Calidad de CódigoCalidad de Código
Guillermo RugiloGuillermo RugiloDiego FerreyraDiego Ferreyra
![Page 2: Calidad De Codigo](https://reader033.vdocuments.site/reader033/viewer/2022061221/54bdbc7b4a7959192f8b4590/html5/thumbnails/2.jpg)
.2
AgendaAgenda• Qué es Calidad de Código?• Aspectos a considerar• Herramientas• Conclusiones
![Page 3: Calidad De Codigo](https://reader033.vdocuments.site/reader033/viewer/2022061221/54bdbc7b4a7959192f8b4590/html5/thumbnails/3.jpg)
.3
¿QUÉ ES CALIDAD DE CÓDIGO?¿QUÉ ES CALIDAD DE CÓDIGO?
![Page 4: Calidad De Codigo](https://reader033.vdocuments.site/reader033/viewer/2022061221/54bdbc7b4a7959192f8b4590/html5/thumbnails/4.jpg)
.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](https://reader033.vdocuments.site/reader033/viewer/2022061221/54bdbc7b4a7959192f8b4590/html5/thumbnails/5.jpg)
.5.5Precondiciones para definir CalidadPrecondiciones para definir Calidad
Público
Requerimientos
Características
![Page 6: Calidad De Codigo](https://reader033.vdocuments.site/reader033/viewer/2022061221/54bdbc7b4a7959192f8b4590/html5/thumbnails/6.jpg)
.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](https://reader033.vdocuments.site/reader033/viewer/2022061221/54bdbc7b4a7959192f8b4590/html5/thumbnails/7.jpg)
.7.7
• Ideas que nos gustan… establezcamos un contexto– Kent Beck: Implementation Patterns
CaracterísticasCaracterísticas
Values
Principles
Patterns
![Page 8: Calidad De Codigo](https://reader033.vdocuments.site/reader033/viewer/2022061221/54bdbc7b4a7959192f8b4590/html5/thumbnails/8.jpg)
.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](https://reader033.vdocuments.site/reader033/viewer/2022061221/54bdbc7b4a7959192f8b4590/html5/thumbnails/9.jpg)
.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](https://reader033.vdocuments.site/reader033/viewer/2022061221/54bdbc7b4a7959192f8b4590/html5/thumbnails/10.jpg)
.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](https://reader033.vdocuments.site/reader033/viewer/2022061221/54bdbc7b4a7959192f8b4590/html5/thumbnails/11.jpg)
.11.11Nivel de CalidadNivel de Calidad
• Objetivos de calidad• Métricas• Herramientas
![Page 12: Calidad De Codigo](https://reader033.vdocuments.site/reader033/viewer/2022061221/54bdbc7b4a7959192f8b4590/html5/thumbnails/12.jpg)
.12.12Objetivos de calidadObjetivos de calidad
• Valores y Principios• Requerimientos del
Público• Requerimientos del
proyecto• Requerimientos
corporativos• Limitaciones
![Page 13: Calidad De Codigo](https://reader033.vdocuments.site/reader033/viewer/2022061221/54bdbc7b4a7959192f8b4590/html5/thumbnails/13.jpg)
.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](https://reader033.vdocuments.site/reader033/viewer/2022061221/54bdbc7b4a7959192f8b4590/html5/thumbnails/14.jpg)
.14.14PolimétricasPolimétricas
![Page 15: Calidad De Codigo](https://reader033.vdocuments.site/reader033/viewer/2022061221/54bdbc7b4a7959192f8b4590/html5/thumbnails/15.jpg)
.15.15HerramientasHerramientas
• FxCop • Resharper• Reflector+AddIns• Ncover• NDepend• CodeIt.Right• DocumentX• VS TS• CodeCity• FxArch
![Page 16: Calidad De Codigo](https://reader033.vdocuments.site/reader033/viewer/2022061221/54bdbc7b4a7959192f8b4590/html5/thumbnails/16.jpg)
.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](https://reader033.vdocuments.site/reader033/viewer/2022061221/54bdbc7b4a7959192f8b4590/html5/thumbnails/17.jpg)
.17
CONCLUSIONESCONCLUSIONES
![Page 18: Calidad De Codigo](https://reader033.vdocuments.site/reader033/viewer/2022061221/54bdbc7b4a7959192f8b4590/html5/thumbnails/18.jpg)
.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](https://reader033.vdocuments.site/reader033/viewer/2022061221/54bdbc7b4a7959192f8b4590/html5/thumbnails/19.jpg)
.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](https://reader033.vdocuments.site/reader033/viewer/2022061221/54bdbc7b4a7959192f8b4590/html5/thumbnails/20.jpg)
.20