Download - Sesion Final.pptx
![Page 1: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/1.jpg)
Reingeniería y patrones de diseñoSesión Online
![Page 2: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/2.jpg)
INTRODUCCION
• En esta sesión se reconocen los patrones o plantillas de diseño que nos permiten reutilizar componentes previamente diseñados y probados que nos ayudarán a reducir el tiempo de desarrollo. Además se aplican los conceptos del paradigma orientado a objetos a la programación en C#. Se identifican las estrategias de pruebas de software orientado a objetos y las métricas y estándares de calidad de software.
![Page 3: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/3.jpg)
Descripción de la unidad
• Los continuos avances en la Informática y las Telecomunicaciones están haciendo cambiar la forma en la que se desarrollan actualmente las aplicaciones software
• Aumento de la potencia de las computadoras• Abaratamiento de los costos del hardware• Redes de datos de cobertura global• Modelos de programación existentes desbordados• Nuevos paradigmas de programación
![Page 4: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/4.jpg)
Objetivo• Conocer y saber aplicar los patrones de diseño para ahorrar tiempo en el
desarrollo y programación de sistemas asegurando su calidad a través de pruebas y métricas de calidad para lograr el éxito en el desarrollo de los sistemas en las organizaciones.
![Page 5: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/5.jpg)
Reingeniería• ¿Qué es la reingeniería?
![Page 6: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/6.jpg)
Programación Orientada a Objetos
Se basa en Objetos.
• Permite al programador organizar un programa de acuerdo a abstracciones de mas alto nivel.
![Page 7: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/7.jpg)
Diagramas de clases
![Page 8: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/8.jpg)
Código
public class Empleado : Persona{ public object sueldo_bruto ; public void mostrar( ){ } public void calcular_salario_neto(){ }}
public class Cliente : Persona{public object
empresa ;public object
telefono ;public void mostrar(){}
}
public class Persona{private object nombre
;private object edad ;public void mostrar(){}
}
![Page 9: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/9.jpg)
Generación de código
• Diversas herramientas CASE nos permiten generar código en distintos lenguajes de programación a partir de los diagramas de clases.
• En UML se genera el código automáticamente dando clic derecho en la hoja del modelo, seleccionamos el lenguaje y continuamos el asistente seleccionando el modelo lógico hasta obtener el código en la carpeta especificada.
![Page 10: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/10.jpg)
Importar código al diagrama de clases
![Page 11: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/11.jpg)
Patrones de diseño
• Los patrones de diseño son el esqueleto de las soluciones a problemas comunes en el desarrollo de software.”
![Page 12: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/12.jpg)
Patrones de diseño
• Los patrones UML son colaboraciones parametrizadas -esto significa que son un grupo de clases/objetos colaborando entre sí que se pueden abstraer de un conjunto de escenarios general-. Los patrones son un medio excelente para lograr reutilización y desarrollo robusto. A medida que los patrones se descubren en todo nuevo proyecto, se puede reutilizar la plantilla básica del patrón desde modelos previos con los nombres de las variables apropiadas modificados para el proyecto en curso.
• Los patrones generalmente describen cómo resolver un problema abstracto y la tarea del usuario del patrón consiste en modificar los elementos del patrón para cumplir las demandas del compromiso actual.
• VER EL VIDEOS: • https://www.youtube.com/watch?v=HNJVdj361KY• https://www.youtube.com/watch?v=OeHBKrYeX08
![Page 13: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/13.jpg)
Propósitos
Proporcionar catálogos de elementos reusables en el diseño de sistemas software.
Evitar la reiteración en la búsqueda de soluciones a problemas ya conocidos y solucionados.
Formalizar un vocabulario común entre diseñadores.
Estandarizar el modo en que se realiza el diseño.
Facilitar el aprendizaje de las nuevas generaciones de diseñadores condensando conocimiento ya existente.
![Page 14: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/14.jpg)
Plantillas de patrones
Categoría GOF ((The Gang of Four)
Patrón de diseño(en inglés)
Patrón de diseño(en español)
Creacionales 1. Factory Method 2. Abstract Factory 3. Builder 4. Singleton
1. Fábrica2. Fábrica abstracta3. Prototipo4. Singleton
Estructurales 1. Decorator 2. Facade3. Proxy
1. Decorador2. Fachada 3. Proxy
De comportamiento 1. Iterator 2. Observer 3. Strategy 4. Template Method
1. Iterador2. Observador3. Estrategia4. Método de plantilla
![Page 15: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/15.jpg)
Actividad individual
• Analiza cuidadosamente el siguiente video:
• Realiza un cuadro sinóptico del video que describa los patrones de diseño más importantes de acuerdo a la clasificación según su propósito.
Evaluación
Indicador Si No
Explica que son los patrones creacionales
Describe al menos 2 tipos de patrones creacionales
Explica que son los patrones estructurales
Describe al menos 2 tipos de patrones estructurales
Explica que son los patrones de comportamiento
Describe al menos 2 tipos de patrones de comportamiento
![Page 16: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/16.jpg)
Patrones en UML
• Los patrones de diseño en UML se describen en la siguiente liga:
• http://patronesdediseno.blogspot.mx/2009/05/patron-visitor.html
• Se manejan dos categorías de patrones EJB y GoF, siendo el último el más utilizado por programadores.
![Page 17: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/17.jpg)
Ejemplo de patrones
• Por ejemplo, si se selecciona el patrón Abstract Factory, se genera el siguiente diagrama:
Client
AbstractFactory
+CreateProduct()
AbstractProduct
ConcreteFactory ConcreteProduct
![Page 18: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/18.jpg)
Patrones en Enterprise Architect• Probar estos 2 patrones:• Abstrac Factory para C#:http://www.sparxsystems.com.ar/resources/developers/create_uml_patterns.html
• Observer para Java:https://www.youtube.com/watch?v=OeHBKrYeX08
![Page 19: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/19.jpg)
Actividad individual• El Servicio de Emergencias está organizado en una jerarquía de bases.
Algunas de estas bases realmente disponen de personal y ambulancias (por ejemplo la de Medina del Campo), mientras que otras son «unidades administrativas» que agrupan un conjunto de bases (por ejemplo Valladolid, que agrupa la unidad del Hospital Clínico Universitario y la de Medina del Campo entre otras).
• Para cada base, interesa modelar los siguientes datos:• Nombre de la base.• Número de ambulancias, que en el caso de las bases compuestas es la suma
de las ambulancias disponibles en las bases que las componen en ese momento.
• Tiempo medio de asistencia, que en el caso de las bases compuestas es la media de los tiempos medios de asistencia registrados en las bases que las componen en ese momento.
• Elaborar un diseño que permita modelar adecuadamente esta situación, implementando completamente en Enterprise Architect UML las clases que modelan las bases, sean del tipo que sean. Es decir, elaborar un modelo utilizando patrones de diseño adaptándolos a los requerimientos.
• Utiliza el foro para compartir dudas y para retroalimentar a los demás.
![Page 20: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/20.jpg)
Pruebas del software
• El objetivo es encontrar defectos, en otras palabras, las pruebas exitosas encuentran defectos.
• La prueba del sistema establece que el sistema satisface sus requerimientos funcionales y no funcionales, y no se comporta de forma inesperada.
![Page 21: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/21.jpg)
¿Qué son las pruebas?
![Page 22: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/22.jpg)
Filosofías de las pruebas
El objetivo es encontrar defectos
Se pueden validar todos los artefactos
Probar frecuente y tempranamente
Las pruebas construyen confianza
Probar contra el riesgo de un artefacto
Una prueba vale mil opiniones
![Page 23: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/23.jpg)
Ciclo de vida FLOOT
• Revisar a detalle la descripción de cada fase de la metodología FLOOT.
![Page 24: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/24.jpg)
Modelo de pruebas
![Page 25: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/25.jpg)
Ejemplo pruebas de validación
![Page 26: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/26.jpg)
1. Deben probarse todas las funciones del sistema a las que se accede con menús.2. Deben probarse todas las combinaciones de funciones a las que se accede con el mismo menú.3. Cuando el usuario deba introducir datos, todas las funciones deben probarse con datos correctos e incorrectos.• Cuando se usan las características del software por separado, éstas
normalmente funcionan. • Los problemas surgen cuando no se han probado conjuntamente
combinaciones de características.
Políticas de Pruebas
![Page 27: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/27.jpg)
• Consiste en diseñar los casos de prueba (entradas y salidas esperadas) para probar el sistema.
• Objetivo: crear un conjunto de casos de prueba que sean efectivos descubriendo defectos en los programas y muestren que el sistema satisface sus requerimientos.
Diseño de casos de prueba
![Page 28: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/28.jpg)
Aproximaciones del diseño de pruebas
Pruebas basadas en requerimientos
Pruebas de particiones
Pruebas estructurales
![Page 29: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/29.jpg)
Pruebas automatizadas
• Pruebas automatizadas• http://prezi.com/naol0utcpu5l/pruebas-automatizadas/
![Page 30: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/30.jpg)
Actividad colaborativa
• Participa en el blog y debate las ventajas y desventajas de utilizar herramientas de prueba automatizadas.
![Page 31: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/31.jpg)
Calidad de software
• Estándares de calidad para hacer desarrollo de software:
• Tres normas:• ISO 9000• CMM• ISO IRT 15504(SPICE)
![Page 32: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/32.jpg)
ISO ( International Standar Organization)
• Etapas
![Page 33: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/33.jpg)
Capability Maturity Model Integration (CMMI)
• Los principios básicos de la Calidad Total son nueve:• 1. Consecución de la plena satisfacción de las
necesidades y expectativas del cliente.• 2. Desarrollo de un proceso de mejora continúa en
todos los procesos.• 3. Total compromiso de la Dirección.• 4. Liderazgo activo de todo el equipo directivo.• 5. Participación de todos los miembros de la
organización• 6. Fomento del trabajo en equipo hacia una gestión
de Calidad Total.• 7. El proveedor debe estar involucrado en el sistema
de Calidad Total de la empresa.• 8. Identificación y Gestión de los Procesos Claves de
la organización.• 9. Toma de decisiones de gestión basada en datos y
hechos objetivos.
![Page 34: Sesion Final.pptx](https://reader036.vdocuments.net/reader036/viewer/2022062320/563dbb35550346aa9aab2c1a/html5/thumbnails/34.jpg)
Modelo spice
• Establece un marco y los requisitos para cualquier procesos de evaluación de procesos y proporciona requisitos para los modelos de evaluación a ser utilizados.