conceptos de diseño de software

22
Conceptos de Diseño de Software

Upload: jose-diaz-silva

Post on 13-Jun-2015

387 views

Category:

Technology


0 download

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

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