Você está na página 1de 3

Resposta dos exerccios de Arquitetura e Projeto de Sistemas II

Aula 07 Princpios de Projetos OO Parte I


Slide 19 A classe FaturaEnviavel tem, sem dvida, coeso de domnio misto. Este fato representa algum problema
para o sistema? Tente fornecer argumentos sobre o seu ponto de vista.

Resposta: D
Slide 30 Como possvel permitir que a classe Noticia (Figura abaixo) possa ser exibida na tela, na impressora
ou no celular sem criar coeso de domnio misto e que facilite a criao de novos mtodos de exibio? Tente
encontrar uma soluo e argumentar as vantagens e desvantagens da sua soluo.

Resposta: possvel permitir que a classe Noticia possa ser exibida na tela, na impressora ou no celular
sem criar coeso de domnio misto e de forma a facilitar a criao de novos mtodos de exibio. Uma possvel
soluo seria manter a classe Noticia no domnio de negcio, retirando dela mtodos que se refiram ao
domnio de arquitetura e criando um relacionamento de associao com uma nova classe abstrata
MeioDeExibicao, a qual possuir o mtodo exibir() responsvel por exibir uma notcia em algum meio de
exibio disponvel no sistema em questo. Esses meios seriam providos por meio de classes concretas do domnio
de arquitetura, que possuem um relacionamento de herana com a classe MeioDeExibicao (do domnio de
arquitetura) e que possuem implementaes para o mtodo exibir(): Tela, Impressora e Celular.
Dessa forma, uma das vantagens a possibilidade de exibio de notcias em diversos meios, bastando a
implementao de uma nova classe que implemente a classe MeioDeExibicao, sem a necessidade de ser
invasivo ao domnio de negcio, o que facilita a realizao da evoluo do sistema e a manuteno de sua
organizao estrutural. Uma possvel desvantagem est no relacionamento direto entre as classes Noticia e
MeioDeExibicao, o qual amarra uma classe de domnio de negcio a uma de domnio de arquitetura, sem a
utilizao de uma classe do domnio de sistema, por exemplo, que faa o relacionamento (classe cola) e no
impacte o sistema, caso esse relacionamento se torne desnecessrio o futuro.

www.CompCEDERJ.com.br

Aula 08 Princpios de Projetos OO Parte II


Slide 11 - Qual atitude pode ser tomada na estrutura abaixo caso no seja possvel projetar as pr-condies dos
mtodos de Gerente com restries iguais ou menores que as restries das pr-condies dos mtodos de
Funcionrio?

Resposta: Dado que no seja possvel projetar as pr-condies dos mtodos de Gerente com restries
iguais ou menores que as restries das pr-condies dos mtodos de Funcionrio, pode-se pensar que essa
uma herana questionvel. Dessa forma, uma das atitudes que podem ser tomadas se refere criao de uma nova
classe (e.g., Pessoa), que rena as caractersticas (atributos) e comportamentos (mtodos) bsicos e comuns ao
pessoal empregado na organizao na qual o sistema utilizado, de forma que essa nova classe seja herdada pelas
classes Gerente e Funcionrio. Assim, cada subclasse definiria e implementaria os mtodos que, devido aos
problemas de contrato, inviabilizaram a herana em questo.
Por outro lado, observando-se as entidades envolvidas na estrutura acima, caso os mtodos de Gerente
necessitem de restries maiores quanto s suas pr-condies, dada a herana a partir de Funcionrio, pode ser
preciso reavaliar o projeto da classe Funcionrio: fazendo um paralelo com o domnio de aplicao que abriga essas
entidades, um gerente tem mais privilgios do que um funcionrio comum, inclusive os destes. Considere um
mtodo int calculaBonus (int avaliacao), em que um funcionrio pode ser avaliado numa escala de 1 a 10 (espaoestado da varivel avaliao), ao passo que um gerente poderia ser avaliado numa escala de -5 a 15. Caso a escala
de avaliao para um gerente fosse reduzida para entre 3 e 9, provavelmente essa reduo teria que ser
considerada para um funcionrio, visando manter a coerncia e validade do domnio com relao sua modelagem
da aplicao; caso contrrio, incorrer-se-ia em problemas com contratos. Dessa forma, uma atitude a ser tomada
corresponderia verificao da classe Funcionrio e de seus impactos na estrutura do sistema, a fim de realizar
uma manuteno evolutiva e avaliar a existncia de herana entre Gerente e Funcionrio, caso Gerente cumpra as
clusulas contratuais.
Slide 14 - De acordo com os princpios de Projeto OO, voc considera aceitvel a criao de pr e pscondies em mtodos abstratos de uma classe? E quanto aos mtodos de uma interface?

Resposta: Sim, uma vez que a criao de pr e ps-condies em mtodos abstratos de uma classe
representa a sua documentao e qualquer classe que implemente esse mtodo tambm deve respeitar a
essa documentao, mantendo-se uma padronizao na especificao das variaes de espao-estado
possveis para o mtodo. Da mesma forma, essa padronizao entendida como aceitvel para mtodos de
uma interface, garantindo, dessa forma, a metodologia do projeto por contrato.

www.CompCEDERJ.com.br

Slide 17 - Qual modificao na estrutura abaixo poderia ser feita para possibilitar a manuteno do
comportamento fechado global?

Resposta: Existem alguns possveis caminhos visando possibilitar a manuteno do comportamento


fechado global: (i) fazer polimorfismo sobre o mtodo acrescentaVertice(), com lanamento de
exceo, o que representa uma soluo ruim; (ii) evitar a herana de acrescentaVertice(), alterando a
estrutura hierrquica; e (iii) preparar o projeto para possvel reclassificao do objeto da classe Triangulo
para outra classe (e.g., Quadrilatero, Pentagono etc.). Por exemplo, a soluo exibida a seguir
relativa ao caminho (ii).

A soluo exibida abaixo corresponde ao caminho (iii). Um objeto da classe FiguraGeometrica


est associado a um objeto de alguma subclasse de Poligono. A depender da execuo do mtodo
acrescentaVertice()de FiguraGeometrica, o objeto associado ao objeto destas pode ter suas
propriedades alteradas, devendo-se instanciar um outro objeto de uma subclasse mais adequada de Poligono.
Ou seja, deve-se permitir que um objeto modifique o seu comportamento em funo do seu estado interno,
gerando o efeito de uma troca de tipo de objeto em tempo de execuo. Isso equivale a criar um novo polgono,
mantendo as caractersticas anteriores (antigos vrtices) e adicionando uma nova caracterstica (novo vrtice).

www.CompCEDERJ.com.br