diseño de software
TRANSCRIPT
![Page 1: Diseño de software](https://reader035.vdocumento.com/reader035/viewer/2022071810/58a354231a28ab14598b505b/html5/thumbnails/1.jpg)
DISEÑO DE SOFTWARE
Tiempo invertido en la fase de implementación
![Page 2: Diseño de software](https://reader035.vdocumento.com/reader035/viewer/2022071810/58a354231a28ab14598b505b/html5/thumbnails/2.jpg)
Todo diseño software debe cumplir los siguientes principios.
• Abstracción: Aislar un elemento de su contexto, para centrarse en el qué y no en el cómo.o Abstracción de datos: Colección identificada de datos que describe un objeto. Su objetivo es encontrar una jerarquía en los datos.o Abstracción procedimental: Secuencia identificada de instrucciones que tiene una función específica y limitada.
• Modularidad: Criterios estructurales que nos proporcionan información acerca de módulos individuales y sus interconexiones. Se busca conseguir la mayor independencia entre módulos mediante la cohesión y el acoplamiento
• Cohesión: Mide la relación funcional entre módulos.
• Acoplamiento: Mide el nivel de dependencia entre dos módulos.
• Ocultación de la Información: Los módulos deben diseñarse de manera que la información sea inaccesible a otros módulos que no necesiten dicha información. Directamente relacionado con Abstracción, Cohesión y Acoplamiento
• Complejidad: mide ciertos aspectos del software con el objetivo de evaluar el diseño. Se puede clasificar en:o Intra-Modular: Interior de un modulo.o Inter-Modular: Entre módulos.
Metodologías
Patrones y antipatrones
• Los patrones proporcionan soluciones a problemas recurrentes, facilitando la comprensión, mantenimiento y extensión, apoyando la construcción de software de calidad. Estos patrones son: open-closed, single responsability, Liskov substitution, interface segregation, dependency inversion.
• Los antipatrones definen situaciones y costumbres que es mejor evitar. Algunos ejemplos son: God class, lava flow, spaguetti code, poltergeist, etc.
• Descomposición Funcional• Diseño de flujo de datos:
o Utiliza el flujo de información para derivar la estructura del programa.
• Diseño basado en estructuras de datos
• Orientada a objetos
• Booch
• Fusion
• RUP
Consta de 3 pasos:
1. Identificar los objetos.2. Determinar sus atributos y
servicios.3. Determinar las relaciones entre
objetos.
• No orientada a objetos