Espaço-estado e Comportamento
Alguns conceitos e propriedades de classes: Espaço-estado Comportamento Invariantes Pré-condições e pós-condições Espaço-estado e comportamento
Espaço-estado e comportamento Uma classe deve representar uma abstração uniforme das propriedades dos objetos individuais que pertencem a essa classe Abstração: nem toda propriedade Uniforme: cada objeto Propriedades: espaço-estado e comportamento Espaço-estado e comportamento
Comportamento da rainha Comportamento do cavalo Jogo de Xadrez: 8 Comportamento da rainha 7 6 5 4 Comportamento do cavalo 3 2 1 a b c d e f g h Espaço-estado: todas as casas do tabuleiro Comportamento: diferentes Espaço-estado e comportamento
(mas espaço-estado diferente) 3 2 1 a b c d e f g h 8 7 6 5 4 Mesmo comportamento de um cavalo normal (mas espaço-estado diferente) 3 2 1 a b c d e f g h Cavalo não tem permissão para se posicionar no centro do tabuleiro Espaço-estado e comportamento
Espaço-estado e comportamento O espaço-estado de uma classe C é a totalidade de todos os estados permitidos de qualquer objeto da classe C. As dimensões de um espaço-estado são as coordenadas necessárias para especificar o estado de um dado objeto. Espaço-estado e comportamento
Espaço-estado de uma linha de produtos: peso LinhaDeProduto. quantidadeDisponível LinhaDeProduto.preço Espaço-estado e comportamento
Espaço-estado de uma subclasse Se B é uma subclasse de A, então o espaço-estado de B deve estar contido inteiramente dentro do espaço-estado de A. O espaço-estado de B é confinado pelo espaço-estado de A. Espaço-estado e comportamento
Ex: automóvel e veículoRodoviário Espaço-estado de Automóvel Espaço-estado de VeículoRodoviário pesoAtual 1 2 3 4 5 6 7 8 9 Espaço-estado e comportamento
Subclasse com mais dimensões! Se B é uma subclasse de A, então o espaço-estado de B deve compreender, no mínimo, as dimensões do espaço-estado de A – mas ele pode compreender mais dimensões. Se compreender mais dimensões, dizemos qe o espaço-estado de B prolonga-se a partir do espaço-estado de A. Espaço-estado e comportamento
Automóvel X veículoRodoviário contagemAtual DePassageiro 5 4 Espaço-estado de Automóvel Espaço-estado de VeículoRodoviário 3 2 1 pesoAtual 1 2 3 4 5 6 7 8 9 Espaço-estado e comportamento
Comportamento de uma subclasse: O comportamento permitido de uma classe C é o conjunto de transições que um objeto da classe C pode fazer entre estados do espaço-estado de C. Espaço-estado e comportamento
Espaço-estado e comportamento Para as subclasses: O confinamento e o prolongamento valem também para o comportamento de superclasse e subclasse ?? “SIM” Espaço-estado e comportamento
Por exemplo: Prolongamento Automóvel: apanharPassageiro deixarPassageiro VeículoRodoviário ?? Espaço-estado e comportamento
Espaço-estado e comportamento … confinamento: VeículoRodoviário: Aumentar + 5 toneladas! Automóvel: Aumentar + 5 toneladas XXXX (não é permitido!) Espaço-estado e comportamento
Espaço-estado e comportamento Invariante de classe: O espaço-estado válido de uma classe é definido pela sua invariante de classe: Uma invariante de classe é uma condição que todo objeto dessa classe deve sempre stisfazer (quando o objeto está em equilíbrio) Espaço-estado e comportamento
Ex: classe Triângulo a + b > c and b + c > a and c + a > b a Nem todas as posições de a, b e c são válidas! c b Parte da Invariante: a + b > c and b + c > a and c + a > b Espaço-estado e comportamento
‘Variedade de Triângulos’: a=b or b=c or c=a a2 + b2 = c2 Triângulo Retângulo Triângulo Isósceles Triângulo IsóscelesRetângulo Espaço-estado e comportamento
Pré-condições e Pós-condições: Invariantes de operações individuais (e não de classes): Precondição Pós-condição Ex: Pilha.eliminar Pré-condição: not vazia Pós-condição: (numDeElem = old numDeElem – 1 ) and not completa Espaço-estado e comportamento
Pré-condição em escalaHorizontal: Pós-condição em escalaHorizontal: Ex de um Retângulo: Retângulo escalaHorizontal (fatorDeEscala) Invariantes: w1 = w2 and h1 = h2 Pré-condição em escalaHorizontal: larguraMáximaPermitida > w1 * fatorDeEscala Pós-condição em escalaHorizontal: w1 = old w1 * fatorDeEscala Espaço-estado e comportamento