Qué Es El Diseño de Software
Qué Es El Diseño de Software
Qué Es El Diseño de Software
Arquitectura
Representa la estructura general del software y la forma como interactúan
sus componentes.
“En un sentido más amplio, no solo se describe los componentes y
relaciones, también se pueden representar elementos más 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 más 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 más rápida y efectiva.
Cohesión: Medida de la fuerza funcional relativa de un módulo.
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.
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.”
Soportabilidad
Facilidad de mantenimiento :
Extensibilidad
Adaptabilidad
Serviciabilidad
Resistencia a pruebas.
Compatibilidad.
Configurabilidad.
Facilidad de instalación.
Facilidad localización de problemas.
Participantes en el diseño
¿Qué hacen?
Los dueños del producto interactúan más que nada con los analistas
comerciales y con los clientes. También trabajan con los ingenieros
encargados de la calidad y con los probadores para asegurar la alta calidad
del producto final.
Project manager
¿Qué hacen?
Como los project managers son los que supervisan todas las partes del
proyecto de principio a fin, interactúan con todos los miembros del equipo,
así como también con el cliente y los accionistas. Con eso dicho, el analista
comercial interactúa más con el cliente, mientras que el project
manager se enfoca más en el equipo.
Diseñadores UX y UI
¿Qué hacen?
A no ser que sus roles se fusionen para proyectos más pequeños, los
diseñadores UX y UI interactúan más que nada entre ellos mismos. También
trabajan de cerca con los programadores para garantizar que sus diseños
puedan realizarse.
Analista comercial
¿Qué hacen?
Los analistas comerciales trabajan de cerca con el dueño del producto y con
el project manager.
Desarrolladores de software
¿Qué hacen?
¿Qué hacen?
Los términos suelen confundirse, pero el team lead y el tech lead son dos
roles que se relacionan pero que son distintos. El team lead está a cargo del
rendimiento general, la motivación y la organización de su equipo. El
desarrollador suele asumir el rol del team lead, y se aseguran de que los
miembros del equipo trabajen bien en conjunto y de que estén en el camino
correcto para entregar las soluciones de software a tiempo. A veces se
refiere a ellos como directores o arquitectos de ingeniería y son responsables
del desarrollo y aprendizaje de los miembros de su equipo.
Como son los que están a cargo, los team leads interactúan con todos los
miembros del proyecto informático.
crum master
¿Qué hacen?
Estándares de calidad