1 / 30

Engenharia de Software

Engenharia de Software. Projeto de Software. Projeto de Software. Derivando uma solução que satisfaz os requisitos de software. Características do Processo de Projeto. Processo criativo Aprendizado Prática Experiência Estudo de Exemplos. Estágios de Projeto. Entender o problema

almira
Download Presentation

Engenharia de Software

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. 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

  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

  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 • 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 • 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 • 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

More Related