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