Tema 69. Técnicas de diseño del software. Diseño por capas y patrones de diseño

0.0(0)
Studied by 0 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/30

encourage image

There's no tags or description

Looks like no tags are added yet.

Last updated 5:06 PM on 6/6/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai

No analytics yet

Send a link to your students to track their progress

31 Terms

1
New cards

Definición del Diseño Estructurado

Se ocupa de la identificación, selección y organización de los módulos y sus relaciones. Se decide que componentes son necesarios y la interconexión entre los mismos

2
New cards

¿Cuando se realiza el diseño estructurado?

Tras la especificación resultante del proceso de análisis, se realiza una descomposición del sistema en módulos estructurados jerárquicamente

3
New cards

¿Qué es un módulo software?

Es una unidad lógica y funcionalmente contigua de software, con un nombre claro e identificable por el sistema.

4
New cards

¿Que debe cumplir un módulo software?

  • Función (Que hace)

  • Algoritmo (Como lo hace). Conjunto de instrucciones para implementar la función

  • Contexto (Entorno). Que posición ocupa el módulo en la jerarquía y como se relaciona con el resto de módulos:

    • Quien lo llama (FAN-IN)

    • A quien llama (FAN-OUT)

5
New cards

Objetivos del Diseño Estructurado

  • Máxima inteligibilidad del sistema

  • Minimizar el coste asociado al mantenimiento

  • Facilitar la prueba

  • Integración del sistema

  • Que se garanticen los requisitos no funcionales de Reusabilidad, Fiabilidad y Portabilidad

  • Utilización de herramientas gráficas para representar la estructura modular del sistema

6
New cards

Arquitecturas típicas para la solución de la mayoría de los problemas

  • Transformación por lotes

  • Transformación contínua

  • Interfaz interactiva

  • Sistema de tiempo real

  • Simulación dinámica

  • Controlador de transacciones

7
New cards

Criterios para la evaluación de la calidad del software

  • FAN-OUT

  • FAN-IN

  • Descomposición

  • Acoplamiento

  • Cohesión

8
New cards

¿Que es el FAN-OUT y que mide?

Es el número de módulos subordinados a los que invoca un módulo, es decir, el número de módulos que invoca.

Es una medida de la complejidad del módulo. Cuando más alto sea el FAN-OUT mas complejo es el modulo

9
New cards

¿Cual es el criterio para un FAN-OUT sano y acotado?

7 ± 2 módulos invocados

10
New cards

¿Que es el FAN-IN y que mide?

El FAN-IN es el número de módulos superiores que invocan a un módulo, es decir, el número de módulos que lo llaman.

Es una medida de la reusabilidad de un módulo

Un módulo con un FAN-IN alto suele ser sinónimo de alta cohesión

11
New cards

¿Que características tiene un módulo con alto FAN-IN?

  • Buena cohesión

  • Interfaz consistente

12
New cards

¿Que es la interfaz consistente?

Indica que el mismo módulo debe ser invocado con el mismo número de parámetros y el mismo tipo

13
New cards

¿Que es el acoplamiento?

El acoplamiento es una medida de la interdependencia entre módulos. El objetivo es lograr un bajo acoplamiento, lo que significa que los módulos son lo más independientes entre si

14
New cards

Tipos de acoplamiento ordenados de MEJOR a PEOR

  • Acoplamiento de datos

  • Acoplamiento de estampado

  • Acoplamiento de control

  • Acoplamiento externo

  • Acoplamiento común

  • Acoplamiento de contenido

15
New cards

¿Que es la cohesión?

Es una medida de la relación entre los elementos de un módulo.

Es de tipo interno, es decir, de como funcionan los elementos internos de un mismo módulo

16
New cards

¿Cual es el objetivo de la cohesión?

Máxima cohesión, lo que indica que un módulo hace una cosa concreta, la hace bien y de forma sencilla

17
New cards

Tipos de cohesión de módulos, ordenada de MEJOR a PEOR

  • Cohesión funcional

  • Cohesión secuencial

  • Cohesión de comunicación

  • Cohesión procedimental. Agrupación de elementos del módulo por el hecho de tener un orden

  • Cohesión temporal. Agrupación de elemento de un módulo por el hecho de tener que ejecutarse al mismo tiempo, no porque tengan una relación lógica

  • Cohesión lógica. Los elementos pertenecen a la misma categoría lógica, aunque sus tareas no tengan nada que ver

  • Cohesión casual. El modulo realiza varias tareas que tienen poca o ninguna relación. “Cajón de sastre”

18
New cards

¿Que es un Diagrama de Estructura?

Es una representación de la estructura modular de un sistema o de un componente del mismo, definiendo los parámetros de entrada y salida de cada módulo.

Se obtiene a partir del modelo de proceso obtenido aplicando la técnica de Diagrama de Flujo de Datos

19
New cards

¿Cuales son los componentes principales de un Diagrama de Estructura?

  • Módulos

  • Conexiones (invocaciones)

  • Parámetros (cuplas)

20
New cards

Además de los componentes principales, ¿que otros componentes podemos encontrar en un Diagrama Estructurado?

  • Almacenes de datos. Lugar físico en el que están almacenados los datos

  • Dispositivos físicos. Cualquier dispositivo por el cual se pueda recibir o enviar información que necesite el sistema

21
New cards

Estrategias de Diseño Estructurado

  • Análisis de transformación

  • Análisis de transacción

(Dependen de la estructura inicial del DFD previo al diseño)

22
New cards

¿Cuando se realiza una estrategia de diseño por Análisis de Transformación?

Cuando el DFD original es de transformación

23
New cards

¿Cuando un DFD es de tipo de transformación?

Cuando se pueden distinguir:

  • Un flujo de llegada/entrada

  • Flujo de transformación o centro de transformación. Contiene los elementos esenciales del sistema y es independiente de la entrada/saida

  • Un flujo de salida

24
New cards

¿Cuando se realiza una estrategia de diseño por Análisis de Transacción?

Cuando en el DFD existe un proceso en función del flujo de entrada que determina la elección de uno o más flujos de información

25
New cards

Características del diseño Orientado a Objetos (“COMIERA”)

  • Cohesión fuerte

  • Ocultación de implementación

  • Modularidad (separación en clases)

  • Integrable

  • Extensibilidad (herencia + polimorfismo)

  • Reutilización

  • Acoplamiento débil

26
New cards

¿Que son los principios SOLID?

Un acrónimo que representa una serie de principios para el diseño y mantenimiento de software orientado a objetos

27
New cards

Principios SOLID

  • S. Single Responsibility Principle

  • O. Open/Closed Principle

  • L. The Liskov Substitution Principle

  • I. Interface Segregation Principle

  • D. Dependency Inversion Principle.

28
New cards

Definición de GRASP

“General Responsibility Assigment Software Patterns”

Conjunto de buenas practicas para el diseño orientado a objetos

29
New cards

¿Que es la programación orientada a aspectos?

Paradigma de programación reciente que busca la modularidad y separación de responsabilidades

30
New cards

Ventajas de la programación orientada a aspectos

  • Código menos enmarañado

  • Menor dependencia

  • Facilidad para depurar y modificar

  • Más reusabilidad

31
New cards