1 / 6

Modelos dinâmicos OMT Exercício do elevador

Modelos dinâmicos OMT Exercício do elevador. Gabriel David FEUP - Rua dos Bragas, 4099 Porto Codex - PORTUGAL Tel. 351-2-2041842 - Fax: 351-2-319280. Email: gtd@fe.up.pt URL: http://www.fe.up.pt. Especificação.

flower
Télécharger la présentation

Modelos dinâmicos OMT Exercício do elevador

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Modelos dinâmicos OMT Exercício do elevador Gabriel David FEUP - Rua dos Bragas, 4099 Porto Codex - PORTUGAL Tel. 351-2-2041842 - Fax: 351-2-319280 Email: gtd@fe.up.pt URL: http://www.fe.up.pt

  2. Especificação • Objectivo: elaborar um modelo dinâmico que descreva o funcionamento de um elevador. • Pretende-se um diagrama de estados para a classe Elevador cujo diagrama de objectos está na figura. • O elevador tem comandos para descer e para subir, em cada andar excepto nos terminais, onde só tem um. • Tem memorização dos destinos dos vários passageiros numa viagem e das chamadas para um andar • Considera-se que não há porta interior, mas apenas portas manuais nos andares • Em descanso, a luz apaga ao fim de algum tempo

  3. Elevador actual: integer pedidosSubir: set of integer pedidosDescer: set of integer destinos: set of integer actualiza(andar: integer) limpaPedidosDestinos() apagaLuz() acendeLuz() Eventos abrePorta fechaPorta atinge( andar ) botãoPremido( tipo, andar ) topo fundo Diagrama de classe

  4. Diagrama de estados atinge(andar)[andar  pedidosSubir  destinos  {termo}]/actualiza(andar) Descanso botãoPremido(tipo,andar) [actual<andar] ASubir entry/apagaLuz exit/ligaLuz tempoEsgotado[botões  actual=termo]/põeTermo(sobe) atinge(andar)[andar  pedidosSubir  destinos  {termo}]/actualiza(andar), iniciaTempo, limpa(subir, andar) tempoEsgotado[botões=] tempoEsgotado [actual < termo] botãoPremido(tipo,andar) [actual>andar] Parado PáraDescida PáraSubida tempoEsgotado [actual > termo] abrePorta fechaPorta/anulaTempo fechaPorta/anulaTempo PortaAbertaD atinge(andar)[andar  pedidosDescer  destinos  {termo}]/actualiza(andar), iniciaTempo, limpa(descer, andar) PortaAbertaS abrePorta tempoEsgotado[botões  actual=termo]/põeTermo(desce) ADescer atinge(andar)[andar  pedidosDescer  destinos  {termo}]/actualiza(andar)

  5. Notas ao diagrama • Difícil o equilíbrio entre valores em atributos e número de estados • notem a ausência de atributo direcção e dois conjuntos de estados, um para subir e outro para descer • a actualização do atributo termo tem que respeitar as condições de ser sempre o máximo (mínimo) dos botões premidos durante a subida (descida), não podendo ultrapassar o extremo • “truque” - evento fechaPorta põe a zero o atraso para forçar indirectamente o evento fimDeEspera • existe um super-estado com uma transição • robustez (tolerância a falhas) • incluir eventos a assinalar os extremos e a fazer transições para os estados de paragem opostos, com as respectivas limpezas de dados • introduz redundância, pois não existe nenhuma sequência de eventos válida que pudesse levar à tentativa de ultrapassar um extremo

  6. Redução de estados atinge(andar)[andar  paragens(direcção)  {termo}]/actualiza(andar) Descanso botãoPremido/põeTermo Mover tempoEsgotado[botões  actual=termo]/inverte,põeTermo tempoEsgotado [botões=] tempoEsgotado [actual termo] atinge(andar)[andar  paragens(direcção)  {termo}]/actualiza(andar), iniciaTempo, limpa(andar) fechaPorta/anulaTempo Parado PortaAberta abrePorta

More Related