conceptos de diseño de software

Post on 13-Jun-2015

389 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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

Conceptos de Diseñode 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.”

Atributos de Calidad

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

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.”

Atributos de Calidad

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

Atributos de Calidad

• Soportabilidad- Facilidad de mantenimiento :

extensibilidad adaptabilidadserviciabilidad

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

Conceptos fundamentales del diseño

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).

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.

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

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”.

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.

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.

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.

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.

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.

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.

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.

Clases de diseño

• Las clases persistentes:•Representan almacenamientos de

datos que persistirán mas allá de la ejecución del 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.

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

@josefabiandiaz

josefabiandiazs@Gmail.com

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

Msc.Ing.Jose Fabián Diaz Silva

Consultas

top related