Red de conocimiento informático - Conocimiento informático - Cómo diseñar sistemas de software

Cómo diseñar sistemas de software

1. Haga un buen uso de las herramientas UML.

Los diagramas de casos de uso

se utilizan en la etapa de análisis de requisitos para describir las funciones del sistema desde la perspectiva del usuario.

Diagrama de casos de uso

Diagrama estático: diagrama de clases, diagrama de objetos, diagrama de paquetes

Diagrama estático

Diagrama de interacción - diagrama de secuencia ( preste atención al tiempo)

Fragmentos combinados de uso común: Opción (Opt), Bucle (Loop), Paralelo (Par), Elección (Alt), Interrupción (Break)

Secuencia de tiempo diagrama

Diagrama de interacción-diagrama de colaboración (centrándose en los objetos)

Diagrama de colaboración

Diagrama de comportamiento-gráfico de estado (centrándose en el estado)

Gráfico de estado

Diagrama de comportamiento-diagrama de actividad (enfoque en actividades)

Diagrama de actividad

Diagrama de implementación-diagrama de componentes

Diagrama de componentes

Figura de implementación - Diagrama de implementación

Diagrama de implementación

2. Cumplir con los principios de diseño

Conceptos básicos de los patrones de diseño

Responsabilidad única: una clase solo es responsable de una función;

Transformación de riesgo: los métodos de la clase principal no deben reescribirse ni sobrecargarse en la subclase, y la subclase debe poder reemplazar a la clase principal.

Aislamiento de interfaz: sin dependencias, sin interfaces requeridas, interfaces grandes divididas;

Ley de Dimit: un objeto debe mantener el mínimo conocimiento sobre otros objetos (bajo acoplamiento);

Abierto y cerrado: abierto a extensión, cerrado para modificación;

Inversión de dependencia: las abstracciones no deben depender de los detalles, los detalles deben depender de las abstracciones, es decir, programación para interfaces, todas las dependencias terminan en clases o interfaces abstractas, no programe implementaciones.

Patrón de diseño

Tipo de creatividad

Método Factory, Abstract Factory, Builder, Singleton, Prototipo.

Estructural

Compuesto, Proxy, Fachada, Adaptador, Decorador, Puente, Contrapeso).

Comportamiento

Estrategia, Método de plantilla (Templo

Método), Observador, Estado, Recuerdo, Iterador, Comando, Cadena de responsabilidad, Mediador, Visitante, Intérprete .

Principios de diseño distribuido

Alta disponibilidad

Degradación, limitación de corriente (cubo con fugas - suave, cubo simbólico - explotable, cola de anillo + ventana deslizante), corte de flujo , disyuntor, reflujo, reflujo, tiempo de espera, aislamiento (hilos, lectura y escritura, recursos, puntos de acceso, rastreadores), equilibrio de carga.

Alta concurrencia

Sin estado, división, servitización, cola, heterogeneidad de datos (heterogéneo -> atomización -> agregación -> caché), caché, concurrencia (futuro, devolución de llamada, futuro completable) , agrupación.

Diseño empresarial

Antiduplicación, idempotencia, motor de reglas, máquina de estados, auditoría y aprobación.

Teoría de la distribución

CAP: consistencia, disponibilidad, tolerancia de partición (elija dos de tres);

BASE: básicamente disponible, estado suave, eventualmente consistente

p>

ÁCIDO: atomicidad, consistencia, aislamiento, durabilidad.

Principio de coherencia

Protocolo XA: preparación -> presentación (tiene deficiencias como bloqueo, coordinador de punto único, cerebro dividido, etc.

XA tres); -protocolo de segmento: Consulta -> Preparar -> Enviar

TCC: probar -> confirmar / intentar -> cancelar bloqueo -> confirmar / liberar

Consistencia final: consulta, compensación; , intercalación periódica, mensajería confiable, consistencia de caché.

Procesamiento del tiempo de espera

Principio: quien se agote el tiempo de espera lo manejará, es decir, el tiempo de espera de la llamada de la interfaz, consulta + compensación después de que la llamada de la interfaz sea exitosa, el tiempo de espera del servicio interno de la interfaz; debe ser compensado por sí mismo.

Interfaz de sincronización de dos estados (OK/ERR): tiempo de espera de llamada de la interfaz, consulta de la persona que llama + compensación; tiempo de espera del servicio interno de la interfaz, falla rápida interna + corrección

Interfaz de sincronización de tres estados; (OK/ING/ERR): la llamada de la interfaz se agota, la persona que llama consulta + compensación; el servicio interno de la interfaz caduca, vuelve al procesamiento, la consulta interna + compensación es exitosa, la persona que llama sondea;

Interfaz asincrónica: tiempo de espera de llamada de interfaz, consulta de llamada + compensación; tiempo de espera de servicio interno de interfaz, consulta interna + compensación hasta que sea exitoso, notificación de devolución de llamada; tiempo de espera de notificación de devolución de llamada de interfaz, devolución de llamada de compensación de índice;

Cola de mensajes: envío del productor; tiempo de espera, persistencia Envío confiable + consumo idempotente; el consumo del consumidor expira y el desplazamiento aumenta después de que se procesa el mensaje.

Caché

Fragmentación de caché: fragmentación de cliente (redic), fragmentación de proxy, fragmentación de clúster (Hash consistente);

Penetración de caché: valor nulo de caché, clave válida juicio;

Concurrencia de caché: bloqueo distribuido, bloqueo local, vencimiento suave (caducidad del negocio);

Avalancha de caché: falla escalonada en picos.

3. Dibuje un buen diagrama de arquitectura

Vista 4+1

Vista de escenario: la relación entre los participantes y los casos de uso funcionales, representada por diagramas de casos de uso;

Vista lógica: límites y relaciones de los componentes después del desmontaje funcional, representados por diagramas de componentes y diagramas de clases;

Vista física: relaciones de mapeo de software y hardware, representadas por diagramas de implementación;

Diagrama de flujo de procesamiento: cada componente, proceso e interacción de datos, representado por diagramas de secuencia y diagramas de flujo;

Vista de desarrollo: división de módulos y composición de paquetes, representada por diagramas de paquetes.

Vista C4

Diagrama de contexto: clasifique los usuarios y las dependencias de alto nivel del sistema que se va a construir y dibuje su propio sistema en el medio, rodeado de usuarios y otros interactivos. sistemas.

Diagrama de Contexto C4

Diagrama de Contenedor: Expande el diagrama de contexto del sistema a construir, representado por un diagrama de bloques, que puede incluir el nombre, selección de tecnología, responsabilidades, interacciones entre diagramas de bloques y aclarar los límites del sistema externo.

Diagrama de contenedor C4

Diagrama de componentes: expanda un contenedor y describa la composición y las relaciones de sus componentes de módulo interno.

Diagrama de componentes C4

Diagrama de clases: igual que el diagrama estático UML, no se ampliará aquí.