¿Qué modos de construcción existen?
Arquitectura es un término informático. El concepto de arquitectura fue propuesto por primera vez por G. Amdahl en 1964, lo que sentó una buena base para el diseño y desarrollo de futuros sistemas informáticos. La arquitectura incluye sistema de flujo de datos, sistema de devolución de llamadas, componentes independientes, máquina virtual, sistema centrado en datos (biblioteca), estilo de dominio especial, estilo estructural especial, estructura heterogénea establecida mediante la integración de diferentes estilos, programa/subrutina principal inicial y básico.
2. El origen de la arquitectura:
En el campo de la programación tradicional, la gente utiliza diagramas de flujo para expresar las funciones básicas del sistema y la lógica específica de implementación. Sin embargo, el diagrama de flujo es en realidad solo una representación gráfica del programa fuente y no puede proporcionar más información para los analistas y desarrolladores del sistema, por lo que no se ha utilizado ampliamente en el proceso de desarrollo del sistema real. Con el aumento de la escala y la complejidad de los sistemas de software, el análisis y descripción de la estructura general del sistema de software (datos y lógica de control) se ha convertido en una parte indispensable e importante en el desarrollo de sistemas a gran escala. Obviamente, este objetivo no se puede lograr con diagramas de flujo y se deben utilizar nuevos métodos y conceptos para comprender la estructura general del sistema.
3. Clasificación de las edificaciones:
1.? Sistema de flujo de datos, incluido procesamiento por lotes secuencial, canalizaciones y filtros;
2. Sistema de devolución de llamadas, que incluye programa principal y subrutina, sistema orientado a objetos y estructura jerárquica;
3. componentes, incluidos procesos de comunicación y llamadas de eventos implícitas;
4. Máquinas virtuales, incluidos intérpretes y sistemas basados en reglas
5. sistemas de hipertexto y sistemas de pizarra;
6. Estilos de campo especiales; como control de procesos, simuladores;
7. Estilos de estructura especiales, como procesamiento distribuido y sistemas de transición de estado; p>
8. Estructuras heterogéneas establecidas mediante síntesis de diferentes estilos;
9. El programa/subrutina principal más inicial y básico.
Cuarto paradigma estructural:
1. Tuberías y filtros
Cada componente tiene un conjunto de entradas y salidas, y lee datos del flujo como entrada. y genera un flujo de datos de salida. Todo el sistema puede verse como un componente de procesamiento de datos compuesto por múltiples filtros.
Filtro a
Filtro b
Filtro c
Tubería
Características:
Los filtros son independientes entre sí (no pueden * * * disfrutar del estado), el funcionamiento y el comportamiento de un filtro no pueden afectar el funcionamiento y el comportamiento de otro filtro y la transmisión de transmisiones no tiene efectos secundarios.
Al filtro no le importa el origen del flujo de entrada ni el destino del flujo de salida. No necesita conocer el origen y el destino del flujo y no tiene ningún impacto en el procesamiento de datos del filtro.
El filtrado y la transmisión pueden ser simultáneos y pueden existir varias transmisiones en el sistema al mismo tiempo.
Ejemplo:
Uno de los ejemplos más famosos es la programación de shell de Unix, que conecta múltiples programas (componentes) que procesan datos a través de tuberías para producir un efecto de suma. es un compilador tradicional que genera código fuente a través de pasos como análisis léxico, análisis de sintaxis, generación de código intermedio y generación de código de destino.
Ventajas:
La función de todo el sistema es la suma de las funciones de múltiples filtros, lo que puede simplificar el análisis y diseño del sistema. Después de analizar los requisitos, todo el sistema puede verse como un filtro y luego refinarse gradualmente en múltiples filtros interconectados.
Admite la reutilización de componentes, el mismo filtro puede aparecer varias veces en diferentes ubicaciones del sistema.
Fácil de mantener y mejorar, el filtro se puede reemplazar y se pueden agregar nuevos filtros al sistema sin cambiar el filtro original ni las funciones básicas del sistema original.
Soporte de concurrencia En esencia, esta arquitectura es esencialmente independiente del estado de cada filtro independiente y del orden de entrega de los flujos paralelos, por lo que la concurrencia es una característica natural de la infraestructura.
Desventajas:
Dado que los filtros son esencialmente independientes, los diseñadores deben considerar de forma independiente los procesos de entrada, procesamiento y salida de cada filtro, así como las similitudes lógicas y las relaciones de los filtros. verse reflejado en el diseño.
Debido a la naturaleza de procesamiento por lotes de este sistema, no es adecuado para desarrollar aplicaciones que interactúen con los usuarios.
Es imposible extraer la identidad * * * entre múltiples flujos de procesamiento del sistema, y la identidad * * * entre múltiples filtros no se puede extraer, lo que aumenta la complejidad del diseño.
2. Sistema orientado a objetos
En este sistema, los datos y las operaciones sobre datos se encapsulan en tipos de datos u objetos abstractos. Este sistema consta de una gran cantidad de objetos. Físicamente, estos objetos interactúan entre sí a través de llamadas a funciones o procedimientos. Lógicamente, la reutilización del diseño se consigue entre objetos mediante la integración y la composición.
Objeto d
Objeto b
Objeto a
Objeto e
Objeto c
Llamada a objeto
Llamada a objeto
Llamada a objeto
Nivel A
Clase B
Clase C
Clase G
Objeto a
Objeto e
Clase F
Compuesto
Herencia
Estructura física estructura lógica
Características:
Hay demasiados datos sobre el análisis y diseño de sistemas orientados a objetos, por lo que no lo explicaré. en detalle aquí.
Ventajas:
Debido a la encapsulación, se logra flexibilidad y escalabilidad, los detalles de implementación se ocultan y se mejora la calidad del código;
Uso de herencia y El estado múltiple mejora la reutilización del software.
Desventajas:
La principal desventaja es que la interacción entre objetos se realiza a través de llamadas explícitas a funciones de objetos, por lo que cuando un objeto necesita implementar una función específica, se debe saber cuál El objeto que proporciona este servicio reduce la flexibilidad del sistema. El modelo de tubería y filtro no requiere que se indique explícitamente el origen y el destino de los datos.
Arquitectura basada en eventos
Objeto e
Objeto e
Objeto e
Bus de distribución de eventos p >
Creación de eventos
Creación de registro de receptor de eventos
Objeto e
Esta es una variante de los sistemas orientados a objetos y de abstracción de datos. El sistema también está compuesto por una gran cantidad de objetos, pero la interacción entre objetos no se lleva a cabo a través de llamadas a funciones o procedimientos que especifiquen explícitamente los objetos. En cambio, el sistema proporciona mecanismos para crear y publicar eventos, y los objetos generan eventos. Uno o más objetos se registran en el sistema para prestar atención al evento, desencadenando así el comportamiento correspondiente o generando nuevos eventos.
Ejemplo:
El ejemplo más famoso es el modelo GUI. El mouse, el teclado u otros dispositivos de entrada generan varios eventos, que activan ventanas, programas u otros objetos para generar nuevos eventos. , realizar procesamiento de datos u otras operaciones.
Ventajas:
Llamar funciones y procedimientos no requiere especificar objetos específicos, por lo que el sistema tiene buena flexibilidad y escalabilidad. Se pueden agregar nuevos componentes al sistema inmediatamente registrándose en la parte de manejo de eventos del sistema. Asimismo, los componentes antiguos se pueden eliminar fácilmente del sistema. Esta estructura debería utilizarse para sistemas con requisitos dinámicos particularmente altos, especialmente si es necesario ampliar el sistema en tiempo de ejecución.
Desventajas:
Debido a que la llamada a la función se realiza enviando un evento, el objeto que envía el evento no puede confirmar si un objeto maneja el evento, si el objeto esperado maneja el evento y si se obtuvieron los resultados esperados y no había forma de controlar la secuencia de eventos. La exactitud de la lógica y la sincronización del sistema debe garantizarse mediante una lógica de sincronización compleja y afirmaciones de condiciones previas y posteriores.
3. Sistema de niveles
Divide las funciones y componentes del sistema en diferentes niveles funcionales. En términos generales, los usuarios fuera del sistema solo pueden acceder a componentes y funciones de nivel superior, y solo se pueden realizar llamadas a funciones entre capas adyacentes.
La siguiente es la estructura jerárquica del sistema de procesamiento empresarial básico:
Capa de interfaz de usuario
Capa de lógica de transacciones
Capa central
Ejemplo:
Obviamente, el modelo de referencia OSI (Interconexión de sistemas abiertos) de ISO es el ejemplo más famoso de un modelo jerárquico. La interoperabilidad compleja se logra dividiendo las funciones y componentes del sistema abierto en siete capas, con interfaces claramente definidas (y a menudo demasiado complejas) entre las capas.
Ventajas:
El desarrollo y diseño del sistema se puede llevar a cabo paso a paso, comenzando desde las funciones simples en la parte inferior hasta desarrollar gradualmente las funciones abstractas complejas en la parte superior. nivel.
Flexibilidad y escalabilidad, dado que las capas adyacentes interactúan a través de interfaces claras, se pueden reemplazar y mejorar capas específicas, o incluso agregar otras nuevas.
Desventajas:
No todos los sistemas se pueden dividir en niveles claros.
Es muy difícil dividir una estructura jerárquica clara y lógicamente consistente (el fracaso de OSI y el éxito de TCP/IP ilustran este punto)
Una estructura de llamadas jerárquica estricta reducirá rendimiento del sistema.
4. Sistema de base de conocimientos
Se utiliza una estructura de datos central para representar el estado actual del sistema y un conjunto de componentes independientes operan en la base de datos central. Si los componentes son responsables de seleccionar y procesar datos centrales, el sistema es un modelo de base de datos tradicional; si la estructura de datos centrales conduce de forma independiente a una serie de acciones, el sistema puede verse como un modelo de pizarra.
Base de datos central (base de conocimientos)
Componente del cliente a
Componente del cliente b
Componente del cliente c
Ejemplo:
Una gran cantidad de aplicaciones de bases de datos tradicionales son en realidad ejemplos específicos de este sistema. En muchos sistemas de investigación, el modelo de pizarra basado en la base de conocimientos es en realidad el mismo sistema.
Ventajas:
La arquitectura centrada en datos puede representar naturalmente una gran cantidad de datos y lógica de procesamiento de transacciones, y es adecuada para expresar aplicaciones centradas en datos.
Desventajas:
Esta arquitectura solo puede representar completamente unas pocas aplicaciones simples de almacenamiento de bases de datos. En una gran cantidad de aplicaciones comerciales reales, las aplicaciones que completan el procesamiento de control principal y otra lógica deben expresarse en otras arquitecturas.
5. Explicar el sistema
Usuario
Si la lógica de la aplicación es muy compleja, como las diversas instrucciones de dibujo de AutoCAD, la forma en que el usuario El uso del sistema puede ser muy complicado, entonces un mejor sistema es proporcionar un conjunto de instrucciones (lenguaje) orientadas al dominio. El sistema interpretará este lenguaje y generará el comportamiento correspondiente. Los usuarios pueden usar esta instrucción (lenguaje) para completar operaciones complejas.
Lógica empresarial descrita en lenguaje de máquina virtual
Intérprete de máquina virtual
Instrucciones básicas para completar tareas operativas prácticas
Áreas problemáticas prácticas
p>Ejemplo:
Una gran cantidad de herramientas de desarrollo y herramientas de desarrollo secundarias incorporan esta idea: Microsoft usa Visual Basic para aplicaciones y los productos de AutoDesk ampliamente utilizados en sus productos en realidad proporcionan a los usuarios un dominio. -Lenguaje orientado y luego interpreta las instrucciones y secuencias de instrucciones que implementan este lenguaje. Esto amplía la funcionalidad del producto y facilita a los usuarios personalizar el sistema según sus propias necesidades.
Ventajas:
Buena escalabilidad, los usuarios pueden realizar un desarrollo secundario de sistemas de software.
Desventajas:
El desarrollo de software es complejo, especialmente el diseño de este conjunto de instrucciones es muy difícil.
¿Se puede utilizar un lenguaje maduro como base para el desarrollo secundario (como uno basado en Java)?