2. Primeramente crearemos las clases extraídas del enunciado del archivo:
http://eadsaia.uft.edu.ve/psm/file.php/3639/Ejercicio_Diagrama_de_Clases_Comercio.p
df
Cliente
+Código: string
+Nombre: string
+Apellido: string
+Dirección: string
+Teléfono: int
+Inclusión (): boolean
+Eliminación():
boolean
+Modificación(): void
+Consulta(): void
+Impresión():
boolean
Cliente personal
+Cédula: string
+N° de tarjeta de
crédito: int
Cliente empresarial
+RIF: string
+Límite de crédito:int
+Nombre: string
+teléfono de contacto:
int
+Beneficio de crédito:
boolean
+Monto acreditado: int
+ Impresión de monto
acreditado(): boolean
•La clase cliente es
una clase la cual
cliente personal y
cliente empresarial
heredarán sus
atributos y métodos.
3. Ahora procederemos a construir las clases relacionadas con los productos y su
facturación:
Marcas
+Nombre: string
+Incluir (): boolean
+Eliminar(): boolean
+Modificar(): void
Productos
+Código: string
+Nombre: string
+Precio: int
+Consultar(): void
+Imprimir(): boolean
Como podemos
observar, la clase
productos hereda la
clase marcas ya que
comparten varios
métodos y atributos
Factura
+Número:
unlimitednatural
+Fecha: int
+Impuesto: int
+Total: int
+Ingresar (): boolean
+Anular(): boolean
+Calcular total(): int
+Impimir(): boolean
Detalle factura
+Cantidad de
producto vendido:
unlimitednatural
+Subtotal: int
+Clacular subtotal
vendido() : int
La clase detalle
factura tiene una
relación de
composición con la
clase factura de
modo que un
objeto se construye
a partir del otro.
4. Cliente
+Código: string
+Nombre: string
+Apellido: string
+Dirección: string
+Teléfono: int
+Inclusión (): boolean
+Eliminación():
boolean
+Modificación(): void
+Consulta(): void
+Impresión():
boolean
Cliente personal
+Cédula: string
+N° de tarjeta de
crédito: int
Cliente empresarial
+RIF: string
+Límite de crédito:int
+Nombre: string
+teléfono de contacto:
int
+Beneficio de crédito:
boolean
+Monto acreditado: int
+ Impresión de monto
acreditado(): boolean
Productos
+Código: string
+Nombre: string
+Precio: int
+Consultar(): void
+Imprimir(): boolean
Marcas
+Nombre: string
+Incluir (): boolean
+Eliminar(): boolean
+Modificar(): void
Factura
+Número:
unlimitednatural
+Fecha: int
+Impuesto: int
+Total: int
+Ingresar (): boolean
+Anular(): boolean
+Calcular total(): int
+Impimir(): boolean Detalle factura
+Cantidad de
producto vendido:
unlimitednatural
+Subtotal: int
+Clacular subtotal
vendido() : int
5. A continuación se plantea el diagrama de estado del ejercicio localizado en:
http://eadsaia.uft.edu.ve/psm/file.php/3639/Ejercicio_Diagrama_de_Estados_Ascensor.pdf
En primer piso
Subir()
Bajar ()
El ascensor empieza en el
primer piso, puede subir o
bajar.
6. En primer piso
Subir()
Bajar ()
Subiendo
Bajando
Cambiando de
piso()
Cambiando de
piso()
Subir (piso)
Bajar
(piso)
Parado
Subir
(piso)
Bajar (piso)
Final trayecto
Final
trayecto
Aquí podemos ver los diferentes estados a los que puede llegar
el ascensor después de estar en el primer piso:
7. En primer piso
Subir()
Bajar ()
Subiendo
Bajando
Cambiando de
piso()
Cambiando de
piso()
Subir (piso)
Bajar
(piso)
Parado
Subir
(piso)
Bajar (piso)
Final trayecto
Final
trayecto
Parado tiene un temporizador que obliga a que el ascensor
vuelva a su estado inicial después de un periodo determinado
a no ser que suba o baja, lo cual reinicia su temporizador al
volverse a parar.
Temp = 0
Temp ++
Subir ()
Bajar ()
[temporizador = tiempo-límite] ^ Self.Bajar (primerpiso)