Revisão e Nivelamento. O que é Engenharia de Software? “A aplicação de uma abordagem...
Transcript of Revisão e Nivelamento. O que é Engenharia de Software? “A aplicação de uma abordagem...
PROJETO ORIENTADO A OBJETOS
Revisão e Nivelamento
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)
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
Começando pelo Começo (cont.) * A Crise do Software (60s)
Fonte: http://thecomputerboys.com/?paged=2
Começando pelo Começo (cont.) * A Crise do Software (60s)
Fonte: http://thecomputerboys.com/?paged=2
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
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
Fonte: http://thecomputerboys.com/?paged=2
Como Tudo Começou (cont.) * O Cenário em 50s e 60s
60s
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
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
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.
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
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
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
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
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
Em primeiro lugar, devemos saber onde queremos chegar.
Como Reverter Esse Quadro?
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?
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
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?
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
http://blogs.msdn.com/blogfiles/andredias/WindowsLiveWriter/ChaosReport2009novasinformaesvelhosprobl_10E/caos-report2009_2.jpg
http://www.hsm.com.br/editorias/falta-de-profissionais-qualificados-em-ti-repete-cenario-da-era-industrial
Engenharia de Software no IME (Marco Aurélio Gerosa)◦ http://www.ime.usp.br/~gerosa/
Engenharia de Software no INPE (Prado)◦ http://www2.dem.inpe.br/ijar/CicoloVidaSoftPrado.
html
Materiais Consultados (cont.)