Conceptos de diseño de software
-
Upload
jose-diaz-silva -
Category
Technology
-
view
384 -
download
0
description
Transcript of Conceptos de diseño de software
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
https://www.youtube.com/user/fabiandiazs
Msc.Ing.Jose Fabián Diaz Silva
Consultas