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

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

CIn-UFPE1 Análise e Projeto de Sistemas Introdução ao Projeto de Software.

Apresentações semelhantes


Apresentação em tema: "CIn-UFPE1 Análise e Projeto de Sistemas Introdução ao Projeto de Software."— Transcrição da apresentação:

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


Carregar ppt "CIn-UFPE1 Análise e Projeto de Sistemas Introdução ao Projeto de Software."

Apresentações semelhantes


Anúncios Google