Herramientas de usuario

Herramientas del sitio


clase:daw:proyecto:1eval:tema05

Tabla de Contenidos

5. Modelado de la aplicación

Usar UML para modelar la aplicación.

La mejor herramienta es PlantUML

Modelo de datos

Pedido, LineaPedido y ClientePedido, LineaPedido y ClienteClienteidnombremailPedidoidfechatotalfecha>=Hoytotal>0ReglasLineaPedidocantidad : BigDecimalprecioUnitario : BigDecimalsubtotal : BigDecimalsubtotal=cantidad * precioUnitariocantidad>0precioUnitario>0Reglas10..*11..*

@startuml
title Pedido, LineaPedido y Cliente

class Cliente {
  id
  nombre
  mail
}

class Pedido {
  id
  fecha
  total
  -- Reglas --
  fecha>=Hoy
  total>0
}

class LineaPedido {
  cantidad : BigDecimal
  precioUnitario : BigDecimal
  subtotal : BigDecimal
  -- Reglas --
  subtotal=cantidad * precioUnitario
  cantidad>0
  precioUnitario>0
}

Cliente "1" -- "0..*" Pedido
Pedido "1" -- "1..*" LineaPedido

@enduml

EntornoCriptograficoEntornoCriptograficoConfigDispositivoCriptograficoPrivateKey getPrivateKey(Alias)Certificate[] getCertificateChain(Alias)List<Alias> getAliases()DispositivoCriptograficoConfigpkcs11LibraryPathslotpinAlmacenCertificadosConfiablestrustedKeyStoreAlmacenCertificadosConfiablesConfigInputStreampassword**

EntornoCriptografico ..> EntornoCriptograficoConfig
DispositivoCriptografico ..> DispositivoCriptograficoConfig
AlmacenCertificadosConfiables ..> AlmacenCertificadosConfiablesConfig

EntornoCriptografico *-left-  AlmacenCertificadosConfiables
EntornoCriptografico *-right- "*" DispositivoCriptografico

EntornoCriptograficoConfig *-left-  AlmacenCertificadosConfiablesConfig
EntornoCriptograficoConfig *-right- "*" DispositivoCriptograficoConfig




class AlmacenCertificadosConfiables {
    trustedKeyStore
}

class DispositivoCriptografico {
    PrivateKey getPrivateKey(Alias)
    Certificate[] getCertificateChain(Alias)
    List<Alias> getAliases()
}

class DispositivoCriptograficoConfig {
    pkcs11LibraryPath
    slot
    pin
}

class AlmacenCertificadosConfiablesConfig {
    InputStream
    password
}

DocumentoPdfFactoryDocumentoPdfAlmacenClaveCampoFirmaResultadoFirmaAlmacenClaveFicheroAlmacenClaveDispositivoDatosCertificado*

DocumentoPdfFactory --> "*" DocumentoPdf

 AlmacenClave <- DocumentoPdf
DocumentoPdf -> CampoFirma
DocumentoPdf -> ResultadoFirma
AlmacenClave <|-- AlmacenClaveFichero
AlmacenClave <|-- AlmacenClaveDispositivo

ResultadoFirma *-- DatosCertificado

Modelo de estados

ENTRADA_DATOSPENDIENTE_PRESENTACIONPENDIENTE_RESOLUCIONACEPTADORECHAZADODELETEGUARDAR_DATOSBACKPRESENTARRESOLVER[tipoResolucion=SUBSANAR_DATOS]RESOLVER[tipoResolucion=ACEPTAR]RESOLVER[tipoResolucion=RECHAZAR]

[*] --> ENTRADA_DATOS
ENTRADA_DATOS -> [*] : DELETE
ENTRADA_DATOS --> PENDIENTE_PRESENTACION : GUARDAR_DATOS
PENDIENTE_PRESENTACION --> ENTRADA_DATOS : BACK
PENDIENTE_PRESENTACION --> PENDIENTE_RESOLUCION : PRESENTAR
PENDIENTE_RESOLUCION --> ENTRADA_DATOS : RESOLVER[tipoResolucion=SUBSANAR_DATOS]
PENDIENTE_RESOLUCION --> ACEPTADO : RESOLVER[tipoResolucion=ACEPTAR]
PENDIENTE_RESOLUCION --> RECHAZADO : RESOLVER[tipoResolucion=RECHAZAR]

  • Ejemplo de navegación entre páginas:

LoginHomePerfilbotón "Entrar"(credenciales correctas)link "Salir"botón "Entrar"(credenciales incorrectas)link "Perfil"link "Home"

[*] --> Login



Login --> Home : botón "Entrar"\n(credenciales correctas)
Login --> Login : botón "Entrar"\n(credenciales incorrectas)



Home --> Perfil : link "Perfil"
Home --> Login : link "Salir"



Perfil --> Home : link "Home"

clase/daw/proyecto/1eval/tema05.txt · Última modificación: por 127.0.0.1