TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana 09 1 14/08/2012 Professor Leomir J. Borba-

Slides:



Advertisements
Apresentações semelhantes
Boas Práticas Adotadas em um Projeto de Design de Testes – Um relato de experiência
Advertisements

Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
CIÊNCIA DA COMPUTAÇÃO DESENVOLVIMENTO DE SISTEMAS Aula 11
05/08/2011 Professor Leomir J. Borba- –
CIÊNCIA DA COMPUTAÇÃO DESENVOLVIMENTO DE SISTEMAS Aula 10
CIÊNCIA DA COMPUTAÇÃO DESENVOLVIMENTO DE SISTEMAS Aula 9
15/1/2014 Professor Leomir J. Borba- – CIÊNCIA DA COMPUTAÇÃO DESENVOLVIMENTO DE SISTEMAS.
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
CIÊNCIA DA COMPUTAÇÃO DESENVOLVIMENTO DE SISTEMAS Aula 9
CIÊNCIA DA COMPUTAÇÃO DESENVOLVIMENTO DE SISTEMAS Aula 7
14/08/2012 Professor Leomir J. Borba- –
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
CIÊNCIA DA COMPUTAÇÃO DESENVOLVIMENTO DE SISTEMAS Aula 12
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Métricas de Software Prof.ª Adriana dos Santos Caparróz Carvalho.
Projeto conceitual Mostra ao cliente exatamente o que o sistema fará
Projeto 1.
Engenharia de Software
Orientação por Objectos > Modelo de Processo OO > Identificação de Classe e Objectos Aula 12.
João Carlos Porto Orientadora: Prof.ª Dr.ª Junia Coutinho Anacleto 26/03/2010 Projeto de interceo.
Professora: Aline Vasconcelos
Introdução ao paradigma de programação: Orientado a Objetos
ESTRUTURA DE COMUNICAÇÃO DE DADOS
Padrões para Atribuições de Responsabilidades
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Gerencia de Projeto OO Aspectos Avançados em Engenharia de Software Aula 5 Fernanda Campos DCC/UFJF.
Princípios e Conceitos de Software(v2)
Classes e objetos P. O. O. Prof. Grace.
Copyright Marcos L. Chaim 2005 Princípios de Projeto de Software Orientado a Objetos Segundo Semestre 2005 Marcos L. Chaim ACH Turma 02 EACH – USP.
Polimorfismo em C#.
Conceitos.
Sistemas Distribuídos
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Fabíola Guerra Nakamura Vitor Alcântara Batista
SISTEMAS DISTRIBUIDOS Aula 4
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Engenharia de Software
Técnicas e Projeto de Sistemas
Integração de Ferramentas CASE
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Aula /08/2012 Professor Leomir J. Borba-
Tarciane Andrade Análise de Casos de Uso Tarciane Andrade
Engenharia de Software
Introdução a Orientação a Objetos
Introdução à modelagem orientada a objetos
. O que é um BOM módulo de software? Aquele que atende as MODIFICAÇÕES MÓDULO de software. Para PE : CUSTO MÍNIMO SEGURANÇA MÁXIMA 33.
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Aula /08/2012 Professor Leomir J. Borba-
TECNOLOGIA EM REDES DE COMPUTADORES Algoritmos e programação de computadores Aula /08/2011 Professor Leomir J. Borba-
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana /08/2012 Professor Leomir J. Borba-
SUPERIOR EM SISTEMAS DE INFORMAÇÃO REDES DE COMPUTADORES E TELECOMUNICAÇÕES Aula /08/2014 Professor Leomir J. Borba- –
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Aula /08/2011 Professor Leomir J. Borba-
ENGENHARIA CIVIL COMPUTAÇÃO APLICADA Aula /08/2011 Professor Leomir J. Borba- –
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula /08/2011 Professor Leomir J. Borba-
Engenharia de Software
Linguagem de Programação I Parte IV
Módulo II Capítulo 1: Orientação a Objetos
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
13/10/20151 CIÊNCIA DA COMPUTAÇÃO DESENVOLVIMENTO DE SISTEMAS Aula 11 Professor Leomir J. Borba- –
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Aula /08/2011 Professor Leomir J. Borba-
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LINGUAGEM DE PROGRAMAÇÃO I Aula /08/2011 Professor Leomir J. Borba-
TÉCNICAS DE ESTIMATIVAS
Projeto de Arquitetura de Software
Módulo I Capítulo 7: Funções e Procedimentos William Ivanski Curso de Programação C#
18/1/2016 Professor Leomir J. Borba- – CIÊNCIA DA COMPUTAÇÃO DESENVOLVIMENTO DE SISTEMAS.
Engenharia de Controle e Automação Computação Para Engenharia Semana /08/2011 Professor Leomir J. Borba- –
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
1 Especificação de Sistemas de Software e a UML. 2 Modelagem de sistema A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema.
CIn-UFPE1 Análise e Projeto de Sistemas Introdução ao Projeto de Software.
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Aula /08/2012 Professor Leomir J. Borba-
Transcrição da apresentação:

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana /08/2012 Professor Leomir J. Borba- –

Agenda  Independência Funcional – Complementação – Abstração – Refinamento  Respostas aula Anterior 2 14/08/2012 Professor Leomir J. Borba- –

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). 3 14/08/2012 Professor Leomir J. Borba- –

Independência Funcional  Dito 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. 4 14/08/2012 Professor Leomir J. Borba- –

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. 5 14/08/2012 Professor Leomir J. Borba- –

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 6 14/08/2012 Professor Leomir J. Borba- –

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. 7 14/08/2012 Professor Leomir J. Borba- –

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 8 14/08/2012 Professor Leomir J. Borba- –

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. 9 14/08/2012 Professor Leomir J. Borba- –

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 herdad o através de herança (provavelmente múltipla) 10 14/08/2012 Professor Leomir J. Borba- –

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 relacion adas, uma das quais é escolhida através de um parâmetro ao chamar o módulo. Semelhante a acoplamento de controle 11 14/08/2012 Professor Leomir J. Borba- –

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 12 14/08/2012 Professor Leomir J. Borba- –

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 13 14/08/2012 Professor Leomir J. Borba- –

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 14/08/2012 Professor Leomir J. Borba- –

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 /08/2012 Professor Leomir J. Borba- –

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 a e b /08/2012 Professor Leomir J. Borba- –

Respostas aula anterior 4 – Quais os tipos de acoplamento ? cont R – Acoplamento de Dados internos Um objeto altera os dados locais de um outro objeto Ocorrência comum: Dados públicos, package visibility ou mesmo protected em java 17 14/08/2012 Professor Leomir J. Borba- –

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 /08/2012 Professor Leomir J. Borba- –

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 19 14/08/2012 Professor Leomir J. Borba- –

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 /08/2012 Professor Leomir J. Borba- –

Bibliografia 21/08/2012 Professor Leomir J. Borba- – 21 BIBLIOGRAFIA BÁSICA 1 PAULA FILHO, W. P. Engenharia de Software. Rio de Janeiro: LTC Brigadeiro P3249e 3. ed. e , Central P3249e 3. ed. e , Morumbi P3249e 3. ed TONSIG. S. L. Engenharia de Software – Análise e Projeto de Sistemas. 2ª Edição. Rio de Janeiro: Ciência Moderna, – Morumbi T666e 2. ed. e , Central T666e 2. ed. e Mike Cohn. Desenvolvimento de software com Scrum - Aplicando métodos ágeis com sucesso. 1 Bookman 2011 ISBN / Eudes Diônatas Silva Souza(11720) NÃO TEM BIBLIOGRAFIA COMPLEMENTAR 1 ARAUJO, L. LIMA. C. A. UML Aplicada – Da teoria à implementação. 1ª Ed. Rio de Janeiro: Ciência Moderna, LARMAN, Craig. Utilizando UML e Padrões. 3ª Edição. Porto Alegre: Bookman, EMPRESTADO 3 MELO, Ana Cristina. Desenvolvendo Aplicações com UML ª Edição. São Paulo: Brasport, Pressman, Roger S., Engenharia de Software: Uma Abordagem Profissional”, 7ª edição, Ed. McGraw-Hill, ISBN , Central P9357e 7. ed. e