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.
2. 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.”
3. Atributos de Calidad
•Facilidad de uso
“Se valora al considerar los factores
humanos, la estética, consistencia y
documentación general.”
4. 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.”
5. Atributos de Calidad
•Desempeño
“Se mide con la velocidad de
procesamiento, tiempo de respuesta,
consumo de recursos, rendimiento y
eficacía.”
6. Atributos de Calidad
• Soportabilidad
- Facilidad de mantenimiento :
extensibilidad
adaptabilidad
serviciabilidad
- Resistencia a pruebas.
- Compatibilidad.
- Configurabilida.
- Facilidad de instalación.
- Facilidad localización de problemas.
8. 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).
9. 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.
10. 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
11. 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”.
12. 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.
13. 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.
14. 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.
15. 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.
16. 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.
17. 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.
18. 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.
19. Clases de diseño
•Las clases persistentes:
•Representan almacenamientos de
datos que persistirán mas allá de la
ejecución del software.
20. 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.