Baixe o app para aproveitar ainda mais
Prévia do material em texto
Tipos de Software Softwares Básicos (próximo ao Hardware); Softwares de tempo real (percepção ao ambiente externo e resposta entre 1 milissegundo e 1 minuto); Softwares Comercial (Administrativos); Software Científico e de Engenharia (Mecânica, astronomia vulcanologia); Software Embutido (memória de leitura); Software de Computador Pessoal ; Software de Inteligência Artificial (especialistas, Baseado em Conhecimento, redes neurais e redes bayseanas); Todos são softwares com um objetivo em comum: Atender a requisitos definidos pelo usuário; Metodologias • Método – modelo ou paradigma • Metodologia - conjunto de passos a seguir – Exemplos: • Estruturadas • Orientada a Objetos Metodologias • Vantagens: – Desenvolvimento mais rápido – Os desencontros entre requisitos e especificação é menor, por causa da dependência de um nível para outro – Portabilidade, o projeto pode ser regenerado para diferentes ambientes – Facilidade de manutenção Metodologias e Técnicas Estruturadas • Objetivos – Construir programas de alta qualidade que tenham comportamento previsível – Construir programas que sejam facilmente modificáveis (manutenção) – Simplificar os programas e o seu processo de desenvolvimento Metodologias e Técnicas Estruturadas • Objetivos – Conseguir maior previsibilidade e controle no processo de desenvolvimento – Acelerar o desenvolvimento de sistemas – Diminuir o custo do desenvolvimento de sistemas Metodologias e Técnicas Estruturadas • Evolução – As técnicas estruturadas evoluíram da Programação Estruturada para técnicas que incluem metodologias de análise, projeto e teste. – Uso de ferramentas CASE – Início: fim da década de 60 Metodologias e Técnicas Estruturadas • Evolução Programação Estruturada Início década de 70 Projeto Estruturado Metade década de 70 Análise Estruturada Fim década de 70 Técnicas Automatizadas Década de 80 Técnicas CASE Fim década de 80 Metodologias e Técnicas Estruturadas • Evolução – Programação Estruturada • Enfocavam o programa em si • Preocupação com o código do programa • Preocupação com a complexidade do programa Metodologias e Técnicas Estruturadas • Evolução – Projeto Estruturado • Introduzir organização e disciplina ao projeto • Visão de alto nível • Conceito de modularização refinado • Métricas para qualidade de software Metodologias e Técnicas Estruturadas • Evolução – Análise Estruturada • Atenção voltada para a especificação do problema • Necessidades dos sistemas • Uso de Diagramas de Fluxo de Dados • Variedade de técnicas estruturadas Metodologias e Técnicas Estruturadas • Evolução – Técnicas Automatizadas • Surgiu a necessidade de automação no desenvolvimento de sistemas • Uso apropriado do computador, durante as fases de análise e projeto • Técnicas de verificação, sendo algumas fundamentadas pela matemática • Automatização de código Metodologias e Técnicas Estruturadas • Evolução – CASE • Engenharia da Informação (modelos de dados estruturados e modelos da empresa e seus processos) • Apoio a projeto com checagem de verificação • Especificações a partir das quais o código é gerado automaticamente Metodologias e Técnicas Estruturadas • Características – Fácil Uso – Utilizadas com as linguagens de quarta geração e geradores de código – Rigorosa – Orientadas para Banco de Dados – Ferramentas automatizadas Metodologias e Técnicas Estruturadas • Princípios – Princípios da Técnica Estruturada • Princípio da Abstração - para resolver um problema, separar os aspectos que estão ligados a uma realidade particular, visando representá-lo em forma simplificada e geral • Princípio da Formalidade - seguir uma abordagem rigorosa e metódica para resolver um problema Metodologias e Técnicas Estruturadas • Princípios – Princípios da Técnica Estruturada • Princípio de Dividir-para-Conquistar - resolver um problema difícil dividindo-o em um conjunto de problemas menores e independentes que são mais fáceis de serem compreendidos e resolvidos • Princípio de Organização Hierárquica - organizar componentes de uma solução em uma estrutura hierárquica tipo árvore. Assim a estrutura pode ser compreendida e construída por nível, cada novo nível acrescentando mais detalhes Ciclo de Vida do Software • É um conjunto ordenado de atividades que são realizadas para desenvolver um software! • Atividades: – Obter a aprovação do projeto; – Montar a equipe do projeto; – Definir o software; – Construir o software e – Manter o software. Atividades Problema Solução dados relatórios restrições procedimentos Software Ciclo de Vida do Software Ciclo de Vida do Software • Ciclo de Vida Clássico (Cascata) Análise de requisitos Projeto Testes Codificação Engenharia de sistemas Manutenção Ciclo de Vida do Software • Ciclo de Vida Clássico (Cascata) – Análise e Engenharia de Sistemas: coleta de requisitos. – Análise de Requisitos: os requisitos são documentados e revistos com o cliente, afim de entender o programa a ser construído. – Projeto: preocupa-se com a estrutura dos dados, arquitetura do software, detalhes procedimentais e caracterização de interface. O projeto é documentado. Ciclo de Vida do Software • Ciclo de Vida Clássico (Cascata) – Codificação: tradução do projeto em linguagem de programação. – Testes: os programas gerados são executados a procura de erros. Esse processo concentra-se nos aspectos lógicos internos (instruções corretas) e nos aspectos funcionais externos (se o software está produzindo resultados corretos) Ciclo de Vida do Software • Ciclo de Vida Clássico (Cascata) – Manutenção: é a etapa que mais consome tempo durante o ciclo. Ocorreram mudanças porque foram encontrados erros, para se adaptar a mudanças externas no ambiente ou pela exigência do cliente de acréscimos funcionais ou de desempenho. Ciclo de Vida do Software • Ciclo de Vida Clássico (Cascata) – Problemas: • Os resultados são demorados • Falta de interação durante o ciclo de vida • Dificuldade do recolhimento total de requisitos no início do ciclo • Os erros são detectados somente na fase de teste Ciclo de Vida do Software • Prototipação Obtenção de requisitos e refinamento Projeto rápido Construção do protótipo Avaliação do Cliente Refinamento do protótipo Construção do Software Início Fim Ciclo de Vida do Software • Prototipação – Utilizado como forma de detectar prematuramente as falhas e omissões nas fases iniciais, especialmente durante o levantamento de requisitos. – O Projeto rápido leva a construção de um protótipo para o usuário onde serão visíveis, principalmente, as abordagens de entrada e os formatos de saída. – Pode ser uma maneira de extrair os requisitos de um software de um usuário que não tem certeza da natureza do sistema a ser construído. Ciclo de Vida do Software • Prototipação – Problemas: • O protótipo é muitas vezes construído sem controle de qualidade • O cliente pensa que o protótipo já é o sistema pronto! Espiral Combina a natureza iterativa da Prototipagem com os aspectos sistemáticos do Ciclo de Vida Clássico; Desenvolvimento do software a partir de versões (versões iniciais no papel, versões finais como protótipos). Ciclo de Vida do Software Espiral Ciclo de Vida do Software • Espiral – Fases: • Comunicaçãocom o cliente: tarefas necessárias para estabelecer efetiva comunicação entre o desenvolvedor e o cliente: • Planejamento: tarefas necessárias para definir recursos, prazos e outras informações relacionadas aos projeto; • Análise de risco: tarefas necessárias para avaliar os riscos, tanto técnicos quanto gerencias; Ciclo de Vida do Software Espiral Fases: Engenharia: tarefas necessárias para construir uma ou mais representações da aplicação; Construção e liberação: tarefas necessárias para construir, testar, instalar e fornecer apoio ao usuário (por exemplo, documentação e treinamento); Avaliação pelo cliente: tarefas necessárias para obter realimentação do cliente, com base na avaliação das representações do software criadas durante o estágio de engenharia e implementadas durante o estágio de instalação. Ciclo de Vida do Software Espiral Vantagens: O modelo espiral pode ser adaptado ao longo da vida do software e não somente durante o seu desenvolvimento; Modelo real para software de grande porte devido a seu aspecto incremental de refinamento e comunicação; Ciclo de Vida do Software Espiral Desvantagens: Exige alto grau de organização no processo de evolução do software; Igualmente ao Ciclo de Vida Clássico, se algum problema ocorre no início do desenvolvimento, certamente causará problemas mais graves no final; Ciclo de Vida do Software Ciclo de Vida do Software • Técnicas de Quarta Geração (4GT) Coleta de requisitos Estratégia de projeto Implementação em 4GL Teste Ciclo de Vida do Software • Técnicas de Quarta Geração (4GT) – Uso de ferramentas que permitam a especificação do software em um elevado grau de abstração – Geração automática de código – Ferramentas CASE Paradigmas de Engenharia de Software Modelos de Desenvolvimento: Cascata; Prototipação; Espiral; Técnicas de Quarta Geração.
Compartilhar