1/30
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
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
¿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
¿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.
¿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)
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
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
Criterios para la evaluación de la calidad del software
FAN-OUT
FAN-IN
Descomposición
Acoplamiento
Cohesión
¿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
¿Cual es el criterio para un FAN-OUT sano y acotado?
7 ± 2 módulos invocados
¿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
¿Que características tiene un módulo con alto FAN-IN?
Buena cohesión
Interfaz consistente
¿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
¿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
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
¿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
¿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
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”
¿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
¿Cuales son los componentes principales de un Diagrama de Estructura?
Módulos
Conexiones (invocaciones)
Parámetros (cuplas)
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
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)
¿Cuando se realiza una estrategia de diseño por Análisis de Transformación?
Cuando el DFD original es de transformación
¿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
¿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
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
¿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
Principios SOLID
S. Single Responsibility Principle
O. Open/Closed Principle
L. The Liskov Substitution Principle
I. Interface Segregation Principle
D. Dependency Inversion Principle.
Definición de GRASP
“General Responsibility Assigment Software Patterns”
Conjunto de buenas practicas para el diseño orientado a objetos
¿Que es la programación orientada a aspectos?
Paradigma de programación reciente que busca la modularidad y separación de responsabilidades
Ventajas de la programación orientada a aspectos
Código menos enmarañado
Menor dependencia
Facilidad para depurar y modificar
Más reusabilidad