Baixe o app para aproveitar ainda mais
Prévia do material em texto
Engenharia de Software I CICLO DE VIDA e PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Software - Aplicações BBÁÁSSIICCOO programas de apoio a outros programas DDEE TTEEMMPPOO RREEAALL monitora, analisa e controla eventos do mundo real CCOOMMEERRCCIIAALL operações comerciais e tomadas de decisões administrativas CCIIEENNTTÍÍFFIICCOO EE DDEE EENNGGEENNHHAARRIIAA algoritmos de processamento de números EEMMBBUUTTIIDDOO controla produtos e sistemas de mercados industriais e de consumo DDEE CCOOMMPPUUTTAADDOORR PPEESSSSOOAALL processamento de textos, planilhas eletrônicas, diversões, etc. DDEE IINNTTEELLIIGGÊÊNNCCIIAA AARRTTIIFFIICCIIAALL algoritmos não numéricos para resolver problemas que não sejam favoráveis à computação ou à análise direta 3 Velhice DECADÊNCIA Operação + Revisão + Reavaliação Operacionalidade Avaliações Necessidades Atualizações Nascimento e Infância CRIAÇÃO Desenvolvimento + implantação Análise Projeto Implementação Testes Implantação Adolescência e Maturidade EVOLUÇÃO Operacionalidade Feedback Análise Proc.Atuais Operação + Controle + Avaliação Ciclo de Vida dos Sistema 4 Processo de Software � O que é processo ? � É um conjunto de tarefas ordenadas e resultados associados que geram um produto; � Um roteiro que o ajuda a criar a tempo um resultado de alta qualidade. 5 Processo de Software � Há quatro atividades de processo de software fundamentais, a saber: �Especificação do software; �Desenvolvimento do Software; �Validação do Software; �Evolução do Software 6 Interesse fica concentrado principalmente no uso do softwareUsuário Desenvolvedor Gerente A qualidade fica mais voltada às características internas do software A qualidade depende do ponto de vista A qualidade do produto não pode ser desvinculada dos interesses da organização Processo de Software - Qualidade 7 Processo de Software – Modelo de Processo de Software � Modelo de Ciclo de Vida de um processo: representa uma abordagem específica de desenvolvimento de software baseada no relacionamento entre etapas e atividades de um processo. � Ciclo de Vida: tempo de vida de um software, com início na decisão de sua construção até o momento de sua desativação completa. 8 Processo de Software – Modelo de Processo de Software � Alguns modelos de processo: �� Modelo SeqModelo Seqüüencial Linear encial Linear -- CASCATACASCATA �� ModeloModelo RAD RAD �� Modelos EvolucionModelos Evolucionááriosrios �� Modelo de Modelo de PrototipaPrototipaççãoão �� IncrementalIncremental �� EspiralEspiral Processo de Software – Modelo Seqüencial Linear � Também conhecido como ciclo de vida clássico ou Modelo Cascata: � Modelo mais antigo e mais usado; � Modelado em função do ciclo de engenharia convencional; � Requer uma abordagem sistemática e seqüencial para o desenvolvimento de um software; 10 Processo de Software – Modelo Seqüencial Linear � Muitos aplicam esse modelo de forma estritamente linear: Engenharia de Sistemas / Informação AnáliseAnálise ProjetoProjeto Codificação Codificação TestesTestes 11 Processo de Software – Modelo Seqüencial Linear � Mas o modelo original prevê a volta: Engenharia de Sistemas Engenharia de Engenharia de SistemasSistemas Análise de Requisitos AnAnáálise de lise de Requisitos Requisitos Projeto Projeto Projeto Codificação CodificaCodificaçção ão Testes Testes Testes ManutençãoManutenManutenççãoão Processo de Software – Modelo Seqüencial Linear Engenharia de SistemasAnálise de Requisitos Projeto Codificação Testes Manutenção ANANÁÁLISE E ENGENHARIA DE LISE E ENGENHARIA DE SISTEMASSISTEMAS 1. Envolve a coleta de requisitos de todos os elementos do sistema; 2. Essa visão de sistema é essencial quando o software faz interface com outros elementos como pessoas e BD; Processo de Software – Modelo Seqüencial Linear Engenharia de SistemasAnálise de Requisitos Projeto Codificação Testes Manutenção ANANÁÁLISE DE REQUISITOS DE LISE DE REQUISITOS DE SOFTWARESOFTWARE 1. processo de coleta dos requisitos é intensificado e concentrado especificamente no software 2. deve-se compreender o domínio da informação, a função, desempenho e interfaces exigidos 3. os requisitos (para o sistema e para o software) são documentados e revistos com o cliente Processo de Software – Modelo Seqüencial Linear Engenharia de SistemasAnálise de Requisitos Projeto Codificação Testes Manutenção PROJETOPROJETO 1. 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 2. se concentra em 4 atributos do programa: � Estrutura de Dados, � Arquitetura de Software, � Detalhes Procedimentais e � Caracterização de Interfaces Processo de Software – Modelo Seqüencial Linear Engenharia de SistemasAnálise de Requisitos Projeto Codificação Testes Manutenção CODIFICACODIFICAÇÇÃOÃO 1. tradução das representações do projeto para uma linguagem “artificial” resultando em instruções executáveis pelo computador Processo de Software – Modelo Seqüencial Linear Engenharia de SistemasAnálise de Requisitos Projeto Codificação Testes Manutenção TESTESTESTES � Concentram-se: 1. nos aspectos lógicos internos do software, garantindo que todas as instruções tenham sido testadas 2. nos aspectos funcionais externos, para descobrir erros e garantir que a entrada definida produza resultados que concordem com os esperados. Processo de Software – Modelo Seqüencial Linear Engenharia de SistemasAnálise de Requisitos Projeto Codificação Testes Manutenção MANUTENMANUTENÇÇÃOÃO 1. o software deverá sofrer mudanças depois que for entregue ao cliente Processo de Software – Modelo Seqüencial Linear � Problemas: � Projetos reais raramente seguem o fluxo de sequencial proposto � É difícil estabelecer todos os requisitos no começo do projeto na qual existe uma incerteza natural quanto a esses requisitos � Uma versão do software só vai ficar pronto em um ponto tardio do desenvolvimento � Assim se houver algum erro não detectado na análise ou projeto o resultado pode ser desastroso � Há muitos estágios bloqueantes que permitem a ociosidade dos desenvolvedores em alguns momentos 19 � É o modelo seqüencial linear, mas que enfatiza um desenvolvimento extremamente rápido � A “alta velocidade” é conseguida através de uma abordagem de construção baseada em componentes � Usado quando os requisitos são bem definidos e o escopo do sistema é restrito Processo de Software – Modelo RAD (Rapid Application Development) 20 Processo de Software – Modelo RAD modelagem do negócio modelagem dos dados modelagem do processo geração da aplicação teste e modificação modelagem do negócio modelagem dos dados modelagem do processo geração da aplicação teste e modificação modelagem do negócio modelagem dos dados modelagem do processo geração da aplicação teste e modificação equipe # 3 equipe # 2 equipe # 1 60-90 dias modelagem do negócio modelagem dos dados modelagem do processo geração da aplicação teste e modificação Modelagem do negócio: o fluxo de informação entre as funções do negócio são modeladas de maneira a responder às questões: � que informação dirige o processo do negócio? � que informação é gerada? � quem gera a informação? � para onde a informação vai? � quem a processa?Processo de Software – Atividades do Modelo RAD modelagem do negócio modelagem dos dados modelagem do processo geração da aplicação teste e modificação Modelagem dos dados: o fluxo de informação definido na fase anterior é refinado em um conjunto de objetos de dados que são necessários para dar suporte ao negócio; são identificadas as características de cada objeto [atributos] e são definidos seus relacionamentos. Processo de Software – Atividades do Modelo RAD modelagem do negócio modelagem dos dados modelagem do processo geração da aplicação teste e modificação Modelagem do processo: os objetos de dados definidos são transformados para se obter o fluxo de informação necessário para implementar uma função do negócio; são criadas as descrições dos processamentos necessários para manipular esses objetos de dados Processo de Software – Atividades do Modelo RAD modelagem do negócio modelagem dos dados modelagem do processo geração da aplicação teste e modificação Geração da aplicação: o modelo RAD assume o uso de técnicas de 4a. geração; ao invés de criar software de forma convencional, reusa componentes quando possível ou cria componentes reutilizáveis; ferramentas automatizadas são utilizadas para gerar software Processo de Software – Atividades do Modelo RAD modelagem do negócio modelagem dos dados modelagem do processo geração da aplicação teste e modificação Teste e modificação: por reutilizar componentes, muitas vezes eles já foram testados, o que reduz o tempo de teste; os novos componentes devem ser testados e as interfaces devem ser exercitadas Processo de Software – Atividades do Modelo RAD Quando usar? • as restrições de tempo impostas pelo projeto demandam um escopo de escala • quando a aplicação pode ser modularizada de forma que cada grande função possa ser completada em menos de 3 meses • cada grande função pode ser alocada para uma equipe distinta e, depois são integradas para formar o todo Processo de Software –Modelo RAD • RAD requer um comprometimento entre desenvolvedores e clientes para que as atividades possam ser realizadas rapidamente e o sistema seja concluído em um tempo abreviado • Se o comprometimento for abandonado por qualquer das partes, o projeto falhará • Não é apropriado quando os riscos são grandes Processo de Software – Problemas com Modelo RAD Processo de Software – Modelos de Processo Evolucionários � usado quando o deadline (prazo final para entrega de um trabalho ou projeto) não é adequado para o desenvolvimento do software; a data de término não é realista � uma versão limitada pode ser introduzida para atender à competitividade e pressões do negócio � são liberados parcialmente � os detalhes e extensões ainda devem ser definidos 29 Processo de Software – Modelo Espiral � engloba a natureza iterativa da Prototipação com os aspectos sistemáticos e controlados do Modelo Linear � fornece o potencial para o desenvolvimento rápido de versões incrementais do software � Cada Loop da espiral é uma fase do desenvolvimento que sempre passa por 4 aspectos 30 Processo de Software – Modelo Espiral Planejamento Definição de Objetivos Avaliação e redução de risco Desenvolvimento e Validação Cada loop da espiral é uma fase de desenvolvimento do software � é, atualmente, a abordagem mais realística para o desenvolvimento de software em grande escala � usa uma abordagem que capacita o desenvolvedor e o cliente a entender e reagir aos riscos em cada etapa evolutiva � exige considerável experiência na determinação de riscos e depende dessa experiência para ter sucesso Processo de Software – Modelo Espiral - Comentários Processo de Software – Modelo Espiral Processo de Software – Modelo Espiral Processo de Software – Modelo Espiral Processo de Software – Modelo Espiral Processo de Software – Modelo Espiral Processo de Software – Desenvolvimento Orientado a Reuso � Baseado em reutilização de componentes de software e que podem ser acessados com alguma infraestrutura de integração para estes componentes (desenvolvidos por terceiros) � Estágios do Processo � Análise dos Componentes � Modificação dos Requisitos � Projeto de sistema com reuso � Desenvolvimento e Integração � A principal motivação para a reutilização está relacionada ao aumento dos níveis de qualidade e produtividade no desenvolvimento de software Processo de Software – Desenvolvimento Orientado a Reuso � Técnicas orientadas a objetos � oferecem um quadro técnico para o ciclo de vida baseada sobre componentes � uma classe encapsula os dados e algoritmos que manipulam os dados � reutilização dos componentes (classes) em várias aplicações e plataformas � baseada na definição de bibliotecas de classes Processo de Software – Desenvolvimento Orientado a Reuso � Desvantagens: � Adequação dos requisitos são inevitáveis � O produto final pode não ser aquele que o cliente pediu � Difícil controle sobre a evolução do sistema, pois os componentes evoluem independentemente 40 Revisão � Produto de Sw = programa+estrutura dados+documentação � Engenharia de Software uma disciplina da engenharia, se ocupa de todos os aspectos do desenvolvimento de software e utiliza-se de métodos, ferramentas e processos focando a qualidade � Processo de Software: é um conjunto de atividades e resultados associados que geram um produto de software � Atividades: Especificação, Desenvolvimento, Validação e Evolução do Software � 3 Fases: � Definição - “o que” (Engenharia do Sistema, Planejamento do Projeto e Análise de Requisitos) � Desenvolvimento - “como” (Projeto, Geração do Código, Teste) � Manutenção � Modelos de Processo: sequencial, RAD, prototipação, incremental e espiral 41 Referências � Engenharia de Software Teoria e Prática. Pfleeger, L.S. – Ed. Pearson � Capitulo 1 � Engenharia de Software. Pressman, R. – Ed. McGraw Hill � Capitulo 2 � Engenharia de Software. Fundamentos, Métodos e Padrões. Pádua, W. – Ed. LTC � Capitulo 5 � Engenharia de Software Aplicada. Magela, R. – Ed. Alta Books � Capitulo 3
Compartilhar