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í.