eBook - Microcontrolador 8051- Detalhado

Share Embed Donate


Short Description

Apostila sobre Orientação aos Objetos...

Description

Universidade Estadual de Campinas UNICAMP

Centro de Computação

Guia sobre Orientação a Objetos

 Eliel Gonçalves [email protected]

[GuiaOrientaçãoObjetos:V1.0:01/05/2007:DDS:CNARQ] DIRETORIA DE DESENVOLVIMENTO DE SOFTWARE ↸ Rua Saturnino de Brito, n° 45 – Cidade Universitária Zeferino Zeferino Vaz – Barão Geraldo – Campinas – SP  (0XX19)  (0XX19) 3521.2283 3521.2283 -  3289.2577 -  13084-971 -  6132

Universidade Estadual de Campinas UNICAMP

Centro de Computação

1. Introdução O que é orientado a objeto ? •

• •

O software é organizado como uma coleção de objetos separados que incorporam a estrutura e o comportamento de dados. Enfoque diferente do convencional. Características: identidade, classificação, polimorfismo e herança.

Identidade •



Os dados são divididos em entidades discretas e distintas denominadas objetos. Cada objeto tem sua própria identidade, mesmo que possuam o mesmo conjunto de atributos. Exemplos: um parágrafo de um documento, uma janela no monitor de vídeo, uma bicicleta.

Classificação •

• • • •





Objetos com a mesma estrutura de dados (atributos) e o mesmo comportamento (operações) são agrupados, ou classificados, em uma classe. Qualquer escolha de classe é arbitrária e depende da aplicação. Cada classe descreve um conjunto de objetos individuais. Cada objeto é uma instância de uma classe. Cada instância de classe tem o seu próprio valor para cada atributo, mas compartilha os nomes de atributos e operações com outras instâncias da mesma classe. Exemplo - classe “Bicicleta” Atributos: tamanho do quadro, tamanho da roda, engrenagem, material Operações: mudar a marcha, mover, consertar Exemplo - Classe “Polígono” Atributos: número de vértices, cor da borda, cor de preenchimento Operações: desenhar, apagar, mover

Polimorfismo •

Polimorfismo significa que a mesma operação pode atuar de modos diversos em classes



diferentes. Em outras palavras: diferentes objetos respondem de maneira diferente à mesma mensagem. Método: uma implementação específica de uma operação por uma determinada classe.

2

Universidade Estadual de Campinas UNICAMP

Centro de Computação



Exemplo: operações “Mover” e “Desenhar”. “Mover” pode ter um código diferente para

cada classe “Janela” e “PeçadeXadrez”. “Desenhar” pode ter um código diferente para cada classe “Quadrado” e “Elipse.”

Herança •

Herança é o compartilhamento de atributos e operações entre classes com base em um



relacionamento hierárquico. Uma subclasse herda todas as características de sua superclasse e acrescenta suas características exclusivas. Semelhança em outros contextos (fatorar, colocar em evidência): 3x2 + 6x + 9 = 3(x2 + 2x + 3)



Vantagem: reduz repetições.

O que é desenvolvimento desenvolvimento orientado a objeto? • •





Um modo de tratar o software com base em abstrações do mundo real. Desenvolvimento refere-se a parte inicial do ciclo de vida: análise-projeto e implementação. Essência do desenvolvimento orientado a objeto: identificação e organização dos conceitos do domínio da aplicação, em vez de sua representação definitiva em uma linguagem de programação. Objetivo no curso: análise.

Conceitos em modelagem, não em implementação •



Vantagem real da orientação a objetos: enfoque em problemas conceituais, não em implementação (erros nas etapas iniciais são mais caros). Uma nova maneira de pensar (usar os conceitos do domínio da aplicação) e não uma técnica de programação (conceitos de implementação).

Metodologia baseada em objetos A metodologia TMO (Técnica de Modelagem de Objetos) propõe as seguintes etapas: •

Análise - Construir um modelo da situação do mundo real. O modelo é uma abstração do que o sistema deve fazer (e não como deve ser feito). Exemplo: em um sistema de

 janelas, a classe “Janela” deve ser descrita em termos dos atributos e operações visíveis ao usuário. 3

Universidade Estadual de Campinas UNICAMP

Centro de Computação







Projeto do sistema - Tomar decisões de alto nível relativamente à arquitetura geral. Exemplo: decidir que as modificações de tela devem ser rápidas e suaves mesmo quando

as janelas forem movimentadas ou apagadas. Projeto de objetos  - Construir um modelo de projeto baseado no modelo de análise, mas contendo detalhes de implementação. Exemplo: as operações da classe Janela são especificadas em termos do hardware ou sistema operacional existente. Implementação - Traduzir as classes e os relacionamentos em uma linguagem de programação, em um banco de dados ou em hardware. Exemplo: codificar a classe  Janela com emprego de chamadas ao sistema de gráficos.

Três modelos A metodologia TMO propõe três modelos para descrever um sistema. Pela ordem, os modelos descrevem o que está mudando, quando e como ocorrem as modificações: •

Modelo de Objeto : descreve os objetos e seus relacionamentos através do Diagrama de

Objetos. •

Modelo Dinâmico: descreve os aspectos que se modificam com o tempo através do

Diagrama de Estados. •

Modelo Funcional: descreve as transformações dos valores dos dados através do

Diagrama de Fluxo de Dados.

Diferenças em relação à metodologia funcional •

Metodologia funcional: ênfase na especificação e decomposição da funcionalidade do

sistema. Pode parecer mais direto, mas o sistema resultante é frágil. •

Metodologia orientada a objeto : ênfase na identificação de objetos e depois nos

procedimentos relativos a eles. Mantém-se mais estável na medida em que os requisitos evoluem, pois apoia-se na estrutura fundamental da aplicação.

4

Universidade Estadual de Campinas UNICAMP

Centro de Computação

2 - A modelagem como técnica de projeto •

Modelos são abstrações construídas para que um problema seja compreendido antes da implementação da solução.



Exemplos de modelos: desenho de peças de máquinas, rascunho de anúncios, peças de vestuário.

Objetivos da construção de modelos • • • •

Testar uma entidade física antes de dar uma forma (são mais baratos) Comunicação com clientes (imitam uma parte do produto final) Visualização (permitem introduzir modificações antes de ter o produto final) Redução da complexidade (a mente humana só consegue tratar uma quantidade limitada de informações)

“Um modelo de objetos, mesmo que seja simplificado, pode ser comparado com o mundo real ou com a aplicação desejada, criticado e melhorado.”

5

Universidade Estadual de Campinas UNICAMP

Centro de Computação

3 - A modelagem de objetos Elementos do modelo de objetos: classes, instâncias de classe, relacionamentos, atributos e operações.

Objetos e classes Objeto •

Objeto: alguma coisa que faz sentido no contexto de uma aplicação; um conceito, uma



abstração, algo com limites nítidos e significado em relação a um problema. Exemplos: “João”, “Companhia ABC”, “processo 7648”, “janela de mais alto nível”. Por razões de precisão, diz-se que “objeto” é uma “instância de uma classe”.



Classe •

• •



Uma classe de objetos descreve um grupo de objetos com propriedades semelhantes (atributos), o mesmo comportamento (operações), os mesmos relacionamentos com outros objetos e a mesma semântica. Exemplos: “Pessoa”, “Empresa”, “Animal”, “Processo”, “Janela”. Importância da “classe”: as definições comuns são armazenadas somente uma vez em uma classe, ao invés de serem armazenadas nas instâncias de classes. Exemplo: classe “Elipse” com as operações “Desenhar”, “Calcular área” e “Testar intersecções com uma reta”. Todas as elipses compartilham os mesmos procedimentos definidos na classe “Elipse”.

Diagrama de objetos • •

O diagrama de objetos é uma notação gráfica formal para a modelagem de objetos. Dois tipos de diagramas: de classes e de instâncias.

Diagrama de classes •



Descreve classes de objetos. Corresponde a um conjunto infinito de diagramas de instâncias. Descrevem o quadro geral de modelagem de um sistema. Notação: retângulo com o nome da classe.

Diagrama de instâncias 6

Universidade Estadual de Campinas UNICAMP

Centro de Computação







Descreve como as instâncias de classe de um determinado conjunto se relacionam entre si. São úteis para esclarecer e principalmente testar um diagrama de classes complexo. Notação: retângulo com bordas arredondadas. O nome da classe é escrito entre parênteses e, logo abaixo, o nome da instância. Exemplo. Classe “Pessoa”; Objetos (instância de classe): “Maria”, “Pedro”, “Ana”.

(Pessoa) Maria

Pessoa

(Pessoa) Pedro

(Pessoa)

Classe (retângulo) e instâncias de classe (retângulo de borda arredondada)

Atributos • •







Atributo: valor de dados guardado pelas instâncias de classe. Exemplos: “nome”, “idade” e “peso” são atributos da classe “Pessoa”.

“Cor”, “peso”, “ano”, “modelo” são atributos da classe “Carro”. Cada atributo possui um valor para cada instância de objeto. Exemplo: atributo com valor “25” no objeto “Maria”. O atributo deve ser um valor puro. Notação: os atributos devem ser mostrados na segunda parte da caixa de classe. Dependendo do nível de detalhe desejado, pode ser definido o tipo de dados e valor default. Exemplo

Pessoa nome: string

(Pessoa) Maria

(Pessoa) Pedro

25

52

idade: inteiro

Classe com atributos e instâncias de classe com valores. •

Como cada objeto tem a sua própria identidade, não há necessidade de colocar um atributo “Código” (que é um recurso computacional).

Operações e métodos •

Operação: função ou transformação que pode ser aplicada a objetos ou por estes a uma

classe. Todas as instâncias de classe compartilham as mesmas operações. 7

Universidade Estadual de Campinas UNICAMP

Centro de Computação

• • •









• •



Exemplo: Classe “Empresa”. Operações: “Contratar”, “Despedir”, “Pagar-dividendo”. Exemplo: Classe “Janela”. Operações: “Abrir”, “Fechar”, “Ocultar”, “Reexibir”.

Cada operação tem um objeto-alvo. Um objeto “sabe” a qual classe pertence e a correta implementação dessa operação. Operação polimórfica: a mesma operação quando se aplica a classes diferentes. Método: implementação de uma operação para uma classe. Exemplo: classe “Arquivo”, operação “Imprimir”. Um método pode ser implementado para imprimir arquivo ASCII e outro para imprimir arquivo binário. A tarefa lógica é a mesma: imprimir. Cada método pode ser implementado por um diferente trecho de código. Uma operação pode ter argumentos. Estes servem como parâmetros e não afetam a escolha do método. É preferível evitar o mesmo nome para operações semanticamente diferentes. Exemplo: Inverter uma matriz e inverter (colocar de cabeça para baixo) uma figura geométrica. Notação: as operações devem ser colocadas na parte inferior da caixa de classe. Cada operação pode ser seguida da lista de argumentos e o tipo do resultado. Os argumentos são escritos entre parênteses e separados por vírgula. O resultado deve ser precedido de “dois pontos”. Se for omitido, indica que a operação não retorna valor. Exemplo: classes “Pessoa”, “Arquivo” e “Objeto Geométrico”. Pessoa

Arquivo nome

nome idade

tamanho

mudar cargo mudar-endereço

última atualização imprimir

Objeto geométrico cor posição mover (delta:Vetor) selecionar (p:Ponto): Boolean girar (ângulo)

Classes “Pessoa”, “Arquivo” e “Objeto geométrico”. •





Classe “Pessoa”. Os atributos são “nome”, “idade”. As operações são “mudar-cargo” e “mudar-endereço”. Classe “Arquivo”. Os atributos são “nome”, “tamanho”, ”última atualização”. A operação é “imprimir”. Classe “Objeto geométrico”. Os atributos são “cor” , ”posição”. As operações são “mover” (com argumento “delta”, que é vetor), “selecionar” (com argumento “p”, que é ponto e retorna um valor booleano) e “girar” (com argumento “ângulo”)

Ligações e associações 8

Universidade Estadual de Campinas UNICAMP

Centro de Computação



Ligações e associações: meios para estabelecer relacionamentos entre objetos.

Conceitos gerais •

• • •

• •



Ligação: uma conexão física ou conceitual entre instâncias de objetos. Uma ligação é

uma instância de associação. Exemplo: Maria trabalha para a empresa ABC. Notação: uma linha entre instâncias. Associação: um grupo de ligações com estrutura e significado comuns. Uma associação descreve um conjunto de potenciais ligações. Notação: a associação é representada como uma linha entre classes. O nome da associação pode ser omitido se o par de classes tiver uma única e óbvia associação. O nome costuma ser lido da esquerda para a direita (ordem direta). As associações podem ser “binárias” (as mais comuns), “ternárias” ou de ordem mais elevada. Exemplo. Associação entre as classes “País” e “Cidade” com ligações entre instâncias de ambas essas classes. País

Tem-capital 

nome

(País)

nome

Tem-capital 

Canadá

(País)

Senegal

Diagrama de classes

(Cidade) Ottawa

Tem-capital 

França

(País)

Cidade

(Cidade)

Diagrama de instâncias

Paris Tem-capital 

(Cidade) Dakar

 Associação e ligações. •

Exemplo. Em aplicações CAD, um problema comum é encontrar redes de conectividade.

Dada uma linha, encontrar todas as linhas que a cortam; dado um ponto de intersecção, encontrar todas as linhas que passam pelo ponto, etc. Considere as linhas L1, L2, L3, L4, L5 e os pontos de interseção P1 e P2. P1 é ponto de interseção de L1, L2 e L3; P2 é ponto de interseção de L3 e L4; L5 não tem interseções.

9

Universidade Estadual de Campinas UNICAMP

Centro de Computação

L2

P1

P2

L3 L5

L1

L4

 Linhas e pontos de interseção.

O diagrama de classes, por ser geral, deve mostrar que cada ponto pode ser interseção de duas ou mais linhas e cada linha pode ter zero ou mais pontos de interseção. A bolinha cheia e “2+” são símbolos de cardinalidade.

Linha 

Cruza

Ponto

2+ Nome

Nome

 Diagrama de classes

 Diagrama de instâncias

10

Universidade Estadual de Campinas UNICAMP

Centro de Computação

• •



Associação ternária: associação que envolve três objetos. Notação: o símbolo para associação ternária é um losango. O nome da associação,

quando necessário, deve ser escrito junto ao losango. Exemplo: Programadores de sistemas utilizam linguagens de programação nos seus projetos. Projeto

Linguagem

Diagrama de Classe

Pessoa

(Projeto)

(Linguagem)

Sistema Contábil

Cobol

(Pessoa) Diagrama de Instâncias

Maria

(Projeto) CAD

(LInguagem) C

 Diagrama de classe e diagrama de instâncias.

Cardinalidade •

Cardinalidade: número inteiro não negativo que especifica quantas instâncias de uma



classe relacionam-se a uma única instância de uma classe associada. Notação: escrever o valor numérico ou o símbolo nas extremidades das linhas de associação. 1 1+ 3-5 3,4,18

exatamente 1 um ou mais 3, 4 e 5 (seqüência) 3, 4 ou 18 (alternativas) muitos (zero ou mais) 11

Universidade Estadual de Campinas UNICAMP

Centro de Computação

linha sem símbolos

opcional (zero ou 1) exatamente 1

Símbolos de cardinalidade. Exemplos



Associação “Tem-capital”. Cardinalidade “um-para-um”: cada país tem uma capital; cada cidade é capital de um país. Associação “Cruza”. Cardinalidade “muitos” (ou “zero ou mais”): uma linha pode ter zero ou muitos pontos de interseção. Cardinalidade “dois ou mais”: um ponto de interseção pode estar associado a duas ou mais linhas.



Observação importante: a determinação da cardinalidade depende da aplicação. Por



exemplo, uma empresa contrata nenhum ou muitos empregados; um empregado é contratado por nenhuma ou uma empresa. Uma pessoa pode trabalhar para várias empresas, porém o segundo emprego pode ser considerado irrelevante.

Contrata 

Empresa

Empregado

 Associação com cardinalidade.

A importância das associações •

Durante a modelagem conceitual, não se deve colocar dentro de objetos ponteiros e outras referências como atributos e sim modelá-los como associações para indicar que a informação que contêm não é subordinada a uma única classe.

Conceitos avançados de ligações e associações Atributos de Ligação •

Atributo de ligação: propriedade das ligações de uma associação (semelhante a atributos



de objeto). Notação: um quadro ligado à associação por um laço.

12

Universidade Estadual de Campinas UNICAMP

Centro de Computação



Exemplo: “Permissão de acesso” é um atributo da ligação “Acessível por”, isto é, é

atributo da ligação existente entre instâncias da classe “Arquivo” e instâncias da classe “Usuário”.  Acessível por 

Arquivo

Usuário permissão de acesso

 /etc/termcap  /etc/termcap  /usr/doe/.login

(leitura) (leitura-escrita) (leitura-escrita)

João Maria João

 Atributos de ligação

O exemplo abaixo mostra que atributos de ligação conduzem a modelos mais flexíveis. Forma desaconselhável

Empresa Trabalha-para 

Nome Endereço

Pessoa Nome Endereço Salário Cargo

 Associação entre classes. Forma mais perene

Empresa

Trabalha-para 

Nome Endereço

Pessoa Nome Endereço

Salário Cargo  Associação entre classes e atributos de ligação. 13

Universidade Estadual de Campinas UNICAMP

Centro de Computação

A modelagem de uma associação como classe •



O quadro de atributos de uma associação pode ter um nome e operações, logo pode ser modelado como uma classe. Exemplo : Os usuários são autorizados a usar várias estações de trabalho. Cada autorização é acompanhada por uma prioridade e privilégios de acesso. Um usuário tem um diretório básico para cada estação autorizada, porém este diretório pode ser compartilhado por diversas estações e diversos usuários.

Usuário

 Autorizado

Estação de Trabalho

Usuário Prioridade Privilégios Iniciar sessão Diretório básico Diretório  Associação modelada como classe.

Nomes de papéis • •

Um papel (“role played ”) serve para identificar uma extremidade de uma associação. É um meio de percorrer as associações a partir de uma classe, sem mencionar explicitamente a associação. São necessários para dois objetos da mesma classe. 14

Universidade Estadual de Campinas UNICAMP

Centro de Computação

• •

Notação: o nome é escrito próximo à classe que exerce o papel. Exemplo: Uma pessoa assume o papel de “empregado” em relação a uma “empresa”.

Uma empresa assume o papel de “empregador” em relação à “pessoa”. Pessoa

empregado

empregador Trabalha-para

Empresa

 Nomes de papéis. •

Exemplo: Um diretório pode conter vários diretórios e opcionalmente estar contido em

outro diretório. Cada diretório tem um usuário proprietário, que o criou, e muitos usuários autorizados a utilizá-lo.

proprietário contém Usuário

Diretório usuário autorizado está contido  Nomes de papéis.

Ordenação •

• •

Na maioria das vezes, as instâncias de classe do lado “muitos” de uma associação não têm uma ordem explícita e podem ser consideradas um conjunto. Porém existem situações onde as instâncias são ordenadas. Notação: colocar “{ordenado}” junto ao símbolo de cardinalidade da associação. Exemplo. Em uma interface gráfica, várias janelas podem ficar sobrepostas de tal forma que somente a janela de cima seja visível. {ordenado} Janela

Tela Visível-em Exemplo de ordenação.

Agregação (relacionamento “todo-partes”) 15

Universidade Estadual de Campinas UNICAMP

Centro de Computação









Agregação: uma forma especial de associação, na qual os objetos que representam as

partes de alguma coisa são associadas a um objeto que representa a estrutura inteira. A existência de um objeto componente pode depender (não existe separadamente) da existência de um objeto do qual ele faz parte. A agregação pode ter um número arbitrário de níveis. Notação: a agregação é desenhada como uma associação, com um pequeno losango próximo à classe que indica o todo. Exemplo. Um documento é composto por vários parágrafos, e cada parágrafo é composto por várias sentenças.

Documento

Parágrafo

Sentença

Exemplo de agregação. •

Exemplo. Um microcomputador é composto por um ou mais monitores, uma caixa com o

sistema, um mouse opcional e um teclado. A caixa de sistema possui um chassis, uma CPU, muitos objetos RAM e uma ventoinha opcional.

Exemplo de agregação.

Generalização e herança Conceitos gerais 16

Universidade Estadual de Campinas UNICAMP

Centro de Computação





• • •

Generalização e herança : abstrações poderosas para destacar características comuns das

classes, e ao mesmo tempo preservar as diferenças. Generalização (ou relacionamento “é-um”): relacionamento entre uma classe e uma ou mais versões refinadas dela. Superclasse (ou classe geral): classe em processo de refinamento. Subclasse (ou classe especializada): cada versão refinada. Uma subclasse herda as características da subclasse e pode acrescentar as suas próprias características. Notação: um triângulo interligando uma superclasse às suas subclasses. Discriminador: termo que indica qual a base usada para a especialização de classes. Exemplo: Peças de equipamentos.

17

Universidade Estadual de Campinas UNICAMP

Centro de Computação

Equipamento

Nome Fabricante Peso Preço Tipo do equipamento Bomba

Pressão de sucção Pressão de descarga Taxa de fluxo

Aparelho de troca de calor

Tanque

Área da superfície Diâmetro do tubo Comprimento do tubo Pressão do tubo Pressão da concha

Volume Pressão

Tipo de bomba

Bomba centrífuga

Bomba de diafragma

Bomba de imersão

Diâmetro do impelidor Número de lâminas Eixo de rotação

Material do diafragma

Comprimento do pistão Diâmetro do pistão Número de cilindros Tipo de tanque

Tanque esférico

Tanque pressurizado

Tanque de teto flutuante

Diâmetro

Diâmetro Altura

Diâmetro Altura

(Bomba de diafragma)

(Aparelho de troca de calor)

Nome = P101 Fabricante = Simplex Peso= 100 Kg Preço = $5000 Pressão sucção = 1.1 atm Pressão descarga = 3.3 atm Taxa de fluxo = 300 l/h Material diafragma=Teflon

Nome= E302 Fabricante= Brown Peso= 5000 Kg Preço=$ 20000 Área superfície= Diâmetro tubo= 2 cm Comprimento tubo= 6 m Pressão tubo= 15 atm Pressão concha= 1.7 atm

(Tanque de teto flutuante) Nome= T111 Fabricante= Simplex Peso= 10000 Kg Preço= $50000 Volume= 400000 l Pressão= 1.1 atm Diâmetro= 8 m Altura= 9 m

 Hierarquia de herança multinivelada com instância. 18

Universidade Estadual de Campinas UNICAMP

Centro de Computação

19

Universidade Estadual de Campinas UNICAMP

Centro de Computação

Construções de agrupamento Módulo •

Módulo: uma construção lógica para agrupar classes, associações e generalizações.



Os módulos incorporam diferentes visões de uma situação e permitem o particionamento de um modelo de objetos. Um modelo de objeto é formado por vários módulos. Exemplo. Os módulos de eletricidade, encanamentos e ventilação representam diferentes visões de um edifício.

• •

Folha •

Folha (página ou pedaço de papel) é um mecanismo para facilitar o desenho de um

módulo. Regras: ◊ ◊

Colocar não mais de um módulo em uma folha. Cada generalização ou associação devem aparecer em somente uma folha.

Sugestões para a construção de diagramas •

• • •

• • • •

• •



Antes de iniciar a construção de um modelo, tente compreender o problema a ser resolvido. Mantenha o modelo simples, evitando complicações. Escolha nomes com cuidado. Dê preferência à terminologia do usuário. Evite associações ternárias e n-árias. A maioria pode ser decomposta em associações binárias com atributos de ligação. Não tente construir cardinalidade perfeita muito cedo. Não amontoe atributos de ligação em uma classe. Evite generalizações com excessivo número de níveis. Faça sucessivas revisões em seu modelo, melhorando nomes, corrigindo erros, acrescentando detalhes. Peça a outras pessoas para revisarem o seu modelo. Documente sempre o modelo. A descrição textual explica porque o modelo foi feito de um determinado modo. Nas classes gerais (superclasses), coloque poucos atributos e operações, para facilitar o refinamento.

20

Universidade Estadual de Campinas UNICAMP

Centro de Computação

4. Modelagem avançada de objetos Agregação •

• •



Agregação: um modo de associação forte na qual um objeto agregado é feito de componentes. Fisicamente um agregado é composto por objetos menores (partes). Cada relacionamento todo-partes é tratado separadamente para enfatizar a semelhança com a associação. A decisão de usar “agregação” é muitas vezes arbitrária.

Agregação x associação •





Agregação é uma forma especial de associação. Se dois objetos estiverem estreitamente ligados através de um relacionamento todo-partes, eles formam uma agregação. Se forem independentes, eles formam uma associação. Testes: ◊ Você usaria a expressão é-parte-de? ◊ Algumas operações executadas sobre o todo aplicam-se automaticamente sobre as partes? ◊ Alguns valores de atributos propagam-se do todo para as partes? As agregações incluem explosões em suas partes constituintes. Exemplo: uma empresa é uma agregação de divisões, que são agregações de departamentos, porém não é uma agregação de seus empregados, uma vez que “Empresa” e “Pessoa” são objetos independentes.

Empresa

Divisão

Departamento

Trabalha para Pessoa Exemplo de agregação e associação.

21

Universidade Estadual de Campinas UNICAMP

Centro de Computação

22

Universidade Estadual de Campinas UNICAMP

Centro de Computação

Agregação x generalização • •



Agregação e generalização são conceitos diferentes. Agregação relaciona-se a instâncias: um objeto faz parte do outro. Generalização é uma forma de estruturar uma classe. Tanto uma superclasse quanto uma subclasse referem-se às propriedades de um único objeto. Exemplo. Lâmpada pode ser classificada em duas subclasses: fluorescente e incandescente. Base, cobertura, interruptor e fiação são partes da lâmpada. Uma lâmpada fluorescente tem um contrapeso, um braço flexível e um starter; uma lâmpada incandescente tem um bocal. Lâmpada

Base

Fluorescente

Contra-peso

Cobertura

Interruptor

Fiação

Incandescente

Braço flexível

Starter

Bocal

Exemplo de agregação e generalização.

Propagação de operações •

• •

Propagação: aplicação automática de uma operação em uma rede de objetos quando a operação é aplicada em um objeto inicial. Por exemplo, a movimentação de uma agregação movimenta os seus agregados. Notação: uma seta indicando a direção da propagação, junto ao nome da operação. Exemplo: uma pessoa possui vários documentos, cada documento é composto por parágrafos e estes são compostos por caracteres. A operação “cópia” propaga-se do documento para os parágrafos e para os caracteres. Pessoa

Possui

Documento

cópia

Parágrafo

cópia

Caractere 23

Universidade Estadual de Campinas UNICAMP

Centro de Computação

Propagação de operações.

Classes abstratas •

Classe abstrata: classe que não possui instâncias diretas, mas as suas subclasses sim. Classe concreta: é uma classe instanciável, isto é, pode ter instâncias diretas.



Classes abstratas são normalmente usadas para definir protocolo para uma operação, sem apresentar um método correspondente. Isso é chamado operação abstrata. Uma operação abstrata define a forma de uma operação e cada subclasse deve prover a sua própria implementação. Uma operação abstrata é representada por uma observação entre chaves. Exemplo: A classe “Empregado” é uma classe abstrata. As subclasses “Horista”, “Assalariado” e “Autônomo” são concretas. “Calcular-pagamento” é uma operação abstrata.



Empregado valor recebido no ano calcular pagamento {abstrata}

Horista

Assalariado

salário hora salário hora extra

salário semanal

calcular pagamento

calcular pagamento

Autônomo salário mensal calcular pagamento

Classes e operações abstratas.

24

Universidade Estadual de Campinas UNICAMP

Centro de Computação

Herança múltipla •

Herança múltipla é o mecanismo que permite que uma classe possua mais de uma

superclasse e herde características de todos o seus ancestrais. •

Exemplo: “Veículo Anfíbio” tanto é um “Veículo Aquático” quanto um “Veículo Terrestre”.

Veículo

Terrestre

Automóvel

Aquático

Anfíbio

Barco

 Herança múltipla.

25

Universidade Estadual de Campinas UNICAMP

Centro de Computação

Lista de Exercícios 1. Descubra classes de objetos potenciais em uma Biblioteca. 2. Descubra semelhanças e diferenças entre: “ tenda, caverna, barraco, garagem, celeiro, casa, arranha-céu”. 3. Descubra semelhanças e diferenças entre: “ bicicleta, veleiro, carro, caminhão, avião,  planador, motocicleta, cavalo”. 4. Descubra semelhanças e diferenças entre: “ prego, parafuso, pino, rebite.” 5. Elabore um diagrama de classe para: “Um cliente pode solicitar nenhum ou muitos  pedidos. Cada pedido contém 1 ou mais itens de pedido, e cada item refere-se a um único  produto.” 6. Elabore um diagrama de classe para:  “Um empregado ocupa uma mesa de trabalho em um determinado dia da semana.” 7. Elabore um diagrama de classe para: “Alunos matriculam-se em disciplinas que são ministradas por professores.”

8. Elabore um diagrama de classe e um diagrama de instância (com três instâncias para cada classe) para: “um atleta defende uma equipe em um determinado ano ”. 9. Prepare um diagrama de classes para o diagrama de instâncias abaixo:

(País) Espanha

Limita-se 

(País) França

Limita-se

(País) Bélgica

10. Desenhe, dê nomes e acrescente cardinalidade para 4 associações entre partido político e cidadão. 11. Elabore um diagrama de classe para: “Todo barco é composto de um casco e opcionalmente um motor .” 12. Elabore um diagrama de classe para: “ Martelo é formado por uma cabeça e um cabo.” 26

Universidade Estadual de Campinas UNICAMP

Centro de Computação

13. Elabore um diagrama de classe para : “ Álcali, ácido e solvente são líquidos. Ácido pode ser clorídrico ou nítrico.”

14. Elabore um diagrama de classe para: “Carro possui quatro rodas, chassi, motor e radiador. Motor é composto por pistão, biela e várias válvulas.” 15. Elabore um diagrama de classe para: “Carro pode ser classificado em europeu, nacional e oriental. Carro europeu pode ser sueco, alemão e italiano, etc. Carro oriental pode ser coreano ou japonês.” 16.Classifique os relacionamentos abaixo em generalização, agregação ou associação. Podem existir associações ternárias ou n-árias, portanto não presuma que todo relacionamento envolvendo três ou mais classes seja uma generalização. Defenda suas respostas. a) Um país possui uma capital. b) Um filósofo à mesa de jantar está usando uma faca. c) Um arquivo pode ser um arquivo comum ou um arquivo-diretório. d) Arquivos contém registros e) Um polígono é composto por um conjunto ordenado de pontos.  f) Um objeto de desenho pode ser um texto, um objeto geométrico ou um grupo. g) Um estudante freqüenta uma disciplina ministrada por um professor. h) Uma pessoa utiliza uma linguagem de programação em um projeto i) Os modems e os teclados são dispositivos de entrada/saída  j)  As classes podem ter diversos atributos. k) Um atleta joga em uma equipe em um determinado ano. l) Uma estrada interliga duas cidades.

17. Elabore um diagrama com as seguintes classes: “escola, playground, diretor, conselho escolar, sala de aula, livro, aluno, professor, sala de repouso, computador, carteira, cadeira, régua, porta, balanço.” Coloque nomes e cardinalidade nas associações, nomes de papéis (se for necessário) e discriminador. 18. Elabore um diagrama mostrando associação, agregação, generalização e cardinalidade entre as seguintes classes: “arquivo, diretório, arquivo ASCII, arquivo binário, disco, disco flexível, disco rígido, unidade de disco, trilha, setor, caractere.”  Coloque nomes e cardinalidade nas associações, nomes de papéis (se for necessário) e discriminador. 19. Elabore um diagrama de classes mostrando associações, agregações e generalizações para o problema a seguir. Inclua atributos e operações. “ A empresa XYK promove cursos de Informática. A cada trimestre a empresa divulga um cronograma de cursos. Todos os cursos têm um número limitado de 10 vagas, a mesma carga horária (20 horas) e são 27

Universidade Estadual de Campinas UNICAMP

Centro de Computação

realizados na mesma sala, equipada com um computador por aluno. Cursos que não atingem um número mínimo de 5 inscrições são cancelados. A empresa firma convênios com escolas, empresas, associações profissionais e outras entidades. Cada afiliado tem direito a um desconto nos cursos em que desejar participar. Para qualquer outro interessado, a taxa de inscrição é normal. No início do curso o aluno recebe uma apostila e um disquete e, no final, o certificado de participação. A empresa contrata instrutores para cada curso. Um instrutor pode ministrar mais de um curso e pode também participar como aluno em um ou mais cursos.”

20. Em qual situação você sugere a construção de um diagrama de instância? Justifique. 21. Dado o diagrama abaixo, desenhe um diagrama de instância para Passageiro, Caminhão e Moto. Veículo Marca Ano Cor Combustível Passageiro Nro. passageiro

Caminhão Peso da carga

Moto

22. Explique a diferença fundamental entre o diagrama de classe e o diagrama de instância. 23. Dado o diagrama de classe abaixo, desenhe um diagrama de instância para Professor, Administrativo e Aluno. Pessoa Nome Endereço Idade Sexo

Funcionário

Aluno

Professor

Administrativo

Disciplina que ministra

Seção

Nro. registro acadêmico 28

Universidade Estadual de Campinas UNICAMP

Centro de Computação

24. Explique em detalhes o significado do diagrama:

{ordenado} BARALHO

CARTA

Naipe Valor

25. No exercício anterior, considere que Naipe possa assumir os valores: copas, paus, ouros e espadas; e Valor possa assumir os valores: 2, 3, 4,..., Valete, Dama, Rei e Ás . Desenhe um diagrama de instâncias com 2 instâncias para a classe CARTA. 26. Elabore um diagrama de classe e um diagrama de instância com duas instâncias de vogal e duas instâncias de consoante para: “O alfabeto da lingua portuguesa é formado por 26 letras (incluindo as letras empregadas em vocábulos estrangeiros não aportuguesados): a, b, c , d , e , f , g , h , i , j , k , l , m , n , o , p , q , r , s , t , u , v , x , y , z , w. As letras  podem ser classificadas em vogais e consoantes.” 27. Atividade de Pesquisa. Elabore um diagrama de hierarquia de herança multinivelada com instâncias semelhante ao apresentado em classe (“Equipamentos”). Desenhe pelo menos três níveis hierárquicos. Acrescente tipo de dados aos atributos. 28. Mostre que o diagrama abaixo pode ser reduzido a uma associação binária.

Produto

Vendedor

Cliente

29

Universidade Estadual de Campinas UNICAMP

Centro de Computação

5. Modelagem dinâmica •

O modelo dinâmico descreve os aspectos de um sistema relativos ao tempo e à seqüência de operações que ocorrem em resposta a estímulos externos, sem considerar como as operações são implementadas.



Principais conceitos: eventos e estados.



Principal ferramenta: diagrama de estados.



O modelo dinâmico consiste em múltipos diagramas de estado, um para cada classe com comportamento dinâmico importante.

Eventos •

Evento: transmissão ou informação unidirecional de um objeto para outro; estímulo

individual. Diferente de uma subrotina (retorna um valor). •

Informação: sinal simples ou dados (atributos de eventos, mostrados entre parênteses).



Evento representa um ponto no tempo. É algo que acontece em um certo momento. É uma ocorrência considerada rápida. Não tem duração.

Exemplos

partida de avião (empresa aérea, número de vôo, cidade) botão do mouse apertado (botão, localização) string de entrada introduzido (texto) telefone levantado dígito discado (dígito) velocidade da máquina penetrou em zona de perigo •

Eventos podem depender um do outro. Exemplo: o vôo 123 deve partir de São Paulo antes de chegar ao Rio de Janeiro.



Um evento pode não depender de outro evento, neste caso eles são chamados eventos concorrentes. Exemplo: o vôo 123 pode partir antes ou depois do vôo 456.

30

Universidade Estadual de Campinas UNICAMP

Centro de Computação



Eventos são também modelados como classe. O momento em que um evento ocorre é um atributo implícito de todos os eventos.

Cenários e diagramas de eventos •

Cenário é uma seqüência de eventos que ocorrem durante uma determinada execução do

sistema. •

Um cenário pode incluir todos os eventos de um sistema ou somente aqueles que são gerados por alguns objetos.

Exemplo: cenário para utilização de uma linha telefônica

pessoa que chama (chamador) retira o fone do gancho começa o sinal de discar chamador disca um número (5) sinal de discar pára chamador disca um número (5) chamador disca um número (5) chamador disca um número (1) chamador disca um número (2) chamador disca um número (3) chamador disca um número (4) telefone chamado começa a tocar ouve-se o tilintar do telefone chamado pessoa chamada atende telefone chamado pára de tocar som de chamada desaparece do telefone chamador telefones são interligados pessoa chamada desliga telefones são desligados chamador desliga Diagrama de eventos •

Um diagrama que mostra a seqüência de eventos e os objetos que permutam eventos.



Objetos são representados por uma linha vertical e os eventos por uma seta horizontal indicando o sentido da transmissão.

31

Universidade Estadual de Campinas UNICAMP

Centro de Computação

Exemplo: diagrama de eventos para uma chamada telefônica. Pessoa liga

Linha telefônica

Pessoa atende

 levanta o fone do gancho inicia o sinal de linha disca (5) termina o sinal de linha disca (5) disca (5) disca (1) disca (2) disca (3) disca (4) sinal de chamada

o telefone toca atende o telefone

o sinal pára linha conectada

pára de tocar linha conectada coloca o fone no gancho

quebra de conexão

quebra de conexão

coloca o fone no gancho

Estados •

Estado: valores do conjunto de atributos.



Um estado corresponde ao intervalo entre dois eventos recebidos por um objeto. Eventos e estados formam duplas: um evento separa dois estados e um estado separa dois eventos



Estados representam intervalos de tempo (têm uma duração).



Objetos reagem aos eventos recebidos. A reação pode ser a modificação de seu estado interno. Exemplo: se um dígito for discado no estado SINAL DE DISCAR, a linha telefônica abandona o sinal de discar e passa para o estado DISCANDO.



Os atributos que não afetam o comportamento do objeto são ignorados. 32

Universidade Estadual de Campinas UNICAMP

Centro de Computação

Exemplos

O tilintar de um telefone Viagem de São Paulo ao Rio de Janeiro Água no estado líquido (a temperatura está entre 0 e 100 graus) Transmissão do automóvel na primeira marcha Aguardando usuário introduzir uma senha Aquecendo uma mistura Aguardando o próximo comando Acelerando o motor Enchendo o tanque Processador ocioso

Caracterização de estado •

Um estado pode ter um nome, uma descrição de seu propósito, a seqüência de eventos que conduz a ele, a condição que o caracteriza, os eventos aceitos, as ações tomadas e o próximo estado.

Exemplo: alarme soando em um relógio. •

Nome do estado: alarme soando.



Descrição: o alarme do relógio está soando para indicar o momento visado



Seqüência de eventos que produz o estado: ⇒ Preparar

o alarme (momento visado) ⇒ Qualquer seqüência exclusive desligar o alarme ⇒ Momento atual = momento visado •

Condição que caracteriza o estado: alarme = ligado e momento visado < = momento atual < = momento visado + 20 segundos e nenhum botão apertado desde o momento visado.



Eventos aceitos no estado:

Evento

Ação

Estado seguinte

33

Universidade Estadual de Campinas UNICAMP

Centro de Computação

momento atual = momento visado + 20 reajustar alarme botão pressionado (qualquer botão) reajustar alarme

normal normal

Diagrama de estados •

O diagrama de estados é uma ferramenta gráfica que mostra a relação entre estados e eventos.



Quando um evento é recebido, o estado seguinte depende do estado atual e do evento. A modificação de estado por um evento é chamada “transição”.



Notação: o diagrama de estados é representado por um grafo contendo nós e arcos. Os

nós são “estados” e os arcos direcionados são “transições” contendo os nomes de “eventos”. O nó é uma figura arredondada. Dentro do nó escreve-se o nome do estado. •

A transição é uma seta que parte de um estado-origem para o estado-destino. O nome da seta é o evento que causa a transição entre os estados. Quando acontece o evento diz-se que a transição “disparou”.

Exemplo: linha telefônica.

34

Universidade Estadual de Campinas UNICAMP

Centro de Computação



Estados não definem totalmente todos os valores de atributos do objeto. Por exemplo, o estado discando inclui todas as sequências de números incompletos de telefone. Cada número não é um estado diferente, mas o número inteiro é um atributo.



Um diagrama de estados descreve o comportamento de uma única classe de objetos. Como todas as instâncias da classe têm o mesmo conjunto de operações, todas compartilham o mesmo diagrama. Como cada objeto tem seus próprios valores de atributos, cada um tem o seu estado interno próprio como resultado da seqüência de eventos que recebeu. Logo, cada objeto é independente e comporta-se a seu próprio modo.



Um diagrama pode representar ciclos simples ou contínuos.



Ciclo contínuo: enfatiza as passagens pelo diagrama. Exemplo: linha telefônica.

35

Universidade Estadual de Campinas UNICAMP

Centro de Computação



Ciclo simples (uma só passagem): representam objetos com vidas finitas. Enfatiza o

estado inicial e final do objeto, onde o estado inicial representa a criação do objeto e o estado final a destruição do objeto. •

Notação: estado inicial é indicado por um círculo cheio e o final por um “olho de boi”. Podem ser rotulados para indicar as condições de início e fim.

Exemplo: jogo de xadrez.

Início

Vez das brancas

cheque-mate

Pretas vencem

empate forçado pretas  jogam

brancas jogam Vez das pretas

Empate

empate forçado cheque-mate

Brancas vencem

36

Universidade Estadual de Campinas UNICAMP

Centro de Computação

Condição •

Condição é uma função booleana de valores de objeto (retorna valor verdadeiro ou falso). Exemplo: “temperatura abaixo do ponto de congelamento”. (V, F)



Condição pode ser usada como “guarda” na transição. Uma transição “guardada” dispara quando seu evento ocorre, mas somente se a condição for verdadeira. Exemplo: “Quando sair de manhã (evento) e a temperatura estiver abaixo do ponto de congelamento (condição), coloque as luvas (estado seguinte).”



Notação: escrever a condição entre colchetes, à frente do evento.

Exemplo: tráfego terrestre

Controle de operações •

Operações vinculadas a estados ou transições são executadas em resposta aos correspondentes eventos ou estados. Dois tipos de operações são definidos: “ atividade” e “ação”.

Atividade •

“Atividade” é uma operação que consome tempo para se completar. Está associada a “estado”.



Pode ser uma operação contínua (exibição de uma imagem) ou sequencial, que termina após um intervalo de tempo. 37

Universidade Estadual de Campinas UNICAMP

Centro de Computação



Notação: escrever “faça: A” dentro da caixa de estado. Indica que a atividade A inicia na entrada do estado e termina na saída do estado.

Ação •

Ação: é uma operação instantânea e está associada a um evento. Representa uma

operação cuja duração é insignificante. Modelar uma operação como “ação” significa não estar preocupado com controle interno ou detalhamento. •

Notação: escrever o nome da ação à frente do evento, separado pela “/ “.

Exemplo: menu instantâneo

Resumo da notação • Estado: escrever dentro da caixa. •

Evento: escrever junto à seta de transição.



Condição: escrever dentro de colchetes, à frente do evento.



Atividade: escrever dentro da caixa de estado, junto à palavra “faça”.



Ação: escrever à frente do evento, precedido pela barra “/”.

38

Universidade Estadual de Campinas UNICAMP

Centro de Computação

Relacionamento entre os modelos de classe e dinâmico. •

O modelo dinâmico especifica as seqüências possíveis de modificações nos objetos.



O diagrama de estado descreve uma parte do comportamento dos objetos de uma classe.



Estado relacionam-se aos atributos dos objetos.



Eventos podem ser representados como operações no modelo de classe.

Sugestões práticas •

Construa diagramas de estado para classes com comportamento dinâmico significativo.



Use cenários para ajudar a iniciar a elaboração do diagrama de estados.



Considere atributos relevantes ao definir um estado. Nem todos os atributos são usados no diagrama de estados.

39

Universidade Estadual de Campinas UNICAMP

Centro de Computação

Exercícios

1. Para que serve o diagrama de transição de estados? 2. Descreva os principais conceitos e ferramentas do modelo dinâmico. 3. Como o diagrama de transição de estados se relaciona com o diagrama de classes? 4. Para qual tipo de sistema o diagrama de transição de estados é considerado uma boa ferramenta de modelagem? Justifique! 5. O que é um cenário? Elabore um cenário para uma consulta de saldo em um caixa automático. 6. Qual é a definição de “estado”? O que é uma mudança de estado? Como a mudança de estado é mostrada no diagrama de transição de estado? 7. Qual é a definição de “evento”? Como a ocorrência do evento é mostrada no diagrama de transição de estado? 8. O que são condições em um diagrama de transição de estados? Como são mostradas? 9. Qual a diferença entre ação e atividade? Como são mostradas no diagrama?

10.Nas afirmações abaixo, coloque certo (C) ou errado (E), justificando as erradas. ( ( ( ( ( ( ( ( ( ( ( ( ( ( (

) Cenário é uma sequência de eventos. ) Atividade é uma operação instantânea e está associada a um evento. ) Endereço de cobrança de cliente  é um estado aceitável. ) As operações em uma classe podem ser classificadas em ação e atividade. ) Toda classe deve ter um diagrama de estados associado a ela. ) Vários objetos trocam eventos em um diagrama de eventos ) Tecla ESC pressionada é um evento aceitável. ) Uma atividade é normalmente invocada quando o objeto muda de estado. ) Somente um evento pode ocorrer em um estado. ) Uma condição impede a ocorrência de um evento. ) Uma condição impede a transição de estado. ) Ação é uma operação demorada e está associada a um estado. ) Um evento com condição de guarda nunca dispara uma transição. ) Pode ocorrer um evento em um estado e o objeto permanecer nesse estado. ) Evento corresponde a um estímulo externo ao sistema.

11. Elabore um diagrama de transição de estados para o ventilador/exaustor. 12. Elabore um diagrama de transição de estados para o portão automático. 40

Universidade Estadual de Campinas UNICAMP

Centro de Computação

13. Elabore um diagrama de transição de estados para um semáforo. 14. Elabore um diagrama de transição de estados para uma lâmpada. 15.

Explique em detalhes quando haverá transição do estado “Ligada/inativa” para o estado “Aguardando”. Ligada/inativa

Aguardando Toque do telefone [quinto toque]

16. Explique o significado de: “tempo decorrido [carros nas vias esquerdas N/S]” no trecho de diagrama abaixo. Estado 1

Tempo decorrido [carros nas vias esquerdas N/S]

Estado 2

17. Explique o que está errado no diagrama abaixo. C [calcular taxa de envio de dados]

Estado 1

D

Estado 2 A

Estado 4

B

Estado 3

18) Elabore um diagrama de transição de estados para o tocador de fita cassete   simples. Considere que o aparelho funciona com o seguinte conjunto de teclas, cujo significado é familiar a todos: Eject  (abrir/fechar a unidade), Play  (tocar), Stop  (parar), Pause (pausa/continua), Fast Forward (avanço rápido), Rewind (rebobinar). OBS: despreze a queda de energia e considere que o aparelho já está ligado com fita. 19) Elabore um diagrama de transição de estados para a catraca. Uma catraca, acionada por cartões magnéticos, controla a entrada e saída de alunos no laboratório. Ela permanece travada e somente é liberada quando o aluno passa o cartão em uma das leitoras. Para entrar no laboratório, o aluno passa o cartão na leitora de entrada e aguarda a liberação da catraca. Quando esta é liberada, o aluno entra, a catraca gira no sentido da entrada, em seguida é novamente travada. Para sair do laboratório, o procedimento é inverso. O aluno pode passar o cartão mas não entrar nem sair do laboratório. Neste caso, a catraca é travada após um certo tempo. Considere que não há nenhum problema com o cartão ou o 41

Universidade Estadual de Campinas UNICAMP

Centro de Computação

ato de passar o cartão na leitora, nem é feito nenhum controle sobre a entrada ou saida, ou seja, se alguém passar o cartão em uma leitora mas não girar a catraca, pode passar novamente o cartão na mesma leitora, que a catraca é liberada. 20. O trecho de diagrama abaixo corresponde ao objeto IGNIÇÃO de um automóvel. Considere que para passar de Desligada  para Partida  deve-se girar a chave, porém somente haverá transição se a transmissão estiver em ponto morto. Complete o diagrama com esses detalhes.

Partida

Desligada

Desligar chave

Ligada

Liberar

21.Elabore um diagrama de transição de estados para o controle de uma secretária eletrônica, que responde às chamadas telefônicas com um aviso pré-gravado. Uma chamada telefônica é detectada mas a secretária somente responde com o aviso prégravado se o telefone não for atendido até o quinto toque da campainha. Se o telefone for atendido antes do quinto toque, a secretária desliga.Quando o aviso da secretária termina, a mensagem de quem chamou é gravada. Quando o chamador desliga, a secretária também desliga. O chamador pode desligar o telefone enquanto a secretaria estiver avisando. Neste caso, a secretária também desliga. 22.Elabore um diagrama de estados para o calibrador de pneu. O calibrador de pneu indica uma certa medida de pressão. Quando um novo pneu é calibrado, um novo ajuste de pressão pode ser necessário. O ajuste é feito pressionando-se dois botões, A e B, com um leve toque. O botão A aumenta o indicador de pressão em uma unidade e o botão B diminui em uma unidade. Quando a pressão atual do pneu é detectada, o calibrador automaticamente ajusta a pressão do pneu segundo a medida de seu indicador. Note que a pressão do pneu pode estar menor, igual ou maior do que a medida do indicador. Se a pressão do pneu estiver menor, o pneu será enchido até a pressão do indicador. Se a pressão estiver maior, o pneu será esvaziado até a pressão do indicador. Se for igual, nada ocorrerá. 23.Elabore um diagrama de estados para o relógio digital simples. O relógio tem um visor, dois botões para ajustá-lo, “A” e “B”, e três estados operacionais: “exibindo hora”, “acertando hora” e “acertando minuto”. No estado “exibindo hora”, as horas e minutos são mostrados, separados por dois pontos piscantes. O botão “A” é usado para mudar os estados. A cada vez que é acionado, a mudança ocorre na sequência: “exibindo hora”, “acertando hora”, “acertando minuto”, “exibindo hora”, etc. Nos estados “acertando hora” e “acertando minuto”, o botão “B” é usado para avançar as horas ou minutos uma vez, sempre que for pressionado. 42

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF