Conceptos de diseño de software

22
Conceptos de Diseño de Software

description

Se establece un recorrido por elementos fundamentales del diseño de software. Elementos como la funcionalidad, la facilidad de uso, la soportabilidad, entre otras.El refinamiento, la refabricación y las diversas clases de diseño pueden se encontradas en este documento.

Transcript of Conceptos de diseño de software

Page 1: Conceptos de diseño de software

Conceptos de Diseñode Software

Page 2: Conceptos de diseño de software

Atributos de Calidad

• Funcionalidad“Se estima al evaluar el conjunto de características y capacidades del programa, la generalidad de las funciones que se entregan y la seguridad del sistema en su totalidad.”

Page 3: Conceptos de diseño de software

Atributos de Calidad

• Facilidad de uso“Se valora al considerar los factores humanos, la estética, consistencia y documentación general.”

Page 4: Conceptos de diseño de software

Atributos de Calidad

•Confiabilidad“Se evalúa al medir la frecuencia y severidad de las fallas, la precisión de los resultados de salida, la media del momento de fallas, la habilidad para recuperarse de las fallas y la previsibilidad del programa.”

Page 5: Conceptos de diseño de software

Atributos de Calidad

•Desempeño“Se mide con la velocidad de procesamiento, tiempo de respuesta, consumo de recursos, rendimiento y eficacía.”

Page 6: Conceptos de diseño de software

Atributos de Calidad

• Soportabilidad- Facilidad de mantenimiento :

extensibilidad adaptabilidadserviciabilidad

- Resistencia a pruebas.- Compatibilidad.- Configurabilida.- Facilidad de instalación.- Facilidad localización de problemas.

Page 7: Conceptos de diseño de software

Conceptos fundamentales del diseño

Page 8: Conceptos de diseño de software

Abstracción

• Existen diversos grados de abstracción , entre mayor sea el grado de la misma se considera una solución general, entre menor sea su grado se hace referencia a elementos de mayor especificidad.

• Abstracción procedimental: Permiten describir procesos omitiendo detalles específicos.(ej: encender automóvil)

• Abstracción de datos: Describe las características de un objeto. (automóvil, no siendo necesario describir en detalle su especificación para reconocerlo).

Page 9: Conceptos de diseño de software

Arquitectura

• Representa la estructura general del software y la forma como interactúan sus componentes.• “En un sentido mas amplio, no solo se describe los

componentes y relaciones, también se pueden representar elementos mas importantes del sistema”.

• MODELOS ESTRUCTURALES

• MODELOS DE MARCO DE TRABAJO.

• MODELOS DINÁMICOS.

• MODELOS DEL PROCESO.

• MODELOS FUNCIONALES.

Page 10: Conceptos de diseño de software

Patrones

• “Un patrón es una semilla de conocimiento, la cual tiene un nombre y transporta la esencia de una solución probada a un problema concurrente dentro de cierto contexto en medio de intereses en competencia”.

• Brad Appleton

Page 11: Conceptos de diseño de software

Modularidad

• “ El software se divide en componentes con nombres independientes y que es posible abordar en forma individual. Estos componentes reciben el nombre de Módulos y se integran para satisfacer requisitos del problema”.

Page 12: Conceptos de diseño de software

Ocultación de información

• “ Los módulos se caracterizan por ocultar las soluciones de diseño a otros.”• Las pruebas y modificaciones se realizan

de manera mas cómoda.• Se evita el ingreso de errores de frontera o

involuntarios al estar solucionando un problema.

Page 13: Conceptos de diseño de software

Independencia Funcional

•Modularidad + abstracción + ocultamiento = Independencia funcional

• Módulos independientes permiten probarlos, modificarlos y optimizarlos de manera mas rápida y efectiva.• Cohesión : Medida de la fuerza funcional relativa de un

modulo.

• Acoplamiento: Medida de interdependencia entre módulos.

Page 14: Conceptos de diseño de software

Refinamiento

• Estrategia de diseño descendente, complemento de la abstracción.

• Inicia con el enunciado de una función que maneja un alto grado de abstracción y a medida que se producen nuevos detalles se va refinando el enunciado.

Page 15: Conceptos de diseño de software

Refabricación

• “Es el proceso de cambiar un sistema de software de tal forma que no altere el comportamiento externo de su código y aún así se mejore su estructura interna”.

•Problemas de diseño:• Redundancias, elementos inútiles,

algoritmos innecesarios, estructuras de datos inapropiados o mal construidas.

Page 16: Conceptos de diseño de software

Clases de diseño

• Las clases de interfaz con el usuario:

•Define todas las abstracciones necesarias para la interacción humano-computadora.•Puede ser representadas de manera

visual los elementos de las consideraciones del problema.

Page 17: Conceptos de diseño de software

Clases de diseño

• Las clases del dominio de negocios:• Las clases que establecen los

atributos y servicios necesarios para implementar algún elemento del dominio de negocio.

Page 18: Conceptos de diseño de software

Clases de diseño

• Las clases de proceso:• Implementa abstracciones del

negocio en un nivel más bajo, las cuales se requieren para manejar por completo las clases del dominio de negocios.

Page 19: Conceptos de diseño de software

Clases de diseño

• Las clases persistentes:•Representan almacenamientos de

datos que persistirán mas allá de la ejecución del software.

Page 20: Conceptos de diseño de software

Clases de diseño

• Las clases de sistema:• Implementan las funciones de

gestión y control del software que permiten que el sistema opere y se comunique dentro de su entorno y con el mundo exterior.

Page 21: Conceptos de diseño de software

• Basado en:Ingeniería del software un enfoque prácticoRoger S. PressmanSexta edición

Page 22: Conceptos de diseño de software

@josefabiandiaz

[email protected]

https://www.youtube.com/user/fabiandiazs

Msc.Ing.Jose Fabián Diaz Silva

Consultas