1 / 21

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana 09

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana 09. Agenda. Independência Funcional – Complementação Abstração Refinamento Respostas aula Anterior. Independência Funcional.

dinos
Download Presentation

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana 09

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMASANÁLISE E PROJETO DE SISTEMASSemana 09 14/08/2012 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

  2. Agenda • Independência Funcional – Complementação • Abstração • Refinamento • Respostas aula Anterior 14/08/2012 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

  3. Independência Funcional • O conceito de independência funcional é uma decorrência direta da modularidade dos conceitos de abstração e ocultamento funcional • A independência funcional é conseguida pelo desenvolvimento de módulos com função de “finalidade única” (coesão) e uma “aversão” a interação excessiva com outros módulos (Acoplamento). 14/08/2012 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

  4. Independência Funcional • Dito de outro modo, queremos projetar software de maneira que cada módulo cuide de uma sub-funçãoespecífica dos requisitos e tenha uma interface simples quando visto de outras partes da estrutura do programa. • Módulos independentes são mais fáceis de manter(e testar) porque os efeitos secundários causados por modificação de projeto ou código são limitados, a propagação de erros é reduzida e os módulos reusáveis são possíveis. 14/08/2012 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

  5. Independência Funcional • Para resumir, independência funcional é a chave para um bom projeto, e o projeto é a chave da qualidade de software. • Independência é medida usando dois critérios qualitativos: coesão e acoplamento. 14/08/2012 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

  6. COESÃO • Um modulo coeso realiza uma única tarefa dentro de um procedimento de software, requerendo pouca interação com procedimentos que estão sendo realizados em outras partes de um programa. Um módulo coeso deveria (idealmente) fazer apenas uma coisa. • Altamente coeso: Excelente. • Baixa coesão: Problemas 14/08/2012 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

  7. ACOPLAMENTO • Acoplamento é uma medida da interconexão entre módulos numa estrutura de software. O acoplamento depende da complexidade da interface entre módulos, do ponto em que é feita entrada ou referência a um módulo e que dados passam através da interface. • Em projeto de software, lutamos por acoplamento mais baixo possível. Conectividade simples entre módulos resulta em software bem mais fácil de entender e menos propenso a “efeito de propagação” que acontece quando erros que ocorrem em um lugar se propagam por todo o sistema. 14/08/2012 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

  8. Respostas aula anterior 1 – O que é coesão ? Coesão mede o grau com que as tarefas executadas por um único modulo se relacionam entre si. Ex.: Um modulo coeso realiza uma única tarefa dentro de um procedimento de software, requerendo pouca interação com procedimentos que estão sendo realizados em outras partes de um programa. Um módulo coeso deveria (idealmente) fazer apenas uma coisa. Altamente coeso: Excelente. Baixa coesão: Problemas 14/08/2012 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

  9. Respostas aula anterior 2 – O que é acoplamento ? R - Acoplamento é uma medida da interconexão entre módulos numa estrutura de software. O acoplamento depende da complexidade da interface entre módulos, do ponto em que é feita entrada ou referência a um módulo e que dados passam através da interface. 14/08/2012 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

  10. Respostas aula anterior 3 – Quais os tipos de coesão ? R - Coesão coincidental Há nenhuma (ou pouca) relação construtiva entre  os elementos de um módulo  No linguajar OO Um objeto não representa nenhum conceito OO  Uma coleção de código comumente usado e herdado através de herança (provavelmente múltipla)  14/08/2012 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

  11. Respostas aula anterior 3 – Quais os tipos de coesão ? – cont. R - Coesão lógica  Um módulo faz um conjunto de funções relacionadas, uma das quais é escolhida através de um parâmetro ao chamar o módulo. Semelhante a acoplamento de controle  14/08/2012 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

  12. Respostas aula anterior 3 – Quais os tipos de coesão ? Cont. R - Coesão temporal Elementos estão agrupados no mesmo módulo porque são processados no mesmo intervalo de tempo Exemplos comuns: Método de inicialização que provê valores defaults para um monte de coisas diferentes Método de finalização que limpa as coisas antes de terminar 14/08/2012 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

  13. Respostas aula anterior 3 – Quais os tipos de coesão ? Cont. R - Coesão Procedural Associa elementos de acordo com seus relacionamentos procedurais ou algorítmicos Um módulo procedural depende muito da aplicação sendo tratada Junto com a aplicação, o módulo parece razoável Sem este contexto, o módulo parece estranho e muito difícil de entender 14/08/2012 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

  14. Respostas aula anterior 3 – Quais os tipos de coesão ? Cont. R - Coesão Comunicação Todas as operações de um módulo operam no  mesmo conjunto de  dados e/ou produzem o mesmo tipo de dado de saída  14/08/2012 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

  15. Respostas aula anterior 3 – Quais os tipos de coesão ? Cont. R - Coesão Sequencial A saída de um elemento de um módulo serve de entrada para o próximo elemento  Coesão funcional (Melhor) Um módulo tem coesão funcional se as operações  do módulo puderem ser descritas numa única frase de forma coerente. 14/08/2012 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

  16. Respostas aula anterior 4 – Quais os tipos de acoplamento ? R – Acoplamento de Dados Ocorre quando: Saída de um objeto é a entrada de outro. Uso de parâmetros para passar itens entre os métodos Ocorrência comum: Objeto a passa objeto x para objeto b  Objeto x e b estão acoplados Uma mudança na interface de x pode implicar em  mudanças em ae b. 14/08/2012 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

  17. Respostas aula anterior 4 – Quais os tipos de acoplamento ? cont R – Acoplamento de Dadosinternos Um objeto altera os dados locais de um outro  objeto Ocorrência comum: Dados públicos, packagevisibility ou mesmo  protected em java 14/08/2012 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

  18. Respostas aula anterior 4 – Quais os tipos de acoplamento ? cont R – Acoplamento de dados globais Dois ou mais objetos compartilham estruturas de  dados globais  É um acoplamento muito ruim pois está escondido Uma chamada de método pode mudar um valor  global e o código não deixa isso aparente. 14/08/2012 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

  19. Respostas aula anterior 4– Quais os tipos de acoplamento ? cont R – Acoplamento de Controle Passar   flags   de   controle   entre   objetos   de   forma   que   um   objeto   controle   as   etapas   de processamento de outro objeto  Ocorrência comum: • Objeto a manda uma mensagem para objeto b  • b usa um parâmetro da mensagem para decidir o que fazer  14/08/2012 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

  20. Respostas aula anterior 5 - Quais as vantagens em aumentar a coesão  e diminuir o acoplamento entre os módulos de  Um sistema? • Servir de métrica para avaliação da independência funcional de um software. • Facilitar desenvolvimento, reuso de código, extensibilidade, facilitar manutenção, garantir qualidade do software entre outras. 14/08/2012 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

  21. Bibliografia 21/08/2012 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

More Related