Diseño de software

2
DISEÑO DE SOFTWARE Tiempo invertido en la fase de implementación

Transcript of Diseño de software

Page 1: Diseño de software

DISEÑO DE SOFTWARE

Tiempo invertido en la fase de implementación

Page 2: Diseño de software

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