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
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?
www.CompCEDERJ.com.br