Charla Atributos de calidad con .Net

1.212 visualizaciones

Publicado el

Charla Atributos de calidad con .net

Publicado en: Tecnología
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
1.212
En SlideShare
0
De insertados
0
Número de insertados
12
Acciones
Compartido
0
Descargas
18
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Charla Atributos de calidad con .Net

  1. 1. Atributos de Calidad con .Net Carlos Paez carlos.paez@snoopconsulting.com
  2. 2. Agenda Contexto Nociones generales Atributos y su tratamiento con .Net Métodos de evaluación Conclusiones Links relacionados
  3. 3. Contexto Si los sistemas fallan pueden causar diferentes consecuencias (perdidas tiempo, dinero) No es suficiente con satisfacer los requerimientos funcionales Existe un contexto tecnológico que debe analizarse
  4. 4. Contexto Para implementar mejoras en la calidad primero debe ser medida y analizada. En ese contexto aparecen los Quality Attributes para medir y analizar la calidad.
  5. 5. Nociones generales Atributos de calidad: elementos que caracterizan la calidad desde diferentes puntos de vista Adquieren relevancia cuando se ponen en el contexto adecuado
  6. 6. Atributos de Calidad
  7. 7. Atributos de Calidad Accessibility Reliability Availability Robustness Extensibility Scalability Interoperability Security Maintainability Stability Modifiability Supportability Operability Testability Portability Usability
  8. 8. Disponibilidad Es la característica de un sistema que mide el grado de operación continua durante un período determinado tiempo, dado un patrón de operación y requerimientos mínimos de uso.
  9. 9. Disponibilidad Infraestructura IIS - Network Load Balancing Replicación de datos – Mirroring Política de Back-ups Failover Clustering Capacidad de switchear de forma autómatica a otro servidor redundante Implementada con Windows Server y SQL Server 2008 Failover Clustering Disaster recovery
  10. 10. Escalabilidad Es una característica deseada de un sistema, la cual indica la habilidad de manejar el crecimiento del volumen de trabajo de una manera adecuada. Se destacan dos grandes maneras Escalar verticalmente: agregando mas recursos en un único nodo del sistema Escalar horizontalmente: agregando mas nodos al sistema
  11. 11. Escalabilidad IIS Clustering Network Load Balancing (Server farm) Caching NHibernate.Caches (Add-In) Windows Server AppFabric (ex Velocity) Diseño y optimización de Capa de datos Desnormalización (Reporting) ORM -> Mapeos (Lazy Load) Queries (SQL / HQL) Optimización en capa de presentación Modularización (html + js + css) AJAX (bien utilizado) JSON (en lugar de xml) Optimización de imágenes
  12. 12. Transaccionabilidad Es la característica de un sistema que garantiza que los procesos se manejan como operaciones individuales e indivisibles, llamadas transacciones. Cada transacción debe finalizar exitosamente o fallar como una unidad completa, no puede quedar en un estado intermedio.
  13. 13. Transaccionabilidad System.Transactions Posibilidad de hacer transacciones entre varias Bases de datos Desde .Net Framework 2.0 Clase TransactionScope() A bajo nivel trabaja con COM+ NHibernate Transactions Manejo de transacciones propio Soporta System.Transactions
  14. 14. Instrumentación (Robustez) Se refiere a la habilidad de monitorear y medir el nivel de performance, para diagnosticar errores y escribir información de traceo. Cuando una aplicación contiene código de instrumentación, puede ser administrada usando diferentes herramientas.
  15. 15. Instrumentación (Robustez) Framework de Logging Log4Net Framework de Instrumentación Microsoft Enterprise Instrumentation Framework (EIF) ASP.NET Performance counters Escritura en EventLog de Windows
  16. 16. Interoperabilidad Es una propiedad relacionada a la habilidad de un sistema de intercambiar datos vía un conjunto predeterminado de formatos y de usar protocolos comunes para su comunicación Puede implementarse con el uso de Web Services, los cuales manejan protocolos estándar Cuidar el diseño desde el inicio Pensar los servicios de forma atómica Es posible con protocolos interoperables elegir un mal diseño y hacer NO interoperable un sistema
  17. 17. Usabilidad Denota la facilidad con la que las personas pueden utilizar una herramienta con el fin de llegar a su objetivo. Se refiere a la claridad con la que se efectúa la interacción de las personas con una interfaz de un sistema. Patrones UX Librerías para facilitar la interacción AJAX (JQuery, ASP.NET Ajax Library) Silverlight
  18. 18. Seguridad Autenticación y autorización Identity y Principals (Customización) Certificados SSL Seguridad de contenido estático Soporte de encriptación .Net Framework Web Services WS-Security WS-Criptography
  19. 19. Testabilidad Es la característica de un sistema, que indica su capacidad de ser sometida a pruebas. Generalmente se la asocia con el testing automatizado.
  20. 20. Testabilidad Arquitectura en capas ASP.NET MVC Inyección de dependencias Spring.Net Castle Framework Mocking Rhino Mocks Moq NUnit Framework Visual Studio Team Foundation System
  21. 21. Mantenibilidad Utilización de estándares Code analysis FXCop StyleCop Código documentado NDoc Políticas de Branching KISS
  22. 22. Métodos de evaluación Quality Attributes Workshop (QAW) Architecture Tradeoff Analysis Method (ATAM) Software Architecture Analysis Method (SAAM) Active Reviews for Intermediate Designs (ARID)
  23. 23. Quality Attributes Workshop El objetivo de QAW es identificar escenarios desde el punto de vista de los diversos participantes, identificar riesgos (p. ej. baja performance, denegación de servicio) y posibles estrategias de mitigación (p. ej. replicación, prototipado, etc)
  24. 24. Quality Attributes Workshop - Pasos 1. Presentación e introducción al QAW 2. Presentación de Negocios/Misión 3. Presentación del Plan Arquitectónico 4. Identificación de los Drivers Arquitectónicos 5. Brainstorming de Escenarios 6. Consolidación de Escenarios 7. Priorización de Escenarios 8. Refinamiento de Escenarios
  25. 25. Conclusión Tomar decisiones desde el inicio Encontrar balance entre los diferentes atributos Mantener la sencillez Trabajo iterativo Testear durante todo el ciclo de vida del proyecto Pruebas de carga Rendimiento Concurrencia Integrar continuamente
  26. 26. Links relacionados Assessing quality in software architectures http://www.ibm.com/developerworks/library/ar-qualassess.html Software Architecture Quality Attributes http://bradapp.blogspot.com/2008/02/software-architecture-quality.html Windows Server AppFabric http://msdn.microsoft.com/en-us/windowsserver/ee695849.aspx Network Load Balancing http://technet.microsoft.com/en-us/library/cc758834%28WS.10%29.aspx SQL Server 2008 Failover Clustering http://msdn.microsoft.com/en-us/library/ms189134.aspx
  27. 27. ¿Preguntas?
  28. 28. Muchas gracias! Carlos Paez carlos.paez@snoopconsulting.com

×