Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouRicardo Valdomiro Bento Anjos Alterado mais de 8 anos atrás
1
CIn-UFPE1 Análise e Projeto de Sistemas Introdução ao Projeto de Software
2
CIn-UFPE2 Projeto de Software n Derivando uma solução que satisfaz os requisitos do software
3
CIn-UFPE3 Objetivos n Discutir as diferenças entre Análise e Projeto n Introduzir o processo de projeto de software n Descrever os diferentes estágios deste processo n Discutir as estratégias de projeto de software funcional e orientada a objeto n Discutir alguns atributos de qualidade de projeto de software
4
CIn-UFPE4 Análise x Projeto n Na Análise, investigamos o problema e descobrimos O QUE precisa estar no novo sistema n Durante o Projeto determinamos COMO isto será feito n Durante o projeto planejamos a estrutura do sistema que será implementado n O projeto oferece uma ponte entre a Análise e a Implementação
5
CIn-UFPE5 Características do Projeto de Software n Processo criativo n Baseado no aprendizado Prática Experiência Estudo de Exemplos n Deriva uma solução que satisfaz os requisitos de software n Influenciado pela implementação computacional n Deve incluir detalhes (baixo nível) que foram ignorados no modelo de análise
6
CIn-UFPE6 Definição de Projeto de Software “Após a análise do problema, você deve decidir a abordagem do projeto. O projeto do sistema é uma estratégia de alto nível para resolução de problemas e construções de soluções. O projeto do sistema inclui decisões sobre a organização do sistema em termos de subsistemas, a evolução de subsistemas para componentes de software e hardware, bem como as principais decisões conceituais e políticas.” [Rumbaugh]
7
CIn-UFPE7 Principais Estágios de Projeto n Entender o problema Olhar para o problema por diferentes ângulos Descobrir os requisitos de projeto n Identificar uma ou mais soluções Avaliar possíveis soluções Escolher a mais apropriada n 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
8
CIn-UFPE8 Refinamento de Projeto O sistema é projetado iterativamente em diferentes níveis de abstração Informal Informal design More formal design Finished outline
9
CIn-UFPE9 Fases do Processo de Projeto
10
CIn-UFPE10 Fases do Processo de Projeto n Projeto de arquitetura: Identifica sub-sistemas n Especificação abstrata: Para cada sub-sistema, é produzida uma especificação abstrata de suas funções e das restrições dentro das quais deve operar. n Projeto de interface: Descreve as interfaces entre sub-sistemas n Projeto de componentes: Decompõe sub-sistemas em componentes individuais para se ajustar à arquitetura n Projeto de estrutura de dados: Projeta estrutura de dados para armazenar os dados do sistema n Projeto de algoritmos: Descreve os algoritmos a serem usados na solução do problema
11
CIn-UFPE11 Notações para Descrição de Projeto n Notações gráficas: Usadas para mostrar os relacionamentos entre os componentes. n Linguagens de descrição de programa: Baseadas em linguagens de programação, porém com mais flexibilidade para representar conceitos abstratos. n Texto informal: Descrição em linguagem natural.
12
CIn-UFPE12 Notações Gráficas para Modelagem de Projeto n Qualquer projeto pode ser modelado como um grafo direcionado Nós: entidades èProcessos èFunções èTipos Arestas: relacionamentos
13
CIn-UFPE13 Métodos Estruturados de Projeto n Características Notações para expressar o projeto Diretrizes para criar e avaliar um projeto n Exemplos Projeto Estruturado (Yourdon) JSD (Jackson Method) Booch, OMT, UML + RUP n Vantagens Suporte de Ferramentas CASE Documentação padronizada Redução de custo (treinamento, manutenção)
14
CIn-UFPE14 Tipos de Modelos nos Métodos Estruturados n Modelo de fluxo de dados: transformação de dados n Modelo estrutural: componentes do sistema e suas interações Modelo entidade-relacionamento: estrutura lógica dos dados Modelo de herança e composição de objetos, se o método for orientado a objetos n Modelos complementares: diagrama de estados, dicionário de dados,...
15
CIn-UFPE15 Deficiências dos Métodos Estruturados n Existem diretrizes e não métodos no sentido matemático. Projetistas diferentes criam projetos bastante diferentes n 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
16
CIn-UFPE16 Projeto Top-down x Bottom-up
17
CIn-UFPE17 Projeto Top-down x Bottom-up n Na prática, o projeto de grandes sistemas nunca é verdadeiramente top-down. Os projetistas reutilizam experiência (e componentes) èEx: Orientação a objetos
18
CIn-UFPE18 Principais Estratégias de Projeto n Projeto Funcional (Imperativo) Decomposição do sistema em componentes funcionais O estado do sistema é centralizado e compartilhado entre as funções n Projeto Orientado a Objetos O sistema é visto como uma coleção de objetos que interagem O estado do sistema é descentralizado Pode existir uma considerável sobreposição entre os modelos de análise e de projeto. èNa prática muitas porções do modelo de análise podem ser facilmente implementadas (sem alteração)
19
CIn-UFPE19 Visão Funcional de um Compilador
20
CIn-UFPE20 Visão Orientada a Objetos de um Compilador
21
CIn-UFPE21 Aspectos que requerem atenção num projeto OO n Incluir classes para manipular a interface com o usuário a interface com outros sistemas o armazenamento de dados toda a coordenação das outras classes n Reuso Uso de Padrões de projeto Componentes comprados de fornecedores Atribuição de responsabilidades: se a decisão é errada menos classes serão reusáveis
22
CIn-UFPE22 Estratégias de Projeto - Qual a melhor? n As abordagens orientada a objeto e funcional são complementares n Bons engenheiros de software selecionam a abordagem mais apropriada para o sistema ou fase do processo em questão
23
CIn-UFPE23 Atributos de Qualidade de Projeto n A qualidade é uma propriedade indefinível que depende das prioridades específicas da organização n Características de qualidade são igualmente aplicáveis a projetos orientados a objeto ou a função n Os atributos discutidos aqui estão relacionados com a manutenção de um projeto
24
CIn-UFPE24 Coesão n Medida da proximidade das partes de um sub- componente n Um componente deve implementar uma única entidade lógica ou função n Importância Quando uma mudança tiver que ser feita, ela será localizada
25
CIn-UFPE25 Níveis de Coesão n Coesão casual As partes de um componente não são relacionadas n Coesão lógica Componentes que executam funções similares são agrupados n Coesão temporal Componentes que são ativados na mesma hora são agrupados
26
CIn-UFPE26 Níveis de Coesão n Coesão procedural Componentes que fazem parte de uma única seqüência de controle são agrupados n Coesão de comunicação Componentes que operam na mesma entrada ou produzem a mesma saída são agrupados n Coesão seqüencial A saída de uma parte de um componente é a entrada de outra parte
27
CIn-UFPE27 Níveis de Coesão n Coesão funcional Cada parte de um componente é necessária para execução de uma única função n Coesão objeto Cada operação provê funcionalidade que permite que atributos de um objeto sejam modificados ou inspecionados
28
CIn-UFPE28 Coesão em Orientação a Objetos n Herança de atributos de uma superclasse enfraquece a coesão Para entender um componente, a superclasse e também o componente precisam ser examinados
29
CIn-UFPE29 n Medida da força das interconexões entre componentes do sistema n Importância Baixo acoplamento implica que mudanças em um componente dificilmente afetarão outros componentes n Cuidado com variáveis compartilhadas! Acoplamento
30
CIn-UFPE30 Acoplamento Forte
31
CIn-UFPE31 Acoplamento Fraco
32
CIn-UFPE32 Níveis de Acoplamento n Sem acoplamento n Acoplamento de dados: passagem de dados simples n Acoplamento de controle Passagem de informação de controle n Acoplamento externo Dependência de dispositivos e protocolos Acesso a dados globais n Acoplamento de conteúdo Uso de informações em outro módulo
33
CIn-UFPE33 n Sistemas orientados a objeto são fracamente acoplados Geralmente não compartilham estado A comunicação é feita através de passagem de mensagens n Uma classe está acoplada à sua superclasse Mudanças nos atributos ou operações na superclasse se propagam a todas as subclasses. Acoplamento em Orientação a Objetos
34
CIn-UFPE34 n 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? Entendimento
35
CIn-UFPE35 n Medida da facilidade de mudança nos componentes n Fatores relevantes Componentes fracamente acoplados Componentes fortemente coesos Boa documentação Programas legíveis Adaptabilidade
36
CIn-UFPE36 n Herança aumenta a adaptabilidade Componentes podem ser adaptados sem mudanças através da definição de uma subclasse que é efetivamente modificada. n Por outro lado, O aumento da profundidade da hierarquia a torna mais complexa Adaptabilidade em Orientação a Objetos
37
CIn-UFPE37 Fatores que Influenciam o Projeto n Funcionalidade n Eficiência - tempo de resposta, tempo total de execução, armazenamento, hardware n Portabilidade - funcionar em novas plataformas n Segurança n Disponibilidade - disponível quando requerido n Robustez n Genericidade n Usabilidade n Reusabilidade
38
CIn-UFPE38 Compromissos de Projeto n É impossível alcançar todos os objetivos Ex: Performance X Custo èsistemas mais rápidos --> custos mais altos: é preciso definir prioridades Usabilidade X Performance X Custo, ex. GUIs èMelhor aceitação do usuário --> Maior tempo de desenvolvimento --> Performance reduzida --> Maior custo de hardware
39
CIn-UFPE39 Compromissos de Projeto n Projeto acontece no contexto do mundo real n Portanto, deve levar em consideração: Investimento ècustos de projeto e execução Prazos èbom projeto leva mais tempo para executar e implementar èOs resultados obtidos a partir do sistema implementado devem acontecer na data apropriada (ex: Y2K) Integração com outros sistemas Habilidades èda equipe de projeto e usuários Padrões èinternos e externos
40
CIn-UFPE40 Medindo Eficiência do Projeto n Sucesso deve ser mostrado em termos de objetivos mensuráveis Funcionalidade - presente ou ausente Eficiência ètempo de resposta Portabilidade èafetada pela linguagem, padrões de codificação e documentação do programa
41
CIn-UFPE41 n Disponibilidade ex. Sistema funcionando 98% do tempo. n Robustez ex. 90% das falhas são recuperadas em uma hora n Usabilidade tempo para aprender a usar o sistema freqüência de erros tempo para recuperar de erros específicos tempo para reaprender o sistema depois de um período sem usá- lo atitude e satisfação do usuário (questionário) Medindo Eficiência do Projeto
42
CIn-UFPE42 n Projeto é um processo criativo n Atividades de projeto incluem Projeto de arquitetura Especificação de sistema Projeto de interface Projeto de componentes Projeto de estrutura de dados Projeto de algoritmos Pontos Principais
43
CIn-UFPE43 Pontos Principais n Decomposição funcional considera o sistema como um conjunto de unidades funcionais n Orientação a objeto considera o sistema como uma coleção de objetos n Projetistas devem procurar produzir sistemas Fortemente coesos Fracamente acoplados
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.