terça-feira, 17 de junho de 2008

AULA 31 e 32 - VARIAÇÕES PROTEGIDAS E XP

Variações Protegidas

Toda aplicação tem pontos de variação, identifique os pontos de variação ou instabilidade prevista, atribuindo responsabilidades para criar uma interface estável em torno deles. Na variação protegida temos as variações evolutivas e as variações corretivas.Mecanismos de Variações Protegidas· Agentes (Brokers) – é encarregado de levar as requisições que recebe, localiza qual local de destino e entrega ao local correto.· Máquinas Virtuais – simulam vários sistemas em um único meio físico, dá maior portabilidade aos sistemas em ambientes instáveis.· Projetos dirigidos por dados (dataDriver design) – troca de informações entre aplicações através de arquivos configurados por exemplo XML, framework Spring, TomCat, etc.· Pesquisa de serviços – é ter alguém que forneça serviços, e ter alguém que consome os serviços disponibilizados, podemos citar como exemplo o novo paradigma SOA.· Projetos dirigidos por interpretadores – são aplicações que interpretam ambientes ou sistemas diferentes, por exemplo JVM, Engine Regras.· Projetos reflexivos ou de meta-dados – nesse caso reflete o que tem dentro da classe, por exemplo: o normal a se fazer em uma consulta em banco de dados é pesquisar pelo catalogo do banco e não a colunas, se alguém vier a mudar a tabela que está consultando, alterando apenas o nome das colunas, isso irá prejudicar sua consulta, no caso de uma consulta pelo catalogo do banco o problema descrito acima não irá acontecer pois sua consulta irá solicitar ao catalogo que por sua vez possui o índice da tabela que está consultando e assim retornará os dados da coluna relacionada a consulta.· Acesso Uniforme – não se preocupa com a estrutura da linguagem, não se restringe a propriedades, métodos, procedimentos, etc., tudo é igual seja ele com definições de propriedade, métodos ou procedimentos, exemplos de linguagens que não se preocupa com definições são: linguagem EIFFEL, C#, etc.· Princípios da substituição de Liskov – como mecanismo de variação protegida a substituição de Liskov prevê que se declararmos classes como interface qualquer classe poderá implementar a superclasse.Padrão não Fale com EstranhosObjetivo é evitar o acoplamento indireto, ou seja, que um cliente precise ter conhecimento de objetos indiretos, ou das representações internas de objetos diretamente referenciados. As mensagens podem ser mandadas dentro da própria classe, não pode mandar mensagens para classes diferentes (externas), se sair disso se torna frágil.§ Objetos referenciados diretamente – “familiares”§ Objetos referenciados indiretamente – “estranhos”§ Novas operações serão necessárias nos objetos diretamente referenciados para funcionarem como operações intermediárias.Restrições para envio de mensagem – se sair do escopo abaixo a classe se torna frágil· O objeto this· Um parâmetro do método· Um atributo de this· Um elemento de uma coleção que seja de this· Um objeto criado dentro do métodoPor exemplo se um método mandar mensagem para outro método e assim por diante, há uma fragilidade, pois se houver uma cadeia muito longa de métodos um mandando mensagem para outro pode haver quebras e a aplicação pode vir a falhar, isso pode ser resolvido através do padrão não fale com estranhos seguindo seu escopo.

XP

Extreme Programming, ou XP, é um processo de desenvolvimento de sof-tware voltado para:• Projetos cujos requisitos são vagos e mudam com freqüência;• Desenvolvimento de sistemas orientados a objeto;• Equipes pequenas, preferencialmente até 12 desenvolvedores;• Desenvolvimento incremental (ou iterativo), onde o sistema começa aser implementado logo no início do projeto e vai ganhando novas funci-onalidades ao longo do tempo.Existe uma categoria de processos de desenvolvimento conhecida como Pro-cessos Ágeis de Desenvolvimento, dentro da qual o XP e outros processos seencaixam. Eles compartilham a premissa de que o cliente aprende sobresuas necessidades, na medida em que é capaz de manipular o sistema queestá sendo produzido. Com base no feedback do sistema ele re-avalia as suasnecessidades e prioridades, gerando mudanças que devem ser incorporadasao software. O aprendizado é importante, porque permite que o clientedirecione o desenvolvimento de modo que a equipe produza sempre aquiloque tem o maior valor para o seu negócio.O XP é um processo de desenvolvimento que busca assegurar que o clientereceba o máximo de valor de cada dia de trabalho da equipe de desenvolvi-mento. Ele é organizado em torno de um conjunto de valores e práticas queatuam de forma harmônica e coesa para assegurar que o cliente semprereceba um alto retorno do investimento em software.

Nenhum comentário: