sesion final.pptx

Post on 14-Dec-2015

197 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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.

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

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.

top related