250 likes | 382 Views
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?.
E N D
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.
Financia o desenvolvimento do software CLIENTE $$ necessidades Obrigações Contratuais DESENVOLVEDOR Constrói o software software necessidades USUÁRIO Utiliza o software Participantes da ESOF
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;