Generalidades del Diseno~ de Software: Conceptos ...

17
Introducci´ on Conceptos, principios y cualidades Heur´ ısticas de Dise˜ no Niveles de Dise˜ no Conclusi´ on Generalidades del Dise˜ no de Software: Conceptos, Principios, Heur´ ısticas y Niveles Julio Ariel Hurtado Alegr´ ıa 23 de febrero de 2015 Julio A. Hurtado A. Universidad del Cauca 1 / 17

Transcript of Generalidades del Diseno~ de Software: Conceptos ...

Page 1: Generalidades del Diseno~ de Software: Conceptos ...

IntroduccionConceptos, principios y cualidades

Heurısticas de DisenoNiveles de Diseno

Conclusion

Generalidades del Diseno de Software: Conceptos,Principios, Heurısticas y Niveles

Julio Ariel Hurtado Alegrıa

23 de febrero de 2015

Julio A. Hurtado A. Universidad del Cauca 1 / 17

Page 2: Generalidades del Diseno~ de Software: Conceptos ...

IntroduccionConceptos, principios y cualidades

Heurısticas de DisenoNiveles de Diseno

Conclusion

Contenido

Introduccion

Conceptos, principios y cualidades

Heurısticas de Diseno

Niveles de Diseno

Conclusion

Julio A. Hurtado A. Universidad del Cauca 2 / 17

Page 3: Generalidades del Diseno~ de Software: Conceptos ...

IntroduccionConceptos, principios y cualidades

Heurısticas de DisenoNiveles de Diseno

Conclusion

Motivacion

Implemente el programa principal y el componente central de elsiguiente diagrama:

Julio A. Hurtado A. Universidad del Cauca 3 / 17

Page 4: Generalidades del Diseno~ de Software: Conceptos ...

IntroduccionConceptos, principios y cualidades

Heurısticas de DisenoNiveles de Diseno

Conclusion

Diseno de Software

Es el proceso de aplicar diferentes tecnicas y principios con elproposito de construir un sistema en suficiente detalle para permitirsu implementacion fısica.

Julio A. Hurtado A. Universidad del Cauca 4 / 17

Page 5: Generalidades del Diseno~ de Software: Conceptos ...

IntroduccionConceptos, principios y cualidades

Heurısticas de DisenoNiveles de Diseno

Conclusion

Principios de Diseno de Software

Conceptos Fundamentales

1. Abstraccion.

2. Refinamiento.

3. Modularidad y encapsulamiento.

4. Arquitectura y Diseno Detallado.

5. Jerarquıas.

6. Separacion de preocupaciones.

7. Ocultamiento de la informacion.

Julio A. Hurtado A. Universidad del Cauca 5 / 17

Page 6: Generalidades del Diseno~ de Software: Conceptos ...

IntroduccionConceptos, principios y cualidades

Heurısticas de DisenoNiveles de Diseno

Conclusion

Diseno de Software

Ademas de la funcionalidad, hay diferentes cualidades del Softwarea considerar durante el diseno

1. Compatibilidad.

2. Modificabilidad y extensibilidad.

3. Confiabilidad y robustez(Seguridad y Tolerancia a fallos).

4. Desempeno.

5. Facilidad de prueba.

6. Usabilidad.

Julio A. Hurtado A. Universidad del Cauca 6 / 17

Page 7: Generalidades del Diseno~ de Software: Conceptos ...

IntroduccionConceptos, principios y cualidades

Heurısticas de DisenoNiveles de Diseno

Conclusion

Diseno de Software

Ademas de las cualidades que exhibe el software, el diseno mismotambien tiene cualidades

1. Completitud respecto a la satisfaccion de los requisitos desoftware.

2. Leıble y comprensible por desarrolladores, el equipo demantenimiento y el equipo de prueba.

3. Completitud respecto a las vistas y diagramas requeridos parauna adecuada implementacion.

4. Correctitud.

5. Deben exhibirse adecuadamente los principios de diseno deacuerdo a las cualidades del software.

Julio A. Hurtado A. Universidad del Cauca 7 / 17

Page 8: Generalidades del Diseno~ de Software: Conceptos ...

IntroduccionConceptos, principios y cualidades

Heurısticas de DisenoNiveles de Diseno

Conclusion

Heurıstica de Diseno

Una heurıstica es una tecnica disenada para resolver un problemade manera eficiente o aproximada cuando los metodos clasicos sonmuy lentos o cuando no pueden encontrar una solucion exactarespectivamente.

Julio A. Hurtado A. Universidad del Cauca 8 / 17

Page 9: Generalidades del Diseno~ de Software: Conceptos ...

IntroduccionConceptos, principios y cualidades

Heurısticas de DisenoNiveles de Diseno

Conclusion

Heurısticas Generales de Diseno

1. Difiera las decisiones tanto como pueda (hasta que tengamayor informacion).

2. Produzca modelos de interaccion y conceptuales como unabase para el diseno.

3. Reduzca los sistemas grandes en modulos a traves de unrefinamiento recursivo.

4. Asigne responsabilidades a los modulos de software con elobjetivo de minimizar el acoplamiento y maximizar lacohesion.

5. Cree componentes que usen interfaces bien definidos queencapsulen el comportamiento interno.

Julio A. Hurtado A. Universidad del Cauca 9 / 17

Page 10: Generalidades del Diseno~ de Software: Conceptos ...

IntroduccionConceptos, principios y cualidades

Heurısticas de DisenoNiveles de Diseno

Conclusion

Heurısticas Generales de Diseno

1. Use jerarquıas y abstracciones.

2. Defina y use protocolos comunes para operaciones comunes(protocolos de diseno).

3. Disene software para soportar la medicion de recursosrestringidos.

4. Use metricas para medir la calidad del sistema.

Julio A. Hurtado A. Universidad del Cauca 10 / 17

Page 11: Generalidades del Diseno~ de Software: Conceptos ...

IntroduccionConceptos, principios y cualidades

Heurısticas de DisenoNiveles de Diseno

Conclusion

Niveles de Diseno

1. Diseno Arquitectonico

2. Diseno Detallado

Julio A. Hurtado A. Universidad del Cauca 11 / 17

Page 12: Generalidades del Diseno~ de Software: Conceptos ...

IntroduccionConceptos, principios y cualidades

Heurısticas de DisenoNiveles de Diseno

Conclusion

Diseno Arquitectonico

La arquitectura software de un programa o un sistema software(3)es la estructura o estructuras del sistema(2), las cualescomprenden componentes(1), las propiedades externamentevisibles(0) de estos componentes y las relaciones entre ellos (4).

Julio A. Hurtado A. Universidad del Cauca 12 / 17

Page 13: Generalidades del Diseno~ de Software: Conceptos ...

IntroduccionConceptos, principios y cualidades

Heurısticas de DisenoNiveles de Diseno

Conclusion

Diseno Arquitectonico

1. Conjunto de decisiones de alto nivel para alcanzar lascualidades del software.

2. Uso de vistas para lograr el principio de separacion depreocupaciones.

3. Es independiente de las estructuras de datos y lo algoritmosutilizados de manera local.

4. Los requisitos son asignados a cada parte de la arquitectura.

Julio A. Hurtado A. Universidad del Cauca 13 / 17

Page 14: Generalidades del Diseno~ de Software: Conceptos ...

IntroduccionConceptos, principios y cualidades

Heurısticas de DisenoNiveles de Diseno

Conclusion

Diseno Detallado

Cada modulo de la arquitectura es disenado de forma local,teniendo en cuenta los requerimientos asignados para alcanzar unproposito global. Por tanto el diseno detallado es una definicioncompleta y terminada del producto.El diseno se representa por diferentes modelos que dependen de:

1. Paradimas de desarrollo.

2. Dominios de aplicacion.

3. Estrategias de desarrollo.

Julio A. Hurtado A. Universidad del Cauca 14 / 17

Page 15: Generalidades del Diseno~ de Software: Conceptos ...

IntroduccionConceptos, principios y cualidades

Heurısticas de DisenoNiveles de Diseno

Conclusion

Conclusion

1. El diseno permite crear una solucion implementable delsistema.

2. Como paso intermedio del desarrollo se apoya en los principiosde abstraccion y refinamiento.

3. Como elemento de soporte a la comunicacion requiere delenguajes claros.

Julio A. Hurtado A. Universidad del Cauca 15 / 17

Page 16: Generalidades del Diseno~ de Software: Conceptos ...

IntroduccionConceptos, principios y cualidades

Heurısticas de DisenoNiveles de Diseno

Conclusion

Ejercicio: Evaluar el Siguiente Modelo de Diseno

Julio A. Hurtado A. Universidad del Cauca 16 / 17

Page 17: Generalidades del Diseno~ de Software: Conceptos ...

IntroduccionConceptos, principios y cualidades

Heurısticas de DisenoNiveles de Diseno

Conclusion

Generalidades del Diseno de Software: Conceptos,Principios, Heurısticas y Niveles

Julio Ariel Hurtado Alegrıa

23 de febrero de 2015

Julio A. Hurtado A. Universidad del Cauca 17 / 17