Please enable JavaScript.
Coggle requires JavaScript to display documents.
Cap 14: Diseño Arquitectónico - Coggle Diagram
Cap 14: Diseño Arquitectónico
Que es?
Se refiere al proceso de definir la estructura, componentes, módulos, interfaces y relaciones entre ellos, que conforman un sistema de software.
También es la etapa en la que se toman las decisiones clave sobre la organización y diseño del software, estableciendo un plan que permita la construcción de un sistema de software coherente, eficiente, mantenible y escalable.
Arquitectura de Software
¿Qué es?
Es la representación de la estructura de los datos y los componentes del programa que se requieren para construir un sistema basado en computadora.
Propiedades
Son características necesarias para entender cómo los componentes interactúan con otros componentes.
Importancia
El diseño arquitectónico en ingeniería de software tiene múltiples beneficios, entre ellos, mejora la comunicación entre los diferentes actores involucrados en el desarrollo de un sistema informático
Permite tomar decisiones importantes en la etapa temprana del proyecto que afectarán significativamente el trabajo de ingeniería de software en el futuro
Proporciona una representación clara y fácilmente comprensible del sistema y su estructura, lo que facilita el trabajo de los desarrolladores y otros involucrados en el proyecto.
Diseño de Datos
Propósito
La arquitectura de datos crea un modelo abstracto de la información, que se va refinando en representaciones más específicas a medida que avanza el proyecto. Este modelo influye en la arquitectura de software que se utilizará para procesar la información.
Modelado de datos
Los objetos de datos definidos durante el análisis de requisitos de software son modelados utilizando diagramas de entidad relación y el diccionario de datos.
Estructura de Datos y BD
El diseño de datos convierte los requisitos en estructuras de datos para el software y, si es necesario, para la arquitectura de la base de datos de la aplicación.
Almacén de datos
Es un entorno de datos independiente, que abarca todos los datos de una empresa, pero no está integrado directamente con las aplicaciones. Contiene solo algunos datos que son compartidos por todas las aplicaciones necesarias en el negocio.
Características
Orientación por materia
: Un almacén de datos está organizado por las materias importantes del negocio, más que por los procesos o funciones del negocio.
Integración
: Sin tener en cuenta la fuente de datos, da consistencia nombrar convenciones, unidades y medidas, estructuras de codificación y atributos físicos incluso cuando la inconsistencia existe a través de las diferentes bases de datos orientadas a aplicaciones.
Restricción de tiempo
: Se accede a los datos en un momento específico del tiempo.
No volatilidad
: Los datos se cargan, pero después de la primera transferencia, los datos no cambian.
Diseño de datos a nivel arquitectónico
Principios
Los principios del análisis sistemático aplicados a la función y al comportamiento deberían aplicarse también a los datos.
Las estructuras y operaciones de datos deben estar claramente identificadas.
Se debería establecer un diccionario de datos y usarlo para definir el diseño de datos y del programa.
Las decisiones de diseño de datos de bajo nivel deberían dejarse para el final del proceso de diseño.
Solo los módulos que usan los datos deben conocer la representación de las estructuras de datos.
Debería desarrollarse una biblioteca de estructuras de datos útiles y de las operaciones que se les pueden aplicar.
El diseño del software y el lenguaje de programación deben soportar los tipos de datos abstractos.
Estilos Arquitectónicos
Categorías de estilo en el sistema
Componentes que realizan funciones del sistema.
Conectores que permiten la comunicación y coordinación entre componentes.
Restricciones para integrar los componentes.
Modelos semánticos para entender las propiedades globales del sistema.
Estilos Arquitectónicos
Arquitecturas centradas de datos.
Arquitecturas de flujo de datos
Arquitectura de llamada y retorno.
Arquitectura orientada a objetos.
Arquitectura estratificada.
Organización y refinamiento
Al diseñar, hay varias opciones arquitectónicas, por lo que es importante establecer criterios para evaluar las opciones.
Análisis de diseños arquitectónicos alternativos
¿Por que?
Porque permite al diseñador considerar diferentes opciones arquitectónicas para un sistema de software y elegir la que mejor se adapte a las necesidades y requisitos del sistema. Al tener múltiples opciones, el diseñador puede evaluar las ventajas y desventajas de cada opción en términos de funcionalidad, rendimiento, mantenibilidad, escalabilidad y otros factores importantes.
Tipos de enfoque
Primer enfoque:
utiliza un método iterativo para evaluar el diseño de los compromisos.
Segundo enfoque
: aplica una pseudotécnica cuantitativa para evaluar la calidad del diseño.
Tipos de dependencia
Dependencia de comportamiento
Dependencia de flujo
Dependencias restrictivas
modelos
Modelo de análisis del espectro
Modelo de análisis de selección del diseño
Análisis de contribución
Complejidad arquitectónica
Se puede evaluar la complejidad de una arquitectura al analizar las dependencias entre sus componentes.
Análisis de compromiso
Las actividades de análisis de diseño que se realizan iterativamente son:
Elicitación de requisitos.
Descripción de patrones y estilos arquitectónicos seleccionados.
Vistas de módulo
Vista de proceso
Vista de flujo de datos
Evaluación de los atributos de calidad de manera individual.
Identificación de la sensibilidad de los atributos de calidad con los diferentes atributos arquitectónicos.
La Recopilación de escenarios.
Conversión de los requisitos en una arquitectura del software
Proceso
Se establece el tipo de flujo de información
Se indican los límites del flujo
Se convierte el DFD en la estructura del programa
Se define la jerarquía de control
Se refina la estructura resultante usando medidas y heurísticas de diseño
Se refina y elabora la descripción arquitectónica
Flujo de Transformación
Los datos externos se convierten en datos internos a través de caminos de entrada, y luego se transforman a través de un centro de transformación antes de salir del software a través de caminos de salida. Esto se conoce como flujo de entrada y salida. Los datos se mueven de manera secuencial y en caminos directos, lo que se llama flujo de transformación.
Flujo de Transacción
Los datos ingresan por un camino de entrada y se transforman en una transacción evaluada por un centro. Luego, se mueven por diferentes caminos de acción desde el centro de transacción.
Análisis de las transformaciones
¿Qué es?
Es un conjunto de pasos de diseño que permite convertir un DFD, con características de flujo de transformación, en un estilo arquitectónico específico.
Pasos del diseño
Revisar el modelo fundamental del sistema
Revisar y refinar los diagramas de flujo de datos del software
Determinar si el DFD tiene características de flujo de transformación o de transacción.
Aislar el centro de transformación especificando los límites de los flujos de entrada y salida.
Realizar una descomposición de primer nivel
Realizar descomposición de segundo nivel
Refinar la estructura inicial de la arquitectura usando heurística para mejorar la calidad del software
Análisis de las transacciones
¿Qué es?
Una transacción de datos representa una unidad de trabajo completa que realiza una tarea específica dentro del sistema, y está compuesta por un conjunto de acciones que se realizan en una secuencia lógica. El análisis de transacciones se enfoca en identificar y definir estas transacciones de datos y cómo se relacionan entre sí dentro del sistema.
Pasos del diseño
Revisar el modelo fundamental del sistema.
Revisar y refinar los diagramas de flujo de datos para el software.
Determinar si el DFD tiene características de flujo de transformación o de transacción.
Identificar el centro de transacción y las características de flujo a lo largo de cada camino de acción.
Transformar el DFD en una estructura de programa adecuada al procesamiento de la transacción.
Descomponer y refinar la estructura de transacción y la estructura de todos los caminos de acción.
Refinar la primera arquitectura del programa usando heurística de diseño para mejorar la calidad del software.
Refinamiento del diseño arquitectónico
Pasos del diseño
Se debe desarrollar una descripción del procesamiento para cada módulo
Se aporta una descripción de la interfaz para cada módulo.
Se definen las estructuras de datos generales y locales.
Se anotan todas las limitaciones/restricciones del diseño.
Se lleva a cabo una revisión del diseño.
Se considera un refinamiento (si es necesarios y justificado).
Motivo
El éxito de la aplicación del análisis de transformación o de transacción se complementa añadiendo la documentación adicional requerida como parte del diseño arquitectónico.