1 / 56

Engenharia de Software

Engenharia de Software. Produção de Software. 1- Instruções Passos que, em execução, produzem a função e o desempenho desejados. 2 - Estruturas de Dados Armazenamento e manipulação adequada da informação necessária às instrução. 3 - Documentos Descrição da operação e do uso dos programas.

oren-brock
Télécharger la présentation

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

  2. Produção de Software 1- Instruções Passos que, em execução, produzem a função e o desempenho desejados. 2 - Estruturas de Dados Armazenamento e manipulação adequada da informação necessária às instrução. 3 - Documentos Descrição da operação e do uso dos programas.

  3. Características do Software 1. Projetado. 2. Não se desgasta mas se deteriora. 3. Demanda exigem, em grande parte das vezes, elaboração sob medida.

  4. Engenharia de Software • Conceito: • É uma das áreas da Engenharia que trata dos aspectos de produção de software. • Engenharia de software envolve a aplicação prática de conhecimento científico para o projeto e construção de programas de computador e a documentação associada necessária para desenvolvê-los, operá-los e mantê-los. (Boehm)

  5. Engenharia de Software • Objetivo: • O seu objetivo é estabelecer uma sistemática abordagem de desenvolvimento, através de ferramentas e técnicas apropriadas, dependendo do problema a ser abordado, considerando restrições e recursos disponíveis.

  6. Engenharia de Software • Fundamentos: • Métodos: detalhes de como fazer para construir o software • Ferramentas: suporte automatizado aos métodos • Procedimentos: ligação entre os métodos e ferramentas • Principais metas: • melhorar a qualidade de produtos de software • aumentar a produtividade do pessoal técnico • aumentar a satisfação do cliente.

  7. Ciclo de vida • O Ciclo de vida do produto de software = Etapas • Começa na concepção do problema (solicitação do usuário). • Termina quando o sistema sai de uso.

  8. Ciclo de vida - Modelos • Alguns modelos de ciclos de vida mais conhecidos são: • Clássico: Cascata • Evolutivo: Prototipação • Modelo Espiral

  9. Ciclo de Vida Clássico (Cascata) • modelo mais antigo e o mais amplamente usado da engenharia de software • modelado em função do ciclo da engenharia convencional • requer uma abordagem sistemática, seqüencial ao desenvolvimento de software

  10. Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção Cascata

  11. Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção Atividades do Ciclo de Vida Clássico ANÁLISE E ENGENHARIA DE SISTEMAS  envolve a coleta de requisitos em nível do sistema, pequena quantidade de projeto e análise de alto nível  visão essencial quando o software deve fazer interface com outros elementos (hardware, pessoas e banco de dados)

  12. Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção Atividades do Ciclo de Vida Clássico ANÁLISE DE REQUISITOS DE SOFTWARE  processo de coleta dos requisitos é intensificado e concentrado especificamente no software  deve-se compreender o domínio da informação, a função, desempenho e interfaces exigidos  os requisitos (para o sistema e para o software) são documentados e revistos com o cliente

  13. Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção Atividades do Ciclo de Vida Clássico PROJETO  tradução dos requisitos do software para um conjunto de representações que podem ser avaliadas quanto à qualidade, antes que a codificação se inicie

  14. Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção Atividades do Ciclo de Vida Clássico CODIFICAÇÃO  tradução das representações do projeto para uma linguagem “artificial” resultando em instruções executáveis pelo computador

  15. Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção Atividades do Ciclo de Vida Clássico TESTES Concentram-se:  nos aspectos lógicos internos do software, garantindo que todas as instruções tenham sido testadas  nos aspectos funcionais externos, para descobrir erros e garantir que a entrada definida produza resultados que concordem com os esperados.

  16. Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção Atividades do Ciclo de Vida Clássico MANUTENÇÃO  o software poderá sofrer mudanças depois que for entregue ao cliente  causas das mudanças: erros, adaptação do software para acomodar mudanças em seu ambiente externo e exigência do cliente para acréscimos funcionais e de desempenho

  17. Prototipação • processo que possibilita que o desenvolvedor crie um modelo do software que deve ser construído. • idealmente, o modelo (protótipo) serve como um mecanismo para identificar os requisitos de software. • apropriado para quando o cliente definiu um conjunto de objetivos gerais para o software, mas não identificou requisitos de entrada, processamento e saída com detalhes.

  18. início fim obtençãodosrequisitos projetorápido construçãoproduto construçãoprotótipo refinamentoprotótipo avaliaçãoprotótipo Prototipação

  19. início fim obtenção dos requisitos projeto rápido construção produto construção protótipo refinamento protótipo avaliação protótipo Atividades da Prototipação Obtenção dos Requisitos:desenvolvedor e cliente definem os objetivos gerais do software, identificam quais requisitos são conhecidos e as áreas que necessitam de definições adicionais Projeto Rápido: representação dos aspectos do software que são visíveis ao usuário (abordagens de entrada e formatos de saída)

  20. início fim obtenção dos requisitos projeto rápido construção produto construção protótipo refinamento protótipo avaliação protótipo Atividades da Prototipação Construção Protótipo:implementação do projeto rápido Avaliação do Protótipo:cliente e desenvolvedor avaliam o protótipo

  21. início fim obtenção dos requisitos projeto rápido construção produto construção protótipo refinamento protótipo avaliação protótipo Atividades da Prototipação Refinamento dos Requisitos: cliente e desenvolvedor refinam os requisitos do software a ser desenvolvido. Ocorre neste ponto um processo de iteração que conduzirá a atividade até que as necessidades do cliente sejam satisfeitas e o desenvolvedor compreenda o que precisa ser feito.

  22. início fim obtenção dos requisitos projeto rápido construção produto construção protótipo refinamento protótipo avaliação protótipo Atividades da Prototipação Construção Produto: identificados os requisitos, o protótipo deve ser descartado e a versão de produção deve ser construída considerando os critérios de qualidade.

  23. Ciclo de Vida em Espiral • engloba as melhores características do ciclo de vida Clássico e da Prototipação, adicionando um novo elemento: a Análise de Risco • segue a abordagem de passos sistemáticos do Ciclo de Vida Clássico incorporando-os numa estruturaiterativaque reflete mais realisticamente o mundo real • usa a Prototipação, em qualquer etapa da evolução do produto, como mecanismo de redução de riscos

  24. planejamento análisedosriscos decisão de continuar ou não direção de um sistema concluído avaliaçãodocliente engenharia Espiral

  25. planejamento análisedos riscos avaliaçãodocliente engenharia Atividades do Ciclo de Vida em Espiral • Planejamento:determinação dos objetivos, alternativas e restrições • Análise de Risco:análise das alternativas e identificação / resolução dos riscos • Construção:desenvolvimento do produto no nível seguinte • Avaliação do Cliente:avaliação do produto e planejamento das novas fases

  26. Engenharia de SoftwareMetodologias

  27. Crise do Software (~1970) • Desenvolvimento de Software de forma “artesanal” através do desenho de telas e arquivos • Constantes erros de execução • Pouco tempo para coletar dados • Não cumprimento de prazos • Problemas de custos inesperados relacionados a correção de erros e adaptação do código • Código/documentação ilegível ou inexistente • Comunicação durante o desenvolvimento muito fraca • Falta de testes complexos • Insatisfação de usuários

  28. Surgimento das Metodologias de Desenvolvimento de Sistemas

  29. Técnica Enfoque Abordagem Análise Estruturada Processos e Dados Top-Down (Decomposição Funcional) Análise Essencial Controles, Processos e Dados Middle - Out (Lista de Eventos) Análise OO Dados, Controles e Processos Definição de Objetos Evolução

  30. Análise Estruturada • O mais amplamente usado dos métodos de modelagem de requisitos • Modelos que retratam fluxo e o conteúdo da informação (dados e controle) • O sistema é dividido em partições funcionais e comportamentais e descrevemos a essência do que deve ser construído • Enfatiza a perspectiva das funções, com ênfase nos processos. • Utiliza as seguintes ferramentas: • Diagrama de Fluxo de Dados • Dicionário de Dados • Especificação da Lógica de Processos

  31. Exemplo: DFD • DFD – Diagrama de Fluxo de Dados • Técnica gráfica que descreve o fluxo da informação e as transformações sofridas por esta • Pode ser utilizado para representar um sistema em qualquer nível de abstração • Notação simples

  32. D1 Fornecedores Exemplo: DFD Pedido_preços E2 Fornecedores E1 Departamento de produção P1 Escolher fornecedor Lista_materiais necessários Entidade externa Preços_material Dados_fornecedor Processo Lista P2 Pedir materiais Nota_encomenta Dados_fornecedor Depósito De dados Fluxo de dados

  33. Análise Essencial • É uma evolução da Análise Estruturada por adicionar a preocupação com o controle. • Usa uma lista de eventos externos como base para o particionamento do sistema. • O modelo essencial é construído sem considerar restrições de implementação (assume uma tecnologia perfeita) – essência do sistema

  34. Diagrama de Contexto • Constrói um DFD para cada evento (DFD de resposta a eventos). A partir dele é feito o agrupamento para formar os diagramas superiores e inferiores.

  35. Lista de eventos

  36. Análise Essencial • Modelo Comportamental • Mostra o comportamento interno do sistema. • Dicionário de Dados e Especificação de processos. • Modelo de Informação • Representa os dados necessários ao sistema. • Diagrama de entidade e relacionamento • Deriva da lista de eventos • Representa a estrutura estática dos dados • Modelo de implementação • Insere restrições de implementação aos modelos comportamental e de dados

  37. Análise Orientada a Objetos • O mundo real é composto por objetos. • Cada objeto tem propriedades e comportamentos. • Então porquê não desenvolver programas que simulem no computador os objetos do mundo real com suas propriedades e comportamentos?

  38. Análise Estruturada e Essencial Orientada a Objetos Enfoque Conjunto de programas que executam processos Sobre dados Conjunto de “entidades” que têm características e Comportamentos próprios Análise Orientada a Objetos • Nos métodos tradicionais de análise, o comportamento do sistema e seus dados eram considerados separadamente. Com orientação a objetos, comportamento e dados são integrados, assim encapsulando detalhes internos de um objeto dos demais. Foco Sistema Objeto

  39. UML • UML (Unified Modeling Language) – Linguagem de Modelagem Unificada • É uma linguagem de modelagem (visual), não uma linguagem de programação • Permite a utilização de diagramas padronizados para especificação e visualização de um sistema

  40. Diagramas UML • Estrutural (Estática) • Diagrama de Classes • Diagramas de Objetos • Diagrama de Caso de Uso • Diagrama de Componentes • Representação Gráfica de um Conjunto de Elementos • Dinâmica • Diagrama de Estados • Diagrama de Atividades • Diagrama de Colaboração • Diagrama de Seqüência

  41. Diagrama de Caso de Uso • Usado geralmente nas fases de Levantamento e Análise de Requisito do Sistema, mostra como o sistema irá se comportar.

  42. Diagrama de Classes Define a estrutura de classes do sistema e estabelece como elas se relacionam.

  43. Classes • Uma classe é composta por três seções DVD Nome da Classe Hora Status Atributos estrutura Operações Voltar() Pausar() Adiantar() Parar() Tocar() comportamento

  44. Diagrama de Objetos Exibe os valores armazenados pelos objetos de um Diagrama de Classes

  45. Conceito de Orientação a Objetos

  46. OO • O que é um Objeto ? • é a representação de um objeto real • é uma abstração • tudo que é manipulável e/ou manufaturável • coisa, peça, artigo de compra e venda • pode ser uma composição de outros objetos • Exemplos • automóvel, pessoa, elevador, janela, etc..

  47. OO • Propriedades de um Objeto • é o estado do objeto • são atribuitos da “coisa” • exemplo • Em um automóvel temos • ligado/desligado • posição • velocidade • marca/modelo • cor, placa, número de portas, etc.

  48. OO • Métodos de um objeto • representa o comportamento do objeto • muda o estado do objeto • exemplo • Em um automóvel temos • ligar/desligar • acelerar • freiar • virar p/ esquerda • virar p/ direita

  49. OO • Eventos de um Objeto • são acontecimentos que fazem o objeto responder de determinada maneira • alteram o estado e mudam o comportamento • exemplo • Em um automóvel temos • usuário... • pisa no acelerador ou no freio • vira o volante para esquerda ou direita • vira a chave na ignição para ON ou OFF

  50. OO • Classe de Objetos • Definição de um tipo de objetos • Define a forma de se criar objetos • É uma fábrica de objetos • Todos os objetos de uma classe têm uma estrutura idêntica, mas cada objeto terá seus próprios atributos • Exemplo • Classe: CARROS (cor, portas, placa, posição, velocidade, etc.) • Objeto: carro vermelho/2 pts/XXX9999/(100,10)/100km/h...

More Related