Carregar apresentação
A apresentação está carregando. Por favor, espere
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.