A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Engenharia de Software

Apresentações semelhantes


Apresentação em tema: "Engenharia de Software"— Transcrição da apresentação:

1 Engenharia de Software
Projeto de Software Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

2 Projeto de Software Derivando uma solução que satisfaz os requisitos de software Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho 1

3 Características do Processo de Projeto
Processo criativo Aprendizado Prática Experiência Estudo de Exemplos Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

4 Estágios de Projeto Entender o problema
Olhar para o problema de diferente ângulos Descobrir os requisitos de projeto Identificar uma ou mais soluções Avaliar possíveis soluções Escolher a mais apropriada Descrever as abstrações da solução Usar notações gráficas ou descritivas para especificar os componentes do projeto Repetir este processo para cada abstração identificada até o projeto estar expresso em termos primitivos Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

5 Processo de Projeto Qualquer projeto pode ser modelado como um grafo direcionado Nós: entidades Processos Funções Tipos Arestas: relacionamentos Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

6 Refinamento de um Projeto
O sistema é projetado iterativamente em diferentes níveis de abstração Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

7 Fases do Processo de Projeto
A separação entre fases não é bem definida Identificação útil por questões de gerenciamento Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

8 Fases do Processo de Projeto
Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

9 Fases do Processo de Projeto
Projeto de arquitetura: Identifica sub-sistemas Especificação abstrata: Especifica sub-sistemas Projeto de interface: Descreve as interfaces dos sub-sistemas Projeto de componente: Decompõe sub-sistemas em componentes Projeto de estrutura de dados: Projeta estrutura de dados para armazenar os dados do problema Projeto de algoritmos: Descreve os algoritmos a serem usados na solução do problema Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

10 Projeto Top-down Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho

11 Projeto Top-down Na prática, o projeto de grande sistemas nunca é verdadeiramente top-down. Os projetistas reutilizam experiência (e componentes) Orientação a objetos Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

12 Métodos Estruturados de Projeto
Características Notações para expressar o projeto Diretrizes para criar e avaliar um projeto Exemplos Projeto Estruturado (Yourdon) JSD (Jackson Method) Booch, OMT, UML/RUP Vantagens Ferramentas CASE Documentação padronizada Redução de custo Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

13 Modelos dos Métodos Estruturados
Modelo de fluxo de dados Transformação de dados Modelo entidade-relacionamento Estrutura lógica dos dados Modelo estrutural Componentes do sistema e suas interações Se o método for orientado a objetos Modelo de herança e composição de objetos Complementos: diagrama de estados, dicionário de dados, ... Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

14 Deficiências dos métodos estruturados
Existem diretrizes e não métodos no sentido matemático. Projetistas diferentes criam projetos bastante diferentes Não ajudam muito com a parte inicial, fase criativa do projeto. Em vez disso, ajudam ao projetista a estruturar e documentar as suas idéias de projeto Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho 13

15 Notações para Descrição de Projeto
Notações gráficas. Usadas para mostrar os relacionamentos dos componentes. Linguagens de descrição de programa. Baseadas em linguagens de programação, porém com mais flexibilidade para representar conceitos abstratos. Texto informal. Descrição em linguagem natural. Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

16 Estratégias de Projeto
Projeto Funcional Decomposição do sistema em componentes funcionais O estado do sistema é centralizado e compartilhado entre as funções Projeto Orientado a Objetos O sistema é visto como uma coleção de objetos que interagem O estado do sistema é descentralizado Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

17 Estratégia de Projeto Qual a melhor?
As abordagens orientada a objeto e funcional são complementares Bons engenheiros de software selecionam a abordagem mais apropriada para o sistema ou fase do processo em questão Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

18 Qualidade de Projeto Propriedade indefinível que depende das prioridades específicas da organização Os atributos discutidos aqui estão relacionados com a manutenção de um projeto Características de qualidade são igualmente aplicáveis a projetos orientados a objeto ou a função Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

19 Coesão Medida da proximidade das partes de um sub-componente
Um componente deve implementar uma única entidade lógica ou função Importância Quando uma mudança tiver que ser feita, ela será localizada Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

20 Níveis de Coesão Coesão casual Associação lógica Coesão temporal
As partes de um componente não são relacionadas Associação lógica Componentes que executam funções similares são agrupados Coesão temporal Componentes que são ativados na mesma hora são agrupados Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

21 Níveis de Coesão Coesão procedural Coesão de comunicação
Componentes que fazem parte de uma única seqüência de controle são agrupados Coesão de comunicação Componentes que operam na mesma entrada ou produzem a mesma saída são agrupados Coesão seqüencial A saída de uma parte de um componente é a entrada de outra parte Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

22 Níveis de Coesão Coesão funcional Coesão objeto
Cada parte de um componente é necessária para execução de uma única função Coesão objeto Cada operação provê funcionalidade que permite que atributos de um objeto sejam modificados ou inspecionados Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

23 Acoplamento Medida da força das interconexões entre componentes do sistema Importância Baixo acoplamento implica que mudanças em um componente dificilmente afetará outros componentes Cuidados Variáveis compartilhadas Troca de informações de controle Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

24 Acoplamento Forte Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho

25 Acoplamento Baixo Faculdade 7 de Setembro – Sistemas de Informação
Engenharia de Software – Prof. Ciro Coelho

26 Níveis de Acoplamento Sem acoplamento
Acoplamento de dados: passagem de dados simples Acoplamento de controle Passagem de informação de controle Acoplamento externo Dependência de dispositivos e protocolos Acesso a dados globais Acoplamento de conteúdo Uso de informações em outro módulo Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

27 Entendimento Relacionado a várias características do componente
Coesão. Pode um componente ser entendido isoladamente? Nomes. São usados nomes que fazem sentido? Documentação. O projeto está bem documentado? Complexidade. Algoritmos complexos são utilizados? Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

28 Adaptabilidade Medida da facilidade de mudança dos componentes
Fatores relevantes Componentes fracamente acoplados Componentes fortemente coesos Boa documentação Programas legíveis Correspondência óbvia entre os vários níveis de projeto Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

29 Pontos Principais Projeto é um processo criativo
Atividades de projeto incluem Projeto de arquitetura Especificação de sistema Projeto de interface Projeto de componente Projeto de estrutura de dados Projeto de algoritmos Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho

30 Pontos Principais Decomposição funcional considera o sistema como um conjunto de unidades funcionais Orientação a objeto considera o sistema como uma coleção de objetos Projetistas devem procurar produzir sistemas Fortemente coesos Fracamente acoplados Faculdade 7 de Setembro – Sistemas de Informação Engenharia de Software – Prof. Ciro Coelho


Carregar ppt "Engenharia de Software"

Apresentações semelhantes


Anúncios Google