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
- Plant UML Download: El jar que transforma el texto de UML en un PNG con el diagrama
- Command line: Generar el diagrama dese la linea de comandos usando el jar anterior
- plantuml4idea: Plugin en IntelliJ
Modelo de datos
@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
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
}
DocumentoPdfFactory --> "*" DocumentoPdf AlmacenClave <- DocumentoPdf DocumentoPdf -> CampoFirma DocumentoPdf -> ResultadoFirma AlmacenClave <|-- AlmacenClaveFichero AlmacenClave <|-- AlmacenClaveDispositivo ResultadoFirma *-- DatosCertificado
Modelo de estados
[*] --> 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:
[*] --> 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
