Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Qualidade de Software Ementa 1 INTRODUÇÃO A PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE Prof.ª Poliana Corrêa - poliana.correa@sga.pucminas.br Pontifícia Universidade Católica de Minas Gerais (PUC Minas) Qualidade de Software Ementa 2 ENGENHARIA DE SOFTAWARE � Engenharia de software em camadas Qualidade de Software Ementa 3 ENGENHARIA DE SOFTAWARE � Engenharia de software em camadas Apoio automatizado ou semi-automatizado para o processo e os métodos Fornecem a técnica de como fazer para construir o software Base para o controle gerencial, definição dos métodos, produtos e recursos Camada de apoio à engenharia de software Qualidade de Software Ementa 4 ENGENHARIA DE SOFTAWARE � Engenharia de software em camadas � O alicerce da engenharia de software é a camada de processo � O processo é o adesivo que mantém unidas as camadas de tecnologia e permite o desenvolvimento racional e oportuno de softwares � É a base para o controle gerencial de projetos de software e estabelecem o contexto no qual os métodos técnicos são aplicados, os produtos de software são produzidos, os marcos são estabelecidos, a qualidade é assegurada e modificações são geridas Qualidade de Software Ementa 5 O QUE É PROCESSO? � Como podemos definir um processo de forma genérica? Qualidade de Software Ementa 6 O QUE É PROCESSO? � Exemplo: Processo de ensino-aprendizagem 2 Qualidade de Software Ementa 7 O QUE É PROCESSO? � “Um processo de software é um conjunto de atividades relacionadas que levam à produção de um produto de software” (SOMMERVILLE, 2011) � “Um processo de engenharia de software é formado por um conjunto de passos de processo parcialmente ordenados, relacionados com artefatos, pessoas, recursos, estruturas organizacionais e restrições, tendo como objetivo produzir e manter os produtos de software finais requeridos” (WAZLAWICK, 2013) Qualidade de Software Ementa 8 O QUE É PROCESSO? � “Possui uma sequência de etapas a fim de completar um conjunto de tarefas (escrever um relatório, fazer uma viagem de negócios)” � As tarefas são executadas na mesma ordem todas as vezes � Um pedreiro não reboca uma parede antes de passar a tubulação � Um padeiro não leva um bolo para assar antes de misturar os ingredientes � Um processo é uma série de etapas que envolvem atividades, restrições e recursos para alcançar a saída desejada � “Um processo define quem está fazendo o quê, quando e como para alcançar um certo objetivo” (Ivar Jacobson, Grad Booch e James Rumbaugh) Qualidade de Software Ementa 9 O QUE É PROCESSO? � “Um processo é uma sequência de passos executados com um determinado objetivo” (IEEE) � “Processo é um conjunto de ações e atividades inter-relacionadas realizadas para obter um conjunto especificado de produtos, resultados ou serviços” (CMMI) � O processo é uma receita que é seguida por um projeto � Não confunda processo com o produto � O processos são as etapas envolvidas para confecção de um produto � O produto é apenas o resultado final Qualidade de Software Ementa 10 O QUE É PROCESSO? � Um processo pode ser entendido como um conjunto de atividades � Interdependentes � Com responsáveis � Com entradas e saídas definidas � Tem uma documentação que detalha os elementos (unidade fundamental de um processo) � O que será feito (produto) � Quando (etapas) � Por quem (papéis) � As coisas que usa (insumos) � As coisas que produz (resultados) Qualidade de Software Ementa 11 O QUE É PROCESSO? � Algo que ocorre em um tempo determinado � Execução concreta de um conjunto de atividades para criação de um produto específico � Conjunto de regras que definem como um projeto deve ser executado Qualidade de Software Ementa 12 ELEMENTOS DE UM PROCESSO � Insumo � Coisa que é consumida em um processo (Praxis) � Papel (responsáveis e participantes) � Conjunto correlato de proficiências, competências e responsabilidades, desempenhado por uma ou mais pessoas (SPEM) � Refletem as responsabilidades das pessoas envolvidas no processo � Exemplos: gerente de projeto, programador, testador � Etapa ou Atividade � Termo genérico para uma divisão temporal de um processo (Praxis) 3 Qualidade de Software Ementa 13 ELEMENTOS DE UM PROCESSO � Produto � Um objeto produzido, quantificável, e que pode ser um item final ou um item componente (PMBOK) � Resultado que se pretende entregar a um cliente ou usuário (CMMI) � Produto de trabalho � Qualquer coisa produzida ou modificada por tarefas (SPEM) � Item útil que resulta de um processo (CMMI) � Artefato � Quaisquer documentos que puderem ser produzidos durante um projeto de desenvolvimento de software (diagramas, programas, documentos, desenhos, contratos, etc.) Qualidade de Software Ementa 14 ELEMENTOS DE UM PROCESSO � Projeto � Conjunto gerido de recursos inter-relacionados, que entrega um ou mais produtos a um cliente ou usuário, com início definido e que, tipicamente, opera conforme um plano (CMMI) � Um empreendimento temporário realizado para criar um produto, serviço ou resultado distinto (PMBOK) � Recursos � Uma atividade, para ser executada, demanda recursos � Item necessário, que pode ser uma ferramenta ou pessoa � Resultado � Uma saída dos processos e atividades de um projeto (PMBOK) Qualidade de Software Ementa 15 CARACTERÍSTICAS DE PROCESSO � Prescreve todas as suas principais atividades � Utiliza recursos, está sujeito a um conjunto de restrições (como cronograma) e gera produtos intermediários e finais � Composto por subprocessos que estão de algum modo relacionados (hierarquia de processos) � Cada atividade tem critérios de entrada e saída � As atividades são organizadas em uma sequência � Apresenta um conjunto de diretrizes que explicam os objetivos de cada atividade � Possui restrições e controles que podem ser aplicados a uma atividade, recurso ou produto Qualidade de Software Ementa 16 CONCEITOS RELACIONADOS � Modelo de processo: modelos genéricos que especificam a forma geral de processos, também chamado de modelo de ciclo de vida, permite a definição de projetos específicos a partir da estrutura base � Controle: influência externa sobre a aprovação do processo � Política: um princípio de orientação � Organização: estrutura hierárquica dos agentes do processo, com agrupamentos físicos correspondentes a agrupamentos lógicos e aos papéis relacionados Qualidade de Software Ementa 17 VANTAGENS DA IMPLANTAÇÃO DE PROCESSOS � Guia para condução do trabalho � Auxilia na disseminação de boas práticas de trabalho � Contribui para a transferência de conhecimento na equipe envolvida � Melhoria na comunicação entre os desenvolvedores, gerentes, clientes e usuários � Maior precisão no acompanhamento do progresso do trabalho � Por outro lado, propicia um aumento do controle do trabalho dos desenvolvedores � Medida da qualidade dos processos � Indica a qualidade dos produtos Qualidade de Software Ementa 18 ATIVIDADES FUNDAMENTAIS � Existem muitos processos de software diferentes, mas todos devem incluir as atividades fundamentais � Especificação de software • Definição da funcionalidade e restrições do software � Projeto e implementação de software • Construção do software para atender às especificações � Validação de software • Validação para garantir que atenda às demandas do cliente � Evolução de software • Evolução para atender às necessidades de mudança dos clientes 4 Qualidade de Software Ementa 19 MODELO DE CICLO DE VIDA � O ciclo de vida de um software é o ponto de partida para definir a arquitetura de um processo � Conjunto da históriade um software � Desde a percepção da sua necessidade até a retirada de operação � Determina marcos temporais no desenvolvimento do software � Começa antes do seu projeto de desenvolvimento e termina quando não é mais utilizado Qualidade de Software Ementa 20 MODELO DE CICLO DE VIDA � O ciclo de vida mais caótico é chamado de codifica-remenda � Parte apenas de uma especificação (ou nem isso), os desenvolvedores começam imediatamente a codificar, remendando à medida que os erros vão sendo descobertos � Nenhum processo definido é seguido Qualidade de Software Ementa 21 CODIFICA-REMENDA � Para alguns desenvolvedores esse modelo é bem atraente � Não exige nenhuma sofisticação técnica ou gerencial � Por outro lado, é um modelo de alto risco � É impossível de gerir e não permite assumir compromissos confiáveis � O resultado dessa falta de sistematização é a baixa qualidade do produto final Qualidade de Software Ementa 22 MODELO EM CASCATA � É o modelo mais antigo e o mais amplamente usado da engenharia de software, conhecido como ciclo de vida clássico � Requer uma abordagem sistemática e sequencial ao desenvolvimento de software � O resultado de uma fase constitui a entrada da próxima fase � Os principais subprocessos são executados em estrita sequência, o que permite demarcá-los com pontos de controle bem-definidos � Teoricamente é confiável e utilizável em projetos de qualquer escala Qualidade de Software Ementa 23 MODELO EM CASCATA Requisitos Análise Desenho Implementação Testes Qualidade de Software Ementa 24 ETAPAS DO MODELO EM CASCATA � Requisitos: Envolve a elicitação de requisitos do sistema, com uma análise de alto nível e modelo conceitual � Análise: Os requisitos (para o sistema e para o software) são documentados e revistos com o cliente � Desenho: Tradução dos requisitos para um conjunto de representações que podem ser avaliadas, antes da codificação � Implementação: Codificação em linguagem “artificial” resultando em instruções executáveis pelo computador � Testes: Concentra-se nos aspectos lógicos internos do software e nos aspectos funcionais externos de modo a descobrir erros e garantir que a entrada definida produza os resultados esperados 5 Qualidade de Software Ementa 25 CONTRIBUIÇÕES DO MODELO EM CASCATA � Imposição de disciplina, planejamento e gerenciamento � A implementação do produto deve ser postergada até que os objetivos tenham sido completamente entendidos � Permite gerência do baseline que identifica um conjunto fixo de documentos produzidos ao longo do processo de desenvolvimento Qualidade de Software Ementa 26 RESTRIÇÕES DO MODELO EM CASCATA � Projetos reais raramente seguem o fluxo sequencial da forma que o modelo propõe � Exige requisitos “congelados” � É um processo rígido e burocrático, em que as atividades de análise e desenho tem que ser muito bem especificadas, pois não prevê correções em fases posteriores � Logo no início é difícil estabelecer explicitamente todos os requisitos, pois sempre existe uma incerteza natural � Baixa visibilidade para o cliente já que uma versão executável do software só fica disponível no final do projeto Qualidade de Software Ementa 27 Requisitos Análise Desenho Implementação Testes MODELO EM CASCATA COM REALIMENTAÇÃO Qualidade de Software Ementa 28 MODELO EM CASCATA COM REALIMENTAÇÃO � Trata-se de uma expansão do modelo em cascata � Na prática, é comum ter que voltar para etapas anteriores � Por causa de revisões, alterações, descoberta de erros � Execução é sequencial, mas é possível voltar para etapas anteriores a fim revisar ou alterar � Apresenta pontos de controle bem definidos � Fácil gerenciamento Qualidade de Software Ementa 29 ABORDAGENS ITERATIVAS DE PROCESSO � Nos modelos iterativos o cliente recebe o sistema completo desde o começo e então as funcionalidades evoluem a cada nova versão � São também chamados de modelos evolucionários � O software evolui a cada fase FONTE: (PFLEEGER, 2007, p. 45) Qualidade de Software Ementa 30 ABORDAGENS ITERATIVAS DE PROCESSO � Exemplo: software de processamento de texto com três recursos (criar textos, organizar textos “copiar e colar” e formatar textos) � 1ª entrega: formas primitivas das três funcionalidades, podem ser imperfeitas e lentas � 2ª entrega: melhorias de qualidade da funcionalidade organizar textos, copiar e colar mais rápidos e simples � 3ª entrega: versão completa com todas os aprimoramentos necessários 6 Qualidade de Software Ementa 31 PROTOTIPAGEM EVOLUTIVA � Apenas os requisitos básicos são definidos (objetivos gerais, necessidades conhecidas e áreas que precisam de mais detalhes) � Uma iteração de prototipagem é planejada rapidamente e a modelagem (na forma de um “projeto rápido”) � Concentra-se nos aspectos nos visíveis para o cliente � O projeto rápido leva a construção de um protótipo que é implantado e avaliado pelo cliente � O feedback é usado para refinar os requisitos do software � As iterações permitem os ajustes do protótipo e melhor entendimento do que precisa ser feito pelo desenvolvedor Qualidade de Software Ementa 32 PROTOTIPAGEM EVOLUTIVA � É um bom método quando o cliente não quer se comprometer com os requisitos ou quando os requisitos são muito voláteis � “O cliente não sabe bem o que quer” � Permite que os requisitos sejam definidos progressivamente evitando a construção a partir de requisitos mal elaborados � Alta flexibilidade e visibilidade para o usuário/cliente � Não é possível prever quando o produto ficará pronto � Requer gestão sofisticada para não se perder no caminho Qualidade de Software Ementa 33 PROTOTIPAGEM EVOLUTIVA � Em pontos bem definidos os usuários podem avaliar partes do produto fornecendo realimentação quanto às decisões tomadas � Ideal para projetos em que o núcleo de requisitos não varia a partir do feedback do usuário � Facilita o acompanhamento dos projetos por parte de gerentes e de clientes � A arquitetura do sistema deve ser robusta e permanecer íntegra ao longo das liberações � A prototipagem evolutiva enfatiza os aspectos visuais do sistema, já a entrega evolutiva foca nas funcionalidades centrais do sistema Qualidade de Software Ementa 34 PROTOTIPAGEM EVOLUTIVA Requisitos Análise Desenho detalhado Implementação Testes Avaliação da iteração Nova iteração Qualidade de Software Ementa 35 ABORDAGENS INCREMENTAIS DE PROCESSO � Nos primeiros anos os clientes estavam dispostos a esperar um bom tempo para que os softwares ficassem prontos � O ambiente de negócio hoje não tolera mais grandes atrasos � Um modo de diminuir o tempo entre concepção e entrega é realizar o desenvolvimento em fases � O sistema é projetado de forma que possa ser entregue em partes � Normalmente, há dois ambientes em paralelo com o sistema � Produção: é o que está sendo usado pelo cliente � Desenvolvimento: é a versão seguinte que está sendo preparada para substituir a versão de produção Qualidade de Software Ementa 36 ABORDAGENS INCREMENTAIS DE PROCESSO � Desenvolvimento incremental � O sistema como está documentado na especificação de requisitos é dividido em subsistemas por funcionalidades � O primeiro incremento geralmente é chamado de núcleo do produto (compreende os requisitos básicos) FONTE: (PFLEEGER, 2007, p. 45) 7 Qualidade de Software Ementa 37 ABORDAGENS INCREMENTAIS DE PROCESSO � O modelo incremental combina elementos do modelo em cascata aplicado de forma iterativa (em várias fases) � Aplica várias sequências lineares � Exemplo: software de processamento de texto com três recursos (criar textos,organizar textos “copiar e colar” e formatar textos) � 1ª entrega: somente a função de criação de textos � 2ª entrega: criação e organização de textos � 3ª entrega: criação, organização e formatação de textos (versão completa) � Modelo ideal quando não há mão de obra suficiente para construir todo os software dentro do prazo estipulado Qualidade de Software Ementa 38 ITERATIVO X INCREMENTAL Qualidade de Software Ementa 39 MODELO EM ESPIRAL � Combina a natureza iterativa (em fases) da prototipagem com aspectos controlados e sistemáticos do modelo em cascata � A ideia é o desenvolvimento rápido de versões de software cada vez mais completas � Abordagem cíclica: para aumentar incrementalmente o grau de definição e implementação de um sistema enquanto diminui seu grau de risco � Marcos de ancoragem: para garantir o comprometimento dos interessados com soluções satisfatórias para o sistema Qualidade de Software Ementa 40 MODELO EM ESPIRAL FONTE: (PRESSMAN, 2011, p. 45) Qualidade de Software Ementa 41 MODELO EM ESPIRAL � O produto é desenvolvido em iterações � Cada nova iteração corresponde a uma volta na espiral � As primeiras iterações podem ser modelos de papel ou protótipos � Os problemas identificados em uma iteração alimentam a próxima iteração � Cada passagem pela região de planejamento resulta em ajustes no plano do projeto � Cronograma e custo são ajustados a cada iteração junto ao cliente � O gerente de projeto deve planejar o número de iteração necessárias para completar o software � O modelo pode ser adaptado para continuar sendo aplicado ao longo de toda a vida do software (após a entrega) Qualidade de Software Ementa 42 MODELO EM ESPIRAL � Apresenta uma abordagem mais realista do desenvolvimento de sistemas de software � Matem a abordagem clássica com um arcabouço iterativo (em fases) � O software evolui à medida que o sistema avança e cliente e desenvolvedores entendem melhor o sistema � Pode ser difícil convencer os clientes de que uma abordagem evolutiva é controlável � Depende de competência na avaliação de riscos para alcançar sucesso 8 Qualidade de Software Ementa 43 REFERÊNCIAS � PFLEEGER, Shari Lawrence. Engenharia de software: teoria e prática. São Paulo: Prearson Prentice Hall, 2004, xix, 535p. � PRESSMAN, Roger S. Engenharia de software: uma abordagem profissional. Porto Alegre: AMGH, 2011. XXVIII, 780 p. � SOMMERVILLE, Ian. Engenharia de software. 9. ed. São Paulo: Pearson Prentice Hall, 2011. xiii, 529 p. � WAZLAWICK, Raul Sidnei. Engenharia de software: conceitos e práticas. Rio de Janeiro, RJ: Elsevier, Campus, c2013. xxii, 343 p. Qualidade de Software Ementa 44 DÚVIDAS
Compartilhar