Engenharia de Software Aula 03 – Processo de Software Prof. Adriana M. Martins
Processo de Software Introdução Definição Modelos 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 Financia o desenvolvimento CLIENTE do software DESENVOLVEDOR USUÁRIO Financia o desenvolvimento do software Constrói o software Utiliza o software Obrigações Contratuais $$ necessidades 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;