Cómo diseñar sistemas de software (proceso de diseño de sistemas de software)
I. Hacer pleno uso de las herramientas UML
Diagramas de casos de uso
En la fase de análisis de requisitos, se utiliza 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 tiempos ( para Tiempo)
Combinaciones de fragmentos de uso común: Opt, Loop, Parallel, Alt,
Diagrama de tiempos
Diagrama de tiempos
Diagrama de interacción - Diagrama de colaboración (centrado en objetos)
Diagrama de colaboración
Diagrama de comportamiento - diagrama de estados (centrado en estados)
Diagrama de estados
Diagrama de comportamiento - Diagrama de actividad (centrado en la actividad)
Diagrama de tiempos
Diagrama de tiempos
De), Mediador, Visitante, Intérprete.
Principios de diseño distribuido
Alta disponibilidad
Degradación, restricción de tráfico (Leaky Bucket-Smooth, Token Bucket-Burstable, Ring-Queue Sliding Window), corte de tráfico, disyuntor, reflujo, ajustable, tiempo de espera, aislamiento (subprocesos, lectura y escritura, recursos, puntos de acceso, rastreadores), equilibrio de carga.
Alta concurrencia
Sin estado, división, servitización, colas, heterogeneidad de datos (heterogéneo--atomización--agregación--almacenamiento en caché), almacenamiento en caché, concurrencia (futuro, devolución de llamada, futuro completable) , piscina.
Diseño de negocio
Anti-redundancia, idempotencia, motor de reglas, máquina de estados, auditoría y aprobación.
Teoría de la distribución
CAP: coherencia, disponibilidad, tolerancia a fallos de partición (elija dos de tres);
BASE: disponibilidad básica, estado suave, coherencia eventual;
ÁCIDO: Atomicidad, consistencia, aislamiento, durabilidad.
Principio de coherencia
Protocolo XA: prepare-gt; compromiso (tiene deficiencias como bloqueo, singularidad de coordinador y cerebro dividido
Protocolo XA de tres fases); : preguntar-gt; preparar-gt; enviar;
TCC: intentar-gt; desbloquear-gt; confirmar/liberar; compensación, revisión periódica, información confiable, consistencia de caché.
Procesamiento del tiempo de espera
Principio: quien se agote el tiempo de espera lo manejará, es decir, si la llamada de la interfaz se agota, consulta la compensación si la llamada de la interfaz es exitosa, el tiempo de espera del servicio interno de; la interfaz debe compensarse por sí sola.
Interfaz de sincronización de dos estados (OK/ERR): tiempo de espera de llamada de la interfaz, compensación de consulta de la persona que llama; tiempo de espera del servicio interno de la interfaz, corrección rápida de fallas internas;
Interfaz de sincronización de tres estados (OK/ERR): /ERR) ING/ERR): La llamada de la interfaz se agota y la persona que llama consulta y compensa el tiempo de espera del servicio interno de la interfaz, y la consulta interna y la compensación se devuelven hasta que la persona que llama sondea con éxito;
Interfaz de sincronización de tres estados (OK/ING/ERR): cuando se agota el tiempo de espera de la llamada de la interfaz, la persona que llama solicita una compensación; cuando se agota el tiempo de espera del servicio interno de la interfaz, se devuelve el sondeo de la persona que llama que procesó con éxito la compensación de la consulta interna; p>
Interfaz asincrónica: cuando se agota el tiempo de espera de la llamada de la interfaz, la persona que llama solicita una compensación; cuando se agota el tiempo de espera del servicio interno de la interfaz, la compensación de la consulta interna es exitosa, notificación de devolución de llamada, tiempo de espera de notificación de devolución de llamada de la interfaz, devolución de llamada de compensación exponencial;
Cola de mensajes: el tiempo de espera de envío del productor, el envío duradero y confiable está vacío; el tiempo de espera del consumo del consumidor se completa y el procesamiento del mensaje aumenta.
Caché
Porciones de caché: porciones de cliente (redic), porciones de proxy, porciones de clúster (hash consistente);
Penetración de caché: valores nulos de caché, clave válida juicio;
Concurrencia de caché: bloqueos distribuidos, bloqueos locales, vencimiento suave (caducidad del negocio);
Avalancha de caché: invalidación escalonada.
En tercer lugar, dibuje un buen diagrama de arquitectura
41 vistas
Vista de escenario: relación entre actores y casos de uso funcionales, representación del diagrama de casos de uso;
Vista lógica: límites y relaciones de los componentes después del desmontaje funcional, diagrama de componentes y representación del diagrama de clases;
Vista física: mapeo de relaciones entre software y hardware, representación del diagrama de implementación;
Físico vista: mapeo de relaciones entre software y hardware, representación del diagrama de implementación;
p>
Diagrama de flujo de procesamiento: proceso de componentes e interacción de datos, diagrama de secuencia y representación del diagrama de flujo;
Desarrollo vista: división de módulos y composición de paquetes, representación de diagrama de paquetes.
Vista C4
Diagrama de contexto: ordene los usuarios y las dependencias de alto nivel del sistema que se va a construir y dibuje su propio sistema en el centro, rodeado de usuarios que interactúan con otros. sistemas.
Diagrama de contexto C4
Diagrama de contenedor: expanda el diagrama de contexto del sistema que se va a construir y representelo como un diagrama de bloques, que puede incluir nombres, opciones de tecnología, responsabilidades e interacciones. entre diagramas de bloques y aclarar los límites del sistema externo.
Diagrama de contenedor C4
Diagrama de componentes: expanda el contenedor y describa la composición y relación de los componentes internos del módulo.
Diagrama de componentes C4
Diagrama de clases: Es igual que el diagrama estático UML y no se ampliará aquí.