engenharia de software aula 03 – processo de software prof. adriana m. martins

24
Engenharia de Engenharia de Software Software Aula 03 – Processo de Aula 03 – Processo de Software Prof. Adriana M. Software Prof. Adriana M. Martins Martins

Upload: internet

Post on 22-Apr-2015

105 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Engenharia de Software Aula 03 – Processo de Software Prof. Adriana M. Martins

Engenharia de SoftwareEngenharia de Software

Aula 03 – Processo de Software Aula 03 – Processo de Software Prof. Adriana M. MartinsProf. Adriana M. Martins

Page 2: Engenharia de Software Aula 03 – Processo de Software Prof. Adriana M. Martins

Processo de SoftwareProcesso de Software

IntroduçãoIntrodução O que é um Bom Software?O que é um Bom Software? Quem faz a Engenharia de Quem faz a Engenharia de

SoftwareSoftware DefiniçãoDefinição

ProcessoProcesso ModelosModelos

Page 3: Engenharia de Software Aula 03 – Processo de Software Prof. Adriana M. Martins

O que é um Bom Software?O que é um Bom Software?

Na Engenharia de Software, os Na Engenharia de Software, os engenheiros procuram utilizar engenheiros procuram utilizar métodosmétodos que assegurem que que assegurem que seus produtos sejam de seus produtos sejam de qualidade e utilidade qualidade e utilidade aceitáveisaceitáveis..

Mas o que seria qualidade para Mas o que seria qualidade para o software?o software?

Page 4: Engenharia de Software Aula 03 – Processo de Software Prof. Adriana M. Martins

Software x Qualidade Software x Qualidade

A qualidade pode ser definida A qualidade pode ser definida sob três pontos de vista:sob três pontos de vista: Qualidade do produto;Qualidade do produto; Qualidade do processo;Qualidade do processo; Qualidade no contexto do Qualidade no contexto do

ambiente de negócios no qual o ambiente de negócios no qual o software será utilizado.software será utilizado.

Page 5: Engenharia de Software Aula 03 – Processo de Software Prof. Adriana M. Martins

1. Qualidade do Produto 1. Qualidade do Produto

Esta definição pode variar de Esta definição pode variar de acordo com quem a define: acordo com quem a define: usuários, desenvolvedores, usuários, desenvolvedores, clientes, etc.clientes, etc.

Como medir a qualidade de um Como medir a qualidade de um software? software? Usuários verificam características Usuários verificam características

externas como quantidade e tipos externas como quantidade e tipos de falhas (pequenas, grandes ou de falhas (pequenas, grandes ou catastróficas).catastróficas).

Page 6: Engenharia de Software Aula 03 – Processo de Software Prof. Adriana M. Martins

1. Qualidade do Produto1. Qualidade do Produto

Os que realizam o projeto ou Os que realizam o projeto ou fazem a manutenção do fazem a manutenção do software poderão classificar a software poderão classificar a qualidade de forma diferente: qualidade de forma diferente: Número e tipos de defeitos para Número e tipos de defeitos para

medir a qualidade do produto medir a qualidade do produto (indicadores).(indicadores).

Pesquisar:Pesquisar: definição sobre definição sobre defeito defeito e falha.e falha.

Page 7: Engenharia de Software Aula 03 – Processo de Software Prof. Adriana M. Martins

2. Qualidade do Processo 2. Qualidade do Processo

Muitas atividades afetam a Muitas atividades afetam a qualidade final do produto;qualidade final do produto;

Engenheiros de Software Engenheiros de Software medirão a qualidade do medirão a qualidade do processo de desenvolvimento processo de desenvolvimento do software;do software;

A qualidade do processo é tão A qualidade do processo é tão importante quanto a qualidade importante quanto a qualidade do produto.do produto.

Page 8: Engenharia de Software Aula 03 – Processo de Software Prof. Adriana M. Martins

2. Qualidade do Processo 2. Qualidade do Processo

Questões sobre a qualidade do processo:Questões sobre a qualidade do processo: Onde e quando é mais provável Onde e quando é mais provável

encontrarmos um tipo particular de encontrarmos um tipo particular de defeito?defeito?

Como podemos encontrar os defeitos o Como podemos encontrar os defeitos o mais rápido possível durante o mais rápido possível durante o desenvolvimento?desenvolvimento?

Como podemos incluir tolerância a Como podemos incluir tolerância a defeitos para que defeitos se tornem defeitos para que defeitos se tornem uma falha?uma falha?

Há atividades alternativas para tornar o Há atividades alternativas para tornar o processo mais eficiente e com maior processo mais eficiente e com maior qualidade?qualidade?

Page 9: Engenharia de Software Aula 03 – Processo de Software Prof. Adriana M. Martins

3. Qualidade no Contexto do 3. Qualidade no Contexto do Ambiente de NegóciosAmbiente de Negócios

• Análise considerada sob:Análise considerada sob:• Valor técnico x valor comercial.Valor técnico x valor comercial.

• O retorno do investimento é O retorno do investimento é analisado sob:analisado sob:• Treinamento, cronograma, risco, Treinamento, cronograma, risco,

qualidade, produtividade, qualidade, produtividade, processo, cliente, custos e processo, cliente, custos e negócio.negócio.

Page 10: Engenharia de Software Aula 03 – Processo de Software Prof. Adriana M. Martins

Quem faz a Eng. de Software?Quem faz a Eng. de Software?

O ponto-chave da ESOF é a O ponto-chave da ESOF é a comunicaçãocomunicação entre entre clientesclientes e e desenvolvedores;desenvolvedores; Isso irá assegurar a Isso irá assegurar a qualidadequalidade do produto do produto

final;final;

O número das pessoas envolvidas depende O número das pessoas envolvidas depende do tamanho e complexidade do projeto;do tamanho e complexidade do projeto;

Os papéis e responsabilidades serão Os papéis e responsabilidades serão distintos durante o projeto.distintos durante o projeto.

Page 11: Engenharia de Software Aula 03 – Processo de Software Prof. Adriana M. Martins

Participantes da ESOF Participantes da ESOF

Cliente:Cliente: é a empresa, organização é a empresa, organização ou pessoa que está ou pessoa que está pagandopagando para para que o software seja desenvolvido;que o software seja desenvolvido;

Desenvolvedor:Desenvolvedor: é a empresa, é a empresa, organização ou pessoa que está organização ou pessoa que está construindoconstruindo o software para o o software para o cliente;cliente; É preciso haver gerentes, É preciso haver gerentes,

desenvolvedores, testadores, etc.desenvolvedores, testadores, etc.

Page 12: Engenharia de Software Aula 03 – Processo de Software Prof. Adriana M. Martins

Participantes da ESOFParticipantes da ESOF

Usuários:Usuários: são as pessoas que são as pessoas que realmente utilizarão o sistema, realmente utilizarão o sistema, inserindo ou excluindo dados do inserindo ou excluindo dados do mesmo.mesmo.

Page 13: Engenharia de Software Aula 03 – Processo de Software Prof. Adriana M. Martins

Participantes da ESOFParticipantes da ESOF

CLIENTECLIENTE

DESENVOLVEDORDESENVOLVEDOR

USUÁRIOUSUÁRIO

Financia o desenvolvimentodo software

Constrói o software

Utiliza o software

Obrigações Obrigações ContratuaisContratuais

$$

necessidades

necessidades

software

Page 14: Engenharia de Software Aula 03 – Processo de Software Prof. Adriana M. Martins

Processo de SoftwareProcesso de Software

Cada projeto é Cada projeto é únicoúnico e as e as técnicastécnicas utilizadas devem levar em conta as utilizadas devem levar em conta as restrições do mesmo;restrições do mesmo;

A maioria dos sistemas não é A maioria dos sistemas não é isolado. Eles se integram com outros isolado. Eles se integram com outros sistemas:sistemas: Necessidade de interação entre Necessidade de interação entre

sistemas (complexidade);sistemas (complexidade); Pouca documentação da interface entre Pouca documentação da interface entre

sistemas.sistemas.

Page 15: Engenharia de Software Aula 03 – Processo de Software Prof. Adriana M. Martins

Processo de SoftwareProcesso de Software

Quais seriam as atividades Quais seriam as atividades envolvidas durante o envolvidas durante o

desenvolvimento de um desenvolvimento de um software?software?

Exercício prático:Exercício prático: como você como você poderia descrever as atividades poderia descrever as atividades

para se fazer um bolo de para se fazer um bolo de chocolate?chocolate?

Page 16: Engenharia de Software Aula 03 – Processo de Software Prof. Adriana M. Martins

Processo de Software – Definição:Processo de Software – Definição:

““Qualquer descrição do Qualquer descrição do desenvolvimento de software desenvolvimento de software

que contenha atividades que contenha atividades organizadas de modo que, organizadas de modo que,

juntas, produzam um código juntas, produzam um código testado.”testado.”

PfleggerPflegger

Page 17: Engenharia de Software Aula 03 – Processo de Software Prof. Adriana M. Martins

““Para realização de algo, Para realização de algo, seguimos uma seqüência de seguimos uma seqüência de

etapas para completar um etapas para completar um conjunto de tarefas, que conjunto de tarefas, que

geralmente são realizadas na geralmente são realizadas na mesma ordem todas as vezes.”mesma ordem todas as vezes.”

PfleggerPflegger

Processo de Software – Definição:Processo de Software – Definição:

Page 18: Engenharia de Software Aula 03 – Processo de Software Prof. Adriana M. Martins

Processo de Software – Definição:Processo de Software – Definição:

““Conjunto de atividades e Conjunto de atividades e resultados associados que resultados associados que levam à produção de um levam à produção de um

produto de software.”produto de software.”

ouou

““Conjunto coerente de atividades Conjunto coerente de atividades para produção de software.”para produção de software.”

SommervilleSommerville

Page 19: Engenharia de Software Aula 03 – Processo de Software Prof. Adriana M. Martins

Principais Atividades - Principais Atividades - Desenvolvimento de Software:Desenvolvimento de Software:

Análise e definição de requisitos;Análise e definição de requisitos; Projeto de sistema;Projeto de sistema; Projeto do programa;Projeto do programa; Escrever programas (implementação);Escrever programas (implementação); Teste de unidades;Teste de unidades; Testes de integração;Testes de integração; Testes de sistema;Testes de sistema; Entrega do sistema;Entrega do sistema; Manutenção.Manutenção.

Page 20: Engenharia de Software Aula 03 – Processo de Software Prof. Adriana M. Martins

Em situações ideais, todas Em situações ideais, todas estas tarefas seriam realizadas estas tarefas seriam realizadas uma por vez, chegando ao final.uma por vez, chegando ao final.

Na prática isso não acontece, Na prática isso não acontece, porque muitas destas etapas porque muitas destas etapas são repetidas.são repetidas.

Principais Atividades - Principais Atividades - Desenvolvimento de Software:Desenvolvimento de Software:

Page 21: Engenharia de Software Aula 03 – Processo de Software Prof. Adriana M. Martins

Processo de Software – Processo de Software – Considerações:Considerações: Há diferentes processos de Há diferentes processos de

software, mas algumas atividades software, mas algumas atividades são comuns entre eles, como:são comuns entre eles, como:

Especificação;Especificação; Projeto e implementação: Projeto e implementação: Validação;Validação; Evolução.Evolução.

Page 22: Engenharia de Software Aula 03 – Processo de Software Prof. Adriana M. Martins

Especificação:Especificação: funcionalidadefuncionalidade e e restriçõesrestrições de sua operação; de sua operação;

Projeto e implementação:Projeto e implementação: o software o software deve ser deve ser produzidoproduzido de modo que de modo que cumpracumpra sua sua especificaçãoespecificação;;

Validação:Validação: o software precisa ser o software precisa ser validadovalidado para para garantir que fará o que o garantir que fará o que o cliente desejacliente deseja;;

Evolução:Evolução: o software precisa evoluir o software precisa evoluir para para atenderatender às necessidades mutáveis às necessidades mutáveis do cliente.do cliente.

Processo de Software – Processo de Software – Considerações:Considerações:

Page 23: Engenharia de Software Aula 03 – Processo de Software Prof. Adriana M. Martins

Alguns processos não possuem Alguns processos não possuem técnicas atualizadas;técnicas atualizadas;

Outros não sabem como tirar Outros não sabem como tirar vantagens das melhores práticas da vantagens das melhores práticas da engenharia industrial.engenharia industrial.

Processo de Software – Processo de Software – Considerações:Considerações:

Page 24: Engenharia de Software Aula 03 – Processo de Software Prof. Adriana M. Martins

A melhoria de processos de software A melhoria de processos de software pode ser feita por: pode ser feita por:

Melhoria de comunicação;Melhoria de comunicação; Redução de tempo de treinamento;Redução de tempo de treinamento; Apoio a um processo automatizado Apoio a um processo automatizado

e mais econômico;e mais econômico;

Processo de Software – Processo de Software – Melhoria de Processos:Melhoria de Processos: