Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Engenharia de Software IEngenharia de Software IEngenharia de Software I Curso de Desenvolvimento de Software Prof. Alessandro J de Souza ajdsouza@cefetrn.br 2 Processo de Desenvolvimento de Software Processo de Desenvolvimento Processo de Desenvolvimento de Softwarede Software Desenvolvimento de Software – SW I 3 ¢ Conceito de processo ?Processo é um conjunto de passos parcialmente ordenados, constituídos por atividades, métodos, praticas e transformações, usado para atingir uma meta. ¢ Um processo é uma receita que é seguida por um projeto. ?Projeto(abstrato) -> Processo(receita) -> Produto Desenvolvimento de Software – SW I 4 Conceito de processoConceito de processoConceito de processo ¢ O processo é o instrumento capaz de responder a qualquer momento: ?O que é feito? (Produto) ?Como é feito? (Passos) ?Por quem é feito? (Agente) ?O que usa? (Insumos) ?O que Produz? (resultados) Desenvolvimento de Software – SW I 5 Conceito de processoConceito de processoConceito de processo ¢ O processo pode ter mais ou menos detalhes; ¢ Um processo pode permitir paralelismo entre passos. Passo 2aPasso 2aPasso 2a Passo 2bPasso 2bPasso 2b Passo 1Passo 1Passo 1 Passo 3Passo 3Passo 3 Desenvolvimento de Software – SW I 6 ¢ Processo de Software ?Na engenharia de software, processos podem ser definidos para atividades como: Desenvolvimento; Manutenção; Aquisição; Contratação de software; ¢ Em um processo de desenvolvimento de software, o ponto de partida para a arquitetura de um processo é a escolha de um modelo de ciclo de vida. Desenvolvimento de Software – SW I 7 Processo de SoftwareProcesso de SoftwareProcesso de Software ¢ Modelo de ciclo de vida Codifica-remenda ?ciclo mais caótico; ?utiliza-se de uma ou até nenhuma especificação ?estilo codifica/remenda ?modelo de alto risco não permite assumir compromissos confiáveis Desenvolvimento de Software – SW I 8 Ciclo de Vida CascataCiclo de Vida CascataCiclo de Vida Cascata RequisitosRequisitosRequisitos AnáliseAnáliseAnálise DesenhoDesenhoDesenho ImplementaçãoImplementaçãoImplementação TestesTestesTestes Desenvolvimento de Software – SW I 9 Processo de SoftwareProcesso de SoftwareProcesso de Software ¢ Modelo de Ciclo de Vida Cascata ?Subprocessos são executados em estrita seqüência Define pontos de controle que facilitam a gestão dos projetos ?Da mais confiabilidade; ?Processo rígido e burocrático ?Possui baixa visibilidade para o cliente ?Possui uma variante que permite revisão e alteração de resultados das fases anteriores ?A realimentação entre fases torna difícil a gerencia do projeto(nesse ciclo de vida) Desenvolvimento de Software – SW I 10 Variante do Ciclo de Vida em CascataVariante do Ciclo de Vida em CascataVariante do Ciclo de Vida em Cascata RequisitosRequisitosRequisitos AnáliseAnáliseAnálise DesenhoDesenhoDesenho ImplementaçãoImplementaçãoImplementação TestesTestesTestes Desenvolvimento de Software – SW I 11 Ciclo de Vida em EspiralCiclo de Vida em EspiralCiclo de Vida em Espiral Desenvolvimento de Software – SW I 12 Processo de SoftwareProcesso de SoftwareProcesso de Software ¢ Modelo de Ciclo de Vida em Espiral ?Desenvolvido em uma série de interações ?Cada interação é uma nova volta no espiral ?Diminui períodos de construção ?Necessita de uma gestão de sofisticada Desenvolvimento de Software – SW I 13 Ciclo de Vida Prototipação EvolutivaCiclo de Vida Ciclo de Vida PrototipaPrototipaççãoão EvolutivaEvolutiva Planejamento de Interação Requisitos Análise Desenho DesenhoTeste Avaliação de Interação Desenvolvimento de Software – SW I 14 Processo de SoftwareProcesso de SoftwareProcesso de Software ¢ Prototipação Evolutiva ?Construção de uma serie de versões provisórias (protótipos); Os protótipos ajudam a colher requisitos; ?Modelo de vida Prototipagem evolutiva Cliente recebe versões finalizadas de partes do produto ?Requer gestão sofisticada; ?Requer equipe disciplinada; ?Aplica processos ágeis tipo XP Desenvolvimento de Software – SW I 15 Entrega EvolutivaEntrega EvolutivaEntrega Evolutiva Requisitos Análise Desenho Arquitetônico Desenho Detalhado Implementação Testes Avaliação da Interação Desenvolvimento de Software – SW I 16 ¢ Ciclo de Vida de Entrega Evolutiva ?Combinação entre cascata e prototipagem; ?Definir ponto de avaliação por parte do usuário; ?Fornece realimentação da decisões tomadas. Desenvolvimento de Software – SW I 17 ¢ Ciclo de vida dirigido por ferramentas CASE ?Impõem processos rígidos que podem se adequar para tipos bem específicos de produtos; ?Qualidade do processo depende fundamentalmente da qualidade da ferramenta. Desenvolvimento de Software – SW I 18 Processos de Desenvolvimento de SoftwareProcessos de Desenvolvimento de SoftwareProcessos de Desenvolvimento de Software ¢ Processo Pessoal de Software - PSP ?O PSP (Personal Software Process) é uma nova tecnologia da SEI(Instituto de Engenharia de Software) que traz disciplina à prática individual de engenheiros de software. Isto faz com que eles melhorem drasticamente a qualidade, a previsibilidade e o ciclo de tempo de seus produtos. ?O PSP foi desenvolvido por Watts Humphrey no Instituto de Engenharia de Software (SEI). Desenvolvimento de Software – SW I 19 Processo Pessoal de Software - PSPProcesso Pessoal de Software Processo Pessoal de Software -- PSPPSP ¢ As melhorias conseguidas varia para cada engenheiro, mas todos recebem condições para melhorar nos seguintes aspectos: ?criatividade: O engenheiro consegue expandir a sua mente para o que pode ser feito, não ao que ele está acostumado a fazer e, empiricamente, acha que é o melhor; ?Fazer planos: Cada engenheiro é levado a planejar seus projetos e até o seu dia-a-dia para aproveitar melhor o pouco tempo que é dado para o desenvolvimento de algum software; ?Gerenciar Planos: Procurar cumprir o que foi estabelecido; ?Reduzir defeitos: O engenheiro procura, a cada fase do processo de software, fazer prevenção e correção de erros para manter um projeto de qualidade até seu final. Desenvolvimento de Software – SW I 20 Processo Pessoal de Software - PSPProcesso Pessoal de Software Processo Pessoal de Software -- PSPPSP ¢ Um PSP é o que você define para seu próprio uso pessoal. A idéia é que cada um é diferente e o processo que trabalha melhor para um engenheiro provavelmente não será ótimo para outros. ¢ O PSP é ensinado aos engenheiros através de sete passos de processo progressivos e são organizados como mostrado na figura: Desenvolvimento de Software – SW I 21 Processo Pessoal de Software - PSPProcesso Pessoal de Software Processo Pessoal de Software -- PSPPSP ¢ PSP0 e PSP0.1 : Nível de dados: ? Registro de tempos; ? Registro de defeitos; ? Padronização dos tipos de defeito; ? Padronização de codificação; ? Medição de Tamanho; ? Proposição de Melhoria de Processo ¢ PSP1 e PSP1.1 : Nível de planejamento; ? Estimativa de tamanho; ? Relatório de Testes; ? Planejamento de tarefas; ? Planejamento de Cronograma ¢ PSP2 e PSP2.1 : Gerenciamento de qualidade; ? Revisão de código; ? Revisão de Desenho; ? Modelo de Desenho; ¢ PSP3 : Ciclo e Otimização ? Desenvolvimento cíclico PSP 0PSP 0PSP 0 PSP 1PSP 1PSP 1 PSP 2PSP 2PSP 2 PSP 3PSP 3PSP 3 PSP0.1PSP0.1PSP0.1 PSP1.1PSP1.1PSP1.1 PSP2.1PSP2.1PSP2.1 Desenvolvimento de Software – SW I 22 Processo Pessoal de Software - PSPProcesso Pessoal de Software Processo Pessoal de Software -- PSPPSP PlanejamentoPlanejamentoPlanejamento Desenho de Alto Nível Desenho deDesenho de Alto NívelAlto Nível Revisão do Desenho de Alto Nível Revisão doRevisão do Desenho deDesenho de Alto NívelAlto Nível DesenvolvimentoDesenvolvimentoDesenvolvimento Post-mortemPostPost--mortemmortem IntegraçãoIntegraçãoIntegração DesenhoDesenhoDesenho Revisão de Desenho Revisão deRevisão de Desenho Desenho CodificaçãoCodificaçãoCodificação Revisão de Código Revisão de CódigoRevisão de Código Revisão de Código Revisão de Código Revisão de Código TesteTesteTeste Reavaliação e reciclagem Reavaliação eReavaliação e reciclagemreciclagem Desenvolvimento de Software – SW I 23 ¢ Processo de Software para Times - TSP ?O TSP surgiu como seqüência natural do PSP ?O TSP usa um modelo espiral ?No TSP cada desenvolvedor pode desempenhar um ou dois papeis de gerenciais, além de dividir a carga de desenvolvimento; ?Papéis Gerente de desenvolvimento Planejamento Qualidade Processo suporte Desenvolvimento de Software – SW I 24 Processo de Software para Times - TSPProcesso de Software para Times Processo de Software para Times -- TSPTSP ¢ Fase do TSP: ?Lançamento ?Estratégia ?Planejamento ?Requisitos ?Desenho ?Implantação ?Testes ?Post-Mortem Desenvolvimento de Software – SW I 25 ¢ Processo Unificado - UP ?Proposto pelos criadores da UML ?Possui estrutura matricial fase - ciclos fluxo de trabalho - atividades técnicas (subprocessos) ¢ Características centrais do UP ?Dirigido por caso de uso; ?Centrado na arquitetura; ?Interativo e incremental; Desenvolvimento de Software – SW I 26 Processo Unificado - UPProcesso Unificado Processo Unificado -- UPUP ¢ Um produto comercial baseado no processo unificado é o RUP(Rational Unified Process) ¢ O RUP não deve ser confundido com o UP, ele possui estrutura de fluxos diferentes ¢ O RUP consiste em aproximadamente 3.200 arquivos, o que evidencia a diferença em nível de detalhes entre esses processos Desenvolvimento de Software – SW I 27 Processo Unificado - UPProcesso Unificado Processo Unificado -- UPUP ¢ Fases ?Concepção : Fase na qual se justifica a execução de um projeto de desenvolvimento de software, do ponto de vista do negocio do cliente ?Elaboração : Fase na qual o produto e detalhado o suficiente para permitir um planejamento acurado da fase de construção. ?Construção : Fase na qual é construída uma versão completamente operacional ?Transição : Fase na qual o produto é colocado a disposição do usuários. Desenvolvimento de Software – SW I 28 Processo Unificado - UPProcesso Unificado Processo Unificado -- UPUP ¢ Fluxos ?Requisitos : Fluxo que visa obter um conjunto de requisitos de um produto, acordado entre cliente e fornecedor. ?Análise : Fluxo cujo objetivo é detalhar, estruturar e validar os requisitos, de forma que esses possam ser usados como base para o planejamento detalhado. ?Desenho : Fluxo cujo objetivo é formar um modelo estrutural do produto que sirva de base para a implementação. ? Implementação : Fluxo cujo objetivo é realizar o desenho em termos de componentes de código. ?Testes : Fluxo cujo objetivo e verificar os resultados da implementação. Desenvolvimento de Software – SW I 29 ¢ Referências ?Cap 2 do Livro Engenharia de Software. Autor Wilson de Pádua Paula Filho ?http://campus.fortunecity.com/princeton/117/psp/psp.htm
Compartilhar