Engenharia de Software Aula 03 – Processo de Software Prof. Adriana M. Martins Processo de Software Introdução O que é um Bom Software? Quem faz a Engenharia de Software Definição Processo Modelos O que é um Bom Software? Na Engenharia de Software, os engenheiros procuram utilizar métodos que assegurem que seus produtos sejam de qualidade e utilidade aceitáveis. Mas o que seria qualidade para o software? Software x Qualidade A qualidade pode ser definida sob três pontos de vista: Qualidade do produto; Qualidade do processo; Qualidade no contexto do ambiente de negócios no qual o software será utilizado. 1. Qualidade do Produto Esta definição pode variar de acordo com quem a define: usuários, desenvolvedores, clientes, etc. Como medir a qualidade de um software? Usuários verificam características externas como quantidade e tipos de falhas (pequenas, grandes ou catastróficas). 1. Qualidade do Produto Os que realizam o projeto ou fazem a manutenção do software poderão classificar a qualidade de forma diferente: Número e tipos de defeitos para medir a qualidade do produto (indicadores). Pesquisar: definição sobre defeito e falha. 2. Qualidade do Processo Muitas atividades afetam a qualidade final do produto; Engenheiros de Software medirão a qualidade do processo de desenvolvimento do software; A qualidade do processo é tão importante quanto a qualidade do produto. 2. Qualidade do Processo Questões sobre a qualidade do processo: Onde e quando é mais provável encontrarmos um tipo particular de defeito? Como podemos encontrar os defeitos o mais rápido possível durante o desenvolvimento? Como podemos incluir tolerância a defeitos para que defeitos se tornem uma falha? Há atividades alternativas para tornar o processo mais eficiente e com maior qualidade? 3. Qualidade no Contexto do Ambiente de Negócios • Análise considerada sob: • • Valor técnico x valor comercial. O retorno do investimento é analisado sob: • Treinamento, cronograma, risco, qualidade, produtividade, processo, cliente, custos e negócio. Quem faz a Eng. de Software? O ponto-chave da ESOF é a comunicação entre clientes e desenvolvedores; Isso irá assegurar a qualidade do produto final; O número das pessoas envolvidas depende do tamanho e complexidade do projeto; Os papéis e responsabilidades serão distintos durante o projeto. Participantes da ESOF Cliente: é a empresa, organização ou pessoa que está pagando para que o software seja desenvolvido; Desenvolvedor: é a empresa, organização ou pessoa que está construindo o software para o cliente; É preciso haver gerentes, desenvolvedores, testadores, etc. Participantes da ESOF Usuários: são as pessoas que realmente utilizarão o sistema, inserindo ou excluindo dados do mesmo. Participantes da ESOF CLIENTE Financia o desenvolvimento do software $$ necessidades Obrigações Contratuais DESENVOLVEDOR Constrói o software software necessidades USUÁRIO Utiliza o software Processo de Software Cada projeto é único e as técnicas utilizadas devem levar em conta as restrições do mesmo; A maioria dos sistemas não é isolado. Eles se integram com outros sistemas: Necessidade de interação entre sistemas (complexidade); Pouca documentação da interface entre sistemas. Processo de Software Quais seriam as atividades envolvidas durante o desenvolvimento de um software? Exercício prático: como você poderia descrever as atividades para se fazer um bolo de chocolate? Processo de Software – Definição: “Qualquer descrição do desenvolvimento de software que contenha atividades organizadas de modo que, juntas, produzam um código testado.” Pflegger Processo de Software – Definição: “Para realização de algo, seguimos uma seqüência de etapas para completar um conjunto de tarefas, que geralmente são realizadas na mesma ordem todas as vezes.” Pflegger Processo de Software – Definição: “Conjunto de atividades e resultados associados que levam à produção de um produto de software.” ou “Conjunto coerente de atividades para produção de software.” Sommerville Principais Atividades Desenvolvimento de Software: Análise e definição de requisitos; Projeto de sistema; Projeto do programa; Escrever programas (implementação); Teste de unidades; Testes de integração; Testes de sistema; Entrega do sistema; Manutenção. Principais Atividades Desenvolvimento de Software: Em situações ideais, todas estas tarefas seriam realizadas uma por vez, chegando ao final. Na prática isso não acontece, porque muitas destas etapas são repetidas. Processo de Software – Considerações: Há diferentes processos de software, mas algumas atividades são comuns entre eles, como: Especificação; Projeto e implementação: Validação; Evolução. Processo de Software – Considerações: Especificação: funcionalidade e restrições de sua operação; Projeto e implementação: o software deve ser produzido de modo que cumpra sua especificação; Validação: o software precisa ser validado para garantir que fará o que o cliente deseja; Evolução: o software precisa evoluir para atender às necessidades mutáveis do cliente. Processo de Software – Considerações: Alguns processos não possuem técnicas atualizadas; Outros não sabem como tirar vantagens das melhores práticas da engenharia industrial. Processo de Software – Melhoria de Processos: A melhoria de processos de software pode ser feita por: Melhoria de comunicação; Redução de tempo de treinamento; Apoio a um processo automatizado e mais econômico;