Revisão e Nivelamento. O que é Engenharia de Software? “A aplicação de uma abordagem...

23
PROJETO ORIENTADO A OBJETOS Revisão e Nivelamento

Transcript of Revisão e Nivelamento. O que é Engenharia de Software? “A aplicação de uma abordagem...

Page 1: Revisão e Nivelamento.  O que é Engenharia de Software? “A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento,

PROJETO ORIENTADO A OBJETOS

Revisão e Nivelamento

Page 2: Revisão e Nivelamento.  O que é Engenharia de Software? “A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento,

O que é Engenharia de Software?

Começando pelo Começo * Definição

“A aplicação de uma abordagem sistemática, disciplinada e

quantificável para o desenvolvimento, operação e

manutenção de software.

Em outras palavras, é a aplicação de Engenharia a Software” (IEEE)

Page 3: Revisão e Nivelamento.  O que é Engenharia de Software? “A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento,

Conferência da OTAN (NATO) 1968 e 1969:

Começando pelo Começo (cont.) * Origens

Fonte: http://homepages.cs.ncl.ac.uk/brian.randell/NATO/

1968: Alemanha 1969: Itália

Page 4: Revisão e Nivelamento.  O que é Engenharia de Software? “A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento,

Começando pelo Começo (cont.) * A Crise do Software (60s)

Fonte: http://thecomputerboys.com/?paged=2

Page 5: Revisão e Nivelamento.  O que é Engenharia de Software? “A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento,

Começando pelo Começo (cont.) * A Crise do Software (60s)

Fonte: http://thecomputerboys.com/?paged=2

Page 6: Revisão e Nivelamento.  O que é Engenharia de Software? “A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento,

1955:◦ 1ª empresa de software independente (CUC -

Computer Usage Corporation)◦ Fundada por dois ex-funcionários da IBM;

Até o início da década de 1960, os computadores e softwares◦ estavam confinados a ambientes governamentais e

acadêmicos;◦ tinham um propósito muito específico, geralmente

científico;◦ eram criados por especialistas, para especialistas;◦ tinham o foco voltado principalmente para o

hardware.

Como Tudo Começou? (cont.) * O Cenário em 50s e 60s

Page 7: Revisão e Nivelamento.  O que é Engenharia de Software? “A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento,

Como Tudo Começou (cont.) * O Cenário em 50s e 60s

Pote

nci

al d

o H

ard

ware

Cu

sto d

o H

ard

ware

Exp

ect

ati

vas

e D

em

an

da

da S

oci

ed

ad

e

Com

ple

xid

ad

e d

o S

oft

ware

Computadores de Propósito Geral

Inexperiência dos Programadores

Page 8: Revisão e Nivelamento.  O que é Engenharia de Software? “A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento,

Fonte: http://thecomputerboys.com/?paged=2

Page 9: Revisão e Nivelamento.  O que é Engenharia de Software? “A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento,

Como Tudo Começou (cont.) * O Cenário em 50s e 60s

60s

Page 10: Revisão e Nivelamento.  O que é Engenharia de Software? “A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento,

Muitos softwares não entregues; Alguns entregues:

◦ Além do prazo;◦ Acima do custo;◦ Com baixa qualidade;

Pouquíssimos atendiam as expectativas;

Como Tudo Começou (cont.) * Dados Sobre a Crise

Page 11: Revisão e Nivelamento.  O que é Engenharia de Software? “A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento,

Como Tudo Começou (cont.) * Estatísticas sobre a Crise

Fonte: Information and decision support systems as a challenge for new democraciesNikitas A. Assimakopoulos. Em: Diffusion of new technologies in the post-communist world

2%3%

19%

29%

47%

Estatísticas Sobre a Crise do Software

Fonte: U.S. Goverment Accounting Office

Usado sem mudanças

Usado após mudanças

Abandonado ou recriado

Entregue, mas nunca utilizado

Não entregue

Page 12: Revisão e Nivelamento.  O que é Engenharia de Software? “A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento,

1994 1996 1998 2000 2002 2004 2006 2009

Sucesso 16% 27% 26% 28% 34% 29% 35% 32%

Falhou 53% 33% 46% 49% 51% 53% 46% 44%

Cancelado 31% 40% 28% 23% 15% 18% 19% 24%

Como Anda o Desenvolvimento de Software?

Tabela adaptada de http://www.projectsmart.co.uk/the-curious-case-of-the-chaos-report-2009.html

Falhou: foi entregue com menos requisitos, fora do prazo e com custo acima do estimado;Cancelado: cancelado antes de finalizado, ou entregue, mas nunca utilizado.

CHAOS Report (Standish Group)

Contras: o relatório não leva em consideração a satisfação dos clientes, riscos e medidas de qualidades.

Page 13: Revisão e Nivelamento.  O que é Engenharia de Software? “A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento,

Como Anda o Desenvolvimento de Software? (cont.)

Adaptado de: http://blogs.msdn.com/blogfiles/andredias/WindowsLiveWriter/ChaosReport2009novasinformaesvelhosprobl_10E/caos-report2009_2.jpg

Cancelado Falhou Sucesso

Page 14: Revisão e Nivelamento.  O que é Engenharia de Software? “A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento,

Como Anda o Desenvolvimento de Software? (cont.)

Fonte: http://www.hsm.com.br/editorias/falta-de-profissionais-qualificados-em-ti-repete-cenario-da-era-industrial

Page 15: Revisão e Nivelamento.  O que é Engenharia de Software? “A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento,

Os principais fatores que contribuíram para o cancelamento dos projetos foram:◦ Requisitos Incompletos: 13.1%◦ Falta de envolvimento do usuário: 12.4%◦ Falta de recursos: 10.6%◦ Expectativas não realistas 9.9%◦ Falta de apoio executivo: 9.3%◦ Mudanças de requisitos: 8.7%◦ Falta de planejamento: 8.1%◦ Não precisa mais daquilo: 7.5%◦ Falta de gestão da TI: 6.2%◦ Analfabetismo tecnológico: 4.3%◦ Outros: 9.9%

Como Anda o Desenvolvimento de Software? (cont.)

Fonte: CHAOS Report (2009);Retirado de: http://www.blogcmmi.com.br/geral/chaos-report-como-esta-a-ti-no-mundo

Page 16: Revisão e Nivelamento.  O que é Engenharia de Software? “A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento,

Os principais fatores que contribuíram para a falha dos projetos foram:◦ Falta de insumos do usuário: 12.8%◦ Requisitos & Especificações incompletas: 12.3%◦ Mudanças nos requisitos & especificações: 11.8%◦ Falta de apoio executivo: 7.5%◦ Ambiente tecnológico incompleto: 7.0%◦ Falta de recursos: 6.4%◦ Expectativas irrealistas: 5.9%◦ Objetivos nebulosos: 5.3%◦ Ciclos (tempo) irrealistas: 4.3%◦ Novas tecnologias: 3.7%◦ Outras: 23%

Como Anda o Desenvolvimento de Software? (cont.)

Fonte: CHAOS Report (2009);Retirado de: http://www.blogcmmi.com.br/geral/chaos-report-como-esta-a-ti-no-mundo

Page 17: Revisão e Nivelamento.  O que é Engenharia de Software? “A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento,

Os principais fatores que ajudaram no sucesso dos projetos foram:◦ Envolvimento do usuário: 15.9%◦ Apoio executivo: 13.9%◦ Declaração de requisitos clara e limpa: 13%◦ Planejamento apropriado: 9.6%◦ Expectativas realistas: 8.2%◦ Milestones pequenos: 7.7%◦ Equipe competente: 7.2%◦ Propriedade: 5.3%◦ Visão e objetivos claros: 2.9%◦ Trabalho duro e equipe focada: 2.4%◦ Outros: 13.9%

Como Anda o Desenvolvimento de Software? (cont.)

Fonte: CHAOS Report (2009);Retirado de: http://www.blogcmmi.com.br/geral/chaos-report-como-esta-a-ti-no-mundo

Page 18: Revisão e Nivelamento.  O que é Engenharia de Software? “A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento,

Em primeiro lugar, devemos saber onde queremos chegar.

Como Reverter Esse Quadro?

Page 19: Revisão e Nivelamento.  O que é Engenharia de Software? “A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento,

Que os softwares◦ cumpram o custo estabelecido;◦ sejam entregues dentro do prazo previsto;◦ resolvam os problemas que motivaram sua

criação;◦ tenham alta qualidade (o que é isso)?

O que os Clientes Esperam dos Desenvolvedores de Software?

Page 20: Revisão e Nivelamento.  O que é Engenharia de Software? “A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento,

O software que satisfaz os requisitos solicitados pelo usuário. Deve ser fácil de manter, ter bom desempenho, ser confiável e fácil de usar.

Alguns atributos de qualidade:◦Manutenibilidade: o software deve ser escrito

de modo que possa evoluir para atender às necessidades de mudança dos clientes;

◦Eficiência: o software não deve desperdiçar os recursos do sistema;

◦Usabilidade: o software deve ser fácil de usar pelos usuários para os quais ele foi projetado;

◦Confiabilidade: deve ser seguro, não deve causar danos no caso de falhas;

Qualidade de Software

Page 21: Revisão e Nivelamento.  O que é Engenharia de Software? “A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento,

Em seguida, devemos conhecer um pouco mais sobre:◦ O que aprendemos nas últimas décadas;

Os erros que cometemos (para não repeti-los); Os acertos (para procurar repeti-los).

◦ Conceitos de Engenharia de Software.

Como Reverter Esse Quadro?

Page 22: Revisão e Nivelamento.  O que é Engenharia de Software? “A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento,

IEEE STD 610.12-1990, IEEE Standard Glossary of Software Engineering Terminology, IEEE Computer Society, 1990

Relatórios das Conferências NATO.http://homepages.cs.ncl.ac.uk/brian.randell/NATO/

The Computer Boys.http://thecomputerboys.com/

Information and decision support systems as a challenge for new democraciesNikitas A. Assimakopoulos. Em: Diffusion of new technologies in the post-communist worldhttp://books.google.com.br/books?id=yw1DvY63mcgC&lpg=PA162&ots=Hj27NVm3ZX&dq=%22software%20crisis%22%20abandoned%2019%25%20never%20used%2047%25&hl=pt-BR&pg=PP1#v=onepage&q=%22software%20crisis%22%20abandoned%2019%25%20never%20used%2047%25&f=false

Materiais Consultados