TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana 09
description
Transcript of TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana 09
![Page 1: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana 09](https://reader035.fdocumentos.com/reader035/viewer/2022062519/56814df4550346895dbb616a/html5/thumbnails/1.jpg)
1
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS
ANÁLISE E PROJETO DE SISTEMAS
Semana 09
14/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
![Page 2: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana 09](https://reader035.fdocumentos.com/reader035/viewer/2022062519/56814df4550346895dbb616a/html5/thumbnails/2.jpg)
2
AgendaIndependência Funcional – Complementação– Abstração – Refinamento
Respostas aula Anterior
14/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
![Page 3: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana 09](https://reader035.fdocumentos.com/reader035/viewer/2022062519/56814df4550346895dbb616a/html5/thumbnails/3.jpg)
3
Independência FuncionalO 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- [email protected] –http://professorleomir.wordpress.com
![Page 4: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana 09](https://reader035.fdocumentos.com/reader035/viewer/2022062519/56814df4550346895dbb616a/html5/thumbnails/4.jpg)
4
Independência FuncionalDito de outro modo, queremos projetar software de
maneira que cada módulo cuide de uma sub-função especí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- [email protected] –http://professorleomir.wordpress.com
![Page 5: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana 09](https://reader035.fdocumentos.com/reader035/viewer/2022062519/56814df4550346895dbb616a/html5/thumbnails/5.jpg)
5
Independência FuncionalPara 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- [email protected] –http://professorleomir.wordpress.com
![Page 6: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana 09](https://reader035.fdocumentos.com/reader035/viewer/2022062519/56814df4550346895dbb616a/html5/thumbnails/6.jpg)
6
COESÃOUm 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- [email protected] –http://professorleomir.wordpress.com
![Page 7: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana 09](https://reader035.fdocumentos.com/reader035/viewer/2022062519/56814df4550346895dbb616a/html5/thumbnails/7.jpg)
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- [email protected] –http://professorleomir.wordpress.com
![Page 8: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana 09](https://reader035.fdocumentos.com/reader035/viewer/2022062519/56814df4550346895dbb616a/html5/thumbnails/8.jpg)
8
Respostas aula anterior1 – 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- [email protected] –http://professorleomir.wordpress.com
![Page 9: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana 09](https://reader035.fdocumentos.com/reader035/viewer/2022062519/56814df4550346895dbb616a/html5/thumbnails/9.jpg)
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- [email protected] –http://professorleomir.wordpress.com
![Page 10: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana 09](https://reader035.fdocumentos.com/reader035/viewer/2022062519/56814df4550346895dbb616a/html5/thumbnails/10.jpg)
10
Respostas aula anterior3 – Quais os tipos de coesão ?R - Coesão coincidentalHá nenhuma (ou pouca) relação construtiva entre os elementos de um módulo No linguajar OOUm 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- [email protected] –http://professorleomir.wordpress.com
![Page 11: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana 09](https://reader035.fdocumentos.com/reader035/viewer/2022062519/56814df4550346895dbb616a/html5/thumbnails/11.jpg)
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- [email protected] –http://professorleomir.wordpress.com
![Page 12: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana 09](https://reader035.fdocumentos.com/reader035/viewer/2022062519/56814df4550346895dbb616a/html5/thumbnails/12.jpg)
12
Respostas aula anterior3 – 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- [email protected] –http://professorleomir.wordpress.com
![Page 13: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana 09](https://reader035.fdocumentos.com/reader035/viewer/2022062519/56814df4550346895dbb616a/html5/thumbnails/13.jpg)
13
Respostas aula anterior3 – 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 tratadaJunto 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- [email protected] –http://professorleomir.wordpress.com
![Page 14: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana 09](https://reader035.fdocumentos.com/reader035/viewer/2022062519/56814df4550346895dbb616a/html5/thumbnails/14.jpg)
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- [email protected] –http://professorleomir.wordpress.com
![Page 15: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana 09](https://reader035.fdocumentos.com/reader035/viewer/2022062519/56814df4550346895dbb616a/html5/thumbnails/15.jpg)
15
Respostas aula anterior3 – 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 únicafrase de forma coerente.
14/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
![Page 16: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana 09](https://reader035.fdocumentos.com/reader035/viewer/2022062519/56814df4550346895dbb616a/html5/thumbnails/16.jpg)
16
Respostas aula anterior4 – 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 acopladosUma mudança na interface de x pode implicar em mudanças em a e b .
14/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
![Page 17: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana 09](https://reader035.fdocumentos.com/reader035/viewer/2022062519/56814df4550346895dbb616a/html5/thumbnails/17.jpg)
17
Respostas aula anterior
4 – Quais os tipos de acoplamento ? contR – Acoplamento de Dados internosUm objeto altera os dados locais de um outro objeto Ocorrência comum:Dados públicos, package visibility ou mesmo protected em java
14/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
![Page 18: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana 09](https://reader035.fdocumentos.com/reader035/viewer/2022062519/56814df4550346895dbb616a/html5/thumbnails/18.jpg)
18
Respostas aula anterior
4 – Quais os tipos de acoplamento ? contR – Acoplamento de dados globaisDois ou mais objetos compartilham estruturas de dados globais É um acoplamento muito ruim pois está escondidoUma 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- [email protected] –http://professorleomir.wordpress.com
![Page 19: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana 09](https://reader035.fdocumentos.com/reader035/viewer/2022062519/56814df4550346895dbb616a/html5/thumbnails/19.jpg)
19
Respostas aula anterior4– Quais os tipos de acoplamento ? contR – Acoplamento de ControlePassar 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 f
azer 14/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
![Page 20: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana 09](https://reader035.fdocumentos.com/reader035/viewer/2022062519/56814df4550346895dbb616a/html5/thumbnails/20.jpg)
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- [email protected] –http://professorleomir.wordpress.com
![Page 21: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana 09](https://reader035.fdocumentos.com/reader035/viewer/2022062519/56814df4550346895dbb616a/html5/thumbnails/21.jpg)
21
Bibliografia
21/08/2012 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
BIBLIOGRAFIA BÁSICA
1PAULA FILHO, W. P. Engenharia de Software. Rio de Janeiro: LTC. 2009. Brigadeiro 005.1 P3249e 3. ed. e.3 112487, Central 005.1 P3249e 3. ed. e.5 112489, Morumbi 005.1 P3249e 3. ed. 112485
2TONSIG. S. L. Engenharia de Software – Análise e Projeto de Sistemas. 2ª Edição. Rio de Janeiro: Ciência Moderna, 2008. – Morumbi 005.1 T666e 2. ed. e.4 117660, Central 005.1 T666e 2. ed. e.4 117660
3Mike Cohn. Desenvolvimento de software com Scrum - Aplicando métodos ágeis com sucesso. 1 Bookman 2011 ISBN 9788577808076 / Eudes Diônatas Silva Souza(11720) NÃO TEM
BIBLIOGRAFIA COMPLEMENTAR
1ARAUJO, L. LIMA. C. A. UML Aplicada – Da teoria à implementação. 1ª Ed. Rio de Janeiro: Ciência Moderna, 2007.
2LARMAN, Craig. Utilizando UML e Padrões. 3ª Edição. Porto Alegre: Bookman, 2007.EMPRESTADO
3 MELO, Ana Cristina. Desenvolvendo Aplicações com UML 2.2. 1ª Edição. São Paulo: Brasport, 2011.
4Pressman, Roger S., Engenharia de Software: Uma Abordagem Profissional”, 7ª edição, Ed. McGraw-Hill, ISBN 9788563308337, 2011. Central 005.1 P9357e 7. ed. e.2 115810