Sesion Final.pptx
-
Upload
ana-luisa-ballinas-hernandez -
Category
Documents
-
view
186 -
download
0
Transcript of Sesion Final.pptx
Reingeniería y patrones de diseñoSesión Online
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.
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
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.
Reingeniería• ¿Qué es la reingeniería?
Programación Orientada a Objetos
Se basa en Objetos.
• Permite al programador organizar un programa de acuerdo a abstracciones de mas alto nivel.
Diagramas de clases
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(){}
}
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.
Importar código al diagrama de clases
Patrones de diseño
• Los patrones de diseño son el esqueleto de las soluciones a problemas comunes en el desarrollo de software.”
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
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.
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
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
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.
Ejemplo de patrones
• Por ejemplo, si se selecciona el patrón Abstract Factory, se genera el siguiente diagrama:
Client
AbstractFactory
+CreateProduct()
AbstractProduct
ConcreteFactory ConcreteProduct
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
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.
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.
¿Qué son las pruebas?
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
Ciclo de vida FLOOT
• Revisar a detalle la descripción de cada fase de la metodología FLOOT.
Modelo de pruebas
Ejemplo pruebas de validación
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
• 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
Aproximaciones del diseño de pruebas
Pruebas basadas en requerimientos
Pruebas de particiones
Pruebas estructurales
Pruebas automatizadas
• Pruebas automatizadas• http://prezi.com/naol0utcpu5l/pruebas-automatizadas/
Actividad colaborativa
• Participa en el blog y debate las ventajas y desventajas de utilizar herramientas de prueba automatizadas.
Calidad de software
• Estándares de calidad para hacer desarrollo de software:
• Tres normas:• ISO 9000• CMM• ISO IRT 15504(SPICE)
ISO ( International Standar Organization)
• Etapas
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.
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.