Modelização de um elevador por meio de análise orientada a objetos e projeto [fechado]
o problema é o seguinte: desenha um conjunto básico de objectos/métodos a utilizar para simular um banco de elevadores. Quais são os objetos e seus atributos/métodos?
[1] para o bem da discussão, vamos suponha que o nosso edifício tem vinte andares; o andar inferior é o lobby, e o segundo andar liga-se ao Parque de estacionamento (portanto, as pessoas vão entrar/sair do edifício no andar inferior ou no segundo andar). Há um banco de elevador que atende todos os andares; há três poços de elevador no banco de elevador, e um elevador por eixo. Qual seria a maneira correta de modelar isso em um modelo orientado a objetos?7 answers
A programação será do tipo:
- Se estiver disponível, escolha um elevador de pé para isto. andar.
Senão, escolhe um elevador que se mova para este andar.
Senão, escolhe um elevador num outro andar.
Senão escolhe o elevador com a carga mais baixa.
- Manutenção: o elevador não reage a sinais externos (apenas aos seus próprios sinais).
O elevador está fixo num chão. Se receber uma chamada. E o elevador está naquele andar, as portas abrem-se. Se estiver noutro andar, move-se para dentro. sentido.
O elevador sobe. Sempre que chega a um andar, verifica se precisa de parar. Se assim for, pára e abre as portas. Ele espera por um certo tempo e fecha a porta (a menos que alguém se mova através deles. Em seguida, retira a palavra da lista de Pedidos e verifica se há outro pedido. Se assim for, o elevador começa a mover-se novamente. Senão, entra no estado.
Para baixo: para cima, mas para trás.
Existem sinais:
- Alarme. O elevador pára. E se estiver num andar, as portas abrem, a lista de Pedidos é limpa, os pedidos são transferidos de volta para o banco.
Porta aberta. Abre as portas se o elevador estiver no chão e não se mexer.
A porta fecha-se. Fecharam a porta se estiverem abertas.
Editar: Alguns elevadores não começam no fundo / no início. no caso de arranha-céus.
[[1]}Min_floor & max_floor são dois atributos adicionais para o elevador.Knuth (1997) "Information Structures", The Art of Computer Programming Vol. 1 páginas 302-308
Representação do controlador central (assumindo que existe um).
Representações dos elevadores
Representações das unidades de interface do elevador (estas podem ser diferentes de elevador para elevador). Obviamente também os botões de chamada em todos os andares, etc.
Representações das setas ou indicadores em cada andar (quase uma "vista" do modelo do elevador).
Representação de um ser humano e carga (pode ser importante para factoring em cargas máximas)
Representação do edifício (em alguns casos, como certos pisos podem ser bloqueados por vezes, etc.)
Ver:
Lu Luo, A UML Documentation for a Elevator System
Distributed Embedded Systems, Fall 2000
Ph.D. Project Report
Carneghie Mellon University
Resposta Detalhada:
Elevator
Floor/Location Identifier
Number of steps
Rotation speed
Daterange
InstallationDate
MaintainenceDate
Department Identifier
AllowedWeight
Detail / Description
Poison Ratio (Statistics)
Start
Stop
SetDirection
SetRotationSpeed
EmergencyStop = Stop + Alert
EmergencyAccidentSenser Handler
Cada botão de pressão resulta num pedido de elevador que tem de ser atendido. Cada um desses pedidos é rastreado em um lugar global
O número de elevadores no edifício será determinado pelo utilizador. O edifício conterá um número fixo de pisos. O número de passageiros que podem caber no elevador será corrigido. Os passageiros serão contados quando saírem do elevador. Piso de destino. O piso de destino será determinado usando um intervalo "aleatório" Poisson. Quando todos os passageiros do elevador chegarem aos pisos de destino, o elevador regressará ao átrio para recolher mais passageiros.