Realizar el diagrama de clases (UML) de una aplicación de control de llamadas realizadas en una centralita telefónica.
En la centralita se van registrando llamadas. Registrar una llamada consiste en contabilizar el número de llamadas realizadas así como el coste total de todas las llamadas realizadas.
La centralita mostrará por pantalla todas las llamadas según las vaya registrando.
Existen dos tipos de llamadas:
- Las llamadas locales que cuestan 15 céntimos el segundo.
- Y las llamadas provinciales que dependiendo de la franja horaria en la que se realicen cuestan: 20 céntimos en franja 1, 25 céntimos en franja 2 y 30 céntimos en franja 3, cada segundo. Todas las llamadas tienen como datos el número origen de la llamada, el número destino y su duración en segundos.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
@startuml class Centralita { - llamadasRealizadas: List<Llamada> + registrarLlamada(llamada: Llamada): void + mostrarLlamadas(): void + calcularTotalLlamadas(): int + calcularFacturacionTotal(): double } class Llamada { - numeroOrigen: String - numeroDestino: String - duracionSegundos: int + getNumeroOrigen(): String + setNumeroOrigen(numeroOrigen: String): void + getNumeroDestino(): String + setNumeroDestino(numeroDestino: String): void + getDuracionSegundos(): int + setDuracionSegundos(duracionSegundos: int): void + calcularCostoLlamada(): double } class LlamadaLocal { # calcularCostoLlamadaLocal(): double } class LlamadaProvincial { - franjaHoraria: int + getFranjaHoraria(): int + setFranjaHoraria(franjaHoraria: int): void # calcularCostoLlamadaProvincial(): double } Centralita "1" --> "0..*" Llamada : contiene Llamada <|-- LlamadaLocal Llamada <|-- LlamadaProvincial @enduml |